3 dnl Copyright (C) 1996-2005, 2006, 2007, 2008
4 dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
6 dnl This file is part of CACAO.
8 dnl This program is free software; you can redistribute it and/or
9 dnl modify it under the terms of the GNU General Public License as
10 dnl published by the Free Software Foundation; either version 2, or (at
11 dnl your option) any later version.
13 dnl This program is distributed in the hope that it will be useful, but
14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 dnl General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; if not, write to the Free Software
20 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 dnl Process this file with autoconf to produce a configure script.
26 AC_INIT(cacao, 1.1.0pre, cacao@cacaojvm.org)
27 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
30 AM_INIT_AUTOMAKE([1.9.0 dist-bzip2 tar-ustar])
33 AM_CONFIG_HEADER([config.h])
35 AC_PREFIX_DEFAULT(/usr/local/cacao)
38 dnl set optimization and debugging for all architectures and systems
39 if test x"$CFLAGS" = "x"; then
47 alpha | alphaev56 | alphapca56 )
49 ARCH_CFLAGS="-mieee -D__ALPHA__"
53 arm | armv4 | armv4tl | armv5b | armv5l )
55 ARCH_CFLAGS="-D__ARM__"
61 ARCH_CFLAGS="-D__PARISC__"
65 i386 | i486 | i586 | i686 )
67 ARCH_CFLAGS="-D__I386__"
73 ARCH_CFLAGS="-D__M68K__"
79 ARCH_CFLAGS="-D__MIPS__"
80 dnl Is this correct for mipsel?
86 ARCH_CFLAGS="-D__POWERPC__"
92 ARCH_CFLAGS="-D__POWERPC64__"
98 ARCH_CFLAGS="-D__S390__"
104 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
105 dnl Is this correct for 64-bits?
111 ARCH_CFLAGS="-D__X86_64__"
117 ENABLE_STATICVM="yes"
118 ARCH_CFLAGS="-D__XDSPCORE__"
123 AC_MSG_ERROR($host_cpu systems are not supported at this time)
131 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
132 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -std=c99 -pedantic -Wall -Wno-long-long"
137 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
138 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -std=c99 -pedantic -Wall -Wno-long-long"
141 dnl Must be BEFORE *freebsd*.
144 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
145 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -std=c99 -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
150 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
151 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -std=c99 -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
156 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
157 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
160 dnl Must be BEFORE *linux*.
163 INTRP_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
164 ARCH_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -std=c99 -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
169 INTRP_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
170 ARCH_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -std=c99 -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
175 INTRP_CFLAGS="$ARCH_CFLAGS -D__NETBSD__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
176 ARCH_CFLAGS="$ARCH_CFLAGS -D__NETBSD__ -std=c99 -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
181 dnl On solaris the architecture defines 'sparc', 'sun', 'unix' are
182 dnl not set when cpp is called with -std=c99, therefore we add them
184 INTRP_CFLAGS="$ARCH_CFLAGS -D__SOLARIS__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -D_BSD_SOURCE -Dsparc -Dsun -Dunix"
185 ARCH_CFLAGS="$ARCH_CFLAGS -D__SOLARIS__ -std=c99 -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=200112L -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -D_BSD_SOURCE -Dsparc -Dsun -Dunix"
193 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
194 dnl we set it properly at the end of this file
195 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
197 dnl set interpreter flags
198 AC_SUBST(INTRP_CFLAGS)
200 dnl define and substitute some architecture specific variables
201 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
202 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
206 AC_SUBST(USE_SCHEDULER)
209 dnl Checks for programs.
218 dnl Checks for header files.
222 dnl Crucial header files.
223 AC_CHECK_HEADERS([stdbool.h],, [AC_MSG_ERROR(cannot find stdbool.h)])
224 AC_CHECK_HEADERS([stdint.h],, [AC_MSG_ERROR(cannot find stdint.h)])
226 dnl keep them alpha-sorted!
227 AC_CHECK_HEADERS([assert.h])
228 AC_CHECK_HEADERS([errno.h])
229 AC_CHECK_HEADERS([fcntl.h])
230 AC_CHECK_HEADERS([libgen.h])
231 AC_CHECK_HEADERS([netdb.h])
232 AC_CHECK_HEADERS([stdint.h])
233 AC_CHECK_HEADERS([stdio.h])
234 AC_CHECK_HEADERS([stdlib.h])
235 AC_CHECK_HEADERS([string.h])
236 AC_CHECK_HEADERS([time.h])
237 AC_CHECK_HEADERS([ucontext.h])
238 AC_CHECK_HEADERS([unistd.h])
239 AC_CHECK_HEADERS([sys/ioctl.h])
240 AC_CHECK_HEADERS([sys/mman.h])
241 AC_CHECK_HEADERS([sys/resource.h])
242 AC_CHECK_HEADERS([sys/select.h])
243 AC_CHECK_HEADERS([sys/socket.h])
244 AC_CHECK_HEADERS([sys/stat.h])
245 AC_CHECK_HEADERS([sys/time.h])
246 AC_CHECK_HEADERS([sys/types.h])
248 dnl Checks for typedefs, structures, and compiler characteristics.
257 dnl Checks for libraries (NOTE: Should be done before function checks,
258 dnl as some functions may be in libraries we check for).
260 dnl Checks for library functions.
261 AC_PROG_GCC_TRADITIONAL
266 dnl keep them alpha-sorted!
267 AC_CHECK_FUNCS([abort])
268 AC_CHECK_FUNCS([accept])
269 AC_CHECK_FUNCS([access])
270 AC_CHECK_FUNCS([atoi])
271 AC_CHECK_FUNCS([atol])
272 AC_CHECK_FUNCS([calloc])
273 AC_CHECK_FUNCS([close])
274 AC_CHECK_FUNCS([confstr])
275 AC_CHECK_FUNCS([connect])
276 AC_CHECK_FUNCS([dirname])
277 AC_CHECK_FUNCS([fclose])
278 AC_CHECK_FUNCS([fflush])
279 AC_CHECK_FUNCS([fopen])
280 AC_CHECK_FUNCS([fprintf])
281 AC_CHECK_FUNCS([fread])
282 AC_CHECK_FUNCS([free])
283 AC_CHECK_FUNCS([fstat])
284 AC_CHECK_FUNCS([fsync])
285 AC_CHECK_FUNCS([ftruncate])
286 AC_CHECK_FUNCS([getcwd])
287 AC_CHECK_FUNCS([gethostbyname])
288 AC_CHECK_FUNCS([gethostname])
289 AC_CHECK_FUNCS([getpagesize])
290 AC_CHECK_FUNCS([getrusage])
291 AC_CHECK_FUNCS([getsockname])
292 AC_CHECK_FUNCS([getsockopt])
293 AC_CHECK_FUNCS([gettimeofday])
294 AC_CHECK_FUNCS([htons])
295 AC_CHECK_FUNCS([ioctl])
296 AC_CHECK_FUNCS([isnan])
297 AC_CHECK_FUNCS([listen])
298 AC_CHECK_FUNCS([localtime])
299 AC_CHECK_FUNCS([localtime_r])
300 AC_CHECK_FUNCS([lseek])
301 AC_CHECK_FUNCS([malloc])
302 AC_CHECK_FUNCS([memcpy])
303 AC_CHECK_FUNCS([memset])
304 AC_CHECK_FUNCS([mmap])
305 AC_CHECK_FUNCS([mprotect])
306 AC_CHECK_FUNCS([open])
307 AC_CHECK_FUNCS([read])
308 AC_CHECK_FUNCS([readlink])
309 AC_CHECK_FUNCS([realloc])
310 AC_CHECK_FUNCS([recv])
311 AC_CHECK_FUNCS([scandir])
312 AC_CHECK_FUNCS([select])
313 AC_CHECK_FUNCS([send])
314 AC_CHECK_FUNCS([setsockopt])
315 AC_CHECK_FUNCS([shutdown])
316 AC_CHECK_FUNCS([socket])
317 AC_CHECK_FUNCS([stat])
318 AC_CHECK_FUNCS([strcat])
319 AC_CHECK_FUNCS([strchr])
320 AC_CHECK_FUNCS([strcpy])
321 AC_CHECK_FUNCS([strdup])
322 AC_CHECK_FUNCS([strerror])
323 AC_CHECK_FUNCS([strlen])
324 AC_CHECK_FUNCS([strncmp])
325 AC_CHECK_FUNCS([strstr])
326 AC_CHECK_FUNCS([time])
327 AC_CHECK_FUNCS([write])
330 dnl Checks for libraries.
332 dnl Checking sizeof void *
333 AC_CHECK_SIZEOF(void *)
337 dnl define install prefix
338 if test "x$prefix" = "xNONE"; then
339 CACAO_PREFIX=$ac_default_prefix
343 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
344 AC_SUBST(CACAO_PREFIX)
346 dnl define libdir prefix
347 if test "x$libdir" = "xNONE"; then
348 CACAO_LIBDIR=$ac_default_libdir
352 dnl expand CACAO_LIBDIR to something that is usable in C code
353 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
354 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
355 AC_SUBST(CACAO_LIBDIR)
362 AC_CHECK_ENABLE_INTRP
364 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
365 AC_ERROR(You have to enable at least the JIT or the interpreter.)
369 AC_CHECK_SOFT_FLOAT_CMP
370 AC_CHECK_SOFT_DOUBLE_CMP
373 AC_CHECK_ENABLE_DEBUG
375 AC_CHECK_ENABLE_MEMCHECK
376 AC_CHECK_ENABLE_HANDLES
377 AC_CHECK_ENABLE_VMLOG
379 dnl check for disassembler support
380 AC_MSG_CHECKING(whether disassembler should be enabled)
381 AC_ARG_ENABLE([disassembler],
382 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
383 [case "${enableval}" in
384 yes) ENABLE_DISASSEMBLER=yes;;
385 *) ENABLE_DISASSEMBLER=no;;
387 [ENABLE_DISASSEMBLER=no])
388 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
389 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
391 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
392 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
394 dnl check for binutils headers and libraries on some architectures for the
396 case "${ARCH_DIR}" in
397 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
398 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
399 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
400 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
401 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
404 cygwin | darwin | netbsd | solaris)
405 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
411 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
416 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
417 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
418 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
419 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
420 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
423 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
427 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
431 dnl check for statistics
432 AC_MSG_CHECKING(whether statistics generation should be enabled)
433 AC_ARG_ENABLE([statistics],
434 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
435 [case "${enableval}" in
436 yes) ENABLE_STATISTICS=yes;;
437 *) ENABLE_STATISTICS=no;;
439 [ENABLE_STATISTICS=no])
440 AC_MSG_RESULT(${ENABLE_STATISTICS})
441 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
443 if test x"${ENABLE_STATISTICS}" = "xyes"; then
444 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
448 dnl check for verifier
449 AC_MSG_CHECKING(whether classfile verification should be enabled)
450 AC_ARG_ENABLE([verifier],
451 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=enabled]])],
452 [case "${enableval}" in
453 no) ENABLE_VERIFIER=no;;
454 *) ENABLE_VERIFIER=yes;;
456 [ENABLE_VERIFIER=yes])
457 AC_MSG_RESULT(${ENABLE_VERIFIER})
458 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
460 if test x"${ENABLE_VERIFIER}" = "xyes"; then
461 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
465 dnl check for compiler timing
466 AC_MSG_CHECKING(whether real-time timing should be enabled)
467 AC_ARG_ENABLE([rt-timing],
468 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
469 [case "${enableval}" in
470 yes) ENABLE_RT_TIMING=yes;;
471 *) ENABLE_RT_TIMING=no;;
473 [ENABLE_RT_TIMING=no])
474 AC_MSG_RESULT(${ENABLE_RT_TIMING})
475 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
477 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
478 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
482 dnl check for cycle count statistics
483 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
484 AC_ARG_ENABLE([cycles-stats],
485 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
486 [case "${enableval}" in
487 yes) ENABLE_CYCLES_STATS=yes;;
488 *) ENABLE_CYCLES_STATS=no;;
490 [ENABLE_CYCLES_STATS=no])
491 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
492 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
494 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
495 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
500 AC_MSG_CHECKING(whether to compile JVMTI support)
501 AC_ARG_ENABLE([jvmti],
502 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
503 [case "${enableval}" in
504 yes) ENABLE_JVMTI=yes;;
508 AC_MSG_RESULT(${ENABLE_JVMTI})
509 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
511 if test x"${ENABLE_JVMTI}" = "xyes"; then
512 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
516 AC_CHECK_ENABLE_THREADS
519 dnl check if if-conversion should be supported
520 AC_MSG_CHECKING(whether if-conversion should be supported)
521 AC_ARG_ENABLE([ifconv],
522 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=enabled]])],
523 [case "${enableval}" in
524 no) ENABLE_IFCONV=no;;
525 *) ENABLE_IFCONV=yes;;
528 AC_MSG_RESULT(${ENABLE_IFCONV})
529 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
531 if test x"${ENABLE_IFCONV}" = "xyes"; then
532 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
536 dnl check for inlining
537 AC_MSG_CHECKING(whether method inlining should be supported)
538 AC_ARG_ENABLE([inlining],
539 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
540 [case "${enableval}" in
541 yes) ENABLE_INLINING=yes;;
542 *) ENABLE_INLINING=no;;
544 [ENABLE_INLINING=no])
545 AC_MSG_RESULT(${ENABLE_INLINING})
546 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
548 if test x"${ENABLE_INLINING}" = "xyes"; then
549 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
553 dnl check for inlining debug options
554 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
555 AC_ARG_ENABLE([inlining-debug],
556 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
557 [case "${enableval}" in
558 yes) ENABLE_INLINING_DEBUG=yes;;
559 *) ENABLE_INLINING_DEBUG=no;;
561 [ENABLE_INLINING_DEBUG=no])
562 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
563 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
565 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
566 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
570 dnl check for replacement
571 AC_MSG_CHECKING(whether on-stack replacement should be supported)
572 AC_ARG_ENABLE([replacement],
573 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
574 [case "${enableval}" in
575 yes) ENABLE_REPLACEMENT=yes;;
576 *) ENABLE_REPLACEMENT=no;;
578 [ENABLE_REPLACEMENT=no])
579 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
580 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
582 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
583 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
587 dnl check for loop optimization
588 AC_MSG_CHECKING(whether loop optimization should be supported)
589 AC_ARG_ENABLE([loop],
590 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
591 [case "${enableval}" in
592 yes) ENABLE_LOOP=yes;;
596 AC_MSG_RESULT(${ENABLE_LOOP})
597 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
599 if test x"${ENABLE_LOOP}" = "xyes"; then
600 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
604 dnl check if linear scan register allocator(lsra) with SSA should be used
605 AC_MSG_CHECKING(whether lsra with ssa should be supported)
607 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=disabled]])],
608 [case "${enableval}" in
613 AC_MSG_RESULT(${ENABLE_SSA})
614 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
615 AM_CONDITIONAL([ENABLE_ESCAPE], test x"${ENABLE_SSA}" = "xyes")
616 AM_CONDITIONAL([ENABLE_ESCAPE_CHECK], test x"${ENABLE_SSA}" = "xyes")
618 if test x"${ENABLE_SSA}" = "xyes"; then
619 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
620 AC_DEFINE([ENABLE_ESCAPE], 1, [enable escape analysis with ssa])
621 AC_DEFINE([ENABLE_ESCAPE_CHECK], 1, [enable generating code to validate escape analysis results])
626 dnl check if linear scan register allocator(lsra) should be used
627 AC_MSG_CHECKING(whether lsra should be supported)
628 AC_ARG_ENABLE([lsra],
629 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
630 [case "${enableval}" in
631 yes) ENABLE_LSRA=yes;;
636 if test x"${ENABLE_LSRA}" = "xyes"; then
637 if test x"${ENABLE_SSA}" = "xyes"; then
641 AC_MSG_RESULT(${ENABLE_LSRA})
642 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
644 if test x"${ENABLE_LSRA}" = "xyes"; then
645 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
648 dnl check if profiling should be supported
649 AC_MSG_CHECKING(whether profiling should be supported)
650 AC_ARG_ENABLE([profiling],
651 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
652 [case "${enableval}" in
653 yes) ENABLE_PROFILING=yes;;
654 *) ENABLE_PROFILING=no;;
656 [ENABLE_PROFILING=no])
657 AC_MSG_RESULT(${ENABLE_PROFILING})
658 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
660 if test x"${ENABLE_PROFILING}" = "xyes"; then
661 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
665 dnl check for instruction scheduler
666 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
668 AC_MSG_CHECKING(whether instruction scheduler should be supported)
669 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
670 case "${ARCH_DIR}" in
674 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
679 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
680 AM_CONDITIONAL([USE_SCHEDULER], [true])
683 AM_CONDITIONAL([USE_SCHEDULER], [false])
689 dnl check for stuff to be built
691 AC_CHECK_ENABLE_LIBJVM
693 dnl ATTENTION: These check must be after setting
694 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
695 dnl because libtool uses them to build the correct libraries.
699 AC_CHECK_ENABLE_STATICVM
700 AC_CHECK_ENABLE_ANNOTATIONS
701 AC_CHECK_ENABLE_ASSERTION
704 dnl where is CACAO's vm.zip
705 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
706 AC_ARG_WITH([vm-zip],
707 [AS_HELP_STRING(--with-vm-zip=<path>,path to CACAO's vm.zip (includes the name of the file and may be flat) [[default=/usr/local/cacao/share/cacao/vm.zip]])],
708 [CACAO_VM_ZIP=${withval}],
709 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
710 AC_MSG_RESULT(${CACAO_VM_ZIP})
711 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
712 AC_SUBST(CACAO_VM_ZIP)
716 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY
718 dnl Now we check for jre-layout so we can skip some checks that are
720 AC_CHECK_ENABLE_JRE_LAYOUT
722 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_PREFIX
723 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_CLASSES
725 if test x"${ENABLE_JRE_LAYOUT}" = "xno"; then
726 AC_CHECK_WITH_JAVA_RUNTIME_LIBRARY_LIBDIR
729 dnl The check for jni_md.h must be before jni.h.
730 AC_CHECK_WITH_JNI_MD_H
733 dnl HPI is only required for OpenJDK
734 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
736 AC_CHECK_WITH_HPI_MD_H
743 dnl check for some programs we need
745 case "${WITH_JAVA_RUNTIME_LIBRARY}" in
746 cldc1.1 | gnuclasspath)
753 AC_MSG_ERROR(unknown classpath configuration ${WITH_JAVA_RUNTIME_LIBRARY})
757 AC_CHECK_WITH_JASMIN_JAR
758 AC_CHECK_WITH_JUNIT_JAR
763 dnl If debug build and regex.h available, enable debug filter
764 if test x"${NDEBUG}" = "xno"; then
765 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
767 dnl If vmlog enambled and regex.h available, enable vmlogfilter
768 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
771 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
780 AZ_PYTHON_VERSION_ENSURE( [2.4] )
785 dnl define some stuff required for --fullversion
786 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
787 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
788 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS $CPPFLAGS", [CFLAGS used])
791 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
793 AM_CFLAGS=$ARCH_CFLAGS
794 AM_CPPFLAGS="$CPPFLAGS"
796 AC_SUBST(AM_CPPFLAGS)
799 AC_CONFIG_FILES([Makefile]
801 [contrib/setenvinstalled]
802 [contrib/setenvsource]
803 [contrib/vmlog/Makefile]
804 [contrib/vmlog/t/Makefile]
806 [doc/doxygen/Makefile]
807 [doc/handbook/Makefile]
811 [src/cacaoh/Makefile]
812 [src/classes/Makefile]
813 [src/fdlibm/Makefile]
815 [src/mm/cacao-gc/Makefile]
816 [src/native/Makefile]
817 [src/native/include/Makefile]
818 [src/native/jvmti/Makefile]
819 [src/native/vm/Makefile]
820 [src/native/vm/cldc1.1/Makefile]
821 [src/native/vm/gnuclasspath/Makefile]
822 [src/native/vm/openjdk/Makefile]
823 [src/scripts/Makefile]
825 [src/threads/Makefile]
826 [src/threads/none/Makefile]
827 [src/threads/posix/Makefile]
828 [src/toolbox/Makefile]
830 [src/vm/jit/Makefile]
831 [src/vm/jit/allocator/Makefile]
832 [src/vm/jit/alpha/Makefile]
833 [src/vm/jit/alpha/freebsd/Makefile]
834 [src/vm/jit/alpha/linux/Makefile]
835 [src/vm/jit/arm/Makefile]
836 [src/vm/jit/arm/linux/Makefile]
837 [src/vm/jit/i386/Makefile]
838 [src/vm/jit/i386/cygwin/Makefile]
839 [src/vm/jit/i386/darwin/Makefile]
840 [src/vm/jit/i386/freebsd/Makefile]
841 [src/vm/jit/i386/linux/Makefile]
842 [src/vm/jit/intrp/Makefile]
843 [src/vm/jit/inline/Makefile]
844 [src/vm/jit/ir/Makefile]
845 [src/vm/jit/loop/Makefile]
846 [src/vm/jit/m68k/Makefile]
847 [src/vm/jit/m68k/linux/Makefile]
848 [src/vm/jit/mips/Makefile]
849 [src/vm/jit/mips/irix/Makefile]
850 [src/vm/jit/mips/linux/Makefile]
851 [src/vm/jit/mips/uclinux/Makefile]
852 [src/vm/jit/optimizing/Makefile]
853 [src/vm/jit/parisc/Makefile]
854 [src/vm/jit/parisc/linux/Makefile]
855 [src/vm/jit/powerpc/Makefile]
856 [src/vm/jit/powerpc/darwin/Makefile]
857 [src/vm/jit/powerpc/linux/Makefile]
858 [src/vm/jit/powerpc/netbsd/Makefile]
859 [src/vm/jit/powerpc64/Makefile]
860 [src/vm/jit/powerpc64/linux/Makefile]
861 [src/vm/jit/s390/Makefile]
862 [src/vm/jit/schedule/Makefile]
863 [src/vm/jit/sparc64/Makefile]
864 [src/vm/jit/sparc64/linux/Makefile]
865 [src/vm/jit/sparc64/solaris/Makefile]
866 [src/vm/jit/verify/Makefile]
867 [src/vm/jit/x86_64/Makefile]
868 [src/vm/jit/x86_64/freebsd/Makefile]
869 [src/vm/jit/x86_64/linux/Makefile]
870 [src/vmcore/Makefile]
872 [tests/regression/Makefile]
873 [tests/regression/assertion/Makefile]
874 [tests/regression/base/Makefile]
875 [tests/regression/bugzilla/Makefile]
876 [tests/regression/jasmin/Makefile]
877 [tests/regression/native/Makefile]
878 [tests/regression/resolving/Makefile]
879 [tests/regression/resolving/classes1/Makefile]
880 [tests/regression/resolving/classes2/Makefile]
881 [tests/regression/resolving/classes3/Makefile]
885 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
888 dnl We only build the shared library objects but we use it as
889 dnl noinst_LTLIBRARIES
890 ac_configure_args="$ac_configure_args --disable-static"
891 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
899 ## indent-tabs-mode: t
902 ## compile-command: "automake --add-missing"