1 # 2 # Copyright (c) 2011, 2017, 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 # Check which variant of the JDK that we want to build. 28 # Currently we have: 29 # normal: standard edition 30 # but the custom make system may add other variants 31 # 32 # Effectively the JDK variant gives a name to a specific set of 33 # modules to compile into the JDK. 34 AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT], 35 [ 36 AC_MSG_CHECKING([which variant of the JDK to build]) 37 AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant], 38 [JDK variant to build (normal) @<:@normal@:>@])]) 39 40 if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then 41 JDK_VARIANT="normal" 42 else 43 AC_MSG_ERROR([The available JDK variants are: normal]) 44 fi 45 46 AC_SUBST(JDK_VARIANT) 47 48 AC_MSG_RESULT([$JDK_VARIANT]) 49 ]) 50 51 ############################################################################### 52 # Set the debug level 53 # release: no debug information, all optimizations, no asserts. 54 # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'. 55 # fastdebug: debug information (-g), all optimizations, all asserts 56 # slowdebug: debug information (-g), no optimizations, all asserts 57 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], 58 [ 59 DEBUG_LEVEL="release" 60 AC_MSG_CHECKING([which debug level to use]) 61 AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], 62 [set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])], 63 [ 64 ENABLE_DEBUG="${enableval}" 65 DEBUG_LEVEL="fastdebug" 66 ], [ENABLE_DEBUG="no"]) 67 68 AC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level], 69 [set the debug level (release, fastdebug, slowdebug, optimized) @<:@release@:>@])], 70 [ 71 DEBUG_LEVEL="${withval}" 72 if test "x$ENABLE_DEBUG" = xyes; then 73 AC_MSG_ERROR([You cannot use both --enable-debug and --with-debug-level at the same time.]) 74 fi 75 ]) 76 AC_MSG_RESULT([$DEBUG_LEVEL]) 77 78 if test "x$DEBUG_LEVEL" != xrelease && \ 79 test "x$DEBUG_LEVEL" != xoptimized && \ 80 test "x$DEBUG_LEVEL" != xfastdebug && \ 81 test "x$DEBUG_LEVEL" != xslowdebug; then 82 AC_MSG_ERROR([Allowed debug levels are: release, fastdebug, slowdebug and optimized]) 83 fi 84 85 # Translate DEBUG_LEVEL to debug level used by Hotspot 86 HOTSPOT_DEBUG_LEVEL="$DEBUG_LEVEL" 87 if test "x$DEBUG_LEVEL" = xrelease; then 88 HOTSPOT_DEBUG_LEVEL="product" 89 elif test "x$DEBUG_LEVEL" = xslowdebug; then 90 HOTSPOT_DEBUG_LEVEL="debug" 91 fi 92 93 if test "x$DEBUG_LEVEL" = xoptimized; then 94 # The debug level 'optimized' is a little special because it is currently only 95 # applicable to the HotSpot build where it means to build a completely 96 # optimized version of the VM without any debugging code (like for the 97 # 'release' debug level which is called 'product' in the HotSpot build) but 98 # with the exception that it can contain additional code which is otherwise 99 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to 100 # test new and/or experimental features which are not intended for customer 101 # shipment. Because these new features need to be tested and benchmarked in 102 # real world scenarios, we want to build the containing JDK at the 'release' 103 # debug level. 104 DEBUG_LEVEL="release" 105 fi 106 107 AC_SUBST(HOTSPOT_DEBUG_LEVEL) 108 AC_SUBST(DEBUG_LEVEL) 109 ]) 110 111 ############################################################################### 112 # 113 # Should we build only OpenJDK even if closed sources are present? 114 # 115 AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM], 116 [ 117 AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only], 118 [suppress building custom source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"]) 119 120 AC_MSG_CHECKING([if custom source is suppressed (openjdk-only)]) 121 AC_MSG_RESULT([$enable_openjdk_only]) 122 if test "x$enable_openjdk_only" = "xyes"; then 123 SUPPRESS_CUSTOM_EXTENSIONS="true" 124 elif test "x$enable_openjdk_only" = "xno"; then 125 SUPPRESS_CUSTOM_EXTENSIONS="false" 126 else 127 AC_MSG_ERROR([Invalid value for --enable-openjdk-only: $enable_openjdk_only]) 128 fi 129 130 # custom-make-dir is deprecated. Please use your custom-hook.m4 to override 131 # the IncludeCustomExtension macro. 132 BASIC_DEPRECATED_ARG_WITH(custom-make-dir) 133 ]) 134 135 AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS], 136 [ 137 # Should we build a JDK without a graphical UI? 138 AC_MSG_CHECKING([headless only]) 139 AC_ARG_ENABLE([headless-only], [AS_HELP_STRING([--enable-headless-only], 140 [only build headless (no GUI) support @<:@disabled@:>@])]) 141 142 if test "x$enable_headless_only" = "xyes"; then 143 ENABLE_HEADLESS_ONLY="true" 144 AC_MSG_RESULT([yes]) 145 elif test "x$enable_headless_only" = "xno"; then 146 ENABLE_HEADLESS_ONLY="false" 147 AC_MSG_RESULT([no]) 148 elif test "x$enable_headless_only" = "x"; then 149 ENABLE_HEADLESS_ONLY="false" 150 AC_MSG_RESULT([no]) 151 else 152 AC_MSG_ERROR([--enable-headless-only can only take yes or no]) 153 fi 154 155 AC_SUBST(ENABLE_HEADLESS_ONLY) 156 157 # Should we build the complete docs, or just a lightweight version? 158 AC_ARG_ENABLE([full-docs], [AS_HELP_STRING([--enable-full-docs], 159 [build complete documentation @<:@enabled if all tools found@:>@])]) 160 161 # Verify dependencies 162 AC_MSG_CHECKING([for graphviz dot]) 163 if test "x$DOT" != "x"; then 164 AC_MSG_RESULT([yes]) 165 else 166 AC_MSG_RESULT([no, cannot generate full docs]) 167 FULL_DOCS_DEP_MISSING=true 168 fi 169 170 AC_MSG_CHECKING([for pandoc]) 171 if test "x$PANDOC" != "x"; then 172 AC_MSG_RESULT([yes]) 173 else 174 AC_MSG_RESULT([no, cannot generate full docs]) 175 FULL_DOCS_DEP_MISSING=true 176 fi 177 178 AC_MSG_CHECKING([full docs]) 179 if test "x$enable_full_docs" = xyes; then 180 if test "x$FULL_DOCS_DEP_MISSING" = "xtrue"; then 181 AC_MSG_RESULT([no, missing dependencies]) 182 HELP_MSG_MISSING_DEPENDENCY([dot]) 183 AC_MSG_ERROR([Cannot enable full docs with missing dependencies. See above. $HELP_MSG]) 184 else 185 ENABLE_FULL_DOCS=true 186 AC_MSG_RESULT([yes, forced]) 187 fi 188 elif test "x$enable_full_docs" = xno; then 189 ENABLE_FULL_DOCS=false 190 AC_MSG_RESULT([no, forced]) 191 elif test "x$enable_full_docs" = x; then 192 # Check for prerequisites 193 if test "x$FULL_DOCS_DEP_MISSING" = xtrue; then 194 ENABLE_FULL_DOCS=false 195 AC_MSG_RESULT([no, missing dependencies]) 196 else 197 ENABLE_FULL_DOCS=true 198 AC_MSG_RESULT([yes, dependencies present]) 199 fi 200 else 201 AC_MSG_ERROR([--enable-full-docs can only take yes or no]) 202 fi 203 204 AC_SUBST(ENABLE_FULL_DOCS) 205 206 # Choose cacerts source file 207 AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file], 208 [specify alternative cacerts file])]) 209 AC_MSG_CHECKING([for cacerts file]) 210 if test "x$with_cacerts_file" == x; then 211 AC_MSG_RESULT([default]) 212 else 213 CACERTS_FILE=$with_cacerts_file 214 if test ! -f "$CACERTS_FILE"; then 215 AC_MSG_RESULT([fail]) 216 AC_MSG_ERROR([Specified cacerts file "$CACERTS_FILE" does not exist]) 217 fi 218 AC_MSG_RESULT([$CACERTS_FILE]) 219 fi 220 AC_SUBST(CACERTS_FILE) 221 222 # Enable or disable unlimited crypto 223 AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--disable-unlimited-crypto], 224 [Disable unlimited crypto policy @<:@enabled@:>@])],, 225 [enable_unlimited_crypto=yes]) 226 if test "x$enable_unlimited_crypto" = "xyes"; then 227 UNLIMITED_CRYPTO=true 228 else 229 UNLIMITED_CRYPTO=false 230 fi 231 AC_SUBST(UNLIMITED_CRYPTO) 232 233 # Should we build the serviceability agent (SA)? 234 INCLUDE_SA=true 235 if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(zeroshark); then 236 INCLUDE_SA=false 237 fi 238 if test "x$OPENJDK_TARGET_OS" = xaix ; then 239 INCLUDE_SA=false 240 fi 241 AC_SUBST(INCLUDE_SA) 242 243 # Compress jars 244 COMPRESS_JARS=false 245 246 AC_SUBST(COMPRESS_JARS) 247 248 # Setup default copyright year. Mostly overridden when building close to a new year. 249 AC_ARG_WITH(copyright-year, [AS_HELP_STRING([--with-copyright-year], 250 [Set copyright year value for build @<:@current year@:>@])]) 251 if test "x$with_copyright_year" = xyes; then 252 AC_MSG_ERROR([Copyright year must have a value]) 253 elif test "x$with_copyright_year" != x; then 254 COPYRIGHT_YEAR="$with_copyright_year" 255 else 256 COPYRIGHT_YEAR=`$DATE +'%Y'` 257 fi 258 AC_SUBST(COPYRIGHT_YEAR) 259 ]) 260 261 ############################################################################### 262 # 263 # Enable or disable the elliptic curve crypto implementation 264 # 265 AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC], 266 [ 267 AC_MSG_CHECKING([if elliptic curve crypto implementation is present]) 268 269 if test -d "${TOPDIR}/src/jdk.crypto.ec/share/native/libsunec/impl"; then 270 ENABLE_INTREE_EC=true 271 AC_MSG_RESULT([yes]) 272 else 273 ENABLE_INTREE_EC=false 274 AC_MSG_RESULT([no]) 275 fi 276 277 AC_SUBST(ENABLE_INTREE_EC) 278 ]) 279 280 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], 281 [ 282 # 283 # NATIVE_DEBUG_SYMBOLS 284 # This must be done after the toolchain is setup, since we're looking at objcopy. 285 # 286 AC_MSG_CHECKING([what type of native debug symbols to use]) 287 AC_ARG_WITH([native-debug-symbols], 288 [AS_HELP_STRING([--with-native-debug-symbols], 289 [set the native debug symbol configuration (none, internal, external, zipped) @<:@varying@:>@])], 290 [ 291 if test "x$OPENJDK_TARGET_OS" = xaix; then 292 if test "x$withval" = xexternal || test "x$withval" = xzipped; then 293 AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols]) 294 fi 295 fi 296 ], 297 [ 298 if test "x$OPENJDK_TARGET_OS" = xaix; then 299 # AIX doesn't support 'zipped' so use 'internal' as default 300 with_native_debug_symbols="internal" 301 else 302 if test "x$STATIC_BUILD" = xtrue; then 303 with_native_debug_symbols="none" 304 else 305 with_native_debug_symbols="zipped" 306 fi 307 fi 308 ]) 309 NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols 310 AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS]) 311 312 if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then 313 314 if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then 315 if test "x$OBJCOPY" = x; then 316 # enabling of enable-debug-symbols and can't find objcopy 317 # this is an error 318 AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols]) 319 fi 320 fi 321 322 COMPILE_WITH_DEBUG_SYMBOLS=true 323 COPY_DEBUG_SYMBOLS=true 324 ZIP_EXTERNAL_DEBUG_SYMBOLS=true 325 elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then 326 COMPILE_WITH_DEBUG_SYMBOLS=false 327 COPY_DEBUG_SYMBOLS=false 328 ZIP_EXTERNAL_DEBUG_SYMBOLS=false 329 elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then 330 COMPILE_WITH_DEBUG_SYMBOLS=true 331 COPY_DEBUG_SYMBOLS=false 332 ZIP_EXTERNAL_DEBUG_SYMBOLS=false 333 elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then 334 335 if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then 336 if test "x$OBJCOPY" = x; then 337 # enabling of enable-debug-symbols and can't find objcopy 338 # this is an error 339 AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols]) 340 fi 341 fi 342 343 COMPILE_WITH_DEBUG_SYMBOLS=true 344 COPY_DEBUG_SYMBOLS=true 345 ZIP_EXTERNAL_DEBUG_SYMBOLS=false 346 else 347 AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped]) 348 fi 349 350 # --enable-debug-symbols is deprecated. 351 # Please use --with-native-debug-symbols=[internal,external,zipped] . 352 BASIC_DEPRECATED_ARG_ENABLE(debug-symbols, debug_symbols, 353 [Please use --with-native-debug-symbols=[[internal,external,zipped]] .]) 354 355 # --enable-zip-debug-info is deprecated. 356 # Please use --with-native-debug-symbols=zipped . 357 BASIC_DEPRECATED_ARG_ENABLE(zip-debug-info, zip_debug_info, 358 [Please use --with-native-debug-symbols=zipped .]) 359 360 AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS) 361 AC_SUBST(COPY_DEBUG_SYMBOLS) 362 AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS) 363 ]) 364 365 ################################################################################ 366 # 367 # Gcov coverage data for hotspot 368 # 369 AC_DEFUN_ONCE([JDKOPT_SETUP_CODE_COVERAGE], 370 [ 371 AC_ARG_ENABLE(native-coverage, [AS_HELP_STRING([--enable-native-coverage], 372 [enable native compilation with code coverage data@<:@disabled@:>@])]) 373 GCOV_ENABLED="false" 374 if test "x$enable_native_coverage" = "xyes"; then 375 if test "x$TOOLCHAIN_TYPE" = "xgcc"; then 376 AC_MSG_CHECKING([if native coverage is enabled]) 377 AC_MSG_RESULT([yes]) 378 GCOV_CFLAGS="-fprofile-arcs -ftest-coverage -fno-inline" 379 GCOV_LDFLAGS="-fprofile-arcs" 380 JVM_CFLAGS="$JVM_CFLAGS $GCOV_CFLAGS" 381 JVM_LDFLAGS="$JVM_LDFLAGS $GCOV_LDFLAGS" 382 CFLAGS_JDKLIB="$CFLAGS_JDKLIB $GCOV_CFLAGS" 383 CFLAGS_JDKEXE="$CFLAGS_JDKEXE $GCOV_CFLAGS" 384 CXXFLAGS_JDKLIB="$CXXFLAGS_JDKLIB $GCOV_CFLAGS" 385 CXXFLAGS_JDKEXE="$CXXFLAGS_JDKEXE $GCOV_CFLAGS" 386 LDFLAGS_JDKLIB="$LDFLAGS_JDKLIB $GCOV_LDFLAGS" 387 LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE $GCOV_LDFLAGS" 388 GCOV_ENABLED="true" 389 else 390 AC_MSG_ERROR([--enable-native-coverage only works with toolchain type gcc]) 391 fi 392 elif test "x$enable_native_coverage" = "xno"; then 393 AC_MSG_CHECKING([if native coverage is enabled]) 394 AC_MSG_RESULT([no]) 395 elif test "x$enable_native_coverage" != "x"; then 396 AC_MSG_ERROR([--enable-native-coverage can only be assigned "yes" or "no"]) 397 fi 398 399 AC_SUBST(GCOV_ENABLED) 400 ]) 401 402 ############################################################################### 403 # 404 # AddressSanitizer 405 # 406 AC_DEFUN_ONCE([JDKOPT_SETUP_ADDRESS_SANITIZER], 407 [ 408 AC_ARG_ENABLE(asan, [AS_HELP_STRING([--enable-asan], 409 [enable AddressSanitizer if possible @<:@disabled@:>@])]) 410 ASAN_ENABLED="no" 411 if test "x$enable_asan" = "xyes"; then 412 case $TOOLCHAIN_TYPE in 413 gcc | clang) 414 AC_MSG_CHECKING([if asan is enabled]) 415 AC_MSG_RESULT([yes]) 416 ASAN_CFLAGS="-fsanitize=address -fno-omit-frame-pointer" 417 ASAN_LDFLAGS="-fsanitize=address" 418 JVM_CFLAGS="$JVM_CFLAGS $ASAN_CFLAGS" 419 JVM_LDFLAGS="$JVM_LDFLAGS $ASAN_LDFLAGS" 420 CFLAGS_JDKLIB="$CFLAGS_JDKLIB $ASAN_CFLAGS" 421 CFLAGS_JDKEXE="$CFLAGS_JDKEXE $ASAN_CFLAGS" 422 CXXFLAGS_JDKLIB="$CXXFLAGS_JDKLIB $ASAN_CFLAGS" 423 CXXFLAGS_JDKEXE="$CXXFLAGS_JDKEXE $ASAN_CFLAGS" 424 LDFLAGS_JDKLIB="$LDFLAGS_JDKLIB $ASAN_LDFLAGS" 425 LDFLAGS_JDKEXE="$LDFLAGS_JDKEXE $ASAN_LDFLAGS" 426 ASAN_ENABLED="yes" 427 ;; 428 *) 429 AC_MSG_ERROR([--enable-asan only works with toolchain type gcc or clang]) 430 ;; 431 esac 432 elif test "x$enable_asan" = "xno"; then 433 AC_MSG_CHECKING([if asan is enabled]) 434 AC_MSG_RESULT([no]) 435 elif test "x$enable_asan" != "x"; then 436 AC_MSG_ERROR([--enable-asan can only be assigned "yes" or "no"]) 437 fi 438 439 AC_SUBST(ASAN_ENABLED) 440 ]) 441 442 ################################################################################ 443 # 444 # Static build support. When enabled will generate static 445 # libraries instead of shared libraries for all JDK libs. 446 # 447 AC_DEFUN_ONCE([JDKOPT_SETUP_STATIC_BUILD], 448 [ 449 AC_ARG_ENABLE([static-build], [AS_HELP_STRING([--enable-static-build], 450 [enable static library build @<:@disabled@:>@])]) 451 STATIC_BUILD=false 452 if test "x$enable_static_build" = "xyes"; then 453 AC_MSG_CHECKING([if static build is enabled]) 454 AC_MSG_RESULT([yes]) 455 if test "x$OPENJDK_TARGET_OS" != "xmacosx"; then 456 AC_MSG_ERROR([--enable-static-build is only supported for macosx builds]) 457 fi 458 STATIC_BUILD_CFLAGS="-DSTATIC_BUILD=1" 459 CFLAGS_JDKLIB_EXTRA="$CFLAGS_JDKLIB_EXTRA $STATIC_BUILD_CFLAGS" 460 CXXFLAGS_JDKLIB_EXTRA="$CXXFLAGS_JDKLIB_EXTRA $STATIC_BUILD_CFLAGS" 461 STATIC_BUILD=true 462 elif test "x$enable_static_build" = "xno"; then 463 AC_MSG_CHECKING([if static build is enabled]) 464 AC_MSG_RESULT([no]) 465 elif test "x$enable_static_build" != "x"; then 466 AC_MSG_ERROR([--enable-static-build can only be assigned "yes" or "no"]) 467 fi 468 469 AC_SUBST(STATIC_BUILD) 470 ]) 471 472 ################################################################################ 473 # 474 # jlink options. 475 # We always keep packaged modules in JDK image. 476 # 477 AC_DEFUN_ONCE([JDKOPT_SETUP_JLINK_OPTIONS], 478 [ 479 AC_ARG_ENABLE([keep-packaged-modules], [AS_HELP_STRING([--disable-keep-packaged-modules], 480 [Do not keep packaged modules in jdk image @<:@enable@:>@])]) 481 482 AC_MSG_CHECKING([if packaged modules are kept]) 483 if test "x$enable_keep_packaged_modules" = "xyes"; then 484 AC_MSG_RESULT([yes]) 485 JLINK_KEEP_PACKAGED_MODULES=true 486 elif test "x$enable_keep_packaged_modules" = "xno"; then 487 AC_MSG_RESULT([no]) 488 JLINK_KEEP_PACKAGED_MODULES=false 489 elif test "x$enable_keep_packaged_modules" = "x"; then 490 AC_MSG_RESULT([yes (default)]) 491 JLINK_KEEP_PACKAGED_MODULES=true 492 else 493 AC_MSG_RESULT([error]) 494 AC_MSG_ERROR([--enable-keep-packaged-modules accepts no argument]) 495 fi 496 497 AC_SUBST(JLINK_KEEP_PACKAGED_MODULES) 498 ]) 499 500 ################################################################################ 501 # 502 # Check if building of the jtreg failure handler should be enabled. 503 # 504 AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER], 505 [ 506 AC_ARG_ENABLE([jtreg-failure-handler], [AS_HELP_STRING([--enable-jtreg-failure-handler], 507 [forces build of the jtreg failure handler to be enabled, missing dependencies 508 become fatal errors. Default is auto, where the failure handler is built if all 509 dependencies are present and otherwise just disabled.])]) 510 511 AC_MSG_CHECKING([if jtreg failure handler should be built]) 512 513 if test "x$enable_jtreg_failure_handler" = "xyes"; then 514 if test "x$JT_HOME" = "x"; then 515 AC_MSG_ERROR([Cannot enable jtreg failure handler without jtreg.]) 516 else 517 BUILD_FAILURE_HANDLER=true 518 AC_MSG_RESULT([yes, forced]) 519 fi 520 elif test "x$enable_jtreg_failure_handler" = "xno"; then 521 BUILD_FAILURE_HANDLER=false 522 AC_MSG_RESULT([no, forced]) 523 elif test "x$enable_jtreg_failure_handler" = "xauto" \ 524 || test "x$enable_jtreg_failure_handler" = "x"; then 525 if test "x$JT_HOME" = "x"; then 526 BUILD_FAILURE_HANDLER=false 527 AC_MSG_RESULT([no, missing jtreg]) 528 else 529 BUILD_FAILURE_HANDLER=true 530 AC_MSG_RESULT([yes, jtreg present]) 531 fi 532 else 533 AC_MSG_ERROR([Invalid value for --enable-jtreg-failure-handler: $enable_jtreg_failure_handler]) 534 fi 535 536 AC_SUBST(BUILD_FAILURE_HANDLER) 537 ]) 538 539 ################################################################################ 540 # 541 # Enable or disable generation of the classlist at build time 542 # 543 AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST], 544 [ 545 AC_ARG_ENABLE([generate-classlist], [AS_HELP_STRING([--disable-generate-classlist], 546 [forces enabling or disabling of the generation of a CDS classlist at build time. 547 Default is to generate it when either the server or client JVMs are built and 548 enable-cds is true.])]) 549 550 # Check if it's likely that it's possible to generate the classlist. Depending 551 # on exact jvm configuration it could be possible anyway. 552 if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client)); then 553 ENABLE_GENERATE_CLASSLIST_POSSIBLE="true" 554 else 555 ENABLE_GENERATE_CLASSLIST_POSSIBLE="false" 556 fi 557 558 AC_MSG_CHECKING([if the CDS classlist generation should be enabled]) 559 if test "x$enable_generate_classlist" = "xyes"; then 560 AC_MSG_RESULT([yes, forced]) 561 ENABLE_GENERATE_CLASSLIST="true" 562 if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xfalse"; then 563 AC_MSG_WARN([Generation of classlist might not be possible with JVM Variants $JVM_VARIANTS and enable-cds=$ENABLE_CDS]) 564 fi 565 elif test "x$enable_generate_classlist" = "xno"; then 566 AC_MSG_RESULT([no, forced]) 567 ENABLE_GENERATE_CLASSLIST="false" 568 elif test "x$enable_generate_classlist" = "x"; then 569 if test "x$ENABLE_GENERATE_CLASSLIST_POSSIBLE" = "xtrue"; then 570 AC_MSG_RESULT([yes]) 571 ENABLE_GENERATE_CLASSLIST="true" 572 else 573 AC_MSG_RESULT([no]) 574 ENABLE_GENERATE_CLASSLIST="false" 575 fi 576 else 577 AC_MSG_ERROR([Invalid value for --enable-generate-classlist: $enable_generate_classlist]) 578 fi 579 580 AC_SUBST(ENABLE_GENERATE_CLASSLIST) 581 ])