hotspot.m4 revision 2065:559c65fe6b56
178189Sbrian# 278189Sbrian# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 378189Sbrian# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 478189Sbrian# 578189Sbrian# This code is free software; you can redistribute it and/or modify it 66059Samurai# under the terms of the GNU General Public License version 2 only, as 778189Sbrian# published by the Free Software Foundation. Oracle designates this 878189Sbrian# particular file as subject to the "Classpath" exception as provided 978189Sbrian# by Oracle in the LICENSE file that accompanied this code. 1078189Sbrian# 1178189Sbrian# This code is distributed in the hope that it will be useful, but WITHOUT 1278189Sbrian# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 1378189Sbrian# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 1478189Sbrian# version 2 for more details (a copy is included in the LICENSE file that 156059Samurai# accompanied this code). 1678189Sbrian# 1778189Sbrian# You should have received a copy of the GNU General Public License version 1878189Sbrian# 2 along with this work; if not, write to the Free Software Foundation, 1978189Sbrian# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2078189Sbrian# 2178189Sbrian# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2278189Sbrian# or visit www.oracle.com if you need additional information or have any 2378189Sbrian# questions. 2478189Sbrian# 2578189Sbrian 2678189Sbrian# All valid JVM features, regardless of platform 276059SamuraiVALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \ 2850479Speter fprof vm-structs jni-check services management all-gcs nmt cds static-build" 296059Samurai 3030715Sbrian# All valid JVM variants 3143313SbrianVALID_JVM_VARIANTS="server client minimal core zero zeroshark custom" 326059Samurai 3331176Sbrian############################################################################### 3430715Sbrian# Check if the specified JVM variant should be built. To be used in shell if 3530715Sbrian# constructs, like this: 3630715Sbrian# if HOTSPOT_CHECK_JVM_VARIANT(server); then 3730715Sbrian# 3831176Sbrian# Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants. 3936285Sbrian 4036285Sbrian# Definition kept in one line to allow inlining in if statements. 4136285Sbrian# Additional [] needed to keep m4 from mangling shell constructs. 4220287SwollmanAC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT], 4320287Swollman[ [ [[ " $JVM_VARIANTS " =~ " $1 " ]] ] ]) 44102500Sbrian 4530715Sbrian############################################################################### 466059Samurai# Check if the specified JVM features are explicitly enabled. To be used in 476059Samurai# shell if constructs, like this: 4830715Sbrian# if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then 4936285Sbrian# 5075212Sbrian# Only valid to use after HOTSPOT_SETUP_JVM_FEATURES has setup features. 5120287Swollman 5246686Sbrian# Definition kept in one line to allow inlining in if statements. 5337009Sbrian# Additional [] needed to keep m4 from mangling shell constructs. 5431343SbrianAC_DEFUN([HOTSPOT_CHECK_JVM_FEATURE], 5530715Sbrian[ [ [[ " $JVM_FEATURES " =~ " $1 " ]] ] ]) 569439Samurai 5736285Sbrian############################################################################### 5836285Sbrian# Check which variants of the JVM that we want to build. Available variants are: 5936285Sbrian# server: normal interpreter, and a tiered C1/C2 compiler 6036285Sbrian# client: normal interpreter, and C1 (no C2 compiler) 6136285Sbrian# minimal: reduced form of client with optional features stripped out 6236285Sbrian# core: normal interpreter only, no compiler 6336285Sbrian# zero: C++ based interpreter only, no compiler 6436285Sbrian# zeroshark: C++ based interpreter, and a llvm-based compiler 6536285Sbrian# custom: baseline JVM with no default features 6636285Sbrian# 6781634SbrianAC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS], 6831690Sbrian[ 6936285Sbrian AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants], 7036285Sbrian [JVM variants (separated by commas) to build (server,client,minimal,core,zero,zeroshark,custom) @<:@server@:>@])]) 7136285Sbrian 7243313Sbrian if test "x$with_jvm_variants" = x; then 7343313Sbrian with_jvm_variants="server" 7443313Sbrian fi 7581634Sbrian JVM_VARIANTS_OPT="$with_jvm_variants" 7681634Sbrian 7736285Sbrian # Has the user listed more than one variant? 7830715Sbrian # Additional [] needed to keep m4 from mangling shell constructs. 7936285Sbrian if [ [[ "$JVM_VARIANTS_OPT" =~ "," ]] ]; then 8040561Sbrian BUILDING_MULTIPLE_JVM_VARIANTS=true 8175212Sbrian else 826059Samurai BUILDING_MULTIPLE_JVM_VARIANTS=false 8358032Sbrian fi 846059Samurai # Replace the commas with AND for use in the build directory name. 8536285Sbrian JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'` 8636285Sbrian 876059Samurai AC_MSG_CHECKING([which variants of the JVM to build]) 8881634Sbrian # JVM_VARIANTS is a space-separated list. 8931343Sbrian # Also use minimal, not minimal1 (which is kept for backwards compatibility). 9031176Sbrian JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'` 916059Samurai AC_MSG_RESULT([$JVM_VARIANTS]) 9258031Sbrian 9358031Sbrian # Check that the selected variants are valid 9458031Sbrian 9558031Sbrian # grep filter function inspired by a comment to http://stackoverflow.com/a/1617326 9658031Sbrian # Notice that the original variant failes on SLES 10 and 11 9758031Sbrian NEEDLE=${VALID_JVM_VARIANTS// /$'\n'} 9858032Sbrian STACK=${JVM_VARIANTS// /$'\n'} 9958031Sbrian INVALID_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"` 10058031Sbrian if test "x$INVALID_VARIANTS" != x; then 10158032Sbrian AC_MSG_NOTICE([Unknown variant(s) specified: $INVALID_VARIANTS]) 10258031Sbrian AC_MSG_ERROR([The available JVM variants are: $VALID_JVM_VARIANTS]) 10358031Sbrian fi 10458031Sbrian 10558031Sbrian # All "special" variants share the same output directory ("server") 10631176Sbrian VALID_MULTIPLE_JVM_VARIANTS="server client minimal" 10731176Sbrian NEEDLE=${VALID_MULTIPLE_JVM_VARIANTS// /$'\n'} 10881634Sbrian STACK=${JVM_VARIANTS// /$'\n'} 10981634Sbrian INVALID_MULTIPLE_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"` 11081634Sbrian if test "x$INVALID_MULTIPLE_VARIANTS" != x && test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then 11181634Sbrian AC_MSG_ERROR([You cannot build multiple variants with anything else than $VALID_MULTIPLE_JVM_VARIANTS.]) 11281634Sbrian fi 11381634Sbrian 11481634Sbrian AC_SUBST(JVM_VARIANTS) 11581634Sbrian AC_SUBST(VALID_JVM_VARIANTS) 11681634Sbrian 11731176Sbrian if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 11831176Sbrian # zero behaves as a platform and rewrites these values. This is really weird. :( 11931541Sbrian # We are guaranteed that we do not build any other variants when building zero. 12031541Sbrian HOTSPOT_TARGET_CPU=zero 12134536Sbrian HOTSPOT_TARGET_CPU_ARCH=zero 12234536Sbrian fi 12331962Sbrian]) 12431541Sbrian 12531541Sbrian############################################################################### 12631541Sbrian# Check if dtrace should be enabled and has all prerequisites present. 12731541Sbrian# 12831541SbrianAC_DEFUN_ONCE([HOTSPOT_SETUP_DTRACE], 12931541Sbrian[ 13031541Sbrian # Test for dtrace dependencies 13131541Sbrian AC_ARG_ENABLE([dtrace], [AS_HELP_STRING([--enable-dtrace@<:@=yes/no/auto@:>@], 13275212Sbrian [enable dtrace. Default is auto, where dtrace is enabled if all dependencies 13334536Sbrian are present.])]) 13431541Sbrian 13536285Sbrian DTRACE_DEP_MISSING=false 13631541Sbrian 13731541Sbrian AC_MSG_CHECKING([for dtrace tool]) 13831176Sbrian if test "x$DTRACE" != "x" && test -x "$DTRACE"; then 13931176Sbrian AC_MSG_RESULT([$DTRACE]) 14031176Sbrian else 14131176Sbrian AC_MSG_RESULT([not found, cannot build dtrace]) 14231541Sbrian DTRACE_DEP_MISSING=true 14331176Sbrian fi 14426516Sbrian 14531176Sbrian AC_CHECK_HEADERS([sys/sdt.h], [DTRACE_HEADERS_OK=yes],[DTRACE_HEADERS_OK=no]) 14636285Sbrian if test "x$DTRACE_HEADERS_OK" != "xyes"; then 1476059Samurai DTRACE_DEP_MISSING=true 1486059Samurai fi 14932663Sbrian 15037189Sbrian AC_MSG_CHECKING([if dtrace should be built]) 15128679Sbrian if test "x$enable_dtrace" = "xyes"; then 15231176Sbrian if test "x$DTRACE_DEP_MISSING" = "xtrue"; then 15331176Sbrian AC_MSG_RESULT([no, missing dependencies]) 15431176Sbrian HELP_MSG_MISSING_DEPENDENCY([dtrace]) 15531176Sbrian AC_MSG_ERROR([Cannot enable dtrace with missing dependencies. See above. $HELP_MSG]) 15631176Sbrian else 15731176Sbrian INCLUDE_DTRACE=true 15831176Sbrian AC_MSG_RESULT([yes, forced]) 15931176Sbrian fi 160186119Sqingli elif test "x$enable_dtrace" = "xno"; then 16131176Sbrian INCLUDE_DTRACE=false 16231176Sbrian AC_MSG_RESULT([no, forced]) 16331176Sbrian elif test "x$enable_dtrace" = "xauto" || test "x$enable_dtrace" = "x"; then 16431176Sbrian if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK" != "xtrue"; then 165186119Sqingli INCLUDE_DTRACE=false 166186119Sqingli AC_MSG_RESULT([no, non-open linux build]) 167186119Sqingli elif test "x$DTRACE_DEP_MISSING" = "xtrue"; then 168186119Sqingli INCLUDE_DTRACE=false 169186119Sqingli AC_MSG_RESULT([no, missing dependencies]) 170186119Sqingli else 17131739Sbrian INCLUDE_DTRACE=true 17231176Sbrian AC_MSG_RESULT([yes, dependencies present]) 17331739Sbrian fi 17431739Sbrian else 17531176Sbrian AC_MSG_ERROR([Invalid value for --enable-dtrace: $enable_dtrace]) 17631176Sbrian fi 17731176Sbrian AC_SUBST(INCLUDE_DTRACE) 1786059Samurai]) 1796059Samurai 1806059Samurai############################################################################### 181134789Sbrian# Set up all JVM features for each JVM variant. 1826059Samurai# 18336285SbrianAC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES], 18436285Sbrian[ 1856059Samurai # The user can in some cases supply additional jvm features. For the custom 18636285Sbrian # variant, this defines the entire variant. 18736285Sbrian AC_ARG_WITH([jvm-features], [AS_HELP_STRING([--with-jvm-features], 18831827Sbrian [additional JVM features to enable (separated by comma), use '--help' to show possible values @<:@none@:>@])]) 189134789Sbrian if test "x$with_jvm_features" != x; then 19036285Sbrian AC_MSG_CHECKING([additional JVM features]) 19136285Sbrian JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'` 19236285Sbrian AC_MSG_RESULT([$JVM_FEATURES]) 193139978Sbrian fi 1946059Samurai 1956059Samurai # Verify that dependencies are met for explicitly set features. 19696582Sbrian if HOTSPOT_CHECK_JVM_FEATURE(jvmti) && ! HOTSPOT_CHECK_JVM_FEATURE(services); then 19796582Sbrian AC_MSG_ERROR([Specified JVM feature 'jvmti' requires feature 'services']) 19832616Sbrian fi 19931176Sbrian 20031176Sbrian if HOTSPOT_CHECK_JVM_FEATURE(management) && ! HOTSPOT_CHECK_JVM_FEATURE(nmt); then 20137010Sbrian AC_MSG_ERROR([Specified JVM feature 'management' requires feature 'nmt']) 20237010Sbrian fi 20337010Sbrian 20437010Sbrian if HOTSPOT_CHECK_JVM_FEATURE(jvmci) && ! HOTSPOT_CHECK_JVM_FEATURE(compiler2); then 20537010Sbrian AC_MSG_ERROR([Specified JVM feature 'jvmci' requires feature 'compiler2']) 20637010Sbrian fi 20737010Sbrian 20896582Sbrian if HOTSPOT_CHECK_JVM_FEATURE(compiler2) && ! HOTSPOT_CHECK_JVM_FEATURE(all-gcs); then 20931176Sbrian AC_MSG_ERROR([Specified JVM feature 'compiler2' requires feature 'all-gcs']) 21096582Sbrian fi 21132425Sbrian 21232021Sbrian if HOTSPOT_CHECK_JVM_FEATURE(vm-structs) && ! HOTSPOT_CHECK_JVM_FEATURE(all-gcs); then 21331176Sbrian AC_MSG_ERROR([Specified JVM feature 'vm-structs' requires feature 'all-gcs']) 21431176Sbrian fi 21531176Sbrian 21631176Sbrian # Turn on additional features based on other parts of configure 21750427Sbrian if test "x$INCLUDE_DTRACE" = "xtrue"; then 21850427Sbrian JVM_FEATURES="$JVM_FEATURES dtrace" 21950427Sbrian else 22096582Sbrian if HOTSPOT_CHECK_JVM_FEATURE(dtrace); then 22150427Sbrian AC_MSG_ERROR([To enable dtrace, you must use --enable-dtrace]) 22250427Sbrian fi 22350427Sbrian fi 22431176Sbrian 22531176Sbrian if test "x$STATIC_BUILD" = "xtrue"; then 22631176Sbrian JVM_FEATURES="$JVM_FEATURES static-build" 22731176Sbrian else 22831176Sbrian if HOTSPOT_CHECK_JVM_FEATURE(static-build); then 22931176Sbrian AC_MSG_ERROR([To enable static-build, you must use --enable-static-build]) 23031176Sbrian fi 23131176Sbrian fi 23237019Sbrian 23337019Sbrian if ! HOTSPOT_CHECK_JVM_VARIANT(zero) && ! HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 23458034Sbrian if HOTSPOT_CHECK_JVM_FEATURE(zero); then 23531176Sbrian AC_MSG_ERROR([To enable zero/zeroshark, you must use --with-jvm-variants=zero/zeroshark]) 23631176Sbrian fi 23758034Sbrian fi 23831176Sbrian 23931176Sbrian if ! HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 24058034Sbrian if HOTSPOT_CHECK_JVM_FEATURE(shark); then 24131176Sbrian AC_MSG_ERROR([To enable shark, you must use --with-jvm-variants=zeroshark]) 24231176Sbrian fi 24331176Sbrian fi 24432425Sbrian 24531354Sbrian # Only enable jvmci on x86_64, sparcv9 and aarch64, and only on server. 24631176Sbrian if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \ 24758032Sbrian test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \ 24858035Sbrian test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then 24931176Sbrian JVM_FEATURES_jvmci="jvmci" 25032425Sbrian else 25132425Sbrian JVM_FEATURES_jvmci="" 25238381Sbrian fi 25338381Sbrian 25432425Sbrian # All variants but minimal (and custom) get these features 25532425Sbrian NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds" 25632425Sbrian 25738381Sbrian # Enable features depending on variant. 25832425Sbrian JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci" 25938381Sbrian JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES" 26038381Sbrian JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES" 26136285Sbrian JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES" 26296582Sbrian JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES" 26350427Sbrian JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES" 26438381Sbrian JVM_FEATURES_custom="$JVM_FEATURES" 26550427Sbrian 26650427Sbrian AC_SUBST(JVM_FEATURES_server) 26750427Sbrian AC_SUBST(JVM_FEATURES_client) 26858034Sbrian AC_SUBST(JVM_FEATURES_core) 26932425Sbrian AC_SUBST(JVM_FEATURES_minimal) 27038381Sbrian AC_SUBST(JVM_FEATURES_zero) 27132425Sbrian AC_SUBST(JVM_FEATURES_zeroshark) 27232425Sbrian AC_SUBST(JVM_FEATURES_custom) 27332425Sbrian 27432425Sbrian # Used for verification of Makefiles by check-jvm-feature 275136375Sbrian AC_SUBST(VALID_JVM_FEATURES) 276136375Sbrian 277136375Sbrian # We don't support --with-jvm-interpreter anymore, use zero instead. 278136375Sbrian BASIC_DEPRECATED_ARG_WITH(jvm-interpreter) 279136375Sbrian]) 280136375Sbrian 281136375Sbrian############################################################################### 282136375Sbrian# Validate JVM features once all setup is complete, including custom setup. 283136375Sbrian# 28432425SbrianAC_DEFUN_ONCE([HOTSPOT_VALIDATE_JVM_FEATURES], 28536285Sbrian[ 28636285Sbrian # Keep feature lists sorted and free of duplicates 28731354Sbrian JVM_FEATURES_server="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_server | $SORT -u))" 28831176Sbrian JVM_FEATURES_client="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_client | $SORT -u))" 28931176Sbrian JVM_FEATURES_core="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_core | $SORT -u))" 29031176Sbrian JVM_FEATURES_minimal="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_minimal | $SORT -u))" 29131176Sbrian JVM_FEATURES_zero="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_zero | $SORT -u))" 29236285Sbrian JVM_FEATURES_zeroshark="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_zeroshark | $SORT -u))" 29331354Sbrian JVM_FEATURES_custom="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_custom | $SORT -u))" 29431354Sbrian 29536285Sbrian # Validate features 29696582Sbrian for variant in $JVM_VARIANTS; do 29732425Sbrian AC_MSG_CHECKING([JVM features for JVM variant '$variant']) 29836285Sbrian features_var_name=JVM_FEATURES_$variant 29931354Sbrian JVM_FEATURES_TO_TEST=${!features_var_name} 30031354Sbrian AC_MSG_RESULT([$JVM_FEATURES_TO_TEST]) 30131354Sbrian NEEDLE=${VALID_JVM_FEATURES// /$'\n'} 30296582Sbrian STACK=${JVM_FEATURES_TO_TEST// /$'\n'} 30358034Sbrian INVALID_FEATURES=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"` 30431354Sbrian if test "x$INVALID_FEATURES" != x; then 30531354Sbrian AC_MSG_ERROR([Invalid JVM feature(s): $INVALID_FEATURES]) 30631176Sbrian fi 30731176Sbrian done 30858032Sbrian]) 30958032Sbrian 31058032Sbrian############################################################################### 31158032Sbrian# Support for old hotspot build. Remove once new hotspot build has proven 31258032Sbrian# to work satisfactory. 31358032Sbrian# 31458032SbrianAC_DEFUN_ONCE([HOTSPOT_SETUP_LEGACY_BUILD], 31558032Sbrian[ 31658032Sbrian AC_ARG_ENABLE(new-hotspot-build, [AS_HELP_STRING([--disable-new-hotspot-build], 31758032Sbrian [disable the new hotspot build system (use the old) @<:@enabled@:>@])]) 31858032Sbrian 31958032Sbrian if test "x$enable_new_hotspot_build" = "x" || test "x$enable_new_hotspot_build" = "xyes"; then 32093463Sbrian USE_NEW_HOTSPOT_BUILD=true 32186832Sbrian else 32258032Sbrian USE_NEW_HOTSPOT_BUILD=false 32358032Sbrian fi 32458032Sbrian AC_SUBST(USE_NEW_HOTSPOT_BUILD) 32558032Sbrian 3266059Samurai case $HOTSPOT_DEBUG_LEVEL in 32736285Sbrian product ) 3286059Samurai VARIANT="OPT" 3296059Samurai FASTDEBUG="false" 33058032Sbrian DEBUG_CLASSFILES="false" 33158032Sbrian ;; 33232021Sbrian fastdebug ) 3336735Samurai VARIANT="DBG" 3346059Samurai FASTDEBUG="true" 3356059Samurai DEBUG_CLASSFILES="true" 3366059Samurai ;; 3376735Samurai debug ) 3386735Samurai VARIANT="DBG" 3396059Samurai FASTDEBUG="false" 3406735Samurai DEBUG_CLASSFILES="true" 3416735Samurai ;; 34236285Sbrian optimized ) 34328679Sbrian VARIANT="OPT" 3446735Samurai FASTDEBUG="false" 3456059Samurai DEBUG_CLASSFILES="false" 3466059Samurai ;; 34728679Sbrian esac 3486735Samurai AC_SUBST(VARIANT) 34936285Sbrian AC_SUBST(FASTDEBUG) 35018885Sjkh AC_SUBST(DEBUG_CLASSFILES) 35128679Sbrian 3526735Samurai if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then 3536059Samurai MACOSX_UNIVERSAL="true" 3546059Samurai fi 35536285Sbrian 35636285Sbrian AC_SUBST(MACOSX_UNIVERSAL) 3576059Samurai 35858032Sbrian # Make sure JVM_VARIANTS_COMMA use minimal1 for backwards compatibility 35931176Sbrian JVM_VARIANTS_COMMA=`$ECHO ,$JVM_VARIANTS_OPT, | $SED -e 's/,minimal,/,minimal1,/'` 36058032Sbrian 36158031Sbrian JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'` 36258032Sbrian JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'` 36358032Sbrian JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,minimal1\?,/!s/.*/false/g' -e '/,minimal1\?,/s/.*/true/g'` 36458032Sbrian JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` 36531176Sbrian JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` 36658031Sbrian JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` 36758031Sbrian JVM_VARIANT_CUSTOM=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,custom,/!s/.*/false/g' -e '/,custom,/s/.*/true/g'` 36858031Sbrian 36958031Sbrian ##### 3706059Samurai # Generate the legacy makefile targets for hotspot. 37118885Sjkh HOTSPOT_TARGET="" 37226516Sbrian 3736059Samurai if test "x$JVM_VARIANT_SERVER" = xtrue; then 3746059Samurai HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} " 3756059Samurai fi 3766059Samurai 3776059Samurai if test "x$JVM_VARIANT_CLIENT" = xtrue; then 3786059Samurai HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 " 37936285Sbrian fi 3806059Samurai 3816059Samurai if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then 38258032Sbrian HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 " 38381634Sbrian fi 38432021Sbrian 38532021Sbrian if test "x$JVM_VARIANT_ZERO" = xtrue; then 3866059Samurai HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero " 3876735Samurai fi 3886059Samurai 38940561Sbrian if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then 39026516Sbrian HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " 3916059Samurai fi 3926059Samurai 3936735Samurai if test "x$JVM_VARIANT_CORE" = xtrue; then 3946735Samurai HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " 3956059Samurai fi 3966735Samurai 3976735Samurai HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_DEBUG_LEVEL" 39836285Sbrian 39975212Sbrian # On Macosx universal binaries are produced, but they only contain 4006735Samurai # 64 bit intel. This invalidates control of which jvms are built 4016735Samurai # from configure, but only server is valid anyway. Fix this 4026059Samurai # when hotspot makefiles are rewritten. 4036059Samurai if test "x$MACOSX_UNIVERSAL" = xtrue; then 4046059Samurai HOTSPOT_TARGET=universal_${HOTSPOT_DEBUG_LEVEL} 4056059Samurai fi 4066059Samurai 4076735Samurai HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET" 40836285Sbrian AC_SUBST(HOTSPOT_MAKE_ARGS) 40975212Sbrian 4106059Samurai # Control wether Hotspot runs Queens test after build. 4116059Samurai AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build], 4126059Samurai [run the Queens test after Hotspot build @<:@disabled@:>@])],, 4136059Samurai [enable_hotspot_test_in_build=no]) 4146059Samurai if test "x$enable_hotspot_test_in_build" = "xyes"; then 41531739Sbrian TEST_IN_BUILD=true 41631739Sbrian else 41731739Sbrian TEST_IN_BUILD=false 41858032Sbrian fi 41931739Sbrian AC_SUBST(TEST_IN_BUILD) 42036285Sbrian 42136285Sbrian if test "x$USE_NEW_HOTSPOT_BUILD" = xfalse; then 42231739Sbrian if test "x$JVM_VARIANT_CLIENT" = xtrue; then 423264299Sglebius if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then 42431739Sbrian AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) 42531739Sbrian fi 42631739Sbrian fi 42758032Sbrian if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then 42858032Sbrian if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then 42981634Sbrian AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.]) 43081634Sbrian fi 43181634Sbrian fi 43281634Sbrian if test "x$JVM_VARIANT_CUSTOM" = xtrue; then 43381634Sbrian AC_MSG_ERROR([You cannot build a custom JVM using the old hotspot build system.]) 43481634Sbrian fi 43581634Sbrian fi 43681634Sbrian 43781634Sbrian AC_SUBST(JVM_VARIANTS_COMMA) 43881634Sbrian AC_SUBST(JVM_VARIANT_SERVER) 43981634Sbrian AC_SUBST(JVM_VARIANT_CLIENT) 44081634Sbrian AC_SUBST(JVM_VARIANT_MINIMAL1) 44181634Sbrian AC_SUBST(JVM_VARIANT_HOTSPOT) 44281634Sbrian AC_SUBST(JVM_VARIANT_ZERO) 44381634Sbrian AC_SUBST(JVM_VARIANT_ZEROSHARK) 44481634Sbrian AC_SUBST(JVM_VARIANT_CORE) 44581634Sbrian]) 44681634Sbrian