annotate common/autoconf/spec.gmk.in @ 1648:29cf60874856

Merge
author amurillo
date Thu, 10 Sep 2015 14:55:18 -0700
parents 8b56a0ce50f0 0b0a6b9ed991
children 6849581ba4ab c800f2919a1f 38df42f29314
rev   line source
ohair@423 1 #
ihse@1366 2 # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
ohair@423 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ohair@423 4 #
ohair@423 5 # This code is free software; you can redistribute it and/or modify it
ohair@423 6 # under the terms of the GNU General Public License version 2 only, as
ohair@423 7 # published by the Free Software Foundation. Oracle designates this
ohair@423 8 # particular file as subject to the "Classpath" exception as provided
ohair@423 9 # by Oracle in the LICENSE file that accompanied this code.
ohair@423 10 #
ohair@423 11 # This code is distributed in the hope that it will be useful, but WITHOUT
ohair@423 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ohair@423 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ohair@423 14 # version 2 for more details (a copy is included in the LICENSE file that
ohair@423 15 # accompanied this code).
ohair@423 16 #
ohair@423 17 # You should have received a copy of the GNU General Public License version
ohair@423 18 # 2 along with this work; if not, write to the Free Software Foundation,
ohair@423 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ohair@423 20 #
ohair@423 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@423 22 # or visit www.oracle.com if you need additional information or have any
ohair@423 23 # questions.
ohair@423 24 #
ohair@423 25
ohair@476 26 # Configured @DATE_WHEN_CONFIGURED@ to build
ohair@476 27 # for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@
ohair@476 28 # (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf)
ohair@476 29 # on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@
ohair@476 30 # (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf)
erikj@456 31 # using 'configure @CONFIGURE_COMMAND_LINE@'
ohair@423 32
ihse@970 33 # The command line given to configure.
ihse@970 34 CONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@
ihse@970 35
ohair@476 36 # A self-referential reference to this file.
ohair@476 37 SPEC:=@SPEC@
ohair@476 38
ihse@1414 39 # What make to use for main processing, after bootstrapping top-level Makefile.
ihse@1414 40 MAKE := @MAKE@
ohair@476 41
ihse@1414 42 # The default make arguments
ihse@1430 43 MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
ihse@1414 44 MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" LOG_LEVEL=$(LOG_LEVEL)
ohair@423 45
chegar@1120 46 OUTPUT_SYNC_SUPPORTED:=@OUTPUT_SYNC_SUPPORTED@
chegar@1120 47 OUTPUT_SYNC:=@OUTPUT_SYNC@
chegar@1120 48
erikj@1305 49 # Override the shell with bash
erikj@1305 50 BASH:=@BASH@
erikj@1305 51 BASH_ARGS:=@BASH_ARGS@
erikj@1305 52 SHELL:=$(BASH) $(BASH_ARGS)
erikj@1305 53
erikj@443 54 # The "human readable" name of this configuration
erikj@443 55 CONF_NAME:=@CONF_NAME@
erikj@443 56
erikj@456 57 # The built jdk will run in this target system.
erikj@456 58 OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@
ihse@1231 59 OPENJDK_TARGET_OS_TYPE:=@OPENJDK_TARGET_OS_TYPE@
ohair@492 60 OPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@
erikj@456 61
erikj@456 62 OPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@
erikj@456 63 OPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@
erikj@456 64 OPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@
erikj@456 65 OPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@
ohair@423 66
ohair@476 67 COMPILE_TYPE:=@COMPILE_TYPE@
ohair@476 68
ohair@476 69 # Legacy support
ohair@476 70 OPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@
ohair@476 71 OPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@
ohair@476 72 OPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@
ohair@476 73 OPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@
ohair@476 74 OPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@
ohair@476 75 OPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@
dholmes@870 76 OPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@
ohair@476 77
ohair@423 78 # We are building on this build system.
erikj@456 79 # When not cross-compiling, it is the same as the target.
erikj@456 80 OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@
ihse@1231 81 OPENJDK_BUILD_OS_TYPE:=@OPENJDK_BUILD_OS_TYPE@
erikj@1127 82 OPENJDK_BUILD_OS_ENV:=@OPENJDK_BUILD_OS_ENV@
erikj@456 83
erikj@456 84 OPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@
erikj@456 85 OPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@
erikj@456 86 OPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@
erikj@456 87 OPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@
ohair@423 88
erikj@443 89 # Legacy OS values for use in release file.
erikj@443 90 REQUIRED_OS_NAME:=@REQUIRED_OS_NAME@
erikj@443 91 REQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@
erikj@443 92
ohair@423 93 @SET_OPENJDK@
ohair@423 94 LIBM:=-lm
erikj@443 95 LIBDL:=@LIBDL@
ohair@423 96
ohair@423 97 # colon or semicolon
ohair@423 98 PATH_SEP:=@PATH_SEP@
ohair@423 99
erikj@1319 100 # Save the original path before replacing it with the Visual Studio tools
erikj@1319 101 ORIGINAL_PATH:=@ORIGINAL_PATH@
ohair@492 102 ifeq ($(OPENJDK_TARGET_OS), windows)
erikj@1319 103 # On Windows, the Visual Studio toolchain needs the PATH to be adjusted
erikj@1319 104 # to include Visual Studio tools (this needs to be in cygwin/msys style).
ohair@492 105 export PATH:=@VS_PATH@
ohair@492 106 endif
ohair@423 107
erikj@1008 108 SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
erikj@1008 109 SYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@
ohair@423 110
ohair@423 111 # Paths to the source code
ohair@423 112 ADD_SRC_ROOT:=@ADD_SRC_ROOT@
ohair@423 113 OVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@
ihse@976 114
ihse@976 115 # The top-level directory of the forest (SRC_ROOT is a traditional alias)
ihse@976 116 TOPDIR:=@TOPDIR@
erikj@1415 117 # These two versions of TOPDIR are used in string comparisons
erikj@1415 118 ORIGINAL_TOPDIR:=@ORIGINAL_TOPDIR@
erikj@1415 119 CANONICAL_TOPDIR:=@CANONICAL_TOPDIR@
ihse@976 120 SRC_ROOT:=@TOPDIR@
ihse@976 121
ohair@423 122 OUTPUT_ROOT:=@OUTPUT_ROOT@
ohair@423 123 JDK_TOPDIR:=@JDK_TOPDIR@
ohair@423 124 LANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@
ohair@423 125 CORBA_TOPDIR:=@CORBA_TOPDIR@
ohair@423 126 JAXP_TOPDIR:=@JAXP_TOPDIR@
ohair@423 127 JAXWS_TOPDIR:=@JAXWS_TOPDIR@
ohair@423 128 HOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@
jjg@643 129 NASHORN_TOPDIR:=@NASHORN_TOPDIR@
ohair@423 130 COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@
ohair@423 131
ohair@423 132 # Information gathered from the version.numbers file.
ohair@423 133 JDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@
ohair@423 134 JDK_MINOR_VERSION:=@JDK_MINOR_VERSION@
ohair@423 135 JDK_MICRO_VERSION:=@JDK_MICRO_VERSION@
ohair@423 136 JDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@
ohair@423 137 JDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@
ohair@423 138 MILESTONE:=@MILESTONE@
ohair@423 139 LAUNCHER_NAME:=@LAUNCHER_NAME@
ohair@423 140 PRODUCT_NAME:=@PRODUCT_NAME@
ohair@423 141 PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
ohair@423 142 JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
ohair@423 143 COMPANY_NAME:=@COMPANY_NAME@
ohair@492 144 MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@
ohair@492 145 MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
erikj@811 146 USER_RELEASE_SUFFIX=@USER_RELEASE_SUFFIX@
ohair@423 147
ohair@423 148 # Different version strings generated from the above information.
ohair@423 149 JDK_VERSION:=@JDK_VERSION@
erikj@560 150 RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX)
ohair@423 151 COOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@
erikj@559 152 # These variables need to be generated here so that MILESTONE and
erikj@559 153 # JDK_BUILD_NUMBER can be overridden on the make command line.
erikj@965 154 ifeq ($(MILESTONE), fcs)
erikj@559 155 RELEASE=$(JDK_VERSION)$(BUILD_VARIANT_RELEASE)
erikj@559 156 else
erikj@559 157 RELEASE=$(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE)
erikj@559 158 endif
erikj@811 159
ihse@837 160 ifneq ($(USER_RELEASE_SUFFIX), )
erikj@559 161 FULL_VERSION=$(RELEASE)-$(USER_RELEASE_SUFFIX)-$(JDK_BUILD_NUMBER)
erikj@559 162 else
erikj@559 163 FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER)
erikj@559 164 endif
erikj@560 165 JRE_RELEASE_VERSION:=$(FULL_VERSION)
ihse@1454 166 JDK_VERSION_FOR_MANIFEST := $(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(if $(JDK_UPDATE_VERSION),$(JDK_UPDATE_VERSION),0).$(COOKED_BUILD_NUMBER)
ohair@423 167
ohair@423 168 # How to compile the code: release, fastdebug or slowdebug
ohair@423 169 DEBUG_LEVEL:=@DEBUG_LEVEL@
ohair@423 170
ohair@423 171 # This is the JDK variant to build.
ohair@423 172 # The JDK variant is a name for a specific set of modules to be compiled for the JDK.
ohair@423 173 JDK_VARIANT:=@JDK_VARIANT@
ohair@423 174
ohair@423 175 # Should we compile support for running with a graphical UI? (ie headful)
ohair@423 176 # Should we compile support for running without? (ie headless)
ohair@423 177 SUPPORT_HEADFUL:=@SUPPORT_HEADFUL@
ohair@423 178 SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@
ohair@423 179 # Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options.
ohair@423 180 @BUILD_HEADLESS@
ohair@423 181
ohair@423 182 # These are the libjvms that we want to build.
ohair@423 183 # The java launcher uses the default.
dholmes@540 184 # The others can be selected by specifying -client -server -minimal1 -kernel -zero or -zeroshark
ohair@423 185 # on the java launcher command line.
ohair@423 186 JVM_VARIANTS:=@JVM_VARIANTS@
ohair@423 187 JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@
ohair@423 188 JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@
dholmes@540 189 JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@
ohair@423 190 JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@
ohair@423 191 JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@
ohair@423 192 JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@
simonis@939 193 JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@
ohair@423 194
ohair@476 195 # Universal binaries on macosx
ohair@476 196 MACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@
ohair@476 197
ohair@423 198 # Legacy setting: -debug or -fastdebug
ohair@476 199 # Still used in version string...
ohair@423 200 BUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@
ohair@423 201
ohair@476 202 # JDK_OUTPUTDIR specifies where a working jvm is built.
ohair@423 203 # You can run $(JDK_OUTPUTDIR)/bin/java
ohair@423 204 # Though the layout of the contents of $(JDK_OUTPUTDIR) is not
ohair@423 205 # yet the same as a default installation.
ohair@476 206 #
ohair@423 207 # When you run "make install" it will create the standardized
ohair@476 208 # layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir.
ohair@423 209 # Then it will copy the contents of the jdk into the installation
ohair@423 210 # directory.
erikj@456 211
ohair@476 212 BUILD_OUTPUT:=@BUILD_OUTPUT@
erikj@666 213 # Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images
chegar@1227 214 SUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/support
chegar@1227 215 BUILDTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/buildtools
chegar@1227 216
ohair@476 217 HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot
ohair@476 218 JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk
ohair@476 219 IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images
erikj@1303 220 TESTMAKE_OUTPUTDIR=$(BUILD_OUTPUT)/test-make
erikj@1171 221 MAKESUPPORT_OUTPUTDIR=$(BUILD_OUTPUT)/make-support
erikj@1432 222 # This does not get overridden in a bootcycle build
erikj@1432 223 CONFIGURESUPPORT_OUTPUTDIR:=@CONFIGURESUPPORT_OUTPUTDIR@
erikj@456 224
tbell@504 225 HOTSPOT_DIST=@HOTSPOT_DIST@
tbell@504 226
tbell@504 227 BUILD_HOTSPOT=@BUILD_HOTSPOT@
ohair@423 228
chegar@1227 229 # The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
chegar@1227 230 # it in sync.
ohair@423 231 BOOT_JDK:=@BOOT_JDK@
ohair@423 232
ohair@423 233 # When compiling Java source to be run by the boot jdk
ohair@423 234 # use these extra flags, eg -source 6 -target 6
ohair@423 235 BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@
ohair@423 236
ohair@423 237 # Information about the build system
ohair@423 238 NUM_CORES:=@NUM_CORES@
mduigou@1030 239 MEMORY_SIZE:=@MEMORY_SIZE@
ohair@476 240 # Enable sjavac support = use a javac server,
ohair@476 241 # multi core javac compilation and dependency tracking.
ohair@476 242 ENABLE_SJAVAC:=@ENABLE_SJAVAC@
ohair@476 243 # Store sjavac server synchronization files here, and
ohair@476 244 # the sjavac server log files.
erikj@1432 245 SJAVAC_SERVER_DIR=$(MAKESUPPORT_OUTPUTDIR)/javacservers
ohair@423 246
erikj@633 247 # Number of parallel jobs to use for compilation
erikj@633 248 JOBS?=@JOBS@
erikj@633 249
ihse@866 250 FREETYPE_LIBS:=@FREETYPE_LIBS@
ihse@866 251 FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@
ihse@866 252 FREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@
ohair@423 253 CUPS_CFLAGS:=@CUPS_CFLAGS@
erikj@735 254 ALSA_LIBS:=@ALSA_LIBS@
erikj@735 255 ALSA_CFLAGS:=@ALSA_CFLAGS@
ohair@423 256
ohair@423 257 PACKAGE_PATH=@PACKAGE_PATH@
ohair@423 258
erikj@443 259 # Source file for cacerts
erikj@443 260 CACERTS_FILE=@CACERTS_FILE@
ohair@423 261
ihse@493 262 # Enable unlimited crypto policy
ihse@493 263 UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@
ihse@493 264
erikj@1376 265 GCOV_ENABLED=@GCOV_ENABLED@
erikj@1376 266
ihse@837 267 # Necessary additional compiler flags to compile X11
ohair@423 268 X_CFLAGS:=@X_CFLAGS@
ohair@423 269 X_LIBS:=@X_LIBS@
ohair@423 270
erikj@619 271 # The lowest required version of macosx to enforce compatiblity for
erikj@629 272 MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
erikj@619 273
ihse@975 274 # Toolchain type: gcc, clang, solstudio, lxc, microsoft...
ihse@975 275 TOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@
ohair@423 276
simonis@945 277 # Option used to tell the compiler whether to create 32- or 64-bit executables
simonis@945 278 COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@
omajid@693 279 COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@
omajid@693 280
ohair@423 281 CC_OUT_OPTION:=@CC_OUT_OPTION@
ohair@423 282 EXE_OUT_OPTION:=@EXE_OUT_OPTION@
ohair@423 283 LD_OUT_OPTION:=@LD_OUT_OPTION@
ohair@423 284 AR_OUT_OPTION:=@AR_OUT_OPTION@
ohair@423 285
ohair@423 286 # Flags used for overriding the default opt setting for a C/C++ source file.
erikj@443 287 C_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@
ohair@423 288 C_O_FLAG_HI:=@C_O_FLAG_HI@
ohair@423 289 C_O_FLAG_NORM:=@C_O_FLAG_NORM@
ohair@423 290 C_O_FLAG_NONE:=@C_O_FLAG_NONE@
erikj@443 291 CXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@
ohair@423 292 CXX_O_FLAG_HI:=@CXX_O_FLAG_HI@
ohair@423 293 CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@
ohair@423 294 CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@
ohair@423 295
erikj@443 296 C_FLAG_DEPS:=@C_FLAG_DEPS@
erikj@443 297 CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
erikj@443 298
ihse@1375 299 DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@
sla@1003 300 CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
sla@1003 301
ihse@1490 302 # A global flag (true or false) determining if native warnings are considered errors.
ihse@1490 303 WARNINGS_AS_ERRORS := @WARNINGS_AS_ERRORS@
ihse@1490 304
erikj@1322 305 CFLAGS_CCACHE:=@CFLAGS_CCACHE@
erikj@1322 306
ohair@423 307 # Tools that potentially need to be cross compilation aware.
ohair@492 308 CC:=@FIXPATH@ @CCACHE@ @CC@
ohair@423 309
ohair@423 310 # CFLAGS used to compile the jdk native libraries (C-code)
ohair@423 311 CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
ohair@423 312 CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@
ohair@423 313
ohair@423 314 # CFLAGS used to compile the jdk native launchers (C-code)
ohair@423 315 CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
ohair@423 316 CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
ohair@423 317
ohair@492 318 CXX:=@FIXPATH@ @CCACHE@ @CXX@
ohair@423 319 #CXXFLAGS:=@CXXFLAGS@
ohair@423 320
ohair@492 321 CPP:=@FIXPATH@ @CPP@
ohair@423 322 #CPPFLAGS:=@CPPFLAGS@
ohair@423 323
ihse@1231 324 # The linker can be gcc or ld on unix systems, or link.exe on windows systems.
ohair@492 325 LD:=@FIXPATH@ @LD@
ohair@423 326
ddehaven@1076 327 # Xcode SDK path
ddehaven@1076 328 SDKROOT:=@SDKROOT@
ddehaven@1076 329
simonis@939 330 # The linker on older SuSE distros (e.g. on SLES 10) complains with:
simonis@939 331 # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable."
simonis@939 332 # if feeded with a version script which contains named tags.
simonis@939 333 USING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@
simonis@939 334
ohair@423 335 # LDFLAGS used to link the jdk native libraries (C-code)
ohair@423 336 LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@
ohair@423 337 LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@
ohair@423 338
ohair@423 339 # LDFLAGS used to link the jdk native launchers (C-code)
ohair@423 340 LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@
ohair@423 341 LDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@
ohair@423 342
ohair@476 343 # LDFLAGS specific to C++ linking.
ohair@476 344 LDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@
ohair@476 345
ohair@423 346 # Sometimes a different linker is needed for c++ libs
ohair@492 347 LDCXX:=@FIXPATH@ @LDCXX@
ohair@423 348 # The flags for linking libstdc++ linker.
ohair@423 349 LIBCXX:=@LIBCXX@
ohair@423 350
erikj@1376 351 # Compiler and linker flags used when building native tests
erikj@1376 352 CFLAGS_TESTLIB:=@CFLAGS_TESTLIB@
erikj@1376 353 CXXFLAGS_TESTLIB:=@CXXFLAGS_TESTLIB@
erikj@1376 354 CFLAGS_TESTEXE:=@CFLAGS_TESTEXE@
erikj@1376 355 CXXFLAGS_TESTEXE:=@CXXFLAGS_TESTEXE@
erikj@1376 356 LDFLAGS_TESTLIB:=@LDFLAGS_TESTLIB@
erikj@1376 357 LDFLAGS_TESTLIB_SUFFIX:=@LDFLAGS_TESTLIB_SUFFIX@
erikj@1376 358 LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
erikj@1376 359 LDFLAGS_TESTEXE_SUFFIX:=@LDFLAGS_TESTEXE_SUFFIX@
erikj@1376 360
ohair@476 361 # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
ohair@476 362 # build platform.
ohair@492 363 BUILD_CC:=@FIXPATH@ @BUILD_CC@
ohair@492 364 BUILD_LD:=@FIXPATH@ @BUILD_LD@
erikj@456 365
ohair@492 366 AS:=@FIXPATH@ @AS@
ohair@423 367
ihse@1231 368 # AR is used to create a static library (is ar in unix, lib.exe in windows)
ohair@492 369 AR:=@FIXPATH@ @AR@
ohair@423 370 ARFLAGS:=@ARFLAGS@
ohair@423 371
ohair@476 372 NM:=@NM@
erikj@670 373 GNM:=@GNM@
ohair@476 374 STRIP:=@STRIP@
ohair@476 375
ohair@476 376 LIPO:=@LIPO@
ohair@423 377
ihse@837 378 # Options to linker to specify a mapfile.
ohair@423 379 # (Note absence of := assignment, because we do not want to evaluate the macro body here)
ohair@423 380 SET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@
ohair@423 381
erikj@443 382 # Options for C/CXX compiler to be used if linking is performed
erikj@443 383 # using reorder file
erikj@443 384 C_FLAG_REORDER:=@C_FLAG_REORDER@
erikj@443 385 CXX_FLAG_REORDER:=@CXX_FLAG_REORDER@
erikj@443 386
erikj@456 387 #
erikj@456 388 # Options for generating debug symbols
erikj@456 389 ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
erikj@456 390 CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
erikj@456 391 CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
erikj@456 392 ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
erikj@456 393
erikj@456 394 #
erikj@456 395 # Compress (or not) jars
erikj@456 396 COMPRESS_JARS=@COMPRESS_JARS@
erikj@456 397
ohair@423 398 # Options to linker to specify the library name.
ohair@423 399 # (Note absence of := assignment, because we do not want to evaluate the macro body here)
ohair@423 400 SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@
ohair@423 401
ohair@423 402 # Set origin using the linker, ie use the relative path to the dependent library to find the dependees.
ohair@423 403 # (Note absence of := assignment, because we do not want to evaluate the macro body here)
ohair@423 404 SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@
ohair@476 405 SET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@
ohair@423 406
ohair@423 407 # Different OS:es have different ways of naming shared libraries.
ohair@423 408 # The SHARED_LIBRARY macro takes "verify" as and argument and returns:
ohair@423 409 # "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform.
ohair@423 410 # (Note absence of := assignment, because we do not want to evaluate the macro body here)
ohair@423 411 SHARED_LIBRARY=@SHARED_LIBRARY@
ohair@423 412 STATIC_LIBRARY=@STATIC_LIBRARY@
ohair@423 413 LIBRARY_PREFIX:=@LIBRARY_PREFIX@
ohair@423 414 SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
ohair@423 415 STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
ohair@423 416 EXE_SUFFIX:=@EXE_SUFFIX@
ohair@423 417 OBJ_SUFFIX:=@OBJ_SUFFIX@
ohair@423 418
erikj@443 419 POST_STRIP_CMD:=@POST_STRIP_CMD@
erikj@443 420
mduigou@982 421 JAVA_FLAGS:=@JAVA_FLAGS@
erikj@998 422 JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@
erikj@998 423 JAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@
chegar@1120 424 JAVA_TOOL_FLAGS_SMALL:=@JAVA_TOOL_FLAGS_SMALL@
erikj@1196 425 SJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@
ohair@423 426
ihse@1240 427 # The *_CMD variables are defined separately to be easily overridden in bootcycle-spec.gmk
erikj@1196 428 # for bootcycle-images build. Make sure to keep them in sync. Do not use the *_CMD
erikj@1196 429 # versions of the variables directly.
erikj@1196 430 JAVA_CMD:=@JAVA@
erikj@1196 431 JAVAC_CMD:=@JAVAC@
erikj@1196 432 JAVAH_CMD:=@JAVAH@
erikj@1196 433 JAR_CMD:=@JAR@
erikj@1196 434 JARSIGNER_CMD:=@JARSIGNER@
erikj@1196 435 SJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@
erikj@1196 436 # These variables are meant to be used. They are defined with = instead of := to make
erikj@1196 437 # it possible to override only the *_CMD variables.
erikj@1196 438 JAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
erikj@1196 439 JAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
erikj@1196 440 JAVAC=@FIXPATH@ $(JAVAC_CMD)
erikj@1196 441 JAVAH=@FIXPATH@ $(JAVAH_CMD)
erikj@1196 442 JAR=@FIXPATH@ $(JAR_CMD)
erikj@1196 443 JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD)
erikj@1196 444 # A specific java binary with specific options can be used to run
erikj@1196 445 # the long running background sjavac servers and other long running tasks.
erikj@1196 446 SJAVAC_SERVER_JAVA=@FIXPATH@ $(SJAVAC_SERVER_JAVA_CMD) $(SJAVAC_SERVER_JAVA_FLAGS)
ohair@423 447
ohair@476 448 # Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid
ohair@476 449 # overriding that value by using ?=.
ohair@476 450 JAVAC_FLAGS?=@JAVAC_FLAGS@
ohair@423 451
ohrstrom@605 452 # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
chegar@1227 453 # Use = assignment to be able to override in bootcycle-spec.gmk
chegar@1227 454 INTERIM_LANGTOOLS_JAR = $(BUILDTOOLS_OUTPUTDIR)/interim_langtools.jar
chegar@1227 455 INTERIM_LANGTOOLS_ARGS = "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTERIM_LANGTOOLS_JAR)
erikj@959 456 NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
erikj@959 457 NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main
erikj@959 458
erikj@959 459 # The interim corba jar is needed for running rmic
chegar@1227 460 INTERIM_CORBA_JAR = $(BUILDTOOLS_OUTPUTDIR)/interim_corba.jar
ohrstrom@605 461
ohair@423 462 # Base flags for RC
ohair@423 463 # Guarding this against resetting value. Legacy make files include spec multiple
ohair@423 464 # times.
ohair@423 465 ifndef RC_FLAGS
ihse@837 466 RC_FLAGS:=@RC_FLAGS@
ohair@423 467 endif
ohair@423 468
ohair@423 469 # Tools adhering to a minimal and common standard of posix compliance.
ohair@423 470 AWK:=@AWK@
ohair@476 471 BASENAME:=@BASENAME@
ohair@423 472 CAT:=@CAT@
ohair@423 473 CCACHE:=@CCACHE@
ohair@423 474 # CD is going away, but remains to cater for legacy makefiles.
ohair@423 475 CD:=cd
ohair@423 476 CHMOD:=@CHMOD@
erikj@723 477 CODESIGN:=@CODESIGN@
erikj@560 478 COMM:=@COMM@
ohair@423 479 CP:=@CP@
erikj@560 480 CPIO:=@CPIO@
ohair@423 481 CUT:=@CUT@
ohair@423 482 DATE:=@DATE@
ohair@423 483 DIFF:=@DIFF@
erikj@560 484 DIRNAME:=@DIRNAME@
dcubed@852 485 DSYMUTIL:=@DSYMUTIL@
ohair@423 486 FIND:=@FIND@
ohair@423 487 FIND_DELETE:=@FIND_DELETE@
ohair@423 488 ECHO:=@ECHO@
ohair@423 489 EGREP:=@EGREP@
ohair@423 490 FGREP:=@FGREP@
ohair@423 491 GREP:=@GREP@
ohair@423 492 HEAD:=@HEAD@
ohair@423 493 LS:=@LS@
ohair@423 494 LN:=@LN@
ohair@423 495 MKDIR:=@MKDIR@
ohair@423 496 MV:=@MV@
ohair@423 497 NAWK:=@NAWK@
ohair@423 498 PRINTF:=@PRINTF@
ohair@423 499 PWD:=@THEPWDCMD@
ohair@423 500 RM:=@RM@
ohair@423 501 SED:=@SED@
ohair@423 502 SH:=@SH@
ohair@423 503 SORT:=@SORT@
ohair@423 504 TAR:=@TAR@
ohair@423 505 TAIL:=@TAIL@
ohair@423 506 TEE:=@TEE@
ohair@492 507 TIME:=@TIME@
erikj@752 508 IS_GNU_TIME:=@IS_GNU_TIME@
ohair@423 509 TR:=@TR@
ohair@423 510 TOUCH:=@TOUCH@
erikj@560 511 UNIQ:=@UNIQ@
ohair@423 512 WC:=@WC@
ohair@423 513 XARGS:=@XARGS@
ohair@423 514 ZIPEXE:=@ZIP@
ohair@423 515 ZIP:=@ZIP@
ohair@423 516 UNZIP:=@UNZIP@
ohair@492 517 MT:=@FIXPATH@ @MT@
ohair@492 518 RC:=@FIXPATH@ @RC@
ohair@492 519 DUMPBIN:=@FIXPATH@ @DUMPBIN@
ohair@423 520 CYGPATH:=@CYGPATH@
ohair@423 521 LDD:=@LDD@
ohair@423 522 OTOOL:=@OTOOL@
ohair@423 523 READELF:=@READELF@
ohair@423 524 EXPR:=@EXPR@
ohair@423 525 FILE:=@FILE@
erikj@443 526 HG:=@HG@
erikj@456 527 OBJCOPY:=@OBJCOPY@
ohair@492 528 SETFILE:=@SETFILE@
erikj@668 529 XATTR:=@XATTR@
erikj@716 530 JT_HOME:=@JT_HOME@
erikj@716 531 JTREGEXE:=@JTREGEXE@
ddehaven@1076 532 XCODEBUILD=@XCODEBUILD@
ohair@492 533 FIXPATH:=@FIXPATH@
ohair@423 534
ohair@423 535 # Build setup
erikj@456 536 ENABLE_JFR=@ENABLE_JFR@
omajid@654 537 ENABLE_INTREE_EC=@ENABLE_INTREE_EC@
ohair@423 538 USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
ohair@423 539 USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
ohair@423 540 USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
erikj@456 541 LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
ohair@492 542 MSVCR_DLL:=@MSVCR_DLL@
erikj@1330 543 MSVCP_DLL:=@MSVCP_DLL@
ohair@423 544
erikj@456 545
ohair@423 546 # ADD_SRCS takes a single argument with source roots
ohair@423 547 # and appends any corresponding source roots found
ohair@423 548 # below --with-add-source-root and below
ohair@423 549 # --with-override-source-root. It is the responsibility
ohair@423 550 # of the next macro to get rid of superfluous files.
ohair@423 551 ADD_SRCS=$1
ohair@423 552 ifneq (,$(ADD_SRC_ROOT))
ihse@837 553 # Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT
ihse@837 554 ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1))
ohair@423 555 endif
ohair@423 556 ifneq (,$(OVERRIDE_SRC_ROOT))
ihse@837 557 # Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT
ihse@837 558 ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1))
ohair@423 559 endif
ohair@423 560
ohair@423 561 # OVR_SRCS creates a filter expression to filter out sources in
ohair@423 562 # the original source directory that lie inside directories below
ohair@423 563 # --with-override-source-root.
ohair@423 564 # Use := here since we want to scan for these files here. To avoid recomputation later.
ohair@423 565 # We cannot do the scan in configure, since that would force us to rerun configure when
ohair@423 566 # we add overridden sources.
ohair@423 567 ifneq (,$(OVERRIDE_SRC_ROOT))
ihse@837 568 OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f)))))
ohair@423 569 else
ihse@837 570 OVR_SRCS:=
ohair@423 571 endif
ohair@423 572
ohair@423 573 ####################################################
ohair@423 574 #
ohair@423 575 # INSTALLATION
ohair@423 576 #
ohair@423 577
ohair@423 578 # Common prefix for all installed files. Defaults to /usr/local,
ihse@837 579 # but /opt/myjdk is another common version.
ohair@423 580 INSTALL_PREFIX=@prefix@
ohair@423 581
ohair@423 582 # Directories containing architecture-dependent files should be relative to exec_prefix
ohair@423 583 INSTALL_EXECPREFIX=@exec_prefix@
ohair@423 584
ohair@423 585 # java,javac,javah,javap etc are installed here.
ohair@423 586 INSTALL_BINDIR=@bindir@
ohair@423 587
ohair@423 588 # Read only architecture-independent data
ohair@423 589 INSTALL_DATADIR=@datadir@
ohair@423 590
ohair@423 591 # Root of above.
ohair@423 592 INSTALL_DATAROOTDIR=@datarootdir@
ohair@423 593
ohair@423 594 # Doc files, other than info and man.
ohair@423 595 INSTALL_DOCDIR=@docdir@
ohair@423 596
ohair@423 597 # Html documentation
ohair@423 598 INSTALL_HTMLDIR=@htmldir@
ohair@423 599
ohair@423 600 # Installing C header files, JNI headers for example.
ohair@423 601 INSTALL_INCLUDEDIR=@includedir@
ohair@423 602
ohair@423 603 # Installing library files....
ohair@423 604 INSTALL_INCLUDEDIR=@libdir@
ohair@423 605
ohair@423 606 # Executables that other programs run.
ohair@423 607 INSTALL_LIBEXECDIR=@libexecdir@
ohair@423 608
ihse@837 609 # Locale-dependent but architecture-independent data, such as message catalogs.
ohair@423 610 INSTALL_LOCALEDIR=@localedir@
ohair@423 611
ohair@423 612 # Modifiable single-machine data
ohair@423 613 INSTALL_LOCALSTATEDIR=@localstatedir@
ohair@423 614
ohair@423 615 # Man pages
ohair@423 616 INSTALL_MANDIR=@mandir@
ohair@423 617
ohair@423 618 # Modifiable architecture-independent data.
ohair@423 619 INSTALL_SHAREDSTATEDIR=@sharedstatedir@
ohair@423 620
ohair@423 621 # Read-only single-machine data
ohair@423 622 INSTALL_SYSCONFDIR=@sysconfdir@
ohair@423 623
omajid@990 624 ####################################################
omajid@990 625 #
omajid@990 626 # Libraries
omajid@990 627 #
omajid@990 628
omajid@1051 629 USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@
omajid@1051 630 LCMS_CFLAGS:=@LCMS_CFLAGS@
omajid@1051 631 LCMS_LIBS:=@LCMS_LIBS@
omajid@1051 632
omajid@990 633 USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
omajid@990 634 PNG_LIBS:=@PNG_LIBS@
omajid@990 635 PNG_CFLAGS:=@PNG_CFLAGS@
omajid@990 636
ohair@423 637
ohair@423 638 ####################################################
ohair@423 639 #
ohair@423 640 # Misc
ohair@423 641 #
ohair@423 642
erikj@443 643 # Name of Service Agent library
erikj@443 644 SALIB_NAME=@SALIB_NAME@
erikj@443 645
omajid@669 646 INCLUDE_SA=@INCLUDE_SA@
omajid@669 647
erikj@443 648 OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@
erikj@443 649 OS_VERSION_MINOR:=@OS_VERSION_MINOR@
erikj@443 650 OS_VERSION_MICRO:=@OS_VERSION_MICRO@
erikj@443 651
erikj@562 652 # Images directory definitions
chegar@1227 653 JDK_IMAGE_SUBDIR:=jdk
chegar@1227 654 JRE_IMAGE_SUBDIR:=jre
ihse@1279 655
erikj@666 656 # Colon left out to be able to override output dir for bootcycle-images
erikj@666 657 JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR)
erikj@666 658 JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR)
erikj@562 659
ihse@1279 660 # Test image, as above
ihse@1279 661 TEST_IMAGE_SUBDIR:=test
ihse@1279 662 TEST_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(TEST_IMAGE_SUBDIR)
ihse@1279 663
erikj@1376 664 # Symbols image
erikj@1376 665 SYMBOLS_IMAGE_SUBDIR:=symbols
erikj@1376 666 SYMBOLS_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(SYMBOLS_IMAGE_SUBDIR)
erikj@1376 667
erikj@562 668 # Macosx bundles directory definitions
ihse@1485 669 JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle/jdk$(JDK_VERSION).jdk/Contents
ihse@1485 670 JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle/jre$(JDK_VERSION).jre/Contents
ihse@1485 671 JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR)
ihse@1485 672 JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR)
erikj@562 673
ihse@968 674 # This macro is called to allow inclusion of closed source counterparts.
ihse@968 675 # Unless overridden in closed sources, it expands to nothing.
ihse@1240 676 # Usage: This function is called in an open makefile, with the following
ihse@968 677 # arguments:
ihse@968 678 # $1 the name of the repo, or empty if the top-level repo.
ihse@968 679 # $2 the name of the makefile
ihse@968 680 define IncludeCustomExtension
ihse@968 681 endef
ihse@968 682
ohair@476 683 # Include the custom-spec.gmk file if it exists
ohair@476 684 -include $(dir @SPEC@)/custom-spec.gmk