erikj@459: # simonis@2406: # Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved. erikj@459: # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. erikj@459: # erikj@459: # This code is free software; you can redistribute it and/or modify it erikj@459: # under the terms of the GNU General Public License version 2 only, as erikj@459: # published by the Free Software Foundation. Oracle designates this erikj@459: # particular file as subject to the "Classpath" exception as provided erikj@459: # by Oracle in the LICENSE file that accompanied this code. erikj@459: # erikj@459: # This code is distributed in the hope that it will be useful, but WITHOUT erikj@459: # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or erikj@459: # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License erikj@459: # version 2 for more details (a copy is included in the LICENSE file that erikj@459: # accompanied this code). erikj@459: # erikj@459: # You should have received a copy of the GNU General Public License version erikj@459: # 2 along with this work; if not, write to the Free Software Foundation, erikj@459: # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. erikj@459: # erikj@459: # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA erikj@459: # or visit www.oracle.com if you need additional information or have any erikj@459: # questions. erikj@459: # erikj@459: erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT], erikj@459: [ ihse@839: ############################################################################### ihse@839: # ihse@839: # Check which variant of the JDK that we want to build. ihse@839: # Currently we have: ihse@839: # normal: standard edition ihse@839: # but the custom make system may add other variants ihse@839: # ihse@839: # Effectively the JDK variant gives a name to a specific set of ihse@839: # modules to compile into the JDK. In the future, these modules ihse@839: # might even be Jigsaw modules. ihse@839: # ihse@839: AC_MSG_CHECKING([which variant of the JDK to build]) ihse@839: AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant], ihse@839: [JDK variant to build (normal) @<:@normal@:>@])]) erikj@459: ihse@839: if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then erikj@459: JDK_VARIANT="normal" ihse@839: else ohair@478: AC_MSG_ERROR([The available JDK variants are: normal]) ihse@839: fi ohair@478: ihse@839: AC_SUBST(JDK_VARIANT) erikj@459: ihse@839: AC_MSG_RESULT([$JDK_VARIANT]) erikj@459: ]) erikj@459: simonis@965: AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER], simonis@965: [ simonis@965: ############################################################################### simonis@965: # simonis@965: # Check which interpreter of the JVM we want to build. simonis@965: # Currently we have: simonis@965: # template: Template interpreter (the default) simonis@965: # cpp : C++ interpreter simonis@965: AC_MSG_CHECKING([which interpreter of the JVM to build]) simonis@965: AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter], simonis@965: [JVM interpreter to build (template, cpp) @<:@template@:>@])]) simonis@965: simonis@965: if test "x$with_jvm_interpreter" = x; then simonis@965: with_jvm_interpreter="template" simonis@965: fi simonis@965: simonis@965: JVM_INTERPRETER="$with_jvm_interpreter" simonis@965: simonis@965: if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then simonis@965: AC_MSG_ERROR([The available JVM interpreters are: template, cpp]) simonis@965: fi simonis@965: simonis@965: AC_SUBST(JVM_INTERPRETER) simonis@965: simonis@965: AC_MSG_RESULT([$with_jvm_interpreter]) simonis@965: ]) simonis@965: erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS], erikj@459: [ erikj@459: ihse@839: ############################################################################### ihse@839: # ihse@839: # Check which variants of the JVM that we want to build. ihse@839: # Currently we have: ihse@839: # server: normal interpreter and a tiered C1/C2 compiler ihse@839: # client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms) ihse@839: # minimal1: reduced form of client with optional VM services and features stripped out ihse@839: # kernel: kernel footprint JVM that passes the TCK without major performance problems, ihse@839: # ie normal interpreter and C1, only the serial GC, kernel jvmti etc ihse@839: # zero: no machine code interpreter, no compiler ihse@839: # zeroshark: zero interpreter and shark/llvm compiler backend simonis@965: # core: interpreter only, no compiler (only works on some platforms) ihse@839: AC_MSG_CHECKING([which variants of the JVM to build]) ihse@839: AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants], simonis@965: [JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])]) erikj@459: ihse@839: if test "x$with_jvm_variants" = x; then ihse@839: with_jvm_variants="server" ihse@839: fi erikj@459: ihse@839: JVM_VARIANTS=",$with_jvm_variants," kvn@972: TEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//' -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//' -e 's/core,//'` erikj@459: ihse@839: if test "x$TEST_VARIANTS" != "x,"; then kvn@972: AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core]) ihse@839: fi ihse@839: AC_MSG_RESULT([$with_jvm_variants]) erikj@459: ihse@839: JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'` ihse@839: JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'` ihse@839: JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'` ihse@839: JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` ihse@839: JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` ihse@839: JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'` kvn@972: JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'` erikj@459: ihse@839: if test "x$JVM_VARIANT_CLIENT" = xtrue; then erikj@459: if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then ihse@839: AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) erikj@459: fi ihse@839: fi ihse@839: if test "x$JVM_VARIANT_KERNEL" = xtrue; then erikj@459: if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then ihse@839: AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.]) erikj@459: fi ihse@839: fi ihse@839: if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then dholmes@542: if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then ihse@839: AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.]) dholmes@542: fi ihse@839: fi erikj@459: ihse@839: # Replace the commas with AND for use in the build directory name. mikael@1138: ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` kvn@972: COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/' -e 's/core,/1/'` ihse@839: if test "x$COUNT_VARIANTS" != "x,1"; then erikj@459: BUILDING_MULTIPLE_JVM_VARIANTS=yes ihse@839: else erikj@459: BUILDING_MULTIPLE_JVM_VARIANTS=no ihse@839: fi erikj@459: ihse@839: AC_SUBST(JVM_VARIANTS) ihse@839: AC_SUBST(JVM_VARIANT_SERVER) ihse@839: AC_SUBST(JVM_VARIANT_CLIENT) ihse@839: AC_SUBST(JVM_VARIANT_MINIMAL1) ihse@839: AC_SUBST(JVM_VARIANT_KERNEL) ihse@839: AC_SUBST(JVM_VARIANT_ZERO) ihse@839: AC_SUBST(JVM_VARIANT_ZEROSHARK) kvn@972: AC_SUBST(JVM_VARIANT_CORE) erikj@459: ihse@839: INCLUDE_SA=true ihse@839: if test "x$JVM_VARIANT_ZERO" = xtrue ; then omajid@671: INCLUDE_SA=false ihse@839: fi ihse@839: if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then omajid@671: INCLUDE_SA=false ihse@839: fi sgehwolf@2325: if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then simonis@965: INCLUDE_SA=false kvn@972: fi aph@1321: if test "x$OPENJDK_TARGET_CPU" = xaarch64; then aph@1321: INCLUDE_SA=false aph@1321: fi ihse@839: AC_SUBST(INCLUDE_SA) omajid@671: ihse@839: if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then ddehaven@1304: MACOSX_UNIVERSAL="false" ihse@839: fi ohair@478: ihse@839: AC_SUBST(MACOSX_UNIVERSAL) erikj@459: ]) erikj@459: erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], erikj@459: [ ihse@839: ############################################################################### ihse@839: # ihse@839: # Set the debug level ihse@839: # release: no debug information, all optimizations, no asserts. ihse@839: # fastdebug: debug information (-g), all optimizations, all asserts ihse@839: # slowdebug: debug information (-g), no optimizations, all asserts ihse@839: # ihse@839: DEBUG_LEVEL="release" ihse@839: AC_MSG_CHECKING([which debug level to use]) ihse@839: AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], ihse@839: [set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])], ihse@839: [ erikj@459: ENABLE_DEBUG="${enableval}" erikj@459: DEBUG_LEVEL="fastdebug" ihse@839: ], [ENABLE_DEBUG="no"]) erikj@459: ihse@839: AC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level], ihse@839: [set the debug level (release, fastdebug, slowdebug) @<:@release@:>@])], ihse@839: [ erikj@459: DEBUG_LEVEL="${withval}" erikj@459: if test "x$ENABLE_DEBUG" = xyes; then ihse@839: AC_MSG_ERROR([You cannot use both --enable-debug and --with-debug-level at the same time.]) erikj@459: fi ihse@839: ]) ihse@839: AC_MSG_RESULT([$DEBUG_LEVEL]) erikj@459: ihse@839: if test "x$DEBUG_LEVEL" != xrelease && \ ihse@839: test "x$DEBUG_LEVEL" != xfastdebug && \ ihse@839: test "x$DEBUG_LEVEL" != xslowdebug; then ihse@839: AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug]) ihse@839: fi erikj@459: erikj@459: ihse@839: ############################################################################### ihse@839: # ihse@839: # Setup legacy vars/targets and new vars to deal with different debug levels. ihse@839: # erikj@459: ihse@839: case $DEBUG_LEVEL in ihse@839: release ) ihse@839: VARIANT="OPT" ihse@839: FASTDEBUG="false" ihse@839: DEBUG_CLASSFILES="false" ihse@839: BUILD_VARIANT_RELEASE="" ihse@839: HOTSPOT_DEBUG_LEVEL="product" ihse@839: HOTSPOT_EXPORT="product" ihse@839: ;; ihse@839: fastdebug ) ihse@839: VARIANT="DBG" ihse@839: FASTDEBUG="true" ihse@839: DEBUG_CLASSFILES="true" ihse@839: BUILD_VARIANT_RELEASE="-fastdebug" ihse@839: HOTSPOT_DEBUG_LEVEL="fastdebug" ihse@839: HOTSPOT_EXPORT="fastdebug" ihse@839: ;; ihse@839: slowdebug ) ihse@839: VARIANT="DBG" ihse@839: FASTDEBUG="false" ihse@839: DEBUG_CLASSFILES="true" ihse@839: BUILD_VARIANT_RELEASE="-debug" ihse@839: HOTSPOT_DEBUG_LEVEL="jvmg" ihse@839: HOTSPOT_EXPORT="debug" ihse@839: ;; ihse@839: esac erikj@459: ihse@839: ##### ihse@839: # Generate the legacy makefile targets for hotspot. ihse@839: # The hotspot api for selecting the build artifacts, really, needs to be improved. ihse@839: # JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to ihse@839: # determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc ihse@839: # But until then ... ihse@839: HOTSPOT_TARGET="" erikj@459: ihse@839: if test "x$JVM_VARIANT_SERVER" = xtrue; then erikj@459: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} " ihse@839: fi erikj@459: ihse@839: if test "x$JVM_VARIANT_CLIENT" = xtrue; then erikj@459: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 " ihse@839: fi erikj@459: ihse@839: if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then dholmes@542: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 " ihse@839: fi dholmes@542: ihse@839: if test "x$JVM_VARIANT_KERNEL" = xtrue; then erikj@459: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel " ihse@839: fi erikj@459: ihse@839: if test "x$JVM_VARIANT_ZERO" = xtrue; then erikj@459: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero " ihse@839: fi erikj@459: ihse@839: if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then erikj@459: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " ihse@839: fi erikj@459: kvn@972: if test "x$JVM_VARIANT_CORE" = xtrue; then simonis@965: HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " kvn@972: fi simonis@965: ihse@839: HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" erikj@459: ihse@839: # On Macosx universal binaries are produced, but they only contain ihse@839: # 64 bit intel. This invalidates control of which jvms are built ihse@839: # from configure, but only server is valid anyway. Fix this ihse@839: # when hotspot makefiles are rewritten. ihse@839: if test "x$MACOSX_UNIVERSAL" = xtrue; then erikj@560: HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT} ihse@839: fi ohair@478: ihse@839: ##### erikj@459: ihse@839: AC_SUBST(DEBUG_LEVEL) ihse@839: AC_SUBST(VARIANT) ihse@839: AC_SUBST(FASTDEBUG) ihse@839: AC_SUBST(DEBUG_CLASSFILES) ihse@839: AC_SUBST(BUILD_VARIANT_RELEASE) erikj@459: ]) erikj@459: erikj@459: erikj@459: ############################################################################### erikj@459: # erikj@459: # Should we build only OpenJDK even if closed sources are present? erikj@459: # erikj@575: AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM], erikj@575: [ erikj@575: AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only], ihse@839: [suppress building custom source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"]) erikj@459: erikj@575: AC_MSG_CHECKING([for presence of closed sources]) erikj@575: if test -d "$SRC_ROOT/jdk/src/closed"; then ohair@494: CLOSED_SOURCE_PRESENT=yes erikj@575: else ohair@494: CLOSED_SOURCE_PRESENT=no erikj@575: fi erikj@575: AC_MSG_RESULT([$CLOSED_SOURCE_PRESENT]) ohair@494: erikj@575: AC_MSG_CHECKING([if closed source is suppressed (openjdk-only)]) erikj@575: SUPPRESS_CLOSED_SOURCE="$enable_openjdk_only" erikj@575: AC_MSG_RESULT([$SUPPRESS_CLOSED_SOURCE]) ohair@494: erikj@575: if test "x$CLOSED_SOURCE_PRESENT" = xno; then erikj@575: OPENJDK=true erikj@575: if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then erikj@575: AC_MSG_WARN([No closed source present, --enable-openjdk-only makes no sense]) erikj@575: fi erikj@575: else erikj@575: if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then erikj@575: OPENJDK=true erikj@575: else erikj@575: OPENJDK=false erikj@575: fi ohair@494: fi erikj@575: erikj@575: if test "x$OPENJDK" = "xtrue"; then erikj@575: SET_OPENJDK="OPENJDK=true" ohair@494: fi erikj@459: erikj@575: AC_SUBST(SET_OPENJDK) erikj@575: ]) erikj@459: erikj@575: AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS], erikj@575: [ erikj@459: ihse@839: ############################################################################### ihse@839: # ihse@839: # Should we build a JDK/JVM with headful support (ie a graphical ui)? ihse@839: # We always build headless support. ihse@839: # ihse@839: AC_MSG_CHECKING([headful support]) ihse@839: AC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful], ihse@839: [disable building headful support (graphical UI support) @<:@enabled@:>@])], ihse@839: [SUPPORT_HEADFUL=${enable_headful}], [SUPPORT_HEADFUL=yes]) erikj@459: ihse@839: SUPPORT_HEADLESS=yes ihse@839: BUILD_HEADLESS="BUILD_HEADLESS:=true" erikj@459: ihse@839: if test "x$SUPPORT_HEADFUL" = xyes; then erikj@459: # We are building both headful and headless. ihse@811: headful_msg="include support for both headful and headless" ihse@839: fi erikj@459: ihse@839: if test "x$SUPPORT_HEADFUL" = xno; then erikj@459: # Thus we are building headless only. erikj@459: BUILD_HEADLESS="BUILD_HEADLESS:=true" erikj@459: headful_msg="headless only" ihse@839: fi erikj@459: ihse@839: AC_MSG_RESULT([$headful_msg]) erikj@459: ihse@839: AC_SUBST(SUPPORT_HEADLESS) ihse@839: AC_SUBST(SUPPORT_HEADFUL) ihse@839: AC_SUBST(BUILD_HEADLESS) erikj@459: ihse@839: # Control wether Hotspot runs Queens test after build. ihse@839: AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build], ihse@839: [run the Queens test after Hotspot build @<:@disabled@:>@])],, ihse@839: [enable_hotspot_test_in_build=no]) ihse@839: if test "x$enable_hotspot_test_in_build" = "xyes"; then erikj@459: TEST_IN_BUILD=true ihse@839: else erikj@459: TEST_IN_BUILD=false ihse@839: fi ihse@839: AC_SUBST(TEST_IN_BUILD) erikj@459: ihse@839: ############################################################################### ihse@839: # ihse@839: # Choose cacerts source file ihse@839: # ihse@839: AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file], ihse@839: [specify alternative cacerts file])]) ihse@839: if test "x$with_cacerts_file" != x; then erikj@459: CACERTS_FILE=$with_cacerts_file ihse@839: else erikj@734: CACERTS_FILE=${SRC_ROOT}/jdk/src/share/lib/security/cacerts ihse@839: fi ihse@839: AC_SUBST(CACERTS_FILE) erikj@459: ihse@839: ############################################################################### ihse@839: # ihse@839: # Enable or disable unlimited crypto ihse@839: # ihse@839: AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto], ihse@839: [Enable unlimited crypto policy @<:@disabled@:>@])],, ihse@839: [enable_unlimited_crypto=no]) ihse@839: if test "x$enable_unlimited_crypto" = "xyes"; then ihse@495: UNLIMITED_CRYPTO=true ihse@839: else ihse@495: UNLIMITED_CRYPTO=false ihse@839: fi ihse@839: AC_SUBST(UNLIMITED_CRYPTO) ihse@495: ihse@839: ############################################################################### ihse@839: # ihse@839: # Enable or disable the elliptic curve crypto implementation ihse@839: # ihse@839: AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC], ihse@839: [ ihse@839: AC_MSG_CHECKING([if elliptic curve crypto implementation is present]) omajid@656: ihse@839: if test -d "${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then ihse@839: ENABLE_INTREE_EC=yes ihse@839: AC_MSG_RESULT([yes]) ihse@839: else ihse@839: ENABLE_INTREE_EC=no ihse@839: AC_MSG_RESULT([no]) ihse@839: fi omajid@656: ihse@839: AC_SUBST(ENABLE_INTREE_EC) ihse@839: ]) omajid@656: ihse@839: ############################################################################### ihse@839: # ihse@839: # Compress jars ihse@839: # ihse@839: COMPRESS_JARS=false erikj@459: ihse@839: AC_SUBST(COMPRESS_JARS) apetushkov@2504: apetushkov@2504: ############################################################################### apetushkov@2504: # apetushkov@2504: # Enable or disable JFR apetushkov@2504: # apetushkov@2504: AC_MSG_CHECKING([whether to build jfr]) neugens@2505: AC_ARG_ENABLE(jfr, [AS_HELP_STRING([--disable-jfr], neugens@2505: [Disable Java Flight Recorder support @<:@enabled@:>@])],, apetushkov@2506: [enable_jfr=auto]) apetushkov@2504: if test "x$enable_jfr" = "xno"; then apetushkov@2504: ENABLE_JFR=false apetushkov@2506: elif test "x$enable_jfr" = "xyes" -o "x$enable_jfr" = "xauto"; then apetushkov@2506: if test "x$JVM_VARIANT_MINIMAL1" = "xtrue" -o "x$JVM_VARIANT_ZERO" = "xtrue"; then apetushkov@2506: if test "x$enable_jfr" = "xyes"; then apetushkov@2506: AC_MSG_ERROR([cannot enable JFR on minimal1 VM or zero build]) apetushkov@2506: else apetushkov@2506: ENABLE_JFR=false apetushkov@2506: fi apetushkov@2506: else apetushkov@2506: ENABLE_JFR=true apetushkov@2506: fi apetushkov@2504: else apetushkov@2504: AC_MSG_ERROR([--enable-jfr must either be set to yes or no]) apetushkov@2504: fi apetushkov@2504: AC_MSG_RESULT([$ENABLE_JFR]) apetushkov@2504: AC_SUBST(ENABLE_JFR) erikj@459: ]) erikj@459: erikj@562: ############################################################################### erikj@562: # erikj@562: # Setup version numbers erikj@562: # erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VERSION_NUMBERS], erikj@459: [ ihse@839: # Source the version numbers ihse@839: . $AUTOCONF_DIR/version-numbers erikj@561: ihse@839: # Get the settings from parameters ihse@839: AC_ARG_WITH(milestone, [AS_HELP_STRING([--with-milestone], ihse@839: [Set milestone value for build @<:@internal@:>@])]) ihse@839: if test "x$with_milestone" = xyes; then ihse@839: AC_MSG_ERROR([Milestone must have a value]) ihse@839: elif test "x$with_milestone" != x; then erikj@561: MILESTONE="$with_milestone" ihse@839: fi ihse@839: if test "x$MILESTONE" = x; then ihse@839: MILESTONE=internal ihse@839: fi erikj@561: ihse@839: AC_ARG_WITH(update-version, [AS_HELP_STRING([--with-update-version], ihse@839: [Set update version value for build @<:@b00@:>@])]) ihse@839: if test "x$with_update_version" = xyes; then ihse@839: AC_MSG_ERROR([Update version must have a value]) ihse@839: elif test "x$with_update_version" != x; then ihse@839: JDK_UPDATE_VERSION="$with_update_version" erikj@990: # On macosx 10.7, it's not possible to set --with-update-version=0X due erikj@990: # to a bug in expr (which reduces it to just X). To work around this, we erikj@990: # always add a 0 to one digit update versions. erikj@990: if test "${#JDK_UPDATE_VERSION}" = "1"; then erikj@990: JDK_UPDATE_VERSION="0${JDK_UPDATE_VERSION}" erikj@990: fi ihse@839: fi erikj@727: ihse@839: AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix], ihse@839: [Add a custom string to the version string if build number isn't set.@<:@username_builddateb00@:>@])]) ihse@839: if test "x$with_user_release_suffix" = xyes; then ihse@839: AC_MSG_ERROR([Release suffix must have a value]) ihse@839: elif test "x$with_user_release_suffix" != x; then ihse@839: USER_RELEASE_SUFFIX="$with_user_release_suffix" ihse@839: fi erikj@813: ihse@839: AC_ARG_WITH(build-number, [AS_HELP_STRING([--with-build-number], ihse@839: [Set build number value for build @<:@b00@:>@])]) ihse@839: if test "x$with_build_number" = xyes; then ihse@839: AC_MSG_ERROR([Build number must have a value]) ihse@839: elif test "x$with_build_number" != x; then ihse@839: JDK_BUILD_NUMBER="$with_build_number" erikj@813: fi ihse@839: # Define default USER_RELEASE_SUFFIX if BUILD_NUMBER and USER_RELEASE_SUFFIX are not set ihse@839: if test "x$JDK_BUILD_NUMBER" = x; then ihse@839: JDK_BUILD_NUMBER=b00 ihse@839: if test "x$USER_RELEASE_SUFFIX" = x; then ihse@839: BUILD_DATE=`date '+%Y_%m_%d_%H_%M'` ihse@839: # Avoid [:alnum:] since it depends on the locale. ihse@839: CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'` ihse@839: USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ihse@839: fi ihse@839: fi erikj@561: ihse@839: # Now set the JDK version, milestone, build number etc. ihse@839: AC_SUBST(USER_RELEASE_SUFFIX) ihse@839: AC_SUBST(JDK_MAJOR_VERSION) ihse@839: AC_SUBST(JDK_MINOR_VERSION) ihse@839: AC_SUBST(JDK_MICRO_VERSION) ihse@839: AC_SUBST(JDK_UPDATE_VERSION) ihse@839: AC_SUBST(JDK_BUILD_NUMBER) ihse@839: AC_SUBST(MILESTONE) ihse@839: AC_SUBST(LAUNCHER_NAME) ihse@839: AC_SUBST(PRODUCT_NAME) ihse@839: AC_SUBST(PRODUCT_SUFFIX) ihse@839: AC_SUBST(JDK_RC_PLATFORM_NAME) ihse@839: AC_SUBST(MACOSX_BUNDLE_NAME_BASE) ihse@839: AC_SUBST(MACOSX_BUNDLE_ID_BASE) erikj@459: mr@2405: # The vendor name, if any mr@2405: AC_ARG_WITH(vendor-name, [AS_HELP_STRING([--with-vendor-name], simonis@2406: [Set vendor name. Among others, used to set the 'java.vendor' simonis@2406: and 'java.vm.vendor' system properties. @<:@not specified@:>@])]) mr@2405: if test "x$with_vendor_name" = xyes; then mr@2405: AC_MSG_ERROR([--with-vendor-name must have a value]) mr@2405: elif [ ! [[ $with_vendor_name =~ ^[[:print:]]*$ ]] ]; then simonis@2406: AC_MSG_ERROR([--with-vendor-name contains non-printing characters: $with_vendor_name]) simonis@2406: elif test "x$with_vendor_name" != x; then simonis@2406: # Only set COMPANY_NAME if '--with-vendor-name' was used and is not empty. simonis@2406: # Otherwise we will use the value from "version-numbers" included above. mr@2405: COMPANY_NAME="$with_vendor_name" mr@2405: fi mr@2405: AC_SUBST(COMPANY_NAME) mr@2405: simonis@2406: # The vendor URL, if any simonis@2406: AC_ARG_WITH(vendor-url, [AS_HELP_STRING([--with-vendor-url], simonis@2406: [Set the 'java.vendor.url' system property @<:@not specified@:>@])]) simonis@2406: if test "x$with_vendor_url" = xyes; then simonis@2406: AC_MSG_ERROR([--with-vendor-url must have a value]) simonis@2406: elif [ ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ]; then simonis@2406: AC_MSG_ERROR([--with-vendor-url contains non-printing characters: $with_vendor_url]) simonis@2406: else simonis@2406: VENDOR_URL="$with_vendor_url" simonis@2406: fi simonis@2406: AC_SUBST(VENDOR_URL) simonis@2406: simonis@2406: # The vendor bug URL, if any simonis@2406: AC_ARG_WITH(vendor-bug-url, [AS_HELP_STRING([--with-vendor-bug-url], simonis@2406: [Set the 'java.vendor.url.bug' system property @<:@not specified@:>@])]) simonis@2406: if test "x$with_vendor_bug_url" = xyes; then simonis@2406: AC_MSG_ERROR([--with-vendor-bug-url must have a value]) simonis@2406: elif [ ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ]; then simonis@2406: AC_MSG_ERROR([--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url]) simonis@2406: else simonis@2406: VENDOR_URL_BUG="$with_vendor_bug_url" simonis@2406: fi simonis@2406: AC_SUBST(VENDOR_URL_BUG) simonis@2406: simonis@2406: # The vendor VM bug URL, if any simonis@2406: AC_ARG_WITH(vendor-vm-bug-url, [AS_HELP_STRING([--with-vendor-vm-bug-url], simonis@2406: [Sets the bug URL which will be displayed when the VM crashes @<:@not specified@:>@])]) simonis@2406: if test "x$with_vendor_vm_bug_url" = xyes; then simonis@2406: AC_MSG_ERROR([--with-vendor-vm-bug-url must have a value]) simonis@2406: elif [ ! [[ $with_vendor_vm_bug_url =~ ^[[:print:]]*$ ]] ]; then simonis@2406: AC_MSG_ERROR([--with-vendor-vm-bug-url contains non-printing characters: $with_vendor_vm_bug_url]) simonis@2406: else simonis@2406: VENDOR_URL_VM_BUG="$with_vendor_vm_bug_url" simonis@2406: fi simonis@2406: AC_SUBST(VENDOR_URL_VM_BUG) simonis@2406: erikj@1202: AC_ARG_WITH(copyright-year, [AS_HELP_STRING([--with-copyright-year], erikj@1202: [Set copyright year value for build @<:@current year@:>@])]) erikj@1202: if test "x$with_copyright_year" = xyes; then erikj@1202: AC_MSG_ERROR([Copyright year must have a value]) erikj@1202: elif test "x$with_copyright_year" != x; then erikj@1202: COPYRIGHT_YEAR="$with_copyright_year" erikj@1202: else erikj@1202: COPYRIGHT_YEAR=`date +'%Y'` erikj@1202: fi ihse@839: AC_SUBST(COPYRIGHT_YEAR) erikj@459: ihse@839: if test "x$JDK_UPDATE_VERSION" != x; then ihse@839: JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}" ihse@839: else ihse@839: JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}" ihse@839: fi ihse@839: AC_SUBST(JDK_VERSION) erikj@459: erikj@1404: # The cooked update version used to encode trailing letters in the update erikj@1404: # version into a trailing number. That is no longer needed, but need to erikj@1404: # keep the format in 8u for compatibility. erikj@1404: COOKED_JDK_UPDATE_VERSION="${JDK_UPDATE_VERSION}0" erikj@1404: AC_SUBST(COOKED_JDK_UPDATE_VERSION) erikj@1404: ihse@839: COOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'` ihse@839: AC_SUBST(COOKED_BUILD_NUMBER) erikj@459: ]) erikj@459: erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_BUILD_TWEAKS], erikj@459: [ ihse@839: HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET" ihse@839: AC_SUBST(HOTSPOT_MAKE_ARGS) erikj@459: ihse@839: # The name of the Service Agent jar. ihse@839: SALIB_NAME="${LIBRARY_PREFIX}saproc${SHARED_LIBRARY_SUFFIX}" ihse@839: if test "x$OPENJDK_TARGET_OS" = "xwindows"; then ihse@839: SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}" ihse@839: fi ihse@839: AC_SUBST(SALIB_NAME) erikj@459: ]) erikj@459: erikj@459: AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS], erikj@459: [ sgehwolf@2236: # Backwards compatibility. --with-native-debug-symbols is preferred post JDK-8207234, sgehwolf@2236: # but if somebody does not specify it via configure, we still want to preserve old sgehwolf@2236: # behaviour of --disable-debug-symbols ihse@839: # ihse@839: # ENABLE_DEBUG_SYMBOLS ihse@839: # This must be done after the toolchain is setup, since we're looking at objcopy. ihse@839: # ihse@839: AC_ARG_ENABLE([debug-symbols], ihse@839: [AS_HELP_STRING([--disable-debug-symbols],[disable generation of debug symbols @<:@enabled@:>@])]) erikj@459: ihse@839: AC_MSG_CHECKING([if we should generate debug symbols]) erikj@459: ihse@839: if test "x$enable_debug_symbols" = "xyes" && test "x$OBJCOPY" = x; then ihse@839: # explicit enabling of enable-debug-symbols and can't find objcopy ihse@839: # this is an error ihse@839: AC_MSG_ERROR([Unable to find objcopy, cannot enable debug-symbols]) ihse@839: fi erikj@459: ihse@839: if test "x$enable_debug_symbols" = "xyes"; then ihse@839: ENABLE_DEBUG_SYMBOLS=true ihse@839: elif test "x$enable_debug_symbols" = "xno"; then erikj@813: ENABLE_DEBUG_SYMBOLS=false erikj@813: else dcubed@874: # Default is on if objcopy is found dcubed@874: if test "x$OBJCOPY" != x; then dcubed@874: ENABLE_DEBUG_SYMBOLS=true dcubed@874: # MacOS X and Windows don't use objcopy but default is on for those OSes dcubed@874: elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then ihse@839: ENABLE_DEBUG_SYMBOLS=true ihse@839: else ihse@839: ENABLE_DEBUG_SYMBOLS=false ihse@839: fi erikj@813: fi erikj@813: ihse@839: AC_MSG_RESULT([$ENABLE_DEBUG_SYMBOLS]) erikj@813: sgehwolf@2236: # Backwards compatibility. --with-native-debug-symbols is preferred post JDK-8207234, sgehwolf@2236: # but if somebody does not specify it via configure, we still want to preserve old sgehwolf@2236: # behaviour of --disable-zip-debug-info. ihse@839: # ihse@839: # ZIP_DEBUGINFO_FILES ihse@839: # ihse@839: AC_MSG_CHECKING([if we should zip debug-info files]) ihse@839: AC_ARG_ENABLE([zip-debug-info], ihse@839: [AS_HELP_STRING([--disable-zip-debug-info],[disable zipping of debug-info files @<:@enabled@:>@])], ihse@839: [enable_zip_debug_info="${enableval}"], [enable_zip_debug_info="yes"]) ihse@839: AC_MSG_RESULT([${enable_zip_debug_info}]) erikj@813: ihse@839: if test "x${enable_zip_debug_info}" = "xno"; then ihse@839: ZIP_DEBUGINFO_FILES=false sgehwolf@2236: elif test "x${enable_zip_debug_info}" = "xyes"; then ihse@839: ZIP_DEBUGINFO_FILES=true erikj@459: fi erikj@459: sgehwolf@2236: # sgehwolf@2236: # NATIVE_DEBUG_SYMBOLS sgehwolf@2236: # This must be done after the toolchain is setup, since we're looking at objcopy. sgehwolf@2236: # In addition, this must be done after ENABLE_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES sgehwolf@2236: # checking in order to preserve backwards compatibility post JDK-8207234. sgehwolf@2236: # sgehwolf@2236: AC_MSG_CHECKING([what type of native debug symbols to use (this will override previous settings)]) sgehwolf@2236: AC_ARG_WITH([native-debug-symbols], sgehwolf@2236: [AS_HELP_STRING([--with-native-debug-symbols], sgehwolf@2236: [set the native debug symbol configuration (none, internal, external, zipped) @<:@varying@:>@])], sgehwolf@2236: [ sgehwolf@2236: if test "x$OPENJDK_TARGET_OS" = xaix; then sgehwolf@2236: if test "x$with_native_debug_symbols" = xexternal || test "x$with_native_debug_symbols" = xzipped; then sgehwolf@2236: AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols]) sgehwolf@2236: fi sgehwolf@2236: fi sgehwolf@2236: ], sgehwolf@2236: [ sgehwolf@2236: # Default to unset for backwards compatibility sgehwolf@2236: with_native_debug_symbols="" sgehwolf@2236: ]) sgehwolf@2236: NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols sgehwolf@2236: if test "x$NATIVE_DEBUG_SYMBOLS" = x; then sgehwolf@2236: AC_MSG_RESULT([not specified]) sgehwolf@2236: else sgehwolf@2236: AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS]) sgehwolf@2236: fi sgehwolf@2236: # Default is empty sgehwolf@2236: DEBUG_BINARIES= sgehwolf@2236: # Default is min_strip. Possible values are min_strip, all_strip, no_strip sgehwolf@2236: STRIP_POLICY=min_strip sgehwolf@2236: sgehwolf@2236: if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then sgehwolf@2236: sgehwolf@2236: if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then sgehwolf@2236: if test "x$OBJCOPY" = x; then sgehwolf@2236: # enabling of enable-debug-symbols and can't find objcopy sgehwolf@2236: # this is an error sgehwolf@2236: AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols]) sgehwolf@2236: fi sgehwolf@2236: fi sgehwolf@2236: sgehwolf@2236: ENABLE_DEBUG_SYMBOLS=true sgehwolf@2236: STRIP_POLICY=min_strip sgehwolf@2236: ZIP_DEBUGINFO_FILES=true sgehwolf@2236: elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then sgehwolf@2236: ENABLE_DEBUG_SYMBOLS=false sgehwolf@2236: STRIP_POLICY=min_strip sgehwolf@2236: ZIP_DEBUGINFO_FILES=false sgehwolf@2236: elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then sgehwolf@2236: ENABLE_DEBUG_SYMBOLS=true sgehwolf@2236: STRIP_POLICY=no_strip sgehwolf@2236: ZIP_DEBUGINFO_FILES=false sgehwolf@2236: POST_STRIP_CMD= sgehwolf@2236: DEBUG_BINARIES=true sgehwolf@2236: elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then sgehwolf@2236: sgehwolf@2236: if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then sgehwolf@2236: if test "x$OBJCOPY" = x; then sgehwolf@2236: # enabling of enable-debug-symbols and can't find objcopy sgehwolf@2236: # this is an error sgehwolf@2236: AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols]) sgehwolf@2236: fi sgehwolf@2236: fi sgehwolf@2236: sgehwolf@2236: ENABLE_DEBUG_SYMBOLS=true sgehwolf@2236: STRIP_POLICY=min_strip sgehwolf@2236: ZIP_DEBUGINFO_FILES=false sgehwolf@2236: elif test "x$NATIVE_DEBUG_SYMBOLS" != x; then sgehwolf@2236: AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped]) sgehwolf@2236: else sgehwolf@2236: AC_MSG_NOTICE([--with-native-debug-symbols not specified. Using values from --disable-debug-symbols and --disable-zip-debug-info]) sgehwolf@2236: fi sgehwolf@2236: ihse@839: AC_SUBST(ENABLE_DEBUG_SYMBOLS) sgehwolf@2236: AC_SUBST(STRIP_POLICY) sgehwolf@2236: AC_SUBST(POST_STRIP_CMD) sgehwolf@2236: AC_SUBST(DEBUG_BINARIES) ihse@839: AC_SUBST(ZIP_DEBUGINFO_FILES) erikj@459: ]) ohair@478: ohair@478: # Support for customization of the build process. Some build files ohair@478: # will include counterparts from this location, if they exist. This allows ohair@478: # for a degree of customization of the build targets and the rules/recipes ohair@478: # to create them ohair@478: AC_ARG_WITH([custom-make-dir], [AS_HELP_STRING([--with-custom-make-dir], ihse@839: [use this directory for custom build/make files])], [CUSTOM_MAKE_DIR=$with_custom_make_dir]) ohair@478: AC_SUBST(CUSTOM_MAKE_DIR)