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