jdk-options.m4 19.5 KB
Newer Older
1
#
2
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
[
###############################################################################
#
# Check which variant of the JDK that we want to build.
# Currently we have:
#    normal:   standard edition   
33
# but the custom make system may add other variants
34 35 36 37 38 39 40
#
# Effectively the JDK variant gives a name to a specific set of
# modules to compile into the JDK. In the future, these modules
# might even be Jigsaw modules.
#
AC_MSG_CHECKING([which variant of the JDK to build])
AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
41
	[JDK variant to build (normal) @<:@normal@:>@])])
42 43 44 45

if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
    JDK_VARIANT="normal"
else
46
    AC_MSG_ERROR([The available JDK variants are: normal])
47
fi
48

49 50 51 52 53
AC_SUBST(JDK_VARIANT)

AC_MSG_RESULT([$JDK_VARIANT])
])

54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER],
[
###############################################################################
#
# Check which interpreter of the JVM we want to build.
# Currently we have:
#    template: Template interpreter (the default)
#    cpp     : C++ interpreter
AC_MSG_CHECKING([which interpreter of the JVM to build])
AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter],
	[JVM interpreter to build (template, cpp) @<:@template@:>@])])

if test "x$with_jvm_interpreter" = x; then
     with_jvm_interpreter="template"
fi

JVM_INTERPRETER="$with_jvm_interpreter"

if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then
   AC_MSG_ERROR([The available JVM interpreters are: template, cpp])
fi

AC_SUBST(JVM_INTERPRETER)

AC_MSG_RESULT([$with_jvm_interpreter])
])

81 82 83 84 85 86 87 88 89
AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS],
[

###############################################################################
#
# Check which variants of the JVM that we want to build.
# Currently we have:
#    server: normal interpreter and a tiered C1/C2 compiler
#    client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
90
#    minimal1: reduced form of client with optional VM services and features stripped out
91 92 93 94
#    kernel: kernel footprint JVM that passes the TCK without major performance problems,
#             ie normal interpreter and C1, only the serial GC, kernel jvmti etc
#    zero: no machine code interpreter, no compiler
#    zeroshark: zero interpreter and shark/llvm compiler backend
95
#    core: interpreter only, no compiler (only works on some platforms)
O
ohair 已提交
96
AC_MSG_CHECKING([which variants of the JVM to build])
97
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
98
	[JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark, core) @<:@server@:>@])])
99 100

if test "x$with_jvm_variants" = x; then
101
     with_jvm_variants="server"
102 103 104
fi

JVM_VARIANTS=",$with_jvm_variants,"
105
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,//'`
106 107

if test "x$TEST_VARIANTS" != "x,"; then
108
   AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark, core])
109 110 111 112 113
fi   
AC_MSG_RESULT([$with_jvm_variants])

JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
JVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'` 
114
JVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'`
115 116 117
JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
JVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
118
JVM_VARIANT_CORE=`$ECHO "$JVM_VARIANTS" | $SED -e '/,core,/!s/.*/false/g' -e '/,core,/s/.*/true/g'`
119 120 121 122 123 124 125 126 127 128 129

if test "x$JVM_VARIANT_CLIENT" = xtrue; then
    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
        AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
    fi
fi
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
        AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
    fi
fi
130 131 132 133 134
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
        AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
    fi
fi
135 136 137

# Replace the commas with AND for use in the build directory name.
ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
138
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/'`
139 140 141 142 143 144 145 146 147
if test "x$COUNT_VARIANTS" != "x,1"; then
    BUILDING_MULTIPLE_JVM_VARIANTS=yes
else
    BUILDING_MULTIPLE_JVM_VARIANTS=no
fi

AC_SUBST(JVM_VARIANTS)
AC_SUBST(JVM_VARIANT_SERVER)
AC_SUBST(JVM_VARIANT_CLIENT)
148
AC_SUBST(JVM_VARIANT_MINIMAL1)
149 150 151
AC_SUBST(JVM_VARIANT_KERNEL)
AC_SUBST(JVM_VARIANT_ZERO)
AC_SUBST(JVM_VARIANT_ZEROSHARK)
152
AC_SUBST(JVM_VARIANT_CORE)
153

