hotspot.m4 revision 2065:559c65fe6b56
1261413Sbr#
2261413Sbr# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
3261413Sbr# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4261413Sbr#
5261413Sbr# This code is free software; you can redistribute it and/or modify it
6261413Sbr# under the terms of the GNU General Public License version 2 only, as
7261413Sbr# published by the Free Software Foundation.  Oracle designates this
8261413Sbr# particular file as subject to the "Classpath" exception as provided
9261413Sbr# by Oracle in the LICENSE file that accompanied this code.
10261413Sbr#
11261413Sbr# This code is distributed in the hope that it will be useful, but WITHOUT
12261413Sbr# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13261413Sbr# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14261413Sbr# version 2 for more details (a copy is included in the LICENSE file that
15261413Sbr# accompanied this code).
16261413Sbr#
17261413Sbr# You should have received a copy of the GNU General Public License version
18261413Sbr# 2 along with this work; if not, write to the Free Software Foundation,
19261413Sbr# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20261413Sbr#
21261413Sbr# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22261413Sbr# or visit www.oracle.com if you need additional information or have any
23261413Sbr# questions.
24261413Sbr#
25261413Sbr
26261413Sbr# All valid JVM features, regardless of platform
27261413SbrVALID_JVM_FEATURES="compiler1 compiler2 zero shark minimal dtrace jvmti jvmci \
28261413Sbr    fprof vm-structs jni-check services management all-gcs nmt cds static-build"
29261413Sbr
30261413Sbr# All valid JVM variants
31261413SbrVALID_JVM_VARIANTS="server client minimal core zero zeroshark custom"
32261413Sbr
33261413Sbr###############################################################################
34261413Sbr# Check if the specified JVM variant should be built. To be used in shell if
35261413Sbr# constructs, like this:
36261413Sbr# if HOTSPOT_CHECK_JVM_VARIANT(server); then
37261413Sbr#
38261413Sbr# Only valid to use after HOTSPOT_SETUP_JVM_VARIANTS has setup variants.
39261413Sbr
40261413Sbr# Definition kept in one line to allow inlining in if statements.
41261413Sbr# Additional [] needed to keep m4 from mangling shell constructs.
42261413SbrAC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT],
43261413Sbr[ [ [[ " $JVM_VARIANTS " =~ " $1 " ]] ] ])
44261413Sbr
45261413Sbr###############################################################################
46261413Sbr# Check if the specified JVM features are explicitly enabled. To be used in
47261413Sbr# shell if constructs, like this:
48262891Sbr# if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
49261413Sbr#
50281092Sandrew# Only valid to use after HOTSPOT_SETUP_JVM_FEATURES has setup features.
51281092Sandrew
52281092Sandrew# Definition kept in one line to allow inlining in if statements.
53261413Sbr# Additional [] needed to keep m4 from mangling shell constructs.
54261413SbrAC_DEFUN([HOTSPOT_CHECK_JVM_FEATURE],
55261413Sbr[ [ [[ " $JVM_FEATURES " =~ " $1 " ]] ] ])
56261413Sbr
57261413Sbr###############################################################################
58261413Sbr# Check which variants of the JVM that we want to build. Available variants are:
59261413Sbr#   server: normal interpreter, and a tiered C1/C2 compiler
60262891Sbr#   client: normal interpreter, and C1 (no C2 compiler)
61262891Sbr#   minimal: reduced form of client with optional features stripped out
62261413Sbr#   core: normal interpreter only, no compiler
63261413Sbr#   zero: C++ based interpreter only, no compiler
64261413Sbr#   zeroshark: C++ based interpreter, and a llvm-based compiler
65261413Sbr#   custom: baseline JVM with no default features
66261413Sbr#
67261413SbrAC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
68261413Sbr[
69261413Sbr  AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
70261413Sbr      [JVM variants (separated by commas) to build (server,client,minimal,core,zero,zeroshark,custom) @<:@server@:>@])])
71261413Sbr
72261413Sbr  if test "x$with_jvm_variants" = x; then
73261413Sbr    with_jvm_variants="server"
74261413Sbr  fi
75261413Sbr  JVM_VARIANTS_OPT="$with_jvm_variants"
76261413Sbr
77261413Sbr  # Has the user listed more than one variant?
78261413Sbr  # Additional [] needed to keep m4 from mangling shell constructs.
79261413Sbr  if [ [[ "$JVM_VARIANTS_OPT" =~ "," ]] ]; then
80261413Sbr    BUILDING_MULTIPLE_JVM_VARIANTS=true
81261413Sbr  else
82262891Sbr    BUILDING_MULTIPLE_JVM_VARIANTS=false
83262891Sbr  fi
84262891Sbr  # Replace the commas with AND for use in the build directory name.
85261413Sbr  JVM_VARIANTS_WITH_AND=`$ECHO "$JVM_VARIANTS_OPT" | $SED -e 's/,/AND/g'`
86261413Sbr
87261413Sbr  AC_MSG_CHECKING([which variants of the JVM to build])
88261413Sbr  # JVM_VARIANTS is a space-separated list.
89261413Sbr  # Also use minimal, not minimal1 (which is kept for backwards compatibility).
90261413Sbr  JVM_VARIANTS=`$ECHO $JVM_VARIANTS_OPT | $SED -e 's/,/ /g' -e 's/minimal1/minimal/'`
91261413Sbr  AC_MSG_RESULT([$JVM_VARIANTS])
92261413Sbr
93261413Sbr  # Check that the selected variants are valid
94261413Sbr
95261413Sbr  # grep filter function inspired by a comment to http://stackoverflow.com/a/1617326
96261413Sbr  # Notice that the original variant failes on SLES 10 and 11
97261413Sbr  NEEDLE=${VALID_JVM_VARIANTS// /$'\n'}
98261413Sbr  STACK=${JVM_VARIANTS// /$'\n'}
99261413Sbr  INVALID_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
100261413Sbr  if test "x$INVALID_VARIANTS" != x; then
101262891Sbr    AC_MSG_NOTICE([Unknown variant(s) specified: $INVALID_VARIANTS])
102262891Sbr    AC_MSG_ERROR([The available JVM variants are: $VALID_JVM_VARIANTS])
103262891Sbr  fi
104261413Sbr
105261413Sbr  # All "special" variants share the same output directory ("server")
106261413Sbr  VALID_MULTIPLE_JVM_VARIANTS="server client minimal"
107261413Sbr  NEEDLE=${VALID_MULTIPLE_JVM_VARIANTS// /$'\n'}
108261413Sbr  STACK=${JVM_VARIANTS// /$'\n'}
109261413Sbr  INVALID_MULTIPLE_VARIANTS=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
110261413Sbr  if  test "x$INVALID_MULTIPLE_VARIANTS" != x && test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then
111261413Sbr    AC_MSG_ERROR([You cannot build multiple variants with anything else than $VALID_MULTIPLE_JVM_VARIANTS.])
112261413Sbr  fi
113261413Sbr
114261413Sbr  AC_SUBST(JVM_VARIANTS)
115261413Sbr  AC_SUBST(VALID_JVM_VARIANTS)
116261413Sbr
117261413Sbr  if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then
118261413Sbr    # zero behaves as a platform and rewrites these values. This is really weird. :(
119261413Sbr    # We are guaranteed that we do not build any other variants when building zero.
120261413Sbr    HOTSPOT_TARGET_CPU=zero
121261413Sbr    HOTSPOT_TARGET_CPU_ARCH=zero
122261413Sbr  fi
123261413Sbr])
124261413Sbr
125261413Sbr###############################################################################
126261413Sbr# Check if dtrace should be enabled and has all prerequisites present.
127261413Sbr#
128261413SbrAC_DEFUN_ONCE([HOTSPOT_SETUP_DTRACE],
129261413Sbr[
130261413Sbr  # Test for dtrace dependencies
131261413Sbr  AC_ARG_ENABLE([dtrace], [AS_HELP_STRING([--enable-dtrace@<:@=yes/no/auto@:>@],
132261413Sbr      [enable dtrace. Default is auto, where dtrace is enabled if all dependencies
133261413Sbr      are present.])])
134261413Sbr
135261413Sbr  DTRACE_DEP_MISSING=false
136261413Sbr
137261413Sbr  AC_MSG_CHECKING([for dtrace tool])
138261413Sbr  if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
139261413Sbr    AC_MSG_RESULT([$DTRACE])
140261413Sbr  else
141261413Sbr    AC_MSG_RESULT([not found, cannot build dtrace])
142261413Sbr    DTRACE_DEP_MISSING=true
143261413Sbr  fi
144261413Sbr
145261413Sbr  AC_CHECK_HEADERS([sys/sdt.h], [DTRACE_HEADERS_OK=yes],[DTRACE_HEADERS_OK=no])
146261413Sbr  if test "x$DTRACE_HEADERS_OK" != "xyes"; then
147261413Sbr    DTRACE_DEP_MISSING=true
148261413Sbr  fi
149261413Sbr
150261413Sbr  AC_MSG_CHECKING([if dtrace should be built])
151261413Sbr  if test "x$enable_dtrace" = "xyes"; then
152261413Sbr    if test "x$DTRACE_DEP_MISSING" = "xtrue"; then
153261413Sbr      AC_MSG_RESULT([no, missing dependencies])
154261413Sbr      HELP_MSG_MISSING_DEPENDENCY([dtrace])
155261413Sbr      AC_MSG_ERROR([Cannot enable dtrace with missing dependencies. See above. $HELP_MSG])
156261413Sbr    else
157261413Sbr      INCLUDE_DTRACE=true
158261413Sbr      AC_MSG_RESULT([yes, forced])
159261413Sbr    fi
160261413Sbr  elif test "x$enable_dtrace" = "xno"; then
161261413Sbr    INCLUDE_DTRACE=false
162261413Sbr    AC_MSG_RESULT([no, forced])
163261413Sbr  elif test "x$enable_dtrace" = "xauto" || test "x$enable_dtrace" = "x"; then
164261413Sbr    if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK" != "xtrue"; then
165261413Sbr      INCLUDE_DTRACE=false
166261413Sbr      AC_MSG_RESULT([no, non-open linux build])
167261413Sbr    elif test "x$DTRACE_DEP_MISSING" = "xtrue"; then
168261413Sbr      INCLUDE_DTRACE=false
169261413Sbr      AC_MSG_RESULT([no, missing dependencies])
170261413Sbr    else
171261413Sbr      INCLUDE_DTRACE=true
172261413Sbr      AC_MSG_RESULT([yes, dependencies present])
173261413Sbr    fi
174262891Sbr  else
175261413Sbr    AC_MSG_ERROR([Invalid value for --enable-dtrace: $enable_dtrace])
176262891Sbr  fi
177262891Sbr  AC_SUBST(INCLUDE_DTRACE)
178262891Sbr])
179262891Sbr
180262891Sbr###############################################################################
181262891Sbr# Set up all JVM features for each JVM variant.
182262891Sbr#
183262891SbrAC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
184262891Sbr[
185262891Sbr  # The user can in some cases supply additional jvm features. For the custom
186262891Sbr  # variant, this defines the entire variant.
187262891Sbr  AC_ARG_WITH([jvm-features], [AS_HELP_STRING([--with-jvm-features],
188262891Sbr      [additional JVM features to enable (separated by comma),  use '--help' to show possible values @<:@none@:>@])])
189261413Sbr  if test "x$with_jvm_features" != x; then
190261413Sbr    AC_MSG_CHECKING([additional JVM features])
191261413Sbr    JVM_FEATURES=`$ECHO $with_jvm_features | $SED -e 's/,/ /g'`
192261413Sbr    AC_MSG_RESULT([$JVM_FEATURES])
193261413Sbr  fi
194261413Sbr
195261413Sbr  # Verify that dependencies are met for explicitly set features.
196261413Sbr  if HOTSPOT_CHECK_JVM_FEATURE(jvmti) && ! HOTSPOT_CHECK_JVM_FEATURE(services); then
197262891Sbr    AC_MSG_ERROR([Specified JVM feature 'jvmti' requires feature 'services'])
198261413Sbr  fi
199261413Sbr
200261413Sbr  if HOTSPOT_CHECK_JVM_FEATURE(management) && ! HOTSPOT_CHECK_JVM_FEATURE(nmt); then
201261413Sbr    AC_MSG_ERROR([Specified JVM feature 'management' requires feature 'nmt'])
202261413Sbr  fi
203261413Sbr
204261413Sbr  if HOTSPOT_CHECK_JVM_FEATURE(jvmci) && ! HOTSPOT_CHECK_JVM_FEATURE(compiler2); then
205261413Sbr    AC_MSG_ERROR([Specified JVM feature 'jvmci' requires feature 'compiler2'])
206261413Sbr  fi
207261413Sbr
208261413Sbr  if HOTSPOT_CHECK_JVM_FEATURE(compiler2) && ! HOTSPOT_CHECK_JVM_FEATURE(all-gcs); then
209261413Sbr    AC_MSG_ERROR([Specified JVM feature 'compiler2' requires feature 'all-gcs'])
210261413Sbr  fi
211261413Sbr
212261413Sbr  if HOTSPOT_CHECK_JVM_FEATURE(vm-structs) && ! HOTSPOT_CHECK_JVM_FEATURE(all-gcs); then
213261413Sbr    AC_MSG_ERROR([Specified JVM feature 'vm-structs' requires feature 'all-gcs'])
214261413Sbr  fi
215261413Sbr
216261413Sbr  # Turn on additional features based on other parts of configure
217261413Sbr  if test "x$INCLUDE_DTRACE" = "xtrue"; then
218261413Sbr    JVM_FEATURES="$JVM_FEATURES dtrace"
219261413Sbr  else
220261413Sbr    if HOTSPOT_CHECK_JVM_FEATURE(dtrace); then
221261413Sbr      AC_MSG_ERROR([To enable dtrace, you must use --enable-dtrace])
222261413Sbr    fi
223261413Sbr  fi
224261413Sbr
225261413Sbr  if test "x$STATIC_BUILD" = "xtrue"; then
226261413Sbr    JVM_FEATURES="$JVM_FEATURES static-build"
227261413Sbr  else
228261413Sbr    if HOTSPOT_CHECK_JVM_FEATURE(static-build); then
229261413Sbr      AC_MSG_ERROR([To enable static-build, you must use --enable-static-build])
230261413Sbr    fi
231261413Sbr  fi
232261413Sbr
233261413Sbr  if ! HOTSPOT_CHECK_JVM_VARIANT(zero) && ! HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then
234261413Sbr    if HOTSPOT_CHECK_JVM_FEATURE(zero); then
235261413Sbr      AC_MSG_ERROR([To enable zero/zeroshark, you must use --with-jvm-variants=zero/zeroshark])
236262891Sbr    fi
237262891Sbr  fi
238262891Sbr
239262891Sbr  if ! HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then
240262891Sbr    if HOTSPOT_CHECK_JVM_FEATURE(shark); then
241262891Sbr      AC_MSG_ERROR([To enable shark, you must use --with-jvm-variants=zeroshark])
242262891Sbr    fi
243262891Sbr  fi
244262891Sbr
245262891Sbr  # Only enable jvmci on x86_64, sparcv9 and aarch64, and only on server.
246262891Sbr  if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
247262891Sbr      test "x$OPENJDK_TARGET_CPU" = "xsparcv9" || \
248314503Sian      test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
249314503Sian    JVM_FEATURES_jvmci="jvmci"
250314503Sian  else
251262891Sbr    JVM_FEATURES_jvmci=""
252262891Sbr  fi
253262891Sbr
254262891Sbr  # All variants but minimal (and custom) get these features
255314503Sian  NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES jvmti fprof vm-structs jni-check services management all-gcs nmt cds"
256314503Sian
257314503Sian  # Enable features depending on variant.
258314503Sian  JVM_FEATURES_server="compiler1 compiler2 $NON_MINIMAL_FEATURES $JVM_FEATURES $JVM_FEATURES_jvmci"
259262891Sbr  JVM_FEATURES_client="compiler1 $NON_MINIMAL_FEATURES $JVM_FEATURES"
260262891Sbr  JVM_FEATURES_core="$NON_MINIMAL_FEATURES $JVM_FEATURES"
261262891Sbr  JVM_FEATURES_minimal="compiler1 minimal $JVM_FEATURES"
262262891Sbr  JVM_FEATURES_zero="zero $NON_MINIMAL_FEATURES $JVM_FEATURES"
263314503Sian  JVM_FEATURES_zeroshark="zero shark $NON_MINIMAL_FEATURES $JVM_FEATURES"
264314503Sian  JVM_FEATURES_custom="$JVM_FEATURES"
265314503Sian
266314503Sian  AC_SUBST(JVM_FEATURES_server)
267262891Sbr  AC_SUBST(JVM_FEATURES_client)
268262891Sbr  AC_SUBST(JVM_FEATURES_core)
269262891Sbr  AC_SUBST(JVM_FEATURES_minimal)
270262891Sbr  AC_SUBST(JVM_FEATURES_zero)
271314503Sian  AC_SUBST(JVM_FEATURES_zeroshark)
272314503Sian  AC_SUBST(JVM_FEATURES_custom)
273262891Sbr
274262891Sbr  # Used for verification of Makefiles by check-jvm-feature
275262891Sbr  AC_SUBST(VALID_JVM_FEATURES)
276262891Sbr
277314503Sian  # We don't support --with-jvm-interpreter anymore, use zero instead.
278314503Sian  BASIC_DEPRECATED_ARG_WITH(jvm-interpreter)
279262891Sbr])
280262891Sbr
281262891Sbr###############################################################################
282262891Sbr# Validate JVM features once all setup is complete, including custom setup.
283262891Sbr#
284261413SbrAC_DEFUN_ONCE([HOTSPOT_VALIDATE_JVM_FEATURES],
285261413Sbr[
286262891Sbr  # Keep feature lists sorted and free of duplicates
287261413Sbr  JVM_FEATURES_server="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_server | $SORT -u))"
288262891Sbr  JVM_FEATURES_client="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_client | $SORT -u))"
289261413Sbr  JVM_FEATURES_core="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_core | $SORT -u))"
290262891Sbr  JVM_FEATURES_minimal="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_minimal | $SORT -u))"
291262891Sbr  JVM_FEATURES_zero="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_zero | $SORT -u))"
292261413Sbr  JVM_FEATURES_zeroshark="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_zeroshark | $SORT -u))"
293261413Sbr  JVM_FEATURES_custom="$($ECHO $($PRINTF '%s\n' $JVM_FEATURES_custom | $SORT -u))"
294261413Sbr
295261413Sbr  # Validate features
296261413Sbr  for variant in $JVM_VARIANTS; do
297262891Sbr    AC_MSG_CHECKING([JVM features for JVM variant '$variant'])
298262891Sbr    features_var_name=JVM_FEATURES_$variant
299262891Sbr    JVM_FEATURES_TO_TEST=${!features_var_name}
300261413Sbr    AC_MSG_RESULT([$JVM_FEATURES_TO_TEST])
301261413Sbr    NEEDLE=${VALID_JVM_FEATURES// /$'\n'}
302262891Sbr    STACK=${JVM_FEATURES_TO_TEST// /$'\n'}
303262891Sbr    INVALID_FEATURES=`$GREP -Fvx "${NEEDLE}" <<< "${STACK}"`
304262891Sbr    if test "x$INVALID_FEATURES" != x; then
305261413Sbr      AC_MSG_ERROR([Invalid JVM feature(s): $INVALID_FEATURES])
306261413Sbr    fi
307261413Sbr  done
308262891Sbr])
309261413Sbr
310261413Sbr###############################################################################
311261413Sbr# Support for old hotspot build. Remove once new hotspot build has proven
312261413Sbr# to work satisfactory.
313262891Sbr#
314261413SbrAC_DEFUN_ONCE([HOTSPOT_SETUP_LEGACY_BUILD],
315261413Sbr[
316261413Sbr  AC_ARG_ENABLE(new-hotspot-build, [AS_HELP_STRING([--disable-new-hotspot-build],
317261413Sbr      [disable the new hotspot build system (use the old) @<:@enabled@:>@])])
318261413Sbr
319261413Sbr   if test "x$enable_new_hotspot_build" = "x" || test "x$enable_new_hotspot_build" = "xyes"; then
320261413Sbr     USE_NEW_HOTSPOT_BUILD=true
321261413Sbr   else
322262891Sbr     USE_NEW_HOTSPOT_BUILD=false
323262891Sbr   fi
324262891Sbr  AC_SUBST(USE_NEW_HOTSPOT_BUILD)
325262891Sbr
326262891Sbr  case $HOTSPOT_DEBUG_LEVEL in
327262891Sbr    product )
328262891Sbr      VARIANT="OPT"
329262891Sbr      FASTDEBUG="false"
330262891Sbr      DEBUG_CLASSFILES="false"
331262891Sbr      ;;
332262891Sbr    fastdebug )
333262891Sbr      VARIANT="DBG"
334262891Sbr      FASTDEBUG="true"
335261413Sbr      DEBUG_CLASSFILES="true"
336261413Sbr      ;;
337261413Sbr    debug )
338261413Sbr      VARIANT="DBG"
339261413Sbr      FASTDEBUG="false"
340261413Sbr      DEBUG_CLASSFILES="true"
341261413Sbr      ;;
342261413Sbr    optimized )
343261413Sbr      VARIANT="OPT"
344261413Sbr      FASTDEBUG="false"
345261413Sbr      DEBUG_CLASSFILES="false"
346261413Sbr      ;;
347261413Sbr  esac
348261413Sbr  AC_SUBST(VARIANT)
349261413Sbr  AC_SUBST(FASTDEBUG)
350261413Sbr  AC_SUBST(DEBUG_CLASSFILES)
351261413Sbr
352261413Sbr  if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
353261413Sbr    MACOSX_UNIVERSAL="true"
354261413Sbr  fi
355261413Sbr
356261413Sbr  AC_SUBST(MACOSX_UNIVERSAL)
357261413Sbr
358261413Sbr  # Make sure JVM_VARIANTS_COMMA use minimal1 for backwards compatibility
359261413Sbr  JVM_VARIANTS_COMMA=`$ECHO ,$JVM_VARIANTS_OPT, | $SED -e 's/,minimal,/,minimal1,/'`
360261413Sbr
361261413Sbr  JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
362261413Sbr  JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'`
363261413Sbr  JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,minimal1\?,/!s/.*/false/g' -e '/,minimal1\?,/s/.*/true/g'`
364262891Sbr  JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
365261413Sbr  JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
366262891Sbr  JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
367261413Sbr  JVM_VARIANT_CUSTOM=`$ECHO "$JVM_VARIANTS_COMMA" | $SED -e '/,custom,/!s/.*/false/g' -e '/,custom,/s/.*/true/g'`
368261413Sbr
369261413Sbr  #####
370262891Sbr  # Generate the legacy makefile targets for hotspot.
371261413Sbr  HOTSPOT_TARGET=""
372261413Sbr
373261413Sbr  if test "x$JVM_VARIANT_SERVER" = xtrue; then
374261413Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
375261413Sbr  fi
376261413Sbr
377261413Sbr  if test "x$JVM_VARIANT_CLIENT" = xtrue; then
378261413Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
379261413Sbr  fi
380261413Sbr
381261413Sbr  if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
382261413Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
383261413Sbr  fi
384261413Sbr
385261413Sbr  if test "x$JVM_VARIANT_ZERO" = xtrue; then
386261413Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
387261413Sbr  fi
388261413Sbr
389262891Sbr  if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
390262891Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
391262891Sbr  fi
392262891Sbr
393262891Sbr  if test "x$JVM_VARIANT_CORE" = xtrue; then
394262891Sbr    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core "
395262891Sbr  fi
396261413Sbr
397261413Sbr  HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_DEBUG_LEVEL"
398261413Sbr
399262891Sbr  # On Macosx universal binaries are produced, but they only contain
400262891Sbr  # 64 bit intel. This invalidates control of which jvms are built
401262891Sbr  # from configure, but only server is valid anyway. Fix this
402262891Sbr  # when hotspot makefiles are rewritten.
403262891Sbr  if test "x$MACOSX_UNIVERSAL" = xtrue; then
404262891Sbr    HOTSPOT_TARGET=universal_${HOTSPOT_DEBUG_LEVEL}
405262891Sbr  fi
406262891Sbr
407262891Sbr  HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
408262891Sbr  AC_SUBST(HOTSPOT_MAKE_ARGS)
409262891Sbr
410262891Sbr  # Control wether Hotspot runs Queens test after build.
411262891Sbr  AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
412262891Sbr      [run the Queens test after Hotspot build @<:@disabled@:>@])],,
413261413Sbr      [enable_hotspot_test_in_build=no])
414261413Sbr  if test "x$enable_hotspot_test_in_build" = "xyes"; then
415261413Sbr    TEST_IN_BUILD=true
416261413Sbr  else
417261413Sbr    TEST_IN_BUILD=false
418261413Sbr  fi
419261413Sbr  AC_SUBST(TEST_IN_BUILD)
420261413Sbr
421261413Sbr  if test "x$USE_NEW_HOTSPOT_BUILD" = xfalse; then
422261413Sbr    if test "x$JVM_VARIANT_CLIENT" = xtrue; then
423261413Sbr      if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
424261413Sbr        AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
425261413Sbr      fi
426261413Sbr    fi
427261413Sbr    if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
428261413Sbr      if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
429261413Sbr        AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
430261413Sbr      fi
431261413Sbr    fi
432261413Sbr    if test "x$JVM_VARIANT_CUSTOM" = xtrue; then
433261413Sbr        AC_MSG_ERROR([You cannot build a custom JVM using the old hotspot build system.])
434261413Sbr    fi
435261413Sbr  fi
436261413Sbr
437261413Sbr  AC_SUBST(JVM_VARIANTS_COMMA)
438261413Sbr  AC_SUBST(JVM_VARIANT_SERVER)
439261413Sbr  AC_SUBST(JVM_VARIANT_CLIENT)
440261413Sbr  AC_SUBST(JVM_VARIANT_MINIMAL1)
441261413Sbr  AC_SUBST(JVM_VARIANT_HOTSPOT)
442261413Sbr  AC_SUBST(JVM_VARIANT_ZERO)
443261413Sbr  AC_SUBST(JVM_VARIANT_ZEROSHARK)
444261413Sbr  AC_SUBST(JVM_VARIANT_CORE)
445261413Sbr])
446261413Sbr