jdk-options.m4 revision 852:22c6f0b7e2b5
1251875Speter#
2251875Speter# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
3251875Speter# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4251875Speter#
5251875Speter# This code is free software; you can redistribute it and/or modify it
6251875Speter# under the terms of the GNU General Public License version 2 only, as
7251875Speter# published by the Free Software Foundation.  Oracle designates this
8251875Speter# particular file as subject to the "Classpath" exception as provided
9251875Speter# by Oracle in the LICENSE file that accompanied this code.
10251875Speter#
11251875Speter# This code is distributed in the hope that it will be useful, but WITHOUT
12251875Speter# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13251875Speter# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14251875Speter# version 2 for more details (a copy is included in the LICENSE file that
15251875Speter# accompanied this code).
16251875Speter#
17251875Speter# You should have received a copy of the GNU General Public License version
18251875Speter# 2 along with this work; if not, write to the Free Software Foundation,
19251875Speter# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20251875Speter#
21251875Speter# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22251875Speter# or visit www.oracle.com if you need additional information or have any
23251875Speter# questions.
24251875Speter#
25251875Speter
26251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
27251875Speter[
28251875Speter###############################################################################
29251875Speter#
30251875Speter# Check which variant of the JDK that we want to build.
31251875Speter# Currently we have:
32251875Speter#    normal:   standard edition   
33251875Speter# but the custom make system may add other variants
34251875Speter#
35251875Speter# Effectively the JDK variant gives a name to a specific set of
36251875Speter# modules to compile into the JDK. In the future, these modules
37251875Speter# might even be Jigsaw modules.
38251875Speter#
39251875SpeterAC_MSG_CHECKING([which variant of the JDK to build])
40251875SpeterAC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
41251875Speter	[JDK variant to build (normal) @<:@normal@:>@])])
42251875Speter
43251875Speterif test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
44251875Speter    JDK_VARIANT="normal"
45251875Speterelse
46251875Speter    AC_MSG_ERROR([The available JDK variants are: normal])
47251875Speterfi
48251875Speter
49251875SpeterAC_SUBST(JDK_VARIANT)
50251875Speter
51251875SpeterAC_MSG_RESULT([$JDK_VARIANT])
52251875Speter])
53251875Speter
54251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS],
55251875Speter[
56251875Speter
57251875Speter###############################################################################
58251875Speter#
59251875Speter# Check which variants of the JVM that we want to build.
60251875Speter# Currently we have:
61251875Speter#    server: normal interpreter and a tiered C1/C2 compiler
62251875Speter#    client: normal interpreter and C1 (no C2 compiler) (only 32-bit platforms)
63251875Speter#    minimal1: reduced form of client with optional VM services and features stripped out
64251875Speter#    kernel: kernel footprint JVM that passes the TCK without major performance problems,
65251875Speter#             ie normal interpreter and C1, only the serial GC, kernel jvmti etc
66251875Speter#    zero: no machine code interpreter, no compiler
67251875Speter#    zeroshark: zero interpreter and shark/llvm compiler backend
68251875SpeterAC_MSG_CHECKING([which variants of the JVM to build])
69251875SpeterAC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
70251875Speter	[JVM variants (separated by commas) to build (server, client, minimal1, kernel, zero, zeroshark) @<:@server@:>@])])
71251875Speter
72251875Speterif test "x$with_jvm_variants" = x; then
73251875Speter     with_jvm_variants="server"
74251875Speterfi
75251875Speter
76251875SpeterJVM_VARIANTS=",$with_jvm_variants,"
77251875SpeterTEST_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,//' -e 's/client,//'  -e 's/minimal1,//' -e 's/kernel,//' -e 's/zero,//' -e 's/zeroshark,//'`
78251875Speter
79251875Speterif test "x$TEST_VARIANTS" != "x,"; then
80251875Speter   AC_MSG_ERROR([The available JVM variants are: server, client, minimal1, kernel, zero, zeroshark])
81251875Speterfi   
82251875SpeterAC_MSG_RESULT([$with_jvm_variants])
83251875Speter
84251875SpeterJVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'`
85251875SpeterJVM_VARIANT_CLIENT=`$ECHO "$JVM_VARIANTS" | $SED -e '/,client,/!s/.*/false/g' -e '/,client,/s/.*/true/g'` 
86251875SpeterJVM_VARIANT_MINIMAL1=`$ECHO "$JVM_VARIANTS" | $SED -e '/,minimal1,/!s/.*/false/g' -e '/,minimal1,/s/.*/true/g'`
87251875SpeterJVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'`
88251875SpeterJVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'`
89251875SpeterJVM_VARIANT_ZEROSHARK=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zeroshark,/!s/.*/false/g' -e '/,zeroshark,/s/.*/true/g'`
90251875Speter
91251875Speterif test "x$JVM_VARIANT_CLIENT" = xtrue; then
92251875Speter    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
93251875Speter        AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.])
94251875Speter    fi
95251875Speterfi
96251875Speterif test "x$JVM_VARIANT_KERNEL" = xtrue; then
97251875Speter    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
98251875Speter        AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.])
99251875Speter    fi
100251875Speterfi
101251875Speterif test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
102251875Speter    if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
103251875Speter        AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.])
104251875Speter    fi
105251875Speterfi
106251875Speter
107251875Speter# Replace the commas with AND for use in the build directory name.
108251875SpeterANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
109251875SpeterCOUNT_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/'`
110251875Speterif test "x$COUNT_VARIANTS" != "x,1"; then
111251875Speter    BUILDING_MULTIPLE_JVM_VARIANTS=yes
112251875Speterelse
113251875Speter    BUILDING_MULTIPLE_JVM_VARIANTS=no
114251875Speterfi
115251875Speter
116251875SpeterAC_SUBST(JVM_VARIANTS)
117251875SpeterAC_SUBST(JVM_VARIANT_SERVER)
118251875SpeterAC_SUBST(JVM_VARIANT_CLIENT)
119251875SpeterAC_SUBST(JVM_VARIANT_MINIMAL1)
120251875SpeterAC_SUBST(JVM_VARIANT_KERNEL)
121251875SpeterAC_SUBST(JVM_VARIANT_ZERO)
122251875SpeterAC_SUBST(JVM_VARIANT_ZEROSHARK)
123251875Speter
124251875SpeterINCLUDE_SA=true
125251875Speterif test "x$JVM_VARIANT_ZERO" = xtrue ; then
126251875Speter    INCLUDE_SA=false
127251875Speterfi
128251875Speterif test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
129251875Speter    INCLUDE_SA=false
130251875Speterfi
131251875SpeterAC_SUBST(INCLUDE_SA)
132251875Speter
133251875Speterif test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
134251875Speter   MACOSX_UNIVERSAL="true"
135251875Speterfi
136251875Speter
137251875SpeterAC_SUBST(MACOSX_UNIVERSAL)
138251875Speter
139251875Speter])
140251875Speter
141251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL],
142251875Speter[
143251875Speter###############################################################################
144251875Speter#
145251875Speter# Set the debug level
146251875Speter#    release: no debug information, all optimizations, no asserts.
147251875Speter#    fastdebug: debug information (-g), all optimizations, all asserts
148251875Speter#    slowdebug: debug information (-g), no optimizations, all asserts
149251875Speter#
150251875SpeterDEBUG_LEVEL="release"              
151251875SpeterAC_MSG_CHECKING([which debug level to use])
152251875SpeterAC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],
153251875Speter	[set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])],
154251875Speter	[
155251875Speter        ENABLE_DEBUG="${enableval}"
156251875Speter        DEBUG_LEVEL="fastdebug"
157251875Speter    ], [ENABLE_DEBUG="no"])
158251875Speter
159251875SpeterAC_ARG_WITH([debug-level], [AS_HELP_STRING([--with-debug-level],
160251875Speter	[set the debug level (release, fastdebug, slowdebug) @<:@release@:>@])],
161251875Speter	[
162251875Speter        DEBUG_LEVEL="${withval}"
163251875Speter        if test "x$ENABLE_DEBUG" = xyes; then
164251875Speter			AC_MSG_ERROR([You cannot use both --enable-debug and --with-debug-level at the same time.])
165269847Speter        fi
166269847Speter    ])
167269847SpeterAC_MSG_RESULT([$DEBUG_LEVEL])
168251875Speter
169269847Speterif test "x$DEBUG_LEVEL" != xrelease && \
170269847Speter   test "x$DEBUG_LEVEL" != xfastdebug && \
171269847Speter   test "x$DEBUG_LEVEL" != xslowdebug; then
172269847Speter   AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug])
173269847Speterfi
174269847Speter
175269847Speter
176269847Speter###############################################################################
177269847Speter#
178269847Speter# Setup legacy vars/targets and new vars to deal with different debug levels.
179269847Speter#
180269847Speter
181269847Spetercase $DEBUG_LEVEL in
182269847Speter      release )
183269847Speter          VARIANT="OPT"
184269847Speter          FASTDEBUG="false"
185269847Speter          DEBUG_CLASSFILES="false"            
186269847Speter          BUILD_VARIANT_RELEASE=""             
187269847Speter          HOTSPOT_DEBUG_LEVEL="product"
188269847Speter          HOTSPOT_EXPORT="product"
189251875Speter           ;;
190251875Speter      fastdebug )
191251875Speter          VARIANT="DBG"
192251875Speter          FASTDEBUG="true"
193251875Speter          DEBUG_CLASSFILES="true"            
194251875Speter          BUILD_VARIANT_RELEASE="-fastdebug"
195251875Speter          HOTSPOT_DEBUG_LEVEL="fastdebug"   
196251875Speter          HOTSPOT_EXPORT="fastdebug"
197251875Speter           ;;
198251875Speter      slowdebug )
199251875Speter          VARIANT="DBG"
200251875Speter          FASTDEBUG="false"
201251875Speter          DEBUG_CLASSFILES="true"            
202251875Speter          BUILD_VARIANT_RELEASE="-debug"             
203251875Speter          HOTSPOT_DEBUG_LEVEL="jvmg"
204251875Speter          HOTSPOT_EXPORT="debug"
205251875Speter           ;;
206251875Speteresac
207251875Speter
208251875Speter#####
209251875Speter# Generate the legacy makefile targets for hotspot.
210251875Speter# The hotspot api for selecting the build artifacts, really, needs to be improved.
211251875Speter# JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to
212251875Speter# determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc
213251875Speter# But until then ...
214251875SpeterHOTSPOT_TARGET=""
215251875Speter
216251875Speterif test "x$JVM_VARIANT_SERVER" = xtrue; then
217251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} "
218251875Speterfi
219251875Speter
220251875Speterif test "x$JVM_VARIANT_CLIENT" = xtrue; then
221251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 "
222251875Speterfi
223251875Speter
224251875Speterif test "x$JVM_VARIANT_MINIMAL1" = xtrue; then
225251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 "
226251875Speterfi
227251875Speter
228251875Speterif test "x$JVM_VARIANT_KERNEL" = xtrue; then
229251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel "
230251875Speterfi
231251875Speter
232251875Speterif test "x$JVM_VARIANT_ZERO" = xtrue; then
233251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero "
234251875Speterfi
235251875Speter
236251875Speterif test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then
237251875Speter    HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark "
238251875Speterfi
239251875Speter
240251875SpeterHOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT"
241251875Speter
242251875Speter# On Macosx universal binaries are produced, but they only contain
243251875Speter# 64 bit intel. This invalidates control of which jvms are built
244251875Speter# from configure, but only server is valid anyway. Fix this
245251875Speter# when hotspot makefiles are rewritten.
246251875Speterif test "x$MACOSX_UNIVERSAL" = xtrue; then
247251875Speter    HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT}
248251875Speterfi
249251875Speter
250251875Speter#####
251251875Speter
252251875SpeterAC_SUBST(DEBUG_LEVEL)
253251875SpeterAC_SUBST(VARIANT)
254251875SpeterAC_SUBST(FASTDEBUG)
255251875SpeterAC_SUBST(DEBUG_CLASSFILES)
256251875SpeterAC_SUBST(BUILD_VARIANT_RELEASE)
257251875Speter])
258251875Speter
259251875Speter
260251875Speter###############################################################################
261251875Speter#
262251875Speter# Should we build only OpenJDK even if closed sources are present?
263251875Speter#
264251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
265251875Speter[
266251875Speter  AC_ARG_ENABLE([openjdk-only], [AS_HELP_STRING([--enable-openjdk-only],
267251875Speter    [suppress building custom source even if present @<:@disabled@:>@])],,[enable_openjdk_only="no"])
268251875Speter
269251875Speter  AC_MSG_CHECKING([for presence of closed sources])
270251875Speter  if test -d "$SRC_ROOT/jdk/src/closed"; then
271251875Speter    CLOSED_SOURCE_PRESENT=yes
272251875Speter  else
273251875Speter    CLOSED_SOURCE_PRESENT=no
274251875Speter  fi
275251875Speter  AC_MSG_RESULT([$CLOSED_SOURCE_PRESENT])
276251875Speter
277251875Speter  AC_MSG_CHECKING([if closed source is suppressed (openjdk-only)])
278251875Speter  SUPPRESS_CLOSED_SOURCE="$enable_openjdk_only"
279251875Speter  AC_MSG_RESULT([$SUPPRESS_CLOSED_SOURCE])
280251875Speter
281251875Speter  if test "x$CLOSED_SOURCE_PRESENT" = xno; then
282251875Speter    OPENJDK=true
283251875Speter    if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
284251875Speter      AC_MSG_WARN([No closed source present, --enable-openjdk-only makes no sense])
285251875Speter    fi
286251875Speter  else
287251875Speter    if test "x$SUPPRESS_CLOSED_SOURCE" = "xyes"; then
288251875Speter      OPENJDK=true
289251875Speter    else
290251875Speter      OPENJDK=false
291251875Speter    fi
292251875Speter  fi
293251875Speter
294251875Speter  if test "x$OPENJDK" = "xtrue"; then
295251875Speter    SET_OPENJDK="OPENJDK=true"
296251875Speter  fi
297251875Speter
298251875Speter  AC_SUBST(SET_OPENJDK)
299251875Speter])
300251875Speter
301251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
302251875Speter[
303251875Speter
304251875Speter###############################################################################
305251875Speter#
306251875Speter# Should we build a JDK/JVM with headful support (ie a graphical ui)?
307251875Speter# We always build headless support.
308251875Speter#
309251875SpeterAC_MSG_CHECKING([headful support])
310251875SpeterAC_ARG_ENABLE([headful], [AS_HELP_STRING([--disable-headful],
311251875Speter	[disable building headful support (graphical UI support) @<:@enabled@:>@])],
312251875Speter    [SUPPORT_HEADFUL=${enable_headful}], [SUPPORT_HEADFUL=yes])
313251875Speter
314251875SpeterSUPPORT_HEADLESS=yes
315251875SpeterBUILD_HEADLESS="BUILD_HEADLESS:=true"
316251875Speter
317251875Speterif test "x$SUPPORT_HEADFUL" = xyes; then
318251875Speter    # We are building both headful and headless.
319251875Speter    headful_msg="include support for both headful and headless"
320251875Speterfi
321251875Speter
322251875Speterif test "x$SUPPORT_HEADFUL" = xno; then
323251875Speter    # Thus we are building headless only.
324251875Speter    BUILD_HEADLESS="BUILD_HEADLESS:=true"
325251875Speter    headful_msg="headless only"
326251875Speterfi
327251875Speter
328251875SpeterAC_MSG_RESULT([$headful_msg])
329251875Speter
330251875SpeterAC_SUBST(SUPPORT_HEADLESS)
331251875SpeterAC_SUBST(SUPPORT_HEADFUL)
332251875SpeterAC_SUBST(BUILD_HEADLESS)
333251875Speter
334251875Speter# Control wether Hotspot runs Queens test after build.
335251875SpeterAC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build],
336251875Speter	[run the Queens test after Hotspot build @<:@disabled@:>@])],,
337251875Speter    [enable_hotspot_test_in_build=no])
338251875Speterif test "x$enable_hotspot_test_in_build" = "xyes"; then
339251875Speter    TEST_IN_BUILD=true
340251875Speterelse
341251875Speter    TEST_IN_BUILD=false
342251875Speterfi
343251875SpeterAC_SUBST(TEST_IN_BUILD)
344251875Speter
345251875Speter###############################################################################
346251875Speter#
347251875Speter# Choose cacerts source file
348251875Speter#
349251875SpeterAC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file],
350251875Speter    [specify alternative cacerts file])])
351251875Speterif test "x$with_cacerts_file" != x; then
352251875Speter    CACERTS_FILE=$with_cacerts_file
353251875Speterelse
354251875Speter    CACERTS_FILE=${SRC_ROOT}/jdk/src/share/lib/security/cacerts
355251875Speterfi
356251875SpeterAC_SUBST(CACERTS_FILE)
357251875Speter
358251875Speter###############################################################################
359251875Speter#
360251875Speter# Enable or disable unlimited crypto
361251875Speter#
362251875SpeterAC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto],
363251875Speter        [Enable unlimited crypto policy @<:@disabled@:>@])],,
364251875Speter    [enable_unlimited_crypto=no])
365251875Speterif test "x$enable_unlimited_crypto" = "xyes"; then
366251875Speter    UNLIMITED_CRYPTO=true
367251875Speterelse
368251875Speter    UNLIMITED_CRYPTO=false
369251875Speterfi
370251875SpeterAC_SUBST(UNLIMITED_CRYPTO)
371251875Speter
372251875Speter###############################################################################
373251875Speter#
374251875Speter# Enable or disable the elliptic curve crypto implementation
375251875Speter#
376251875SpeterAC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
377251875Speter[
378251875SpeterAC_MSG_CHECKING([if elliptic curve crypto implementation is present])
379251875Speter
380251875Speterif test -d "${SRC_ROOT}/jdk/src/share/native/sun/security/ec/impl"; then
381251875Speter    ENABLE_INTREE_EC=yes
382251875Speter    AC_MSG_RESULT([yes])
383251875Speterelse
384251875Speter    ENABLE_INTREE_EC=no
385251875Speter    AC_MSG_RESULT([no])
386251875Speterfi
387251875Speter
388251875SpeterAC_SUBST(ENABLE_INTREE_EC)
389251875Speter])
390251875Speter
391251875Speter###############################################################################
392251875Speter#
393251875Speter# Compress jars
394251875Speter#
395251875SpeterCOMPRESS_JARS=false
396251875Speter
397251875SpeterAC_SUBST(COMPRESS_JARS)
398251875Speter])
399251875Speter
400251875Speter###############################################################################
401251875Speter#
402251875Speter# Setup version numbers
403251875Speter#
404251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VERSION_NUMBERS],
405251875Speter[
406251875Speter# Source the version numbers
407251875Speter. $AUTOCONF_DIR/version-numbers
408251875Speter
409251875Speter# Get the settings from parameters
410251875SpeterAC_ARG_WITH(milestone, [AS_HELP_STRING([--with-milestone], 
411251875Speter                       [Set milestone value for build @<:@internal@:>@])])
412251875Speterif test "x$with_milestone" = xyes; then
413251875Speter  AC_MSG_ERROR([Milestone must have a value])
414251875Speterelif test "x$with_milestone" != x; then
415251875Speter    MILESTONE="$with_milestone"
416251875Speterfi
417251875Speterif test "x$MILESTONE" = x; then
418251875Speter  MILESTONE=internal
419251875Speterfi
420251875Speter
421251875SpeterAC_ARG_WITH(update-version, [AS_HELP_STRING([--with-update-version], 
422251875Speter                          [Set update version value for build @<:@b00@:>@])])
423251875Speterif test "x$with_update_version" = xyes; then
424251875Speter  AC_MSG_ERROR([Update version must have a value])
425251875Speterelif test "x$with_update_version" != x; then
426251875Speter  JDK_UPDATE_VERSION="$with_update_version"
427251875Speterfi
428251875Speter
429251875SpeterAC_ARG_WITH(user-release-suffix, [AS_HELP_STRING([--with-user-release-suffix], 
430251875Speter        [Add a custom string to the version string if build number isn't set.@<:@username_builddateb00@:>@])])
431251875Speterif test "x$with_user_release_suffix" = xyes; then
432251875Speter  AC_MSG_ERROR([Release suffix must have a value])
433251875Speterelif test "x$with_user_release_suffix" != x; then
434251875Speter  USER_RELEASE_SUFFIX="$with_user_release_suffix"
435251875Speterfi
436251875Speter
437251875SpeterAC_ARG_WITH(build-number, [AS_HELP_STRING([--with-build-number], 
438251875Speter                          [Set build number value for build @<:@b00@:>@])])
439251875Speterif test "x$with_build_number" = xyes; then
440251875Speter  AC_MSG_ERROR([Build number must have a value])
441251875Speterelif test "x$with_build_number" != x; then
442251875Speter  JDK_BUILD_NUMBER="$with_build_number"
443251875Speterfi
444251875Speter# Define default USER_RELEASE_SUFFIX if BUILD_NUMBER and USER_RELEASE_SUFFIX are not set
445251875Speterif test "x$JDK_BUILD_NUMBER" = x; then
446251875Speter  JDK_BUILD_NUMBER=b00
447251875Speter  if test "x$USER_RELEASE_SUFFIX" = x; then
448251875Speter    BUILD_DATE=`date '+%Y_%m_%d_%H_%M'`
449251875Speter    # Avoid [:alnum:] since it depends on the locale.
450251875Speter    CLEAN_USERNAME=`echo "$USER" | $TR -d -c 'abcdefghijklmnopqrstuvqxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'`
451251875Speter    USER_RELEASE_SUFFIX=`echo "${CLEAN_USERNAME}_${BUILD_DATE}" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
452251875Speter  fi
453251875Speterfi
454251875Speter
455251875Speter# Now set the JDK version, milestone, build number etc.
456251875SpeterAC_SUBST(USER_RELEASE_SUFFIX)
457251875SpeterAC_SUBST(JDK_MAJOR_VERSION)
458251875SpeterAC_SUBST(JDK_MINOR_VERSION)
459251875SpeterAC_SUBST(JDK_MICRO_VERSION)
460251875SpeterAC_SUBST(JDK_UPDATE_VERSION)
461251875SpeterAC_SUBST(JDK_BUILD_NUMBER)
462251875SpeterAC_SUBST(MILESTONE)
463251875SpeterAC_SUBST(LAUNCHER_NAME)
464251875SpeterAC_SUBST(PRODUCT_NAME)
465251875SpeterAC_SUBST(PRODUCT_SUFFIX)
466251875SpeterAC_SUBST(JDK_RC_PLATFORM_NAME)
467251875SpeterAC_SUBST(COMPANY_NAME)
468251875SpeterAC_SUBST(MACOSX_BUNDLE_NAME_BASE)
469251875SpeterAC_SUBST(MACOSX_BUNDLE_ID_BASE)
470251875Speter
471251875SpeterCOPYRIGHT_YEAR=`date +'%Y'`
472251875SpeterAC_SUBST(COPYRIGHT_YEAR)
473251875Speter
474251875Speterif test "x$JDK_UPDATE_VERSION" != x; then
475251875Speter  JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}_${JDK_UPDATE_VERSION}"
476251875Speterelse
477251875Speter  JDK_VERSION="${JDK_MAJOR_VERSION}.${JDK_MINOR_VERSION}.${JDK_MICRO_VERSION}"
478251875Speterfi
479251875SpeterAC_SUBST(JDK_VERSION)
480251875Speter
481251875SpeterCOOKED_BUILD_NUMBER=`$ECHO $JDK_BUILD_NUMBER | $SED -e 's/^b//' -e 's/^0//'`
482251875SpeterAC_SUBST(COOKED_BUILD_NUMBER)
483251875Speter])
484251875Speter
485251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_BUILD_TWEAKS],
486251875Speter[
487251875SpeterHOTSPOT_MAKE_ARGS="$HOTSPOT_TARGET"
488251875SpeterAC_SUBST(HOTSPOT_MAKE_ARGS)
489251875Speter
490251875Speter# The name of the Service Agent jar.
491251875SpeterSALIB_NAME="${LIBRARY_PREFIX}saproc${SHARED_LIBRARY_SUFFIX}"
492251875Speterif test "x$OPENJDK_TARGET_OS" = "xwindows"; then
493251875Speter  SALIB_NAME="${LIBRARY_PREFIX}sawindbg${SHARED_LIBRARY_SUFFIX}"
494251875Speterfi
495251875SpeterAC_SUBST(SALIB_NAME)
496251875Speter
497251875Speter])
498251875Speter
499251875SpeterAC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
500251875Speter[
501251875Speter#
502251875Speter# ENABLE_DEBUG_SYMBOLS
503251875Speter# This must be done after the toolchain is setup, since we're looking at objcopy.
504251875Speter#
505251875SpeterAC_ARG_ENABLE([debug-symbols],
506251875Speter              [AS_HELP_STRING([--disable-debug-symbols],[disable generation of debug symbols @<:@enabled@:>@])])
507251875Speter
508251875SpeterAC_MSG_CHECKING([if we should generate debug symbols])
509251875Speter
510251875Speterif test "x$enable_debug_symbols" = "xyes" && test "x$OBJCOPY" = x; then
511251875Speter   # explicit enabling of enable-debug-symbols and can't find objcopy
512251875Speter   #   this is an error
513251875Speter   AC_MSG_ERROR([Unable to find objcopy, cannot enable debug-symbols])
514251875Speterfi
515251875Speter
516251875Speterif test "x$enable_debug_symbols" = "xyes"; then
517251875Speter  ENABLE_DEBUG_SYMBOLS=true
518251875Speterelif test "x$enable_debug_symbols" = "xno"; then
519251875Speter  ENABLE_DEBUG_SYMBOLS=false
520251875Speterelse
521251875Speter  # Default is on if objcopy is found
522251875Speter  if test "x$OBJCOPY" != x; then
523251875Speter    ENABLE_DEBUG_SYMBOLS=true
524251875Speter  # MacOS X and Windows don't use objcopy but default is on for those OSes
525251875Speter  elif test "x$OPENJDK_TARGET_OS" = xmacosx || test "x$OPENJDK_TARGET_OS" = xwindows; then
526251875Speter    ENABLE_DEBUG_SYMBOLS=true
527251875Speter  else
528251875Speter    ENABLE_DEBUG_SYMBOLS=false
529251875Speter  fi
530251875Speterfi
531251875Speter
532251875SpeterAC_MSG_RESULT([$ENABLE_DEBUG_SYMBOLS])
533251875Speter
534251875Speter#
535251875Speter# ZIP_DEBUGINFO_FILES
536251875Speter#
537251875SpeterAC_MSG_CHECKING([if we should zip debug-info files])
538251875SpeterAC_ARG_ENABLE([zip-debug-info],
539251875Speter              [AS_HELP_STRING([--disable-zip-debug-info],[disable zipping of debug-info files @<:@enabled@:>@])],
540251875Speter	      [enable_zip_debug_info="${enableval}"], [enable_zip_debug_info="yes"])
541251875SpeterAC_MSG_RESULT([${enable_zip_debug_info}])
542251875Speter
543251875Speterif test "x${enable_zip_debug_info}" = "xno"; then
544251875Speter   ZIP_DEBUGINFO_FILES=false
545251875Speterelse
546251875Speter   ZIP_DEBUGINFO_FILES=true
547251875Speterfi
548251875Speter
549251875SpeterAC_SUBST(ENABLE_DEBUG_SYMBOLS)
550251875SpeterAC_SUBST(ZIP_DEBUGINFO_FILES)
551251875SpeterAC_SUBST(CFLAGS_DEBUG_SYMBOLS)
552251875SpeterAC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
553])
554
555# Support for customization of the build process. Some build files
556# will include counterparts from this location, if they exist. This allows
557# for a degree of customization of the build targets and the rules/recipes
558# to create them
559AC_ARG_WITH([custom-make-dir], [AS_HELP_STRING([--with-custom-make-dir],
560    [use this directory for custom build/make files])], [CUSTOM_MAKE_DIR=$with_custom_make_dir])
561AC_SUBST(CUSTOM_MAKE_DIR)
562