154 155 156 157 158 159 160
INCLUDE_SA=true
if test "x$JVM_VARIANT_ZERO" = xtrue ; then
    INCLUDE_SA=false
fi
if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
    INCLUDE_SA=false
fi
161 162 163
if test "x$VAR_CPU" = xppc64 ; then
    INCLUDE_SA=false
fi
164 165
AC_SUBST(INCLUDE_SA)

166 167 168 169 170
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
   MACOSX_UNIVERSAL="true"
fi

AC_SUBST(MACOSX_UNIVERSAL)
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243

])

AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL],
[
###############################################################################
#
# Set the debug level
#    release: no debug information, all optimizations, no asserts.
#    fastdebug: debug information (-g), all optimizations, all asserts
#    slowdebug: debug information (-g), no optimizations, all asserts
#
DEBUG_LEVEL="release"              
AC_MSG_CHECKING([which debug level to use])
AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
	[set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])],
	[
        ENABLE_DEBUG="${enableval}"
        DEBUG_LEVEL="fastdebug"
    ], [ENABLE_DEBUG="no"])

AC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level],
	[set the debug level (release, fastdebug, slowdebug) @<:@release@:>@])],
	[
        DEBUG_LEVEL="${withval}"
        if test "x$ENABLE_DEBUG" = xyes; then
			AC_MSG_ERROR([You cannot use both --enable-debug and --with-debug-level at the same time.])
        fi
    ])
AC_MSG_RESULT([$DEBUG_LEVEL])

if test "x$DEBUG_LEVEL" != xrelease && \
   test "x$DEBUG_LEVEL" != xfastdebug && \
   test "x$DEBUG_LEVEL" != xslowdebug; then
   AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug])
fi


###############################################################################
#
# Setup legacy vars/targets and new vars to deal with different debug levels.
#

case $DEBUG_LEVEL in
      release )
          VARIANT="OPT"
          FASTDEBUG="false"
          DEBUG_CLASSFILES="false"            
          BUILD_VARIANT_RELEASE=""             
          HOTSPOT_DEBUG_LEVEL="product"
          HOTSPOT_EXPORT="product"
           ;;
      fastdebug )
          VARIANT="DBG"
          FASTDEBUG="true"
          DEBUG_CLASSFILES="true"            
          BUILD_VARIANT_RELEASE="-fastdebug"
          HOTSPOT_DEBUG_LEVEL="fastdebug"   
          HOTSPOT_EXPORT="fastdebug"
           ;;
      slowdebug )
          VARIANT="DBG"
          FASTDEBUG="false"
          DEBUG_CLASSFILES="true"            
          BUILD_VARIANT_RELEASE="-debug"             
          HOTSPOT_DEBUG_LEVEL="jvmg"
          HOTSPOT_EXPORT="debug"
           ;;
esac

#####
# Generate the legacy makefile targets for hotspot.
# The hotspot api for selecting the build artifacts, really, needs to be improved.
244 245 246
# JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to
# determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc
# But until then ...
247 248 249 250 251 252 253 254 255 256
HOTSPOT_TARGET=""

if test "x$JVM_VARIANT_SERVER" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
fi

if test "x$JVM_VARIANT_CLIENT" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
fi

257 258 259 260
if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
fi

261 262 263 264 265 266 267 268 269 270 271 272
if test "x$JVM_VARIANT_KERNEL" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
fi

if test "x$JVM_VARIANT_ZERO" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
fi

if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
fi

273 274 275 276
if test "x$JVM_VARIANT_CORE" = xtrue; then
    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core "
fi

277 278
HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"

279 280 281 282 283
# On Macosx universal binaries are produced, but they only contain
# 64 bit intel. This invalidates control of which jvms are built
# from configure, but only server is valid anyway. Fix this
# when hotspot makefiles are rewritten.
if test "x$MACOSX_UNIVERSAL" = xtrue; then
284
    HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
285 286
fi

