1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(cacao, 0.97+svn, cacao@cacaojvm.org)
4 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
7 AM_INIT_AUTOMAKE([1.9.0])
10 AM_CONFIG_HEADER([config.h])
12 AC_PREFIX_DEFAULT(/usr/local/cacao)
15 dnl set optimization and debugging for all architectures and systems
16 if test x"$CFLAGS" = "x"; then
24 alpha | alphaev56 | alphapca56 )
26 ARCH_CFLAGS="-mieee -D__ALPHA__"
29 arm | armv4tl | armv5b | armv5l )
31 ARCH_CFLAGS="-D__ARM__"
36 ARCH_CFLAGS="-D__PARISC__"
39 i386 | i486 | i586 | i686 )
41 ARCH_CFLAGS="-D__I386__"
46 ARCH_CFLAGS="-D__M68K__"
51 ARCH_CFLAGS="-D__MIPS__"
56 ARCH_CFLAGS="-D__POWERPC__"
61 ARCH_CFLAGS="-D__POWERPC64__"
66 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
71 ARCH_CFLAGS="-D__X86_64__"
77 ARCH_CFLAGS="-D__XDSPCORE__"
82 AC_MSG_ERROR($host_cpu systems are not supported at this time)
90 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
91 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long"
96 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
97 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall -Wno-long-long"
102 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
103 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
108 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
109 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
114 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
115 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
118 dnl must be before *linux*
121 INTRP_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
122 ARCH_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
127 INTRP_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
128 ARCH_CFLAGS="$ARCH_CFLAGS -D__LINUX__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
133 INTRP_CFLAGS="$ARCH_CFLAGS -D__NETBSD__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
134 ARCH_CFLAGS="$ARCH_CFLAGS -D__NETBSD__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
142 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
143 dnl we set it properly at the end of this file
144 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
146 dnl set interpreter flags
147 AC_SUBST(INTRP_CFLAGS)
149 dnl define some stuff required for --fullversion
150 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
151 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
152 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used])
155 dnl define and substitute some architecture specific variables
156 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
159 AC_SUBST(USE_SCHEDULER)
162 dnl Checks for programs.
172 dnl Checks for header files.
175 AC_CHECK_HEADERS([fcntl.h])
176 AC_CHECK_HEADERS([sys/time.h])
177 AC_CHECK_HEADERS([unistd.h])
178 AC_CHECK_HEADERS([sys/ioctl.h])
180 dnl this is for fdlibm
181 AC_CHECK_HEADERS([stdint.h])
182 AC_CHECK_HEADERS([inttypes.h])
183 AC_CHECK_HEADERS([sys/config.h])
184 AC_CHECK_HEADERS([sys/types.h])
185 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
186 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
187 AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
188 AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
190 dnl Checks for typedefs, structures, and compiler characteristics.
199 dnl Checks for library functions.
200 AC_PROG_GCC_TRADITIONAL
204 AC_CHECK_FUNCS([calloc mmap getpagesize free])
205 AC_CHECK_FUNCS([getcwd gettimeofday])
206 AC_CHECK_FUNCS([scandir])
207 AC_CHECK_FUNCS([isnan])
209 dnl Checks for libraries.
211 dnl Checking sizeof void *
212 AC_CHECK_SIZEOF(void *)
216 dnl define install prefix
217 if test "x$prefix" = "xNONE"; then
218 CACAO_PREFIX=$ac_default_prefix
222 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
223 AC_SUBST(CACAO_PREFIX)
225 dnl define libdir prefix
226 if test "x$libdir" = "xNONE"; then
227 CACAO_LIBDIR=$ac_default_libdir
231 dnl expand CACAO_LIBDIR to something that is usable in C code
232 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
233 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
234 AC_SUBST(CACAO_LIBDIR)
241 dnl check which Java configuration to use
242 AC_MSG_CHECKING(which Java configuration to use)
243 AC_ARG_ENABLE([java],
244 [AS_HELP_STRING(--enable-java,enable specific Java configuration (cldc1.1,javase) [[default=javase]])],
245 [case "${enableval}" in
247 ENABLE_JAVAME_CLDC1_1=yes
248 AC_DEFINE([ENABLE_JAVAME_CLDC1_1], 1, [compile for Java ME CLDC1.1])
249 AC_MSG_RESULT(cldc1.1)
253 AC_DEFINE([ENABLE_JAVASE], 1, [compile for Java SE])
254 AC_MSG_RESULT(javase)
257 AC_MSG_ERROR(${enableval} is an unknown configuration)
261 AC_DEFINE([ENABLE_JAVASE], 1, [compile for Java SE])
262 AC_MSG_RESULT(j2se)])
263 AM_CONDITIONAL([ENABLE_JAVAME_CLDC1_1], test x"${ENABLE_JAVAME_CLDC1_1}" = "xyes")
264 AM_CONDITIONAL([ENABLE_JAVASE], test x"${ENABLE_JAVASE}" = "xyes")
267 dnl check for JIT compiler
268 AC_MSG_CHECKING(whether JIT compiler should be compiled)
270 [AS_HELP_STRING(--disable-jit,disable JIT compiler [[default=yes]])],
271 [case "${enableval}" in
276 AC_MSG_RESULT(${ENABLE_JIT})
277 AM_CONDITIONAL([ENABLE_JIT], test x"${ENABLE_JIT}" = "xyes")
279 if test x"${ENABLE_JIT}" = "xyes"; then
280 AC_DEFINE([ENABLE_JIT], 1, [enable JIT compiler])
284 dnl check if softfloat should be used
285 AC_MSG_CHECKING(whether softfloat should be used)
286 AC_ARG_ENABLE([softfloat],
287 [AS_HELP_STRING(--enable-softfloat,use softfloat [[default=no]])],
288 [case "${enableval}" in
289 yes) ENABLE_SOFTFLOAT=yes;;
290 *) ENABLE_SOFTFLOAT=no;;
292 [ENABLE_SOFTFLOAT=no])
293 AC_MSG_RESULT(${ENABLE_SOFTFLOAT})
295 if test x"${ENABLE_SOFTFLOAT}" = "xyes"; then
296 AC_DEFINE([ENABLE_SOFTFLOAT], 1, [enable softfloat])
300 dnl check for interpreter
301 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
303 AC_MSG_CHECKING(whether interpreter should be compiled)
304 if test x"$enable_intrp" = "xyes"; then
306 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
307 AM_CONDITIONAL([ENABLE_INTRP], [true])
314 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
316 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
317 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
318 AC_DEFINE([WITH_FFI], 1, [use libffi])],
321 dnl check for libffcall
322 AC_ARG_WITH([ffcall],
323 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
325 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
326 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
327 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
330 dnl check for libffi or libffcall
331 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
332 AC_ERROR(Enable only libffi or libffcall.)
334 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
335 AC_ERROR(Enable one of libffi or libffcall.)
340 AM_CONDITIONAL([ENABLE_INTRP], [false])
344 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
345 AC_ERROR(You have to enable at least the JIT or the interpreter.)
349 dnl check for garbage collector usage
350 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
351 AC_MSG_CHECKING(whether GC should be enabled)
352 enable_gc=${enable_gc:-boehm}
355 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
361 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
363 AC_MSG_RESULT(yes, boehm-gc)
367 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
369 AC_MSG_RESULT(yes, cacao-gc)
373 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
376 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
377 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
378 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
381 dnl check for dump memory usage
382 AC_MSG_CHECKING(whether dump memory should be disabled)
383 AC_ARG_ENABLE([dump],
384 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
385 [case "${enableval}" in
388 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
393 AC_MSG_RESULT(${DISABLE_DUMP})
397 AC_MSG_CHECKING(whether debug code generation should be enabled)
398 AC_ARG_ENABLE([debug],
399 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
400 [case "${enableval}" in
402 AC_DEFINE([NDEBUG], 1, [disable debug code])
408 if test x"${NDEBUG}" = "xno"; then
413 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
416 dnl check for memcheck support
417 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
418 AC_ARG_ENABLE([memcheck],
419 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
420 [case "${enableval}" in
421 yes) ENABLE_MEMCHECK=yes;;
422 *) ENABLE_MEMCHECK=no;;
424 [ENABLE_MEMCHECK=no])
425 AC_MSG_RESULT(${ENABLE_MEMCHECK})
426 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
428 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
429 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
433 dnl check for disassembler support
434 AC_MSG_CHECKING(whether disassembler should be enabled)
435 AC_ARG_ENABLE([disassembler],
436 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
437 [case "${enableval}" in
438 yes) ENABLE_DISASSEMBLER=yes;;
439 *) ENABLE_DISASSEMBLER=no;;
441 [ENABLE_DISASSEMBLER=no])
442 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
443 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
445 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
446 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
448 dnl check for binutils headers and libraries on some architectures for the
450 case "${ARCH_DIR}" in
451 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64)
452 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
453 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
454 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
455 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
458 cygwin | darwin | netbsd )
459 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
463 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
464 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
465 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
466 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
467 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
470 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
474 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
478 dnl check for statistics
479 AC_MSG_CHECKING(whether statistics generation should be enabled)
480 AC_ARG_ENABLE([statistics],
481 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
482 [case "${enableval}" in
483 yes) ENABLE_STATISTICS=yes;;
484 *) ENABLE_STATISTICS=no;;
486 [ENABLE_STATISTICS=no])
487 AC_MSG_RESULT(${ENABLE_STATISTICS})
488 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
490 if test x"${ENABLE_STATISTICS}" = "xyes"; then
491 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
495 dnl check for verifier
496 AC_MSG_CHECKING(whether classfile verification should be enabled)
497 AC_ARG_ENABLE([verifier],
498 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
499 [case "${enableval}" in
500 no) ENABLE_VERIFIER=no;;
501 *) ENABLE_VERIFIER=yes;;
503 [ENABLE_VERIFIER=yes])
504 AC_MSG_RESULT(${ENABLE_VERIFIER})
505 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
507 if test x"${ENABLE_VERIFIER}" = "xyes"; then
508 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
512 dnl check for compiler timing
513 AC_MSG_CHECKING(whether real-time timing should be enabled)
514 AC_ARG_ENABLE([rt-timing],
515 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
516 [case "${enableval}" in
517 yes) ENABLE_RT_TIMING=yes;;
518 *) ENABLE_RT_TIMING=no;;
520 [ENABLE_RT_TIMING=no])
521 AC_MSG_RESULT(${ENABLE_RT_TIMING})
522 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
524 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
525 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
529 dnl check for cycle count statistics
530 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
531 AC_ARG_ENABLE([cycles-stats],
532 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
533 [case "${enableval}" in
534 yes) ENABLE_CYCLES_STATS=yes;;
535 *) ENABLE_CYCLES_STATS=no;;
537 [ENABLE_CYCLES_STATS=no])
538 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
539 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
541 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
542 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
547 AC_MSG_CHECKING(whether to compile JVMTI support)
548 AC_ARG_ENABLE([jvmti],
549 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
550 [case "${enableval}" in
551 yes) ENABLE_JVMTI=yes;;
555 AC_MSG_RESULT(${ENABLE_JVMTI})
556 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
558 if test x"${ENABLE_JVMTI}" = "xyes"; then
559 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
564 AC_ARG_ENABLE([threads], [AS_HELP_STRING(--enable-threads,enable threads support (none,native) [[default=native]])])
565 AC_ARG_ENABLE([__thread], [AS_HELP_STRING(--enable-__thread,use TLS features)], [use__thread=$enableval], [use__thread=no])
567 AC_MSG_CHECKING(whether to include threads support)
568 enable_threads=${enable_threads:-native}
569 case "$enable_threads" in
572 dnl no threads for boehm
573 ac_configure_args="$ac_configure_args --disable-boehm-threads"
574 AM_CONDITIONAL([ENABLE_THREADS], [false])
577 native | posix | pthreads)
578 AC_DEFINE([ENABLE_THREADS], 1, [enable threads])
580 AM_CONDITIONAL([ENABLE_THREADS], [true])
582 AC_MSG_RESULT(yes, native)
583 AC_CHECK_LIB(pthread, main)
585 ARCH_CFLAGS="$ARCH_CFLAGS -D_REENTRANT"
587 dnl we changed ARCH_CFLAGS, set CFLAGS again
588 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
590 dnl tell boehm to support threads as well
591 ac_configure_args="$ac_configure_args --enable-boehm-threads=posix"
595 AC_MSG_ERROR($enable_threads is an unknown thread package)
600 dnl Check whether the compiler supports the __thread keyword.
601 if test "x$use__thread" != xno; then
602 AC_CACHE_CHECK([for __thread], ac_cv_gcc___thread,
603 [cat > conftest.c <<\EOF
606 if AC_TRY_COMMAND([${CC-cc} $ARCH_CFLAGS $OPT_CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then
607 ac_cv_gcc___thread=yes
609 ac_cv_gcc___thread=no
612 if test "$ac_cv_gcc___thread" = yes; then
613 AC_DEFINE([HAVE___THREAD], 1, [have __thread])
616 ac_cv_gcc___thread=no
620 dnl check if if-conversion should be supported
621 AC_MSG_CHECKING(whether if-conversion should be supported)
622 AC_ARG_ENABLE([ifconv],
623 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
624 [case "${enableval}" in
625 no) ENABLE_IFCONV=no;;
626 *) ENABLE_IFCONV=yes;;
629 AC_MSG_RESULT(${ENABLE_IFCONV})
630 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
632 if test x"${ENABLE_IFCONV}" = "xyes"; then
633 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
637 dnl check for inlining
638 AC_MSG_CHECKING(whether method inlining should be supported)
639 AC_ARG_ENABLE([inlining],
640 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
641 [case "${enableval}" in
642 yes) ENABLE_INLINING=yes;;
643 *) ENABLE_INLINING=no;;
645 [ENABLE_INLINING=no])
646 AC_MSG_RESULT(${ENABLE_INLINING})
647 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
649 if test x"${ENABLE_INLINING}" = "xyes"; then
650 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
654 dnl check for replacement
655 AC_MSG_CHECKING(whether on-stack replacement should be supported)
656 AC_ARG_ENABLE([replacement],
657 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
658 [case "${enableval}" in
659 yes) ENABLE_REPLACEMENT=yes;;
660 *) ENABLE_REPLACEMENT=no;;
662 [ENABLE_REPLACEMENT=no])
663 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
664 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
666 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
667 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
671 dnl check for loop optimization
672 AC_MSG_CHECKING(whether loop optimization should be supported)
673 AC_ARG_ENABLE([loop],
674 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
675 [case "${enableval}" in
676 yes) ENABLE_LOOP=yes;;
680 AC_MSG_RESULT(${ENABLE_LOOP})
681 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
683 if test x"${ENABLE_LOOP}" = "xyes"; then
684 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
688 dnl check if linear scan register allocator(lsra) with SSA should be used
689 AC_MSG_CHECKING(whether lsra with ssa should be supported)
691 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
692 [case "${enableval}" in
697 AC_MSG_RESULT(${ENABLE_SSA})
698 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
700 if test x"${ENABLE_SSA}" = "xyes"; then
701 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
706 dnl check if linear scan register allocator(lsra) should be used
707 AC_MSG_CHECKING(whether lsra should be supported)
708 AC_ARG_ENABLE([lsra],
709 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
710 [case "${enableval}" in
711 yes) ENABLE_LSRA=yes;;
716 if test x"${ENABLE_LSRA}" = "xyes"; then
717 if test x"${ENABLE_SSA}" = "xyes"; then
721 AC_MSG_RESULT(${ENABLE_LSRA})
722 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
724 if test x"${ENABLE_LSRA}" = "xyes"; then
725 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
729 dnl check if profiling should be supported
730 AC_MSG_CHECKING(whether profiling should be supported)
731 AC_ARG_ENABLE([profiling],
732 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
733 [case "${enableval}" in
734 yes) ENABLE_PROFILING=yes;;
735 *) ENABLE_PROFILING=no;;
737 [ENABLE_PROFILING=no])
738 AC_MSG_RESULT(${ENABLE_PROFILING})
739 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
741 if test x"${ENABLE_PROFILING}" = "xyes"; then
742 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
746 dnl check for instruction scheduler
747 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
749 AC_MSG_CHECKING(whether instruction scheduler should be supported)
750 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
751 case "${ARCH_DIR}" in
755 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
760 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
761 AM_CONDITIONAL([USE_SCHEDULER], [true])
764 AM_CONDITIONAL([USE_SCHEDULER], [false])
768 dnl check if zlib should be used
769 AC_MSG_CHECKING(whether ZIP/JAR archives should be supported)
770 AC_ARG_ENABLE([zlib],
771 [AS_HELP_STRING(--disable-zlib,disable ZIP/JAR archive support (needs zlib) [[default=yes]])],
772 [case "${enableval}" in
777 AC_MSG_RESULT(${ENABLE_ZLIB})
779 if test x"${ENABLE_ZLIB}" = "xyes"; then
780 AC_CHECK_HEADERS([zconf.h],, [AC_MSG_ERROR(cannot find zconf.h)])
781 AC_CHECK_HEADERS([zlib.h],, [AC_MSG_ERROR(cannot find zlib.h)])
782 AC_CHECK_LIB(z, inflate,, [AC_MSG_ERROR(cannot find libz)])
783 AC_DEFINE([ENABLE_ZLIB], 1, [use zlib])
785 AM_CONDITIONAL([ENABLE_ZLIB], test x"${ENABLE_ZLIB}" = "xyes")
788 dnl check if a libjvm.so should be built
789 AC_MSG_CHECKING(whether to build a libjvm.so)
790 AC_ARG_ENABLE([libjvm],
791 [AS_HELP_STRING(--disable-libjvm,build a libjvm.so [[default=yes]])],
792 [case "${enableval}" in
793 no) ENABLE_LIBJVM=no;;
794 *) ENABLE_LIBJVM=yes;;
797 AC_MSG_RESULT(${ENABLE_LIBJVM})
798 AM_CONDITIONAL([ENABLE_LIBJVM], test x"${ENABLE_LIBJVM}" = "xyes")
799 AC_SUBST(ENABLE_LIBJVM)
801 if test x"${ENABLE_LIBJVM}" = "xyes"; then
802 AC_DEFINE([ENABLE_LIBJVM], 1, [enable libjvm.so])
804 dnl set AC_ENABLE_SHARED and AC_DISABLE_STATIC properly
817 dnl check if CACAO should be linked statically
818 AC_MSG_CHECKING(whether to link CACAO statically)
819 AC_ARG_ENABLE([staticvm],
820 [AS_HELP_STRING(--enable-staticvm,link CACAO statically [[default=no]])],
821 [case "${enableval}" in
822 yes) ENABLE_STATICVM=yes
823 AC_DEFINE([ENABLE_STATICVM], 1, [link CACAO statically])
825 *) ENABLE_STATICVM=no;;
827 [ENABLE_STATICVM=no])
828 AC_MSG_RESULT(${ENABLE_STATICVM})
829 AM_CONDITIONAL([ENABLE_STATICVM], test x"${ENABLE_STATICVM}" = "xyes")
830 AC_SUBST(ENABLE_STATICVM)
833 dnl where is CACAO's vm.zip
834 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
835 AC_ARG_WITH([vm-zip],
836 [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]])],
837 [CACAO_VM_ZIP=${withval}],
838 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
839 AC_MSG_RESULT(${CACAO_VM_ZIP})
840 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
841 AC_SUBST(CACAO_VM_ZIP)
844 dnl which Java core library are we using?
845 AC_MSG_CHECKING(which Java core library to use)
846 AC_ARG_WITH([classpath],
847 [AS_HELP_STRING(--with-classpath=<type>,specifies which type of classpath to use as Java core library (gnu) [[default=gnu]])],
848 [case "${withval}" in
850 WITH_CLASSPATH=cldc1.1
851 AC_DEFINE([WITH_CLASSPATH_CLDC1_1], 1, [use Sun's CLDC1.1 classes])
852 AC_SUBST(WITH_CLASSPATH_CLDC1_1)
856 AC_DEFINE([WITH_CLASSPATH_GNU], 1, [use GNU Classpath])
857 AC_SUBST(WITH_CLASSPATH_GNU)
860 AC_MSG_ERROR(unknown classpath ${withval})
864 AC_DEFINE([WITH_CLASSPATH_GNU], 1, [use GNU Classpath])
865 AC_SUBST(WITH_CLASSPATH_GNU)])
866 AC_MSG_RESULT(${WITH_CLASSPATH})
867 AM_CONDITIONAL([WITH_CLASSPATH_CLDC1_1], test x"${WITH_CLASSPATH}" = "xcldc1.1")
868 AM_CONDITIONAL([WITH_CLASSPATH_GNU], test x"${WITH_CLASSPATH}" = "xgnu")
871 dnl where is Java core library installed?
872 AC_MSG_CHECKING(where Java core library is installed)
873 AC_ARG_WITH([classpath-prefix],
874 [AS_HELP_STRING(--with-classpath-prefix=<dir>,installation directory of Java core library [[default=/usr/local/classpath]])],
875 [CLASSPATH_PREFIX=${withval}],
876 [CLASSPATH_PREFIX=/usr/local/classpath])
877 AC_MSG_RESULT(${CLASSPATH_PREFIX})
878 AC_DEFINE_UNQUOTED([CLASSPATH_PREFIX], "${CLASSPATH_PREFIX}", [Java core library installation directory])
879 AC_SUBST(CLASSPATH_PREFIX)
882 dnl where are Java core library classes installed?
883 AC_MSG_CHECKING(where Java core library classes are installed)
884 AC_ARG_WITH([classpath-classes],
885 [AS_HELP_STRING(--with-classpath-classes=<path>,path to Java core library classes (includes the name of the file and may be flat) [[default=/usr/local/classpath/share/classpath/glibj.zip]])],
886 [CLASSPATH_CLASSES=${withval}],
887 [CLASSPATH_CLASSES=${CLASSPATH_PREFIX}/share/classpath/glibj.zip])
888 AC_MSG_RESULT(${CLASSPATH_CLASSES})
889 AC_DEFINE_UNQUOTED([CLASSPATH_CLASSES], "${CLASSPATH_CLASSES}", [Java core library classes])
890 AC_SUBST(CLASSPATH_CLASSES)
893 dnl where are Java core library native libraries installed?
894 AC_MSG_CHECKING(where Java core library native libraries are installed)
895 AC_ARG_WITH([classpath-libdir],
896 [AS_HELP_STRING(--with-classpath-libdir=<dir>,installation directory of Java core library native libraries [[default=/usr/local/classpath/lib]])],
897 [CLASSPATH_LIBDIR=${withval}],
898 [CLASSPATH_LIBDIR=${CLASSPATH_PREFIX}/lib])
899 AC_MSG_RESULT(${CLASSPATH_LIBDIR})
901 dnl expand CLASSPATH_LIBDIR to something that is usable in C code
902 AS_AC_EXPAND([CLASSPATH_LIBDIR], ${CLASSPATH_LIBDIR})
903 AC_DEFINE_UNQUOTED([CLASSPATH_LIBDIR], "${CLASSPATH_LIBDIR}", [Java core library native libraries installation directory])
904 AC_SUBST(CLASSPATH_LIBDIR)
907 dnl where are Java core library headers installed?
908 AC_MSG_CHECKING(where Java core library headers are installed)
909 AC_ARG_WITH([classpath-includedir],
910 [AS_HELP_STRING(--with-classpath-includedir=<dir>,installation directory of Java core library headers [[default=/usr/local/classpath/include]])],
911 [CLASSPATH_INCLUDEDIR=${withval}],
912 [CLASSPATH_INCLUDEDIR=${CLASSPATH_PREFIX}/include])
913 AC_MSG_RESULT(${CLASSPATH_INCLUDEDIR})
915 AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/jni.h],
916 [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_H], "${CLASSPATH_INCLUDEDIR}/jni.h", [Java core library jni.h header])],
917 [AC_MSG_ERROR(cannot find jni.h)])
920 dnl if we compile for a JRE-style directory layout
921 AC_MSG_CHECKING(if we compile for a JRE-style directory layout)
922 AC_ARG_WITH([jre-layout],
923 [AS_HELP_STRING(--with-jre-layout,compile for JRE-style directory layout [[default=no]])],
924 [case "${enableval}" in
925 yes) WITH_JRE_LAYOUT=yes
926 AC_DEFINE([WITH_JRE_LAYOUT], 1, [with JRE layout])
928 *) WITH_JRE_LAYOUT=no;;
930 [WITH_JRE_LAYOUT=no])
931 AC_MSG_RESULT(${WITH_JRE_LAYOUT})
934 dnl check if GNU Classpath should be linked statically into CACAO
935 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
936 AC_ARG_WITH([static-classpath],
937 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
938 [case "${enableval}" in
939 yes) WITH_STATIC_CLASSPATH=yes;;
940 *) WITH_STATIC_CLASSPATH=no;;
942 [WITH_STATIC_CLASSPATH=no])
943 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
945 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
946 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
948 dnl check for some classpath related stuff when we link statically
951 AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)])
952 AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)])
954 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
955 AC_SUBST(WITH_STATIC_CLASSPATH)
958 dnl check for some programs we need
963 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
965 AM_CFLAGS=$ARCH_CFLAGS
969 AC_CONFIG_FILES([Makefile]
971 [contrib/setenvinstalled]
972 [contrib/setenvsource]
974 [doc/handbook/Makefile]
978 [src/cacaoh/Makefile]
979 [src/fdlibm/Makefile]
982 [src/mm/cacao-gc/Makefile]
983 [src/native/Makefile]
984 [src/native/include/Makefile]
985 [src/native/jvmti/Makefile]
986 [src/native/tools/Makefile]
987 [src/native/vm/Makefile]
988 [src/native/vm/cldc1.1/Makefile]
989 [src/native/vm/gnu/Makefile]
990 [src/scripts/Makefile]
992 [src/threads/Makefile]
993 [src/threads/native/Makefile]
994 [src/threads/none/Makefile]
995 [src/toolbox/Makefile]
997 [src/vm/jit/Makefile]
998 [src/vm/jit/allocator/Makefile]
999 [src/vm/jit/alpha/Makefile]
1000 [src/vm/jit/alpha/freebsd/Makefile]
1001 [src/vm/jit/alpha/linux/Makefile]
1002 [src/vm/jit/i386/Makefile]
1003 [src/vm/jit/i386/cygwin/Makefile]
1004 [src/vm/jit/i386/darwin/Makefile]
1005 [src/vm/jit/i386/freebsd/Makefile]
1006 [src/vm/jit/i386/linux/Makefile]
1007 [src/vm/jit/intrp/Makefile]
1008 [src/vm/jit/inline/Makefile]
1009 [src/vm/jit/loop/Makefile]
1010 [src/vm/jit/mips/Makefile]
1011 [src/vm/jit/mips/irix/Makefile]
1012 [src/vm/jit/mips/linux/Makefile]
1013 [src/vm/jit/optimizing/Makefile]
1014 [src/vm/jit/parisc/Makefile]
1015 [src/vm/jit/powerpc/Makefile]
1016 [src/vm/jit/powerpc/darwin/Makefile]
1017 [src/vm/jit/powerpc/linux/Makefile]
1018 [src/vm/jit/powerpc/netbsd/Makefile]
1019 [src/vm/jit/powerpc64/Makefile]
1020 [src/vm/jit/powerpc64/linux/Makefile]
1021 [src/vm/jit/schedule/Makefile]
1022 [src/vm/jit/sparc64/Makefile]
1023 [src/vm/jit/sparc64/linux/Makefile]
1024 [src/vm/jit/tools/Makefile]
1025 [src/vm/jit/verify/Makefile]
1026 [src/vm/jit/x86_64/Makefile]
1028 [tests/regression/Makefile]
1029 [tests/regression/codepatching/Makefile]
1030 [tests/regression/jasmin/Makefile]
1031 [tests/regression/native/Makefile])
1034 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1037 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1045 ## indent-tabs-mode: t
1046 ## c-basic-offset: 4
1048 ## compile-command: "automake --add-missing"