21 # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
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 |
22 # or visit www.oracle.com if you need additional information or have any |
23 # questions. |
23 # questions. |
24 # |
24 # |
25 |
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. |
26 AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT], |
34 AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT], |
27 [ |
35 [ |
28 ############################################################################### |
|
29 # |
|
30 # Check which variant of the JDK that we want to build. |
|
31 # Currently we have: |
|
32 # normal: standard edition |
|
33 # but the custom make system may add other variants |
|
34 # |
|
35 # Effectively the JDK variant gives a name to a specific set of |
|
36 # modules to compile into the JDK. In the future, these modules |
|
37 # might even be Jigsaw modules. |
|
38 # |
|
39 AC_MSG_CHECKING([which variant of the JDK to build]) |
36 AC_MSG_CHECKING([which variant of the JDK to build]) |
40 AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant], |
37 AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant], |
41 [JDK variant to build (normal) @<:@normal@:>@])]) |
38 [JDK variant to build (normal) @<:@normal@:>@])]) |
42 |
39 |
43 if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then |
40 if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then |
49 AC_SUBST(JDK_VARIANT) |
46 AC_SUBST(JDK_VARIANT) |
50 |
47 |
51 AC_MSG_RESULT([$JDK_VARIANT]) |
48 AC_MSG_RESULT([$JDK_VARIANT]) |
52 ]) |
49 ]) |
53 |
50 |
54 AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_INTERPRETER], |
|
55 [ |
|
56 ############################################################################### |
51 ############################################################################### |
57 # |
52 # Set the debug level |
58 # Check which interpreter of the JVM we want to build. |
53 # release: no debug information, all optimizations, no asserts. |
59 # Currently we have: |
54 # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'. |
60 # template: Template interpreter (the default) |
55 # fastdebug: debug information (-g), all optimizations, all asserts |
61 # cpp : C++ interpreter |
56 # slowdebug: debug information (-g), no optimizations, all asserts |
62 AC_MSG_CHECKING([which interpreter of the JVM to build]) |
|
63 AC_ARG_WITH([jvm-interpreter], [AS_HELP_STRING([--with-jvm-interpreter], |
|
64 [JVM interpreter to build (template, cpp) @<:@template@:>@])]) |
|
65 |
|
66 if test "x$with_jvm_interpreter" = x; then |
|
67 with_jvm_interpreter="template" |
|
68 fi |
|
69 |
|
70 JVM_INTERPRETER="$with_jvm_interpreter" |
|
71 |
|
72 if test "x$JVM_INTERPRETER" != xtemplate && test "x$JVM_INTERPRETER" != xcpp; then |
|
73 AC_MSG_ERROR([The available JVM interpreters are: template, cpp]) |
|
74 fi |
|
75 |
|
76 AC_SUBST(JVM_INTERPRETER) |
|
77 |
|
78 AC_MSG_RESULT([$with_jvm_interpreter]) |
|
79 ]) |
|
80 |
|
81 AC_DEFUN_ONCE([JDKOPT_SETUP_JVM_VARIANTS], |
|
82 [ |
|
83 |
|
84 ############################################################################### |
|
85 # |
|
86 # Check which variants of the JVM that we want to build. |
|
87 # Currently we have: |
|
88 # server: normal interpreter and a tiered C1/C2 compiler |
|
89 # 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 # kernel: kernel footprint JVM that passes the TCK without major performance problems, |
|
92 # ie normal interpreter and C1, only the serial GC, kernel jvmti etc |
|
93 # zero: no machine code interpreter, no compiler |
|
94 # zeroshark: zero interpreter and shark/llvm compiler backend |
|
95 # core: interpreter only, no compiler (only works on some platforms) |
|
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 fi |
|
103 |
|
104 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 fi |
|
110 AC_MSG_RESULT([$with_jvm_variants]) |
|
111 |
|
112 JVM_VARIANT_SERVER=`$ECHO "$JVM_VARIANTS" | $SED -e '/,server,/!s/.*/false/g' -e '/,server,/s/.*/true/g'` |
|
113 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 JVM_VARIANT_KERNEL=`$ECHO "$JVM_VARIANTS" | $SED -e '/,kernel,/!s/.*/false/g' -e '/,kernel,/s/.*/true/g'` |
|
116 JVM_VARIANT_ZERO=`$ECHO "$JVM_VARIANTS" | $SED -e '/,zero,/!s/.*/false/g' -e '/,zero,/s/.*/true/g'` |
|
117 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 if test "x$JVM_VARIANT_CLIENT" = xtrue; then |
|
121 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then |
|
122 AC_MSG_ERROR([You cannot build a client JVM for a 64-bit machine.]) |
|
123 fi |
|
124 fi |
|
125 if test "x$JVM_VARIANT_KERNEL" = xtrue; then |
|
126 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then |
|
127 AC_MSG_ERROR([You cannot build a kernel JVM for a 64-bit machine.]) |
|
128 fi |
|
129 fi |
|
130 if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then |
|
131 if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then |
|
132 AC_MSG_ERROR([You cannot build a minimal JVM for a 64-bit machine.]) |
|
133 fi |
|
134 fi |
|
135 |
|
136 # Replace the commas with AND for use in the build directory name. |
|
137 ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'` |
|
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 if test "x$COUNT_VARIANTS" != "x,1"; then |
|
140 BUILDING_MULTIPLE_JVM_VARIANTS=yes |
|
141 else |
|
142 BUILDING_MULTIPLE_JVM_VARIANTS=no |
|
143 fi |
|
144 |
|
145 AC_SUBST(JVM_VARIANTS) |
|
146 AC_SUBST(JVM_VARIANT_SERVER) |
|
147 AC_SUBST(JVM_VARIANT_CLIENT) |
|
148 AC_SUBST(JVM_VARIANT_MINIMAL1) |
|
149 AC_SUBST(JVM_VARIANT_KERNEL) |
|
150 AC_SUBST(JVM_VARIANT_ZERO) |
|
151 AC_SUBST(JVM_VARIANT_ZEROSHARK) |
|
152 AC_SUBST(JVM_VARIANT_CORE) |
|
153 |
|
154 INCLUDE_SA=true |
|
155 if test "x$JVM_VARIANT_ZERO" = xtrue ; then |
|
156 INCLUDE_SA=false |
|
157 fi |
|
158 if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then |
|
159 INCLUDE_SA=false |
|
160 fi |
|
161 if test "x$OPENJDK_TARGET_OS" = xaix ; then |
|
162 INCLUDE_SA=false |
|
163 fi |
|
164 if test "x$OPENJDK_TARGET_CPU" = xaarch64; then |
|
165 INCLUDE_SA=false |
|
166 fi |
|
167 AC_SUBST(INCLUDE_SA) |
|
168 |
|
169 if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then |
|
170 MACOSX_UNIVERSAL="true" |
|
171 fi |
|
172 |
|
173 AC_SUBST(MACOSX_UNIVERSAL) |
|
174 ]) |
|
175 |
|
176 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], |
57 AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_LEVEL], |
177 [ |
58 [ |
178 ############################################################################### |
|
179 # |
|
180 # Set the debug level |
|
181 # release: no debug information, all optimizations, no asserts. |
|
182 # optimized: no debug information, all optimizations, no asserts, HotSpot target is 'optimized'. |
|
183 # fastdebug: debug information (-g), all optimizations, all asserts |
|
184 # slowdebug: debug information (-g), no optimizations, all asserts |
|
185 # |
|
186 DEBUG_LEVEL="release" |
59 DEBUG_LEVEL="release" |
187 AC_MSG_CHECKING([which debug level to use]) |
60 AC_MSG_CHECKING([which debug level to use]) |
188 AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], |
61 AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug], |
189 [set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])], |
62 [set the debug level to fastdebug (shorthand for --with-debug-level=fastdebug) @<:@disabled@:>@])], |
190 [ |
63 [ |
206 test "x$DEBUG_LEVEL" != xoptimized && \ |
79 test "x$DEBUG_LEVEL" != xoptimized && \ |
207 test "x$DEBUG_LEVEL" != xfastdebug && \ |
80 test "x$DEBUG_LEVEL" != xfastdebug && \ |
208 test "x$DEBUG_LEVEL" != xslowdebug; then |
81 test "x$DEBUG_LEVEL" != xslowdebug; then |
209 AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug]) |
82 AC_MSG_ERROR([Allowed debug levels are: release, fastdebug and slowdebug]) |
210 fi |
83 fi |
211 |
84 ]) |
212 |
|
213 ############################################################################### |
|
214 # |
|
215 # Setup legacy vars/targets and new vars to deal with different debug levels. |
|
216 # |
|
217 |
|
218 case $DEBUG_LEVEL in |
|
219 release ) |
|
220 VARIANT="OPT" |
|
221 FASTDEBUG="false" |
|
222 DEBUG_CLASSFILES="false" |
|
223 BUILD_VARIANT_RELEASE="" |
|
224 HOTSPOT_DEBUG_LEVEL="product" |
|
225 HOTSPOT_EXPORT="product" |
|
226 ;; |
|
227 fastdebug ) |
|
228 VARIANT="DBG" |
|
229 FASTDEBUG="true" |
|
230 DEBUG_CLASSFILES="true" |
|
231 BUILD_VARIANT_RELEASE="-fastdebug" |
|
232 HOTSPOT_DEBUG_LEVEL="fastdebug" |
|
233 HOTSPOT_EXPORT="fastdebug" |
|
234 ;; |
|
235 slowdebug ) |
|
236 VARIANT="DBG" |
|
237 FASTDEBUG="false" |
|
238 DEBUG_CLASSFILES="true" |
|
239 BUILD_VARIANT_RELEASE="-debug" |
|
240 HOTSPOT_DEBUG_LEVEL="debug" |
|
241 HOTSPOT_EXPORT="debug" |
|
242 ;; |
|
243 optimized ) |
|
244 VARIANT="OPT" |
|
245 FASTDEBUG="false" |
|
246 DEBUG_CLASSFILES="false" |
|
247 BUILD_VARIANT_RELEASE="-optimized" |
|
248 HOTSPOT_DEBUG_LEVEL="optimized" |
|
249 HOTSPOT_EXPORT="optimized" |
|
250 ;; |
|
251 esac |
|
252 |
|
253 # The debug level 'optimized' is a little special because it is currently only |
|
254 # applicable to the HotSpot build where it means to build a completely |
|
255 # optimized version of the VM without any debugging code (like for the |
|
256 # 'release' debug level which is called 'product' in the HotSpot build) but |
|
257 # with the exception that it can contain additional code which is otherwise |
|
258 # protected by '#ifndef PRODUCT' macros. These 'optimized' builds are used to |
|
259 # test new and/or experimental features which are not intended for customer |
|
260 # shipment. Because these new features need to be tested and benchmarked in |
|
261 # real world scenarios, we want to build the containing JDK at the 'release' |
|
262 # debug level. |
|
263 if test "x$DEBUG_LEVEL" = xoptimized; then |
|
264 DEBUG_LEVEL="release" |
|
265 fi |
|
266 |
|
267 ##### |
|
268 # Generate the legacy makefile targets for hotspot. |
|
269 # The hotspot api for selecting the build artifacts, really, needs to be improved. |
|
270 # JDK-7195896 will fix this on the hotspot side by using the JVM_VARIANT_* variables to |
|
271 # determine what needs to be built. All we will need to set here is all_product, all_fastdebug etc |
|
272 # But until then ... |
|
273 HOTSPOT_TARGET="" |
|
274 |
|
275 if test "x$JVM_VARIANT_SERVER" = xtrue; then |
|
276 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL} " |
|
277 fi |
|
278 |
|
279 if test "x$JVM_VARIANT_CLIENT" = xtrue; then |
|
280 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}1 " |
|
281 fi |
|
282 |
|
283 if test "x$JVM_VARIANT_MINIMAL1" = xtrue; then |
|
284 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}minimal1 " |
|
285 fi |
|
286 |
|
287 if test "x$JVM_VARIANT_KERNEL" = xtrue; then |
|
288 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}kernel " |
|
289 fi |
|
290 |
|
291 if test "x$JVM_VARIANT_ZERO" = xtrue; then |
|
292 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}zero " |
|
293 fi |
|
294 |
|
295 if test "x$JVM_VARIANT_ZEROSHARK" = xtrue; then |
|
296 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}shark " |
|
297 fi |
|
298 |
|
299 if test "x$JVM_VARIANT_CORE" = xtrue; then |
|
300 HOTSPOT_TARGET="$HOTSPOT_TARGET${HOTSPOT_DEBUG_LEVEL}core " |
|
301 fi |
|
302 |
|
303 HOTSPOT_TARGET="$HOTSPOT_TARGET docs export_$HOTSPOT_EXPORT" |
|
304 |
|
305 # On Macosx universal binaries are produced, but they only contain |
|
306 # 64 bit intel. This invalidates control of which jvms are built |
|
307 # from configure, but only server is valid anyway. Fix this |
|
308 # when hotspot makefiles are rewritten. |
|
309 if test "x$MACOSX_UNIVERSAL" = xtrue; then |
|
310 HOTSPOT_TARGET=universal_${HOTSPOT_EXPORT} |
|
311 fi |
|
312 |
|
313 ##### |
|
314 |
|
315 AC_SUBST(DEBUG_LEVEL) |
|
316 AC_SUBST(VARIANT) |
|
317 AC_SUBST(FASTDEBUG) |
|
318 AC_SUBST(DEBUG_CLASSFILES) |
|
319 AC_SUBST(BUILD_VARIANT_RELEASE) |
|
320 ]) |
|
321 |
|
322 |
85 |
323 ############################################################################### |
86 ############################################################################### |
324 # |
87 # |
325 # Should we build only OpenJDK even if closed sources are present? |
88 # Should we build only OpenJDK even if closed sources are present? |
326 # |
89 # |
396 |
155 |
397 AC_SUBST(SUPPORT_HEADLESS) |
156 AC_SUBST(SUPPORT_HEADLESS) |
398 AC_SUBST(SUPPORT_HEADFUL) |
157 AC_SUBST(SUPPORT_HEADFUL) |
399 AC_SUBST(BUILD_HEADLESS) |
158 AC_SUBST(BUILD_HEADLESS) |
400 |
159 |
401 # Control wether Hotspot runs Queens test after build. |
|
402 AC_ARG_ENABLE([hotspot-test-in-build], [AS_HELP_STRING([--enable-hotspot-test-in-build], |
|
403 [run the Queens test after Hotspot build @<:@disabled@:>@])],, |
|
404 [enable_hotspot_test_in_build=no]) |
|
405 if test "x$enable_hotspot_test_in_build" = "xyes"; then |
|
406 TEST_IN_BUILD=true |
|
407 else |
|
408 TEST_IN_BUILD=false |
|
409 fi |
|
410 AC_SUBST(TEST_IN_BUILD) |
|
411 |
|
412 ############################################################################### |
|
413 # |
|
414 # Choose cacerts source file |
160 # Choose cacerts source file |
415 # |
|
416 AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file], |
161 AC_ARG_WITH(cacerts-file, [AS_HELP_STRING([--with-cacerts-file], |
417 [specify alternative cacerts file])]) |
162 [specify alternative cacerts file])]) |
418 if test "x$with_cacerts_file" != x; then |
163 if test "x$with_cacerts_file" != x; then |
419 CACERTS_FILE=$with_cacerts_file |
164 CACERTS_FILE=$with_cacerts_file |
420 fi |
165 fi |
421 AC_SUBST(CACERTS_FILE) |
166 AC_SUBST(CACERTS_FILE) |
422 |
167 |
423 ############################################################################### |
|
424 # |
|
425 # Enable or disable unlimited crypto |
168 # Enable or disable unlimited crypto |
426 # |
|
427 AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto], |
169 AC_ARG_ENABLE(unlimited-crypto, [AS_HELP_STRING([--enable-unlimited-crypto], |
428 [Enable unlimited crypto policy @<:@disabled@:>@])],, |
170 [Enable unlimited crypto policy @<:@disabled@:>@])],, |
429 [enable_unlimited_crypto=no]) |
171 [enable_unlimited_crypto=no]) |
430 if test "x$enable_unlimited_crypto" = "xyes"; then |
172 if test "x$enable_unlimited_crypto" = "xyes"; then |
431 UNLIMITED_CRYPTO=true |
173 UNLIMITED_CRYPTO=true |
432 else |
174 else |
433 UNLIMITED_CRYPTO=false |
175 UNLIMITED_CRYPTO=false |
434 fi |
176 fi |
435 AC_SUBST(UNLIMITED_CRYPTO) |
177 AC_SUBST(UNLIMITED_CRYPTO) |
436 |
178 |
437 ############################################################################### |
|
438 # |
|
439 # Compress jars |
179 # Compress jars |
440 # |
|
441 COMPRESS_JARS=false |
180 COMPRESS_JARS=false |
442 |
181 |
443 AC_SUBST(COMPRESS_JARS) |
182 AC_SUBST(COMPRESS_JARS) |
444 |
183 |
445 # Setup default copyright year. Mostly overridden when building close to a new year. |
184 # Setup default copyright year. Mostly overridden when building close to a new year. |