287 288 289 290 291 292 293 294 295 296 297 298 299 300
#####

AC_SUBST(DEBUG_LEVEL)
AC_SUBST(VARIANT)
AC_SUBST(FASTDEBUG)
AC_SUBST(DEBUG_CLASSFILES)
AC_SUBST(BUILD_VARIANT_RELEASE)
])


###############################################################################
#
# Should we build only OpenJDK even if closed sources are present?
#
301 302 303 304
AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
[
  AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only],
    [suppress building custom source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"])
305

306 307
  AC_MSG_CHECKING([for presence of closed sources])
  if test -d "$SRC_ROOT/jdk/src/closed"; then
O
ohair 已提交
308
    CLOSED_SOURCE_PRESENT=yes
309
  else
O
ohair 已提交
310
    CLOSED_SOURCE_PRESENT=no
311 312
  fi
  AC_MSG_RESULT([$CLOSED_SOURCE_PRESENT])
O
ohair 已提交
313

314 315 316
  AC_MSG_CHECKING([if closed source is suppressed (openjdk-only)])
  SUPPRESS_CLOSED_SOURCE="$enable_openjdk_only"
  AC_MSG_RESULT([$SUPPRESS_CLOSED_SOURCE])
O
ohair 已提交
317

318
  if test "x$CLOSED_SOURCE_PRESENT" = xno; then
319
    OPENJDK=true
320 321 322
    if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
      AC_MSG_WARN([No closed source present, --enable-openjdk-only makes no sense])
    fi
O
ohair 已提交
323
  else
324 325 326 327 328
    if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
      OPENJDK=true
    else
      OPENJDK=false
    fi
O
ohair 已提交
329
  fi
330

331
  if test "x$OPENJDK" = "xtrue"; then
O
ohair 已提交
332
    SET_OPENJDK="OPENJDK=true"
333
  fi
334

335 336 337 338 339
  AC_SUBST(SET_OPENJDK)
])

AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
[
340 341 342 343 344 345 346 347

###############################################################################
#
# Should we build a JDK/JVM with headful support (ie a graphical ui)?
# We always build headless support.
#
AC_MSG_CHECKING([headful support])
AC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful],
O
ohair 已提交
348
	[disable building headful support (graphical UI support) @<:@enabled@:>@])],
349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372
    [SUPPORT_HEADFUL=${enable_headful}], [SUPPORT_HEADFUL=yes])

SUPPORT_HEADLESS=yes
BUILD_HEADLESS="BUILD_HEADLESS:=true"

if test "x$SUPPORT_HEADFUL" = xyes; then
    # We are building both headful and headless.
    headful_msg="inlude support for both headful and headless"
fi

if test "x$SUPPORT_HEADFUL" = xno; then
    # Thus we are building headless only.
    BUILD_HEADLESS="BUILD_HEADLESS:=true"
    headful_msg="headless only"
fi

AC_MSG_RESULT([$headful_msg])

AC_SUBST(SUPPORT_HEADLESS)
AC_SUBST(SUPPORT_HEADFUL)
AC_SUBST(BUILD_HEADLESS)

# Control wether Hotspot runs Queens test after build.
AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
O
ohair 已提交
373
	[run the Queens test after Hotspot build @<:@disabled@:>@])],,
374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390
    [enable_hotspot_test_in_build=no])
if test "x$enable_hotspot_test_in_build" = "xyes"; then
    TEST_IN_BUILD=true
else
    TEST_IN_BUILD=false
fi
AC_SUBST(TEST_IN_BUILD)

###############################################################################
#
# Choose cacerts source file
#
AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file],
    [specify alternative cacerts file])])
if test "x$with_cacerts_file" != x; then
    CACERTS_FILE=$with_cacerts_file
else
391
    CACERTS_FILE=${SRC_ROOT}/jdk/src/share/lib/security/cacerts
392 393 394
fi
AC_SUBST(CACERTS_FILE)

395 396 397 398 399 400 401 402 403 404 405 406 407 408
###############################################################################
#
# Enable or disable unlimited crypto
#
AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto],
        [Enable unlimited crypto policy @<:@disabled@:>@])],,
    [enable_unlimited_crypto=no])
