aoqi@0: # ddehaven@1304: # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. aoqi@0: # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. aoqi@0: # aoqi@0: # This code is free software; you can redistribute it and/or modify it aoqi@0: # under the terms of the GNU General Public License version 2 only, as aoqi@0: # published by the Free Software Foundation. Oracle designates this aoqi@0: # particular file as subject to the "Classpath" exception as provided aoqi@0: # by Oracle in the LICENSE file that accompanied this code. aoqi@0: # aoqi@0: # This code is distributed in the hope that it will be useful, but WITHOUT aoqi@0: # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or aoqi@0: # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License aoqi@0: # version 2 for more details (a copy is included in the LICENSE file that aoqi@0: # accompanied this code). aoqi@0: # aoqi@0: # You should have received a copy of the GNU General Public License version aoqi@0: # 2 along with this work; if not, write to the Free Software Foundation, aoqi@0: # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. aoqi@0: # aoqi@0: # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA aoqi@0: # or visit www.oracle.com if you need additional information or have any aoqi@0: # questions. aoqi@0: # aoqi@0: aoqi@2161: # aoqi@2161: # This file has been modified by Loongson Technology in 2018. These aoqi@2161: # modifications are Copyright (c) 2018 Loongson Technology, and are made aoqi@2161: # available on the same license terms set forth above. aoqi@2161: # aoqi@2161: aoqi@0: # Configured @DATE_WHEN_CONFIGURED@ to build aoqi@0: # for target system @OPENJDK_TARGET_OS@-@OPENJDK_TARGET_CPU@ aoqi@0: # (called @OPENJDK_TARGET_AUTOCONF_NAME@ by autoconf) aoqi@0: # on build system @OPENJDK_BUILD_OS@-@OPENJDK_BUILD_CPU@ aoqi@0: # (called @OPENJDK_BUILD_AUTOCONF_NAME@ by autoconf) aoqi@0: # using 'configure @CONFIGURE_COMMAND_LINE@' aoqi@0: aoqi@0: # When calling macros, the spaces between arguments are aoqi@0: # often semantically important! Sometimes we need to subst aoqi@0: # spaces and commas, therefore we need the following macros. aoqi@0: X:= aoqi@0: SPACE:=$(X) $(X) aoqi@0: COMMA:=, aoqi@0: HASH:=\# aoqi@0: SQUOTE:=' aoqi@0: #' aoqi@0: DQUOTE:=" aoqi@0: #" aoqi@0: define NEWLINE aoqi@0: aoqi@0: aoqi@0: endef aoqi@0: aoqi@0: # A self-referential reference to this file. aoqi@0: SPEC:=@SPEC@ aoqi@0: aoqi@0: # Specify where the spec file is. aoqi@0: MAKE_ARGS="SPEC=$(SPEC)" aoqi@0: aoqi@0: MAKE:=@MAKE@ aoqi@0: aoqi@0: # Pass along the verbosity and log level settings. aoqi@0: ifeq (,$(findstring VERBOSE=,$(MAKE))) aoqi@0: MAKE:=$(MAKE) $(VERBOSE) VERBOSE="$(VERBOSE)" LOG_LEVEL="$(LOG_LEVEL)" aoqi@0: endif aoqi@0: aoqi@0: # No implicit variables or rules! aoqi@0: ifeq (,$(findstring -R,$(MAKE))) aoqi@0: MAKE:=$(MAKE) -R aoqi@0: endif aoqi@0: aoqi@0: # Specify where the common include directory for makefiles is. aoqi@0: ifeq (,$(findstring -I @SRC_ROOT@/make/common,$(MAKE))) aoqi@0: MAKE:=$(MAKE) -I @SRC_ROOT@/make/common aoqi@0: endif aoqi@0: aoqi@0: # The "human readable" name of this configuration aoqi@0: CONF_NAME:=@CONF_NAME@ aoqi@0: aoqi@0: # The built jdk will run in this target system. aoqi@0: OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ aoqi@0: OPENJDK_TARGET_OS_API:=@OPENJDK_TARGET_OS_API@ aoqi@0: OPENJDK_TARGET_OS_ENV:=@OPENJDK_TARGET_OS_ENV@ aoqi@0: aoqi@0: OPENJDK_TARGET_CPU:=@OPENJDK_TARGET_CPU@ aoqi@0: OPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@ aoqi@0: OPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@ aoqi@0: OPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@ aoqi@0: aoqi@0: COMPILE_TYPE:=@COMPILE_TYPE@ aoqi@0: aoqi@0: # Legacy support aoqi@0: OPENJDK_TARGET_CPU_ISADIR:=@OPENJDK_TARGET_CPU_ISADIR@ aoqi@0: OPENJDK_TARGET_CPU_LIBDIR:=@OPENJDK_TARGET_CPU_LIBDIR@ aoqi@0: OPENJDK_TARGET_CPU_LEGACY:=@OPENJDK_TARGET_CPU_LEGACY@ aoqi@0: OPENJDK_TARGET_CPU_LEGACY_LIB:=@OPENJDK_TARGET_CPU_LEGACY_LIB@ aoqi@0: OPENJDK_TARGET_CPU_OSARCH:=@OPENJDK_TARGET_CPU_OSARCH@ aoqi@0: OPENJDK_TARGET_CPU_JLI_CFLAGS:=@OPENJDK_TARGET_CPU_JLI_CFLAGS@ aoqi@0: OPENJDK_TARGET_OS_API_DIR:=@OPENJDK_TARGET_OS_API_DIR@ aoqi@0: OPENJDK_TARGET_OS_EXPORT_DIR:=@OPENJDK_TARGET_OS_EXPORT_DIR@ aoqi@0: aoqi@0: # We are building on this build system. aoqi@0: # When not cross-compiling, it is the same as the target. aoqi@0: OPENJDK_BUILD_OS:=@OPENJDK_BUILD_OS@ aoqi@0: OPENJDK_BUILD_OS_API:=@OPENJDK_BUILD_OS_API@ aoqi@0: aoqi@0: OPENJDK_BUILD_CPU:=@OPENJDK_BUILD_CPU@ aoqi@0: OPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@ aoqi@0: OPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@ aoqi@0: OPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@ aoqi@0: aoqi@0: # Legacy OS values for use in release file. aoqi@0: REQUIRED_OS_NAME:=@REQUIRED_OS_NAME@ aoqi@0: REQUIRED_OS_VERSION:=@REQUIRED_OS_VERSION@ aoqi@0: aoqi@0: @SET_OPENJDK@ aoqi@0: LIBM:=-lm aoqi@0: LIBDL:=@LIBDL@ aoqi@0: aoqi@0: # colon or semicolon aoqi@0: PATH_SEP:=@PATH_SEP@ aoqi@0: aoqi@0: ifeq ($(OPENJDK_TARGET_OS), windows) aoqi@0: # On Windows, the Visual Studio toolchain needs the LIB and INCLUDE aoqi@0: # environment variables (in Windows path style), and the PATH needs to aoqi@0: # be adjusted to include Visual Studio tools (but this needs to be in aoqi@0: # cygwin/msys style). aoqi@0: export PATH:=@VS_PATH@ aoqi@0: export INCLUDE:=@VS_INCLUDE@ aoqi@0: export LIB:=@VS_LIB@ aoqi@0: endif aoqi@0: aoqi@0: # The sys root where standard headers and libraries are found. aoqi@0: # Usually not needed since the configure script should have aoqi@0: # taken it into account already when setting CFLAGS et al. aoqi@0: SYS_ROOT:=@SYS_ROOT@ aoqi@0: aoqi@0: # Paths to the source code aoqi@0: SRC_ROOT:=@SRC_ROOT@ aoqi@0: ADD_SRC_ROOT:=@ADD_SRC_ROOT@ aoqi@0: OVERRIDE_SRC_ROOT:=@OVERRIDE_SRC_ROOT@ aoqi@0: TOPDIR:=@SRC_ROOT@ aoqi@0: OUTPUT_ROOT:=@OUTPUT_ROOT@ aoqi@0: JDK_TOPDIR:=@JDK_TOPDIR@ aoqi@0: LANGTOOLS_TOPDIR:=@LANGTOOLS_TOPDIR@ aoqi@0: CORBA_TOPDIR:=@CORBA_TOPDIR@ aoqi@0: JAXP_TOPDIR:=@JAXP_TOPDIR@ aoqi@0: JAXWS_TOPDIR:=@JAXWS_TOPDIR@ aoqi@0: HOTSPOT_TOPDIR:=@HOTSPOT_TOPDIR@ aoqi@0: NASHORN_TOPDIR:=@NASHORN_TOPDIR@ aoqi@0: COPYRIGHT_YEAR:=@COPYRIGHT_YEAR@ aoqi@0: aoqi@0: # Location where build customization files may be found aoqi@0: CUSTOM_MAKE_DIR:=@CUSTOM_MAKE_DIR@ aoqi@0: aoqi@0: # Information gathered from the version.numbers file. aoqi@0: JDK_MAJOR_VERSION:=@JDK_MAJOR_VERSION@ aoqi@0: JDK_MINOR_VERSION:=@JDK_MINOR_VERSION@ aoqi@0: JDK_MICRO_VERSION:=@JDK_MICRO_VERSION@ aoqi@0: JDK_UPDATE_VERSION:=@JDK_UPDATE_VERSION@ aoqi@0: JDK_BUILD_NUMBER:=@JDK_BUILD_NUMBER@ aoqi@0: MILESTONE:=@MILESTONE@ aoqi@0: LAUNCHER_NAME:=@LAUNCHER_NAME@ aoqi@0: PRODUCT_NAME:=@PRODUCT_NAME@ aoqi@0: PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@ aoqi@0: JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@ aoqi@0: COMPANY_NAME:=@COMPANY_NAME@ aoqi@0: MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@ aoqi@0: MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@ aoqi@0: USER_RELEASE_SUFFIX=@USER_RELEASE_SUFFIX@ aoqi@0: aoqi@0: # Different version strings generated from the above information. aoqi@0: JDK_VERSION:=@JDK_VERSION@ aoqi@0: RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX) erikj@1404: COOKED_JDK_UPDATE_VERSION:=@COOKED_JDK_UPDATE_VERSION@ aoqi@0: COOKED_BUILD_NUMBER:=@COOKED_BUILD_NUMBER@ aoqi@0: # These variables need to be generated here so that MILESTONE and aoqi@0: # JDK_BUILD_NUMBER can be overridden on the make command line. aoqi@0: ifeq ($(MILESTONE), fcs) aoqi@0: RELEASE=$(JDK_VERSION)$(BUILD_VARIANT_RELEASE) aoqi@0: else aoqi@0: RELEASE=$(JDK_VERSION)-$(MILESTONE)$(BUILD_VARIANT_RELEASE) aoqi@0: endif aoqi@0: aoqi@0: ifneq ($(USER_RELEASE_SUFFIX), ) aoqi@0: FULL_VERSION=$(RELEASE)-$(USER_RELEASE_SUFFIX)-$(JDK_BUILD_NUMBER) aoqi@0: else aoqi@0: FULL_VERSION=$(RELEASE)-$(JDK_BUILD_NUMBER) aoqi@0: endif aoqi@0: JRE_RELEASE_VERSION:=$(FULL_VERSION) aoqi@0: aoqi@2162: # Build OS and host values for use in Loongson OpenJDK release aoqi@2162: BUILDER_ID:=@BUILDER_ID@ aoqi@2162: BUILDER_NAME:=@BUILDER_NAME@ aoqi@2162: HOST_NAME:=@HOST_NAME@ aoqi@2162: aoqi@2162: # Loongson OpenJDK Version info aoqi@2165: VER=8.1 aoqi@2162: ifeq ($(HOST_NAME), ) aoqi@2162: HOST_NAME=unknown aoqi@2162: endif aoqi@2162: ifeq ($(BUILDER_NAME), ) aoqi@2162: BUILDER_NAME=unknown aoqi@2162: endif aoqi@2162: HOST_NAME_STRING=-$(HOST_NAME) aoqi@2162: BUILDER_NAME_STRING=-$(BUILDER_NAME) aoqi@2162: LOONGSON_RUNTIME_NAME=Loongson $(VER)$(HOST_NAME_STRING)$(BUILDER_NAME_STRING) aoqi@2162: aoqi@0: # How to compile the code: release, fastdebug or slowdebug aoqi@0: DEBUG_LEVEL:=@DEBUG_LEVEL@ aoqi@0: aoqi@0: # This is the JDK variant to build. aoqi@0: # The JDK variant is a name for a specific set of modules to be compiled for the JDK. aoqi@0: JDK_VARIANT:=@JDK_VARIANT@ aoqi@0: aoqi@0: # Should we compile support for running with a graphical UI? (ie headful) aoqi@0: # Should we compile support for running without? (ie headless) aoqi@0: SUPPORT_HEADFUL:=@SUPPORT_HEADFUL@ aoqi@0: SUPPORT_HEADLESS:=@SUPPORT_HEADLESS@ aoqi@0: # Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options. aoqi@0: @BUILD_HEADLESS@ aoqi@0: aoqi@0: # These are the libjvms that we want to build. aoqi@0: # The java launcher uses the default. aoqi@0: # The others can be selected by specifying -client -server -minimal1 -kernel -zero or -zeroshark aoqi@0: # on the java launcher command line. aoqi@0: JVM_VARIANTS:=@JVM_VARIANTS@ aoqi@0: JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@ aoqi@0: JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@ aoqi@0: JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@ aoqi@0: JVM_VARIANT_KERNEL:=@JVM_VARIANT_KERNEL@ aoqi@0: JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ aoqi@0: JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ aoqi@0: JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ aoqi@0: aoqi@0: # Universal binaries on macosx aoqi@0: MACOSX_UNIVERSAL=@MACOSX_UNIVERSAL@ aoqi@0: aoqi@0: # Legacy setting: -debug or -fastdebug aoqi@0: # Still used in version string... aoqi@0: BUILD_VARIANT_RELEASE:=@BUILD_VARIANT_RELEASE@ aoqi@0: aoqi@0: # JDK_OUTPUTDIR specifies where a working jvm is built. aoqi@0: # You can run $(JDK_OUTPUTDIR)/bin/java aoqi@0: # Though the layout of the contents of $(JDK_OUTPUTDIR) is not aoqi@0: # yet the same as a default installation. aoqi@0: # aoqi@0: # When you run "make install" it will create the standardized aoqi@0: # layout for the jdk and the jre inside the IMAGES_OUTPUTDIR subdir. aoqi@0: # Then it will copy the contents of the jdk into the installation aoqi@0: # directory. aoqi@0: aoqi@0: BUILD_OUTPUT:=@BUILD_OUTPUT@ aoqi@0: # Colon left out to be able to override IMAGES_OUTPUTDIR for bootcycle-images aoqi@0: LANGTOOLS_OUTPUTDIR=$(BUILD_OUTPUT)/langtools aoqi@0: CORBA_OUTPUTDIR=$(BUILD_OUTPUT)/corba aoqi@0: JAXP_OUTPUTDIR=$(BUILD_OUTPUT)/jaxp aoqi@0: JAXWS_OUTPUTDIR=$(BUILD_OUTPUT)/jaxws aoqi@0: HOTSPOT_OUTPUTDIR=$(BUILD_OUTPUT)/hotspot aoqi@0: JDK_OUTPUTDIR=$(BUILD_OUTPUT)/jdk aoqi@0: NASHORN_OUTPUTDIR=$(BUILD_OUTPUT)/nashorn aoqi@0: IMAGES_OUTPUTDIR=$(BUILD_OUTPUT)/images aoqi@0: aoqi@0: LANGTOOLS_DIST=$(LANGTOOLS_OUTPUTDIR)/dist aoqi@0: CORBA_DIST=$(CORBA_OUTPUTDIR)/dist aoqi@0: JAXP_DIST=$(JAXP_OUTPUTDIR)/dist aoqi@0: JAXWS_DIST=$(JAXWS_OUTPUTDIR)/dist aoqi@0: HOTSPOT_DIST=@HOTSPOT_DIST@ aoqi@0: NASHORN_DIST=$(NASHORN_OUTPUTDIR)/dist aoqi@0: aoqi@0: BUILD_HOTSPOT=@BUILD_HOTSPOT@ aoqi@0: aoqi@0: # The boot jdk to use aoqi@0: BOOT_JDK:=@BOOT_JDK@ aoqi@0: BOOT_RTJAR:=@BOOT_RTJAR@ aoqi@0: BOOT_TOOLSJAR=$(BOOT_JDK)/lib/tools.jar aoqi@0: aoqi@0: # When compiling Java source to be run by the boot jdk aoqi@0: # use these extra flags, eg -source 6 -target 6 aoqi@0: BOOT_JDK_SOURCETARGET:=@BOOT_JDK_SOURCETARGET@ aoqi@0: aoqi@0: # Information about the build system aoqi@0: NUM_CORES:=@NUM_CORES@ aoqi@0: # Enable sjavac support = use a javac server, aoqi@0: # multi core javac compilation and dependency tracking. aoqi@0: ENABLE_SJAVAC:=@ENABLE_SJAVAC@ aoqi@0: # Store sjavac server synchronization files here, and aoqi@0: # the sjavac server log files. aoqi@0: SJAVAC_SERVER_DIR:=@SJAVAC_SERVER_DIR@ aoqi@0: aoqi@0: # Number of parallel jobs to use for compilation aoqi@0: JOBS?=@JOBS@ aoqi@0: aoqi@0: FREETYPE_LIBS:=@FREETYPE_LIBS@ aoqi@0: FREETYPE_CFLAGS:=@FREETYPE_CFLAGS@ aoqi@0: FREETYPE_BUNDLE_LIB_PATH=@FREETYPE_BUNDLE_LIB_PATH@ aoqi@0: CUPS_CFLAGS:=@CUPS_CFLAGS@ aoqi@0: ALSA_LIBS:=@ALSA_LIBS@ aoqi@0: ALSA_CFLAGS:=@ALSA_CFLAGS@ aoqi@0: aoqi@0: PACKAGE_PATH=@PACKAGE_PATH@ aoqi@0: aoqi@0: # Source file for cacerts aoqi@0: CACERTS_FILE=@CACERTS_FILE@ aoqi@0: aoqi@0: # Enable unlimited crypto policy aoqi@0: UNLIMITED_CRYPTO=@UNLIMITED_CRYPTO@ aoqi@0: aoqi@0: # Necessary additional compiler flags to compile X11 aoqi@0: X_CFLAGS:=@X_CFLAGS@ aoqi@0: X_LIBS:=@X_LIBS@ aoqi@0: OPENWIN_HOME:=@OPENWIN_HOME@ aoqi@0: aoqi@0: # The lowest required version of macosx to enforce compatiblity for aoqi@0: MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ aoqi@0: aoqi@0: # There are two types: CC or CL aoqi@0: # CC is gcc and others behaving reasonably similar. aoqi@0: # CL is cl.exe only. aoqi@0: COMPILER_TYPE:=@COMPILER_TYPE@ aoqi@0: COMPILER_NAME:=@COMPILER_NAME@ aoqi@0: aoqi@0: # Option used to tell the compiler whether to create 32- or 64-bit executables aoqi@0: COMPILER_TARGET_BITS_FLAG:=@COMPILER_TARGET_BITS_FLAG@ aoqi@0: COMPILER_SUPPORTS_TARGET_BITS_FLAG=@COMPILER_SUPPORTS_TARGET_BITS_FLAG@ aoqi@0: aoqi@0: CC_OUT_OPTION:=@CC_OUT_OPTION@ aoqi@0: EXE_OUT_OPTION:=@EXE_OUT_OPTION@ aoqi@0: LD_OUT_OPTION:=@LD_OUT_OPTION@ aoqi@0: AR_OUT_OPTION:=@AR_OUT_OPTION@ aoqi@0: aoqi@0: # Flags used for overriding the default opt setting for a C/C++ source file. aoqi@0: C_O_FLAG_HIGHEST:=@C_O_FLAG_HIGHEST@ aoqi@0: C_O_FLAG_HI:=@C_O_FLAG_HI@ aoqi@0: C_O_FLAG_NORM:=@C_O_FLAG_NORM@ aoqi@0: C_O_FLAG_NONE:=@C_O_FLAG_NONE@ aoqi@0: CXX_O_FLAG_HIGHEST:=@CXX_O_FLAG_HIGHEST@ aoqi@0: CXX_O_FLAG_HI:=@CXX_O_FLAG_HI@ aoqi@0: CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@ aoqi@0: CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@ aoqi@0: aoqi@0: C_FLAG_DEPS:=@C_FLAG_DEPS@ aoqi@0: CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@ aoqi@0: aoqi@0: # Tools that potentially need to be cross compilation aware. aoqi@0: CC:=@FIXPATH@ @CCACHE@ @CC@ aoqi@0: aoqi@0: # CFLAGS used to compile the jdk native libraries (C-code) aoqi@0: CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@ aoqi@0: CXXFLAGS_JDKLIB:=@CXXFLAGS_JDKLIB@ aoqi@0: aoqi@0: # CFLAGS used to compile the jdk native launchers (C-code) aoqi@0: CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@ aoqi@0: CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@ aoqi@0: andrew@1862: NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@ andrew@1862: NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@ andrew@1862: CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@ andrew@1862: aoqi@0: CXX:=@FIXPATH@ @CCACHE@ @CXX@ aoqi@0: #CXXFLAGS:=@CXXFLAGS@ aoqi@0: aoqi@0: OBJC:=@CCACHE@ @OBJC@ aoqi@0: #OBJCFLAGS:=@OBJCFLAGS@ aoqi@0: aoqi@0: CPP:=@FIXPATH@ @CPP@ aoqi@0: #CPPFLAGS:=@CPPFLAGS@ aoqi@0: aoqi@0: # The linker can be gcc or ld on posix systems, or link.exe on windows systems. aoqi@0: LD:=@FIXPATH@ @LD@ aoqi@0: ddehaven@1304: ifeq ($(OPENJDK_TARGET_OS), macosx) ddehaven@1304: # Xcode SDK and tools path ddehaven@1304: SDKPATH:=@SDKPATH@ ddehaven@1304: @SET_DEVELOPER_DIR@ ddehaven@1304: endif ddehaven@1304: aoqi@0: # The linker on older SuSE distros (e.g. on SLES 10) complains with: aoqi@0: # "Invalid version tag `SUNWprivate_1.1'. Only anonymous version tag is allowed in executable." aoqi@0: # if feeded with a version script which contains named tags. aoqi@0: USING_BROKEN_SUSE_LD:=@USING_BROKEN_SUSE_LD@ aoqi@0: aoqi@0: # LDFLAGS used to link the jdk native libraries (C-code) aoqi@0: LDFLAGS_JDKLIB:=@LDFLAGS_JDKLIB@ aoqi@0: LDFLAGS_JDKLIB_SUFFIX:=@LDFLAGS_JDKLIB_SUFFIX@ aoqi@0: aoqi@0: # On some platforms the linker cannot be used to create executables, thus aoqi@0: # the need for a separate LDEXE command. aoqi@0: LDEXE:=@FIXPATH@ @LDEXE@ aoqi@0: aoqi@0: # LDFLAGS used to link the jdk native launchers (C-code) aoqi@0: LDFLAGS_JDKEXE:=@LDFLAGS_JDKEXE@ aoqi@0: LDFLAGS_JDKEXE_SUFFIX:=@LDFLAGS_JDKEXE_SUFFIX@ aoqi@0: aoqi@0: # LDFLAGS specific to C++ linking. aoqi@0: LDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@ aoqi@0: aoqi@0: # Sometimes a different linker is needed for c++ libs aoqi@0: LDCXX:=@FIXPATH@ @LDCXX@ aoqi@0: # The flags for linking libstdc++ linker. aoqi@0: LIBCXX:=@LIBCXX@ aoqi@0: aoqi@0: # Sometimes a different linker is needed for c++ executables aoqi@0: LDEXECXX:=@FIXPATH@ @LDEXECXX@ aoqi@0: aoqi@0: # BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the aoqi@0: # build platform. aoqi@0: BUILD_CC:=@FIXPATH@ @BUILD_CC@ aoqi@0: BUILD_LD:=@FIXPATH@ @BUILD_LD@ aoqi@0: aoqi@0: AS:=@FIXPATH@ @AS@ aoqi@0: aoqi@0: # AR is used to create a static library (is ar in posix, lib.exe in windows) aoqi@0: AR:=@FIXPATH@ @AR@ aoqi@0: ARFLAGS:=@ARFLAGS@ aoqi@0: aoqi@0: NM:=@NM@ aoqi@0: GNM:=@GNM@ aoqi@0: STRIP:=@STRIP@ aoqi@0: MCS:=@MCS@ aoqi@0: aoqi@0: # Command to create a shared library aoqi@0: SHARED_LIBRARY_FLAGS:=@SHARED_LIBRARY_FLAGS@ aoqi@0: aoqi@0: # Options to linker to specify a mapfile. aoqi@0: # (Note absence of := assignment, because we do not want to evaluate the macro body here) aoqi@0: SET_SHARED_LIBRARY_MAPFILE=@SET_SHARED_LIBRARY_MAPFILE@ aoqi@0: aoqi@0: # Options for C/CXX compiler to be used if linking is performed aoqi@0: # using reorder file aoqi@0: C_FLAG_REORDER:=@C_FLAG_REORDER@ aoqi@0: CXX_FLAG_REORDER:=@CXX_FLAG_REORDER@ aoqi@0: aoqi@0: # aoqi@0: # Options for generating debug symbols aoqi@0: ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@ aoqi@0: CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@ aoqi@0: CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ aoqi@0: ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@ aoqi@0: aoqi@0: # aoqi@0: # Compress (or not) jars aoqi@0: COMPRESS_JARS=@COMPRESS_JARS@ aoqi@0: aoqi@0: # Options to linker to specify the library name. aoqi@0: # (Note absence of := assignment, because we do not want to evaluate the macro body here) aoqi@0: SET_SHARED_LIBRARY_NAME=@SET_SHARED_LIBRARY_NAME@ aoqi@0: aoqi@0: # Set origin using the linker, ie use the relative path to the dependent library to find the dependees. aoqi@0: # (Note absence of := assignment, because we do not want to evaluate the macro body here) aoqi@0: SET_SHARED_LIBRARY_ORIGIN=@SET_SHARED_LIBRARY_ORIGIN@ aoqi@0: SET_EXECUTABLE_ORIGIN=@SET_EXECUTABLE_ORIGIN@ aoqi@0: aoqi@0: # Different OS:es have different ways of naming shared libraries. aoqi@0: # The SHARED_LIBRARY macro takes "verify" as and argument and returns: aoqi@0: # "libverify.so" or "libverify.dylib" or "verify.dll" depending on platform. aoqi@0: # (Note absence of := assignment, because we do not want to evaluate the macro body here) aoqi@0: SHARED_LIBRARY=@SHARED_LIBRARY@ aoqi@0: STATIC_LIBRARY=@STATIC_LIBRARY@ aoqi@0: LIBRARY_PREFIX:=@LIBRARY_PREFIX@ aoqi@0: SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@ aoqi@0: STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@ aoqi@0: EXE_SUFFIX:=@EXE_SUFFIX@ aoqi@0: OBJ_SUFFIX:=@OBJ_SUFFIX@ aoqi@0: aoqi@0: POST_STRIP_CMD:=@POST_STRIP_CMD@ aoqi@0: POST_MCS_CMD:=@POST_MCS_CMD@ aoqi@0: erikj@1187: JAVA_FLAGS:=@JAVA_FLAGS@ erikj@1187: JAVA_FLAGS_BIG:=@JAVA_FLAGS_BIG@ erikj@1187: JAVA_FLAGS_SMALL:=@JAVA_FLAGS_SMALL@ aoqi@0: erikj@1187: JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS) erikj@1187: JAVA_SMALL=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS) aoqi@0: aoqi@0: JAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac aoqi@0: # Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid aoqi@0: # overriding that value by using ?=. aoqi@0: JAVAC_FLAGS?=@JAVAC_FLAGS@ aoqi@0: aoqi@0: JAVAH=@FIXPATH@ $(BOOT_JDK)/bin/javah aoqi@0: aoqi@0: JAR=@FIXPATH@ $(BOOT_JDK)/bin/jar aoqi@0: aoqi@0: RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic aoqi@0: erikj@1187: NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii $(addprefix -J, $(JAVA_FLAGS_SMALL)) aoqi@0: aoqi@0: JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner aoqi@0: aoqi@0: # You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ... aoqi@0: BOOTSTRAP_JAVAC_JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar aoqi@0: BOOTSTRAP_JAVAC_ARGS:="-Xbootclasspath/p:$(BOOTSTRAP_JAVAC_JAR)" -cp $(BOOTSTRAP_JAVAC_JAR) aoqi@0: NEW_JAVAC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javac.Main aoqi@0: NEW_JAVADOC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javadoc.Main aoqi@0: aoqi@0: # Base flags for RC aoqi@0: # Guarding this against resetting value. Legacy make files include spec multiple aoqi@0: # times. aoqi@0: ifndef RC_FLAGS aoqi@0: RC_FLAGS:=@RC_FLAGS@ aoqi@0: endif aoqi@0: aoqi@0: # A specific java binary with specific options can be used to run aoqi@0: # the long running background sjavac servers and other long running tasks. aoqi@0: SJAVAC_SERVER_JAVA:=@FIXPATH@ @SJAVAC_SERVER_JAVA@ aoqi@0: aoqi@0: # Tools adhering to a minimal and common standard of posix compliance. aoqi@0: AWK:=@AWK@ aoqi@0: BASENAME:=@BASENAME@ aoqi@0: BASH:=@BASH@ aoqi@0: CAT:=@CAT@ aoqi@0: CCACHE:=@CCACHE@ aoqi@0: # CD is going away, but remains to cater for legacy makefiles. aoqi@0: CD:=cd aoqi@0: CHMOD:=@CHMOD@ aoqi@0: CODESIGN:=@CODESIGN@ aoqi@0: COMM:=@COMM@ aoqi@0: CP:=@CP@ aoqi@0: CPIO:=@CPIO@ aoqi@0: CUT:=@CUT@ aoqi@0: DATE:=@DATE@ aoqi@0: DIFF:=@DIFF@ aoqi@0: DIRNAME:=@DIRNAME@ aoqi@0: DSYMUTIL:=@DSYMUTIL@ aoqi@0: FIND:=@FIND@ aoqi@0: FIND_DELETE:=@FIND_DELETE@ aoqi@0: ECHO:=@ECHO@ aoqi@0: EGREP:=@EGREP@ aoqi@0: FGREP:=@FGREP@ aoqi@0: GREP:=@GREP@ aoqi@0: HEAD:=@HEAD@ aoqi@0: LS:=@LS@ aoqi@0: LN:=@LN@ aoqi@0: MKDIR:=@MKDIR@ aoqi@0: MV:=@MV@ aoqi@0: NAWK:=@NAWK@ aoqi@0: PRINTF:=@PRINTF@ aoqi@0: PWD:=@THEPWDCMD@ aoqi@0: RM:=@RM@ aoqi@0: SED:=@SED@ aoqi@0: SH:=@SH@ aoqi@0: SORT:=@SORT@ aoqi@0: TAR:=@TAR@ aoqi@0: TAIL:=@TAIL@ aoqi@0: TEE:=@TEE@ aoqi@0: TIME:=@TIME@ aoqi@0: IS_GNU_TIME:=@IS_GNU_TIME@ aoqi@0: TR:=@TR@ aoqi@0: TOUCH:=@TOUCH@ aoqi@0: UNIQ:=@UNIQ@ aoqi@0: WC:=@WC@ aoqi@0: XARGS:=@XARGS@ aoqi@0: ZIPEXE:=@ZIP@ aoqi@0: ZIP:=@ZIP@ aoqi@0: UNZIP:=@UNZIP@ aoqi@0: MT:=@FIXPATH@ @MT@ aoqi@0: RC:=@FIXPATH@ @RC@ aoqi@0: DUMPBIN:=@FIXPATH@ @DUMPBIN@ aoqi@0: CYGPATH:=@CYGPATH@ aoqi@0: LDD:=@LDD@ aoqi@0: OTOOL:=@OTOOL@ aoqi@0: READELF:=@READELF@ aoqi@0: EXPR:=@EXPR@ aoqi@0: FILE:=@FILE@ aoqi@0: HG:=@HG@ aoqi@0: OBJCOPY:=@OBJCOPY@ aoqi@0: SETFILE:=@SETFILE@ aoqi@0: XATTR:=@XATTR@ aoqi@0: JT_HOME:=@JT_HOME@ aoqi@0: JTREGEXE:=@JTREGEXE@ aoqi@0: ddehaven@1304: XCODEBUILD=@XCODEBUILD@ aoqi@0: FIXPATH:=@FIXPATH@ aoqi@0: aoqi@0: # Where the build output is stored for your convenience. aoqi@0: BUILD_LOG:=@BUILD_LOG@ aoqi@0: BUILD_LOG_PREVIOUS:=@BUILD_LOG_PREVIOUS@ aoqi@0: # Disable the build log wrapper on sjavac+winapi until aoqi@0: # we have solved how to prevent the log wrapper to wait aoqi@0: # for the background sjavac server process. aoqi@0: ifeq (@ENABLE_SJAVAC@X@OPENJDK_BUILD_OS_API@,yesXwinapi) aoqi@0: BUILD_LOG_WRAPPER:= aoqi@0: else aoqi@0: BUILD_LOG_WRAPPER:=@BUILD_LOG_WRAPPER@ aoqi@0: endif aoqi@0: aoqi@0: # Build setup aoqi@0: ENABLE_JFR=@ENABLE_JFR@ aoqi@0: ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ aoqi@0: USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ aoqi@0: USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ aoqi@0: USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ aoqi@0: LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ aoqi@0: MSVCR_DLL:=@MSVCR_DLL@ aoqi@0: aoqi@0: aoqi@0: # ADD_SRCS takes a single argument with source roots aoqi@0: # and appends any corresponding source roots found aoqi@0: # below --with-add-source-root and below aoqi@0: # --with-override-source-root. It is the responsibility aoqi@0: # of the next macro to get rid of superfluous files. aoqi@0: ADD_SRCS=$1 aoqi@0: ifneq (,$(ADD_SRC_ROOT)) aoqi@0: # Append wildcard rule to pickup any matching source roots found below ADD_SRC_ROOT aoqi@0: ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(ADD_SRC_ROOT),$1)) aoqi@0: endif aoqi@0: ifneq (,$(OVERRIDE_SRC_ROOT)) aoqi@0: # Append wildcard rule to pickup any matching source roots found below OVERRIDE_SRC_ROOT aoqi@0: ADD_SRCS+=$(wildcard $(subst $(SRC_ROOT),$(OVERRIDE_SRC_ROOT),$1)) aoqi@0: endif aoqi@0: aoqi@0: # OVR_SRCS creates a filter expression to filter out sources in aoqi@0: # the original source directory that lie inside directories below aoqi@0: # --with-override-source-root. aoqi@0: # Use := here since we want to scan for these files here. To avoid recomputation later. aoqi@0: # We cannot do the scan in configure, since that would force us to rerun configure when aoqi@0: # we add overridden sources. aoqi@0: ifneq (,$(OVERRIDE_SRC_ROOT)) aoqi@0: OVR_SRCS:=$(addsuffix %,$(subst $(OVERRIDE_SRC_ROOT),$(SRC_ROOT),$(sort $(dir $(shell $(FIND) $(OVERRIDE_SRC_ROOT) -type f))))) aoqi@0: else aoqi@0: OVR_SRCS:= aoqi@0: endif aoqi@0: aoqi@0: #################################################### aoqi@0: # aoqi@0: # INSTALLATION aoqi@0: # aoqi@0: aoqi@0: # Common prefix for all installed files. Defaults to /usr/local, aoqi@0: # but /opt/myjdk is another common version. aoqi@0: INSTALL_PREFIX=@prefix@ aoqi@0: aoqi@0: # Directories containing architecture-dependent files should be relative to exec_prefix aoqi@0: INSTALL_EXECPREFIX=@exec_prefix@ aoqi@0: aoqi@0: # java,javac,javah,javap etc are installed here. aoqi@0: INSTALL_BINDIR=@bindir@ aoqi@0: aoqi@0: # Read only architecture-independent data aoqi@0: INSTALL_DATADIR=@datadir@ aoqi@0: aoqi@0: # Root of above. aoqi@0: INSTALL_DATAROOTDIR=@datarootdir@ aoqi@0: aoqi@0: # Doc files, other than info and man. aoqi@0: INSTALL_DOCDIR=@docdir@ aoqi@0: aoqi@0: # Html documentation aoqi@0: INSTALL_HTMLDIR=@htmldir@ aoqi@0: aoqi@0: # Installing C header files, JNI headers for example. aoqi@0: INSTALL_INCLUDEDIR=@includedir@ aoqi@0: aoqi@0: # Installing library files.... aoqi@0: INSTALL_INCLUDEDIR=@libdir@ aoqi@0: aoqi@0: # Executables that other programs run. aoqi@0: INSTALL_LIBEXECDIR=@libexecdir@ aoqi@0: aoqi@0: # Locale-dependent but architecture-independent data, such as message catalogs. aoqi@0: INSTALL_LOCALEDIR=@localedir@ aoqi@0: aoqi@0: # Modifiable single-machine data aoqi@0: INSTALL_LOCALSTATEDIR=@localstatedir@ aoqi@0: aoqi@0: # Man pages aoqi@0: INSTALL_MANDIR=@mandir@ aoqi@0: aoqi@0: # Modifiable architecture-independent data. aoqi@0: INSTALL_SHAREDSTATEDIR=@sharedstatedir@ aoqi@0: aoqi@0: # Read-only single-machine data aoqi@0: INSTALL_SYSCONFDIR=@sysconfdir@ aoqi@0: aoqi@0: aoqi@0: #################################################### aoqi@0: # aoqi@0: # Misc aoqi@0: # aoqi@0: aoqi@0: # Name of Service Agent library aoqi@0: SALIB_NAME=@SALIB_NAME@ aoqi@0: aoqi@0: INCLUDE_SA=@INCLUDE_SA@ aoqi@0: aoqi@0: OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@ aoqi@0: OS_VERSION_MINOR:=@OS_VERSION_MINOR@ aoqi@0: OS_VERSION_MICRO:=@OS_VERSION_MICRO@ aoqi@0: aoqi@0: # Images directory definitions aoqi@0: JDK_IMAGE_SUBDIR:=j2sdk-image aoqi@0: JRE_IMAGE_SUBDIR:=j2re-image aoqi@0: JDK_OVERLAY_IMAGE_SUBDIR:=j2sdk-overlay-image aoqi@0: JRE_OVERLAY_IMAGE_SUBDIR:=j2re-overlay-image aoqi@0: # Colon left out to be able to override output dir for bootcycle-images aoqi@0: JDK_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_IMAGE_SUBDIR) aoqi@0: JRE_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_IMAGE_SUBDIR) aoqi@0: JDK_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_OVERLAY_IMAGE_SUBDIR) aoqi@0: JRE_OVERLAY_IMAGE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_OVERLAY_IMAGE_SUBDIR) aoqi@0: aoqi@0: # Macosx bundles directory definitions aoqi@0: JDK_BUNDLE_SUBDIR=j2sdk-bundle/jdk$(JDK_VERSION).jdk/Contents aoqi@0: JRE_BUNDLE_SUBDIR=j2re-bundle/jre$(JDK_VERSION).jre/Contents aoqi@0: JDK_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_BUNDLE_SUBDIR) aoqi@0: JRE_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_BUNDLE_SUBDIR) aoqi@0: aoqi@0: # Include the custom-spec.gmk file if it exists aoqi@0: -include $(dir @SPEC@)/custom-spec.gmk