1 # 2 # Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 3 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 # 5 # This code is free software; you can redistribute it and/or modify it 6 # under the terms of the GNU General Public License version 2 only, as 7 # published by the Free Software Foundation. Oracle designates this 8 # particular file as subject to the "Classpath" exception as provided 9 # by Oracle in the LICENSE file that accompanied this code. 10 # 11 # This code is distributed in the hope that it will be useful, but WITHOUT 12 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 # version 2 for more details (a copy is included in the LICENSE file that 15 # accompanied this code). 16 # 17 # You should have received a copy of the GNU General Public License version 18 # 2 along with this work; if not, write to the Free Software Foundation, 19 # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 # 21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 # or visit www.oracle.com if you need additional information or have any 23 # questions. 24 # 25 26 27 # Chaining of spec files 28 HOTSPOT_SPEC:=$(dir $(SPEC))hotspot-spec.gmk 29 override SPEC=$(HOTSPOT_SPEC) 30 # Now include the base spec.gmk file 31 include $(BASE_SPEC) 32 33 # Additional legacy variables defined for Hotspot 34 35 @SET_OPENJDK@ 36 @HOTSPOT_SET_WARNINGS_AS_ERRORS@ 37 38 # Legacy defines controlled by the SUPPORT_HEADLESS and SUPPORT_HEADFUL options. 39 @BUILD_HEADLESS@ 40 41 JVM_VARIANTS:=@JVM_VARIANTS_COMMA@ 42 43 JVM_VARIANT_SERVER:=@JVM_VARIANT_SERVER@ 44 JVM_VARIANT_CLIENT:=@JVM_VARIANT_CLIENT@ 45 JVM_VARIANT_MINIMAL1:=@JVM_VARIANT_MINIMAL1@ 46 JVM_VARIANT_CORE:=@JVM_VARIANT_CORE@ 47 JVM_VARIANT_ZERO:=@JVM_VARIANT_ZERO@ 48 JVM_VARIANT_ZEROSHARK:=@JVM_VARIANT_ZEROSHARK@ 49 JVM_VARIANT_CUSTOM:=@JVM_VARIANT_HOTSPOT@ 50 51 # Legacy setting: OPT or DBG 52 VARIANT:=@VARIANT@ 53 # Legacy setting: true or false 54 FASTDEBUG:=@FASTDEBUG@ 55 # Legacy setting: debugging the class files? 56 DEBUG_CLASSFILES:=@DEBUG_CLASSFILES@ 57 58 ALT_CUPS_HEADERS_PATH:=$(patsubst -I%,%,$(filter -I%,@CUPS_CFLAGS@)) 59 60 # The HOSTCC/HOSTCXX is Hotspot terminology for the BUILD_CC/BUILD_CXX, i.e. the 61 # compiler that produces code that can be run on the build platform. 62 HOSTCC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@ $(BUILD_SYSROOT_CFLAGS) 63 HOSTCXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@ $(BUILD_SYSROOT_CFLAGS) 64 65 #################################################### 66 # 67 # Legacy Hotspot support 68 69 # If cross compiling, then define CROSS_COMPILE_ARCH:=cpu_name here. 70 @DEFINE_CROSS_COMPILE_ARCH@ 71 72 # Old name for OPENJDK_TARGET_OS (aix,bsd,hpux,linux,macosx,solaris,windows etc) 73 PLATFORM=$(OPENJDK_TARGET_OS) 74 # 32 or 64 bit 75 ARCH_DATA_MODEL=$(OPENJDK_TARGET_CPU_BITS) 76 77 ALT_BOOTDIR=$(BOOT_JDK) 78 # Can be /sparcv9 or /amd64 on Solaris 79 ISA_DIR=$(OPENJDK_TARGET_CPU_ISADIR) 80 # Yet another name for arch used for an extra subdir below the jvm lib. 81 # Uses i386 and amd64, instead of x86 and x86_64. 82 LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB) 83 # Set the cpu architecture 84 ARCH=$(OPENJDK_TARGET_CPU_ARCH) 85 # Legacy setting for building for a 64 bit machine. 86 # If yes then this expands to _LP64:=1 87 @LP64@ 88 89 # Legacy settings for zero 90 ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN) 91 ZERO_LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB) 92 ZERO_ARCHDEF=@ZERO_ARCHDEF@ 93 ZERO_ARCHFLAG=@ZERO_ARCHFLAG@ 94 LIBFFI_CFLAGS=@LIBFFI_CFLAGS@ 95 LIBFFI_LIBS=@LIBFFI_LIBS@ 96 97 # Legacy settings for zeroshark 98 LLVM_CFLAGS=@LLVM_CFLAGS@ 99 LLVM_LIBS=@LLVM_LIBS@ 100 LLVM_LDFLAGS=@LLVM_LDFLAGS@ 101 102 ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR) 103 ALT_EXPORT_PATH=$(HOTSPOT_DIST) 104 105 ifeq ($(HOTSPOT_TARGET_CPU), zero) 106 CC_INTERP=true 107 endif 108 109 HOTSPOT_MAKE_ARGS:=@HOTSPOT_MAKE_ARGS@ @STATIC_CXX_SETTING@ 110 # Control wether Hotspot runs Queens test after building 111 TEST_IN_BUILD=@TEST_IN_BUILD@ 112 113 USE_CLANG := @USE_CLANG@ 114 115 # For hotspot, override compiler/tools definition to not include FIXPATH prefix. 116 # Hotspot has its own handling on the Windows path situation. 117 CXX:=@CCACHE@ @ICECC@ @HOTSPOT_CXX@ 118 LD:=@HOTSPOT_LD@ 119 MT:=@HOTSPOT_MT@ 120 RC:=@HOTSPOT_RC@ 121 122 EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(CFLAGS_CCACHE) $(NO_NULL_POINTER_CHECK_FLAG) \ 123 $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) 124 EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@ $(CFLAGS_CCACHE) 125 EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@ 126 127 USE_PRECOMPILED_HEADER=@USE_PRECOMPILED_HEADER@ 128 129 # Hotspot expects the variable FULL_DEBUG_SYMBOLS=1/0 to control debug symbols 130 # creation. 131 ifeq ($(COPY_DEBUG_SYMBOLS), true) 132 FULL_DEBUG_SYMBOLS=1 133 # Ensure hotspot uses the objcopy that configure located 134 ALT_OBJCOPY:=$(OBJCOPY) 135 else 136 FULL_DEBUG_SYMBOLS=0 137 endif 138 139 # Hotspot expects the variable ZIP_DEBUGINFO_FILES=1/0 and not true/false. 140 ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true) 141 ZIP_DEBUGINFO_FILES:=1 142 else 143 ZIP_DEBUGINFO_FILES:=0 144 endif 145 146 DEBUG_BINARIES := @DEBUG_BINARIES@ 147 STRIP_POLICY := @STRIP_POLICY@ 148 149 ifeq ($(OPENJDK_TARGET_OS), windows) 150 # On Windows, the Visual Studio toolchain needs the LIB and INCLUDE 151 # environment variables (in Windows path style). 152 export INCLUDE:=@VS_INCLUDE@ 153 export LIB:=@VS_LIB@ 154 endif 155 156 # Sneak this in via the spec.gmk file, since we don't want to mess around too much with the Hotspot make files. 157 # This is needed to get the LOG setting to work properly. 158 include $(SRC_ROOT)/make/common/MakeBase.gmk