if test "x$enable_unlimited_crypto" = "xyes"; then
    UNLIMITED_CRYPTO=true
else
    UNLIMITED_CRYPTO=false
fi
AC_SUBST(UNLIMITED_CRYPTO)

409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427
###############################################################################
#
# Enable or disable the elliptic curve crypto implementation
#
AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
[
AC_MSG_CHECKING([if elliptic curve crypto implementation is present])

if test -d "${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
    ENABLE_INTREE_EC=yes
    AC_MSG_RESULT([yes])
else
    ENABLE_INTREE_EC=no
    AC_MSG_RESULT([no])
fi

AC_SUBST(ENABLE_INTREE_EC)
])

428 429 430 431 432 433 434 435 436
###############################################################################
#
# Compress jars
#
COMPRESS_JARS=false

AC_SUBST(COMPRESS_JARS)
])

437 438 439 440
###############################################################################
#
# Setup version numbers
#
441 442 443
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VERSION_NUMBERS],
[
# Source the version numbers
444
. $AUTOCONF_DIR/version-numbers
445

446
# Get the settings from parameters
447 448 449
AC_ARG_WITH(milestone, [AS_HELP_STRING([--with-milestone], 
                       [Set milestone value for build @<:@internal@:>@])])
if test "x$with_milestone" = xyes; then
450
  AC_MSG_ERROR([Milestone must have a value])
451 452
elif test "x$with_milestone" != x; then
    MILESTONE="$with_milestone"
453 454
fi
if test "x$MILESTONE" = x; then
455
  MILESTONE=internal
456 457
fi

458 459 460 461 462 463 464 465
AC_ARG_WITH(update-version, [AS_HELP_STRING([--with-update-version], 
                          [Set update version value for build @<:@b00@:>@])])
if test "x$with_update_version" = xyes; then
  AC_MSG_ERROR([Update version must have a value])
elif test "x$with_update_version" != x; then
  JDK_UPDATE_VERSION="$with_update_version"
fi

466 467 468
AC_ARG_WITH(build-number, [AS_HELP_STRING([--with-build-number], 
                          [Set build number value for build @<:@b00@:>@])])
if test "x$with_build_number" = xyes; then
469
  AC_MSG_ERROR([Build number must have a value])
470
elif test "x$with_build_number" != x; then
471
  JDK_BUILD_NUMBER="$with_build_number"
472
fi
473
if test "x$JDK_BUILD_NUMBER" = x; then
474
  JDK_BUILD_NUMBER=b00
475
fi
476

477 478 479 480 481 482 483 484 485 486 487 488 489 490
AC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix], 
        [Add a custom string to the version string if build number isn't set.@<:@username_builddateb00@:>@])])
if test "x$with_user_release_suffix" = xyes; then
  AC_MSG_ERROR([Release suffix must have a value])
elif test "x$with_user_release_suffix" != x; then
  USER_RELEASE_SUFFIX="$with_user_release_suffix"
else
  BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
  # Avoid [:alnum:] since it depends on the locale.
  CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyz0123456789'`
  USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
fi
AC_SUBST(USER_RELEASE_SUFFIX)

491 492 493 494 495 496 497 498 499 500 501 502
# Now set the JDK version, milestone, build number etc.
AC_SUBST(JDK_MAJOR_VERSION)
AC_SUBST(JDK_MINOR_VERSION)
AC_SUBST(JDK_MICRO_VERSION)
AC_SUBST(JDK_UPDATE_VERSION)
AC_SUBST(JDK_BUILD_NUMBER)
AC_SUBST(MILESTONE)
AC_SUBST(LAUNCHER_NAME)
AC_SUBST(PRODUCT_NAME)
AC_SUBST(PRODUCT_SUFFIX)
AC_SUBST(JDK_RC_PLATFORM_NAME)
AC_SUBST(COMPANY_NAME)
O
ohair 已提交
503 504
AC_SUBST(MACOSX_BUNDLE_NAME_BASE)
AC_SUBST(MACOSX_BUNDLE_ID_BASE)
505 506 507 508 509

COPYRIGHT_YEAR=`date +'%Y'`
AC_SUBST(COPYRIGHT_YEAR)

if test "x$JDK_UPDATE_VERSION" != x; then
510
  JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
511
else
512
  JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
513 514 515 516 517 518 519 520 521
fi
AC_SUBST(JDK_VERSION)

COOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'`
AC_SUBST(COOKED_BUILD_NUMBER)
])

AC_DEFUN_ONCE([JDKOPT_SETUP_BUILD_TWEAKS],
[
522
HOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
523 524 525 526 527
AC_SUBST(HOTSPOT_MAKE_ARGS)

# The name of the Service Agent jar.
SALIB_NAME="${LIBRARY_PREFIX}saproc${SHARED_LIBRARY_SUFFIX}"
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
528
  SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}"
529 530 531 532 533 534 535 536 537 538 539 540
fi
AC_SUBST(SALIB_NAME)

])

AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
[
#
# ENABLE_DEBUG_SYMBOLS
# This must be done after the toolchain is setup, since we're looking at objcopy.
#
AC_ARG_ENABLE([debug-symbols],
541
              [AS_HELP_STRING([--disable-debug-symbols],[disable generation of debug symbols @<:@enabled@:>@])])
542 543 544

AC_MSG_CHECKING([if we should generate debug symbols])

545
if test "x$enable_debug_symbols" = "xyes" && test "x$OBJCOPY" = x; then
546 547 548 549 550
   # explicit enabling of enable-debug-symbols and can't find objcopy
   #   this is an error
   AC_MSG_ERROR([Unable to find objcopy, cannot enable debug-symbols])
fi

551 552 553 554 555 556 557 558
if test "x$enable_debug_symbols" = "xyes"; then
  ENABLE_DEBUG_SYMBOLS=true
elif test "x$enable_debug_symbols" = "xno"; then
  ENABLE_DEBUG_SYMBOLS=false
else
  # default on macosx is false
  if test "x$OPENJDK_TARGET_OS" = xmacosx; then
    ENABLE_DEBUG_SYMBOLS=false
559
  # Default is on if objcopy is found, otherwise off
560 561
  elif test "x$OBJCOPY" != x || test "x$OPENJDK_TARGET_OS" = xwindows; then
    ENABLE_DEBUG_SYMBOLS=true
562
  else
563
    ENABLE_DEBUG_SYMBOLS=false
564 565 566 567 568 569 570 571 572
  fi
fi

AC_MSG_RESULT([$ENABLE_DEBUG_SYMBOLS])

#
# ZIP_DEBUGINFO_FILES
#
AC_MSG_CHECKING([if we should zip debug-info files])
573 574 575
AC_ARG_ENABLE([zip-debug-info],
              [AS_HELP_STRING([--disable-zip-debug-info],[disable zipping of debug-info files @<:@enabled@:>@])],
	      [enable_zip_debug_info="${enableval}"], [enable_zip_debug_info="yes"])
576
AC_MSG_RESULT([${enable_zip_debug_info}])
577

578 579
if test "x${enable_zip_debug_info}" = "xno"; then
   ZIP_DEBUGINFO_FILES=false
580
else
581
   ZIP_DEBUGINFO_FILES=true
582 583 584 585 586 587 588
fi

AC_SUBST(ENABLE_DEBUG_SYMBOLS)
AC_SUBST(ZIP_DEBUGINFO_FILES)
AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
])
589 590 591 592 593 594

# Support for customization of the build process. Some build files
# will include counterparts from this location, if they exist. This allows
# for a degree of customization of the build targets and the rules/recipes
# to create them
AC_ARG_WITH([custom-make-dir], [AS_HELP_STRING([--with-custom-make-dir],
O
ohair 已提交
595
    [use this directory for custom build/make files])], [CUSTOM_MAKE_DIR=$with_custom_make_dir])
596
AC_SUBST(CUSTOM_MAKE_DIR)