3 dnl Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
4 dnl C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
5 dnl E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
6 dnl J. Wenninger, Institut f. Computersprachen - TU Wien
8 dnl This file is part of CACAO.
10 dnl This program is free software; you can redistribute it and/or
11 dnl modify it under the terms of the GNU General Public License as
12 dnl published by the Free Software Foundation; either version 2, or (at
13 dnl your option) any later version.
15 dnl This program is distributed in the hope that it will be useful, but
16 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
17 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 dnl General Public License for more details.
20 dnl You should have received a copy of the GNU General Public License
21 dnl along with this program; if not, write to the Free Software
22 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
25 dnl $Id: configure.ac 8056 2007-06-10 14:49:57Z michi $
27 dnl Process this file with autoconf to produce a configure script.
30 AC_INIT(cacao, 0.98+svn, cacao@cacaojvm.org)
31 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
34 AM_INIT_AUTOMAKE([1.9.0 dist-bzip2])
37 AM_CONFIG_HEADER([config.h])
39 AC_PREFIX_DEFAULT(/usr/local/cacao)
42 dnl set optimization and debugging for all architectures and systems
43 if test x"$CFLAGS" = "x"; then
51 alpha | alphaev56 | alphapca56 )
53 ARCH_CFLAGS="-mieee -D__ALPHA__"
56 arm | armv4 | armv4tl | armv5b | armv5l )
58 ARCH_CFLAGS="-D__ARM__"
63 ARCH_CFLAGS="-D__PARISC__"
66 i386 | i486 | i586 | i686 )
68 ARCH_CFLAGS="-D__I386__"
73 ARCH_CFLAGS="-D__M68K__"
78 ARCH_CFLAGS="-D__MIPS__"
83 ARCH_CFLAGS="-D__POWERPC__"
88 ARCH_CFLAGS="-D__POWERPC64__"
93 ARCH_CFLAGS="-D__S390__"
98 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
103 ARCH_CFLAGS="-D__X86_64__"
108 ENABLE_STATICVM="yes"
109 ARCH_CFLAGS="-D__XDSPCORE__"
114 AC_MSG_ERROR($host_cpu systems are not supported at this time)
122 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
123 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long"
128 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
129 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall -Wno-long-long"
134 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
135 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
140 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
141 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
146 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"
147 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"
150 dnl must be before *linux*
153 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"
154 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"
159 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"
160 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"
165 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"
166 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"
171 dnl on solaris the architecture defines 'sparc','sun','unix' are not set when cpp is called with -ansi
172 dnl therefore we add them here
173 INTRP_CFLAGS="$ARCH_CFLAGS -D__SOLARIS__ -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -D_BSD_SOURCE -Dsparc -Dsun -Dunix"
174 ARCH_CFLAGS="$ARCH_CFLAGS -D__SOLARIS__ -ansi -pedantic -Wall -Wno-long-long -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ -D_BSD_SOURCE -Dsparc -Dsun -Dunix"
182 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
183 dnl we set it properly at the end of this file
184 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
186 dnl set interpreter flags
187 AC_SUBST(INTRP_CFLAGS)
189 dnl define some stuff required for --fullversion
190 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
191 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
192 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used])
195 dnl define and substitute some architecture specific variables
196 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
199 AC_SUBST(USE_SCHEDULER)
202 dnl Checks for programs.
212 dnl Checks for header files.
216 dnl keep them alpha-sorted!
217 AC_CHECK_HEADERS([fcntl.h])
218 AC_CHECK_HEADERS([stdlib.h])
219 AC_CHECK_HEADERS([string.h])
220 AC_CHECK_HEADERS([time.h])
221 AC_CHECK_HEADERS([unistd.h])
222 AC_CHECK_HEADERS([sys/ioctl.h])
223 AC_CHECK_HEADERS([sys/mman.h])
224 AC_CHECK_HEADERS([sys/resource.h])
225 AC_CHECK_HEADERS([sys/select.h])
226 AC_CHECK_HEADERS([sys/stat.h])
227 AC_CHECK_HEADERS([sys/time.h])
228 AC_CHECK_HEADERS([sys/types.h])
230 dnl this is for fdlibm
231 AC_CHECK_HEADERS([stdint.h])
232 AC_CHECK_HEADERS([inttypes.h])
233 AC_CHECK_HEADERS([sys/config.h])
234 AC_CHECK_HEADERS([sys/types.h])
235 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
236 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
237 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]))
238 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]))
240 dnl Checks for typedefs, structures, and compiler characteristics.
249 dnl Checks for library functions.
250 AC_PROG_GCC_TRADITIONAL
255 dnl keep them alpha-sorted!
256 AC_CHECK_FUNCS([calloc])
257 AC_CHECK_FUNCS([confstr])
258 AC_CHECK_FUNCS([free])
259 AC_CHECK_FUNCS([fstat])
260 AC_CHECK_FUNCS([getcwd])
261 AC_CHECK_FUNCS([getpagesize])
262 AC_CHECK_FUNCS([getrusage])
263 AC_CHECK_FUNCS([gettimeofday])
264 AC_CHECK_FUNCS([ioctl])
265 AC_CHECK_FUNCS([isnan])
266 AC_CHECK_FUNCS([localtime])
267 AC_CHECK_FUNCS([localtime_r])
268 AC_CHECK_FUNCS([lseek])
269 AC_CHECK_FUNCS([mmap])
270 AC_CHECK_FUNCS([mprotect])
271 AC_CHECK_FUNCS([open])
272 AC_CHECK_FUNCS([scandir])
273 AC_CHECK_FUNCS([select])
274 AC_CHECK_FUNCS([strdup])
275 AC_CHECK_FUNCS([strerror])
276 AC_CHECK_FUNCS([strstr])
277 AC_CHECK_FUNCS([time])
280 dnl Checks for libraries.
282 dnl Checking sizeof void *
283 AC_CHECK_SIZEOF(void *)
287 dnl define install prefix
288 if test "x$prefix" = "xNONE"; then
289 CACAO_PREFIX=$ac_default_prefix
293 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
294 AC_SUBST(CACAO_PREFIX)
296 dnl define libdir prefix
297 if test "x$libdir" = "xNONE"; then
298 CACAO_LIBDIR=$ac_default_libdir
302 dnl expand CACAO_LIBDIR to something that is usable in C code
303 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
304 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
305 AC_SUBST(CACAO_LIBDIR)
316 dnl check for stuff that should be done in software
318 AC_CHECK_SOFT_FLOAT_CMP
319 AC_CHECK_SOFT_DOUBLE_CMP
322 dnl check for interpreter
323 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
325 AC_MSG_CHECKING(whether interpreter should be compiled)
326 if test x"$enable_intrp" = "xyes"; then
328 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
329 AM_CONDITIONAL([ENABLE_INTRP], [true])
336 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
338 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
339 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
340 AC_DEFINE([WITH_FFI], 1, [use libffi])],
343 dnl check for libffcall
344 AC_ARG_WITH([ffcall],
345 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
347 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
348 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
349 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
352 dnl check for libffi or libffcall
353 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
354 AC_ERROR(Enable only libffi or libffcall.)
356 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
357 AC_ERROR(Enable one of libffi or libffcall.)
362 AM_CONDITIONAL([ENABLE_INTRP], [false])
366 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
367 AC_ERROR(You have to enable at least the JIT or the interpreter.)
371 dnl check for garbage collector usage
372 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
373 AC_MSG_CHECKING(whether GC should be enabled)
374 enable_gc=${enable_gc:-boehm}
377 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
383 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
385 AC_MSG_RESULT(yes, boehm-gc)
389 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
391 AC_MSG_RESULT(yes, cacao-gc)
395 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
398 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
399 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
400 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
404 dnl check for dump memory usage
405 AC_MSG_CHECKING(whether dump memory should be disabled)
406 AC_ARG_ENABLE([dump],
407 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
408 [case "${enableval}" in
411 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
416 AC_MSG_RESULT(${DISABLE_DUMP})
420 AC_MSG_CHECKING(whether debug code generation should be enabled)
421 AC_ARG_ENABLE([debug],
422 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
423 [case "${enableval}" in
425 AC_DEFINE([NDEBUG], 1, [disable debug code])
431 if test x"${NDEBUG}" = "xno"; then
436 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
439 dnl check for memcheck support
440 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
441 AC_ARG_ENABLE([memcheck],
442 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
443 [case "${enableval}" in
444 yes) ENABLE_MEMCHECK=yes;;
445 *) ENABLE_MEMCHECK=no;;
447 [ENABLE_MEMCHECK=no])
448 AC_MSG_RESULT(${ENABLE_MEMCHECK})
449 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
451 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
452 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
456 dnl check for vmlog support
457 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
458 AC_ARG_ENABLE([vmlog],
459 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
460 [case "${enableval}" in
461 yes) ENABLE_VMLOG=yes;;
465 AC_MSG_RESULT(${ENABLE_VMLOG})
466 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
468 if test x"${ENABLE_VMLOG}" = "xyes"; then
469 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
473 dnl check for disassembler support
474 AC_MSG_CHECKING(whether disassembler should be enabled)
475 AC_ARG_ENABLE([disassembler],
476 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
477 [case "${enableval}" in
478 yes) ENABLE_DISASSEMBLER=yes;;
479 *) ENABLE_DISASSEMBLER=no;;
481 [ENABLE_DISASSEMBLER=no])
482 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
483 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
485 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
486 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
488 dnl check for binutils headers and libraries on some architectures for the
490 case "${ARCH_DIR}" in
491 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
492 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
493 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
494 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
495 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
498 cygwin | darwin | netbsd | solaris)
499 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
503 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
504 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
505 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
506 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
507 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
510 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
514 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
518 dnl check for statistics
519 AC_MSG_CHECKING(whether statistics generation should be enabled)
520 AC_ARG_ENABLE([statistics],
521 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
522 [case "${enableval}" in
523 yes) ENABLE_STATISTICS=yes;;
524 *) ENABLE_STATISTICS=no;;
526 [ENABLE_STATISTICS=no])
527 AC_MSG_RESULT(${ENABLE_STATISTICS})
528 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
530 if test x"${ENABLE_STATISTICS}" = "xyes"; then
531 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
535 dnl check for verifier
536 AC_MSG_CHECKING(whether classfile verification should be enabled)
537 AC_ARG_ENABLE([verifier],
538 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
539 [case "${enableval}" in
540 no) ENABLE_VERIFIER=no;;
541 *) ENABLE_VERIFIER=yes;;
543 [ENABLE_VERIFIER=yes])
544 AC_MSG_RESULT(${ENABLE_VERIFIER})
545 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
547 if test x"${ENABLE_VERIFIER}" = "xyes"; then
548 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
552 dnl check for compiler timing
553 AC_MSG_CHECKING(whether real-time timing should be enabled)
554 AC_ARG_ENABLE([rt-timing],
555 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
556 [case "${enableval}" in
557 yes) ENABLE_RT_TIMING=yes;;
558 *) ENABLE_RT_TIMING=no;;
560 [ENABLE_RT_TIMING=no])
561 AC_MSG_RESULT(${ENABLE_RT_TIMING})
562 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
564 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
565 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
569 dnl check for cycle count statistics
570 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
571 AC_ARG_ENABLE([cycles-stats],
572 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
573 [case "${enableval}" in
574 yes) ENABLE_CYCLES_STATS=yes;;
575 *) ENABLE_CYCLES_STATS=no;;
577 [ENABLE_CYCLES_STATS=no])
578 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
579 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
581 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
582 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
587 AC_MSG_CHECKING(whether to compile JVMTI support)
588 AC_ARG_ENABLE([jvmti],
589 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
590 [case "${enableval}" in
591 yes) ENABLE_JVMTI=yes;;
595 AC_MSG_RESULT(${ENABLE_JVMTI})
596 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
598 if test x"${ENABLE_JVMTI}" = "xyes"; then
599 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
603 AC_CHECK_ENABLE_THREADS
606 dnl check if if-conversion should be supported
607 AC_MSG_CHECKING(whether if-conversion should be supported)
608 AC_ARG_ENABLE([ifconv],
609 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
610 [case "${enableval}" in
611 no) ENABLE_IFCONV=no;;
612 *) ENABLE_IFCONV=yes;;
615 AC_MSG_RESULT(${ENABLE_IFCONV})
616 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
618 if test x"${ENABLE_IFCONV}" = "xyes"; then
619 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
623 dnl check for inlining
624 AC_MSG_CHECKING(whether method inlining should be supported)
625 AC_ARG_ENABLE([inlining],
626 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
627 [case "${enableval}" in
628 yes) ENABLE_INLINING=yes;;
629 *) ENABLE_INLINING=no;;
631 [ENABLE_INLINING=no])
632 AC_MSG_RESULT(${ENABLE_INLINING})
633 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
635 if test x"${ENABLE_INLINING}" = "xyes"; then
636 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
640 dnl check for inlining debug options
641 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
642 AC_ARG_ENABLE([inlining-debug],
643 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
644 [case "${enableval}" in
645 yes) ENABLE_INLINING_DEBUG=yes;;
646 *) ENABLE_INLINING_DEBUG=no;;
648 [ENABLE_INLINING_DEBUG=no])
649 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
650 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
652 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
653 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
657 dnl check for replacement
658 AC_MSG_CHECKING(whether on-stack replacement should be supported)
659 AC_ARG_ENABLE([replacement],
660 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
661 [case "${enableval}" in
662 yes) ENABLE_REPLACEMENT=yes;;
663 *) ENABLE_REPLACEMENT=no;;
665 [ENABLE_REPLACEMENT=no])
666 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
667 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
669 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
670 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
674 dnl check for loop optimization
675 AC_MSG_CHECKING(whether loop optimization should be supported)
676 AC_ARG_ENABLE([loop],
677 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
678 [case "${enableval}" in
679 yes) ENABLE_LOOP=yes;;
683 AC_MSG_RESULT(${ENABLE_LOOP})
684 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
686 if test x"${ENABLE_LOOP}" = "xyes"; then
687 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
691 dnl check if linear scan register allocator(lsra) with SSA should be used
692 AC_MSG_CHECKING(whether lsra with ssa should be supported)
694 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
695 [case "${enableval}" in
700 AC_MSG_RESULT(${ENABLE_SSA})
701 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
703 if test x"${ENABLE_SSA}" = "xyes"; then
704 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
709 dnl check if linear scan register allocator(lsra) should be used
710 AC_MSG_CHECKING(whether lsra should be supported)
711 AC_ARG_ENABLE([lsra],
712 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
713 [case "${enableval}" in
714 yes) ENABLE_LSRA=yes;;
719 if test x"${ENABLE_LSRA}" = "xyes"; then
720 if test x"${ENABLE_SSA}" = "xyes"; then
724 AC_MSG_RESULT(${ENABLE_LSRA})
725 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
727 if test x"${ENABLE_LSRA}" = "xyes"; then
728 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
732 dnl check if profiling should be supported
733 AC_MSG_CHECKING(whether profiling should be supported)
734 AC_ARG_ENABLE([profiling],
735 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
736 [case "${enableval}" in
737 yes) ENABLE_PROFILING=yes;;
738 *) ENABLE_PROFILING=no;;
740 [ENABLE_PROFILING=no])
741 AC_MSG_RESULT(${ENABLE_PROFILING})
742 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
744 if test x"${ENABLE_PROFILING}" = "xyes"; then
745 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
749 dnl check for instruction scheduler
750 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
752 AC_MSG_CHECKING(whether instruction scheduler should be supported)
753 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
754 case "${ARCH_DIR}" in
758 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
763 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
764 AM_CONDITIONAL([USE_SCHEDULER], [true])
767 AM_CONDITIONAL([USE_SCHEDULER], [false])
771 dnl check if zlib should be used
772 AC_MSG_CHECKING(whether ZIP/JAR archives should be supported)
773 AC_ARG_ENABLE([zlib],
774 [AS_HELP_STRING(--disable-zlib,disable ZIP/JAR archive support (needs zlib) [[default=yes]])],
775 [case "${enableval}" in
780 AC_MSG_RESULT(${ENABLE_ZLIB})
782 if test x"${ENABLE_ZLIB}" = "xyes"; then
783 AC_CHECK_HEADERS([zconf.h],, [AC_MSG_ERROR(cannot find zconf.h)])
784 AC_CHECK_HEADERS([zlib.h],, [AC_MSG_ERROR(cannot find zlib.h)])
785 AC_CHECK_LIB(z, inflate,, [AC_MSG_ERROR(cannot find libz)])
786 AC_DEFINE([ENABLE_ZLIB], 1, [use zlib])
788 AM_CONDITIONAL([ENABLE_ZLIB], test x"${ENABLE_ZLIB}" = "xyes")
791 dnl check for stuff to be built
795 dnl check if a libjvm.so should be built
796 AC_MSG_CHECKING(whether to build a libjvm.so)
797 AC_ARG_ENABLE([libjvm],
798 [AS_HELP_STRING(--disable-libjvm,build a libjvm.so [[default=yes]])],
799 [case "${enableval}" in
800 no) ENABLE_LIBJVM=no;;
801 *) ENABLE_LIBJVM=yes;;
804 AC_MSG_RESULT(${ENABLE_LIBJVM})
805 AM_CONDITIONAL([ENABLE_LIBJVM], test x"${ENABLE_LIBJVM}" = "xyes")
806 AC_SUBST(ENABLE_LIBJVM)
808 if test x"${ENABLE_LIBJVM}" = "xyes"; then
809 AC_DEFINE([ENABLE_LIBJVM], 1, [enable libjvm.so])
811 dnl set AC_ENABLE_SHARED and AC_DISABLE_STATIC properly
824 dnl check if CACAO should be linked statically
825 AC_MSG_CHECKING(whether to link CACAO statically)
826 AC_ARG_ENABLE([staticvm],
827 [AS_HELP_STRING(--enable-staticvm,link CACAO statically [[default=no]])],
828 [case "${enableval}" in
829 yes) ENABLE_STATICVM=yes
830 AC_DEFINE([ENABLE_STATICVM], 1, [link CACAO statically])
832 *) ENABLE_STATICVM=no;;
834 [ENABLE_STATICVM=no])
835 AC_MSG_RESULT(${ENABLE_STATICVM})
836 AM_CONDITIONAL([ENABLE_STATICVM], test x"${ENABLE_STATICVM}" = "xyes")
837 AC_SUBST(ENABLE_STATICVM)
840 dnl where is CACAO's vm.zip
841 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
842 AC_ARG_WITH([vm-zip],
843 [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]])],
844 [CACAO_VM_ZIP=${withval}],
845 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
846 AC_MSG_RESULT(${CACAO_VM_ZIP})
847 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
848 AC_SUBST(CACAO_VM_ZIP)
851 AC_CHECK_WITH_CLASSPATH
852 AC_CHECK_WITH_CLASSPATH_PREFIX
853 AC_CHECK_WITH_CLASSPATH_CLASSES
854 AC_CHECK_WITH_CLASSPATH_LIBDIR
855 AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
858 dnl if we compile for a JRE-style directory layout
859 AC_MSG_CHECKING(if we compile for a JRE-style directory layout)
860 AC_ARG_WITH([jre-layout],
861 [AS_HELP_STRING(--with-jre-layout,compile for JRE-style directory layout [[default=no]])],
862 [case "${enableval}" in
863 yes) WITH_JRE_LAYOUT=yes
864 AC_DEFINE([WITH_JRE_LAYOUT], 1, [with JRE layout])
866 *) WITH_JRE_LAYOUT=no;;
868 [WITH_JRE_LAYOUT=no])
869 AC_MSG_RESULT(${WITH_JRE_LAYOUT})
872 dnl check if GNU Classpath should be linked statically into CACAO
873 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
874 AC_ARG_WITH([static-classpath],
875 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
876 [case "${enableval}" in
877 yes) WITH_STATIC_CLASSPATH=yes;;
878 *) WITH_STATIC_CLASSPATH=no;;
880 [WITH_STATIC_CLASSPATH=no])
881 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
883 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
884 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
886 dnl check for some classpath related stuff when we link statically
889 dnl we need this check for --enable-staticvm, otherwise ltdl can't find dlopen
890 if test x"${ENABLE_STATICVM}" = "xyes"; then
891 AC_CHECK_LIB(dl, dlopen,, [AC_MSG_ERROR(cannot find libdl)])
894 AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)])
895 AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)])
897 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
898 AC_SUBST(WITH_STATIC_CLASSPATH)
901 dnl check for some programs we need
908 dnl If debug build and regex.h available, enable debug filter
909 if test x"${NDEBUG}" = "xno"; then
910 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
912 dnl If vmlog enambled and regex.h available, enable vmlogfilter
913 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
916 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
920 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
922 AM_CFLAGS=$ARCH_CFLAGS
926 AC_CONFIG_FILES([Makefile]
928 [contrib/setenvinstalled]
929 [contrib/setenvsource]
930 [contrib/vmlog/Makefile]
931 [contrib/vmlog/t/Makefile]
933 [doc/handbook/Makefile]
937 [src/cacaoh/Makefile]
938 [src/fdlibm/Makefile]
941 [src/mm/cacao-gc/Makefile]
942 [src/native/Makefile]
943 [src/native/include/Makefile]
944 [src/native/jvmti/Makefile]
945 [src/native/tools/Makefile]
946 [src/native/vm/Makefile]
947 [src/native/vm/cldc1.1/Makefile]
948 [src/native/vm/gnu/Makefile]
949 [src/scripts/Makefile]
951 [src/threads/Makefile]
952 [src/threads/native/Makefile]
953 [src/threads/none/Makefile]
954 [src/toolbox/Makefile]
956 [src/vm/jit/Makefile]
957 [src/vm/jit/allocator/Makefile]
958 [src/vm/jit/alpha/Makefile]
959 [src/vm/jit/alpha/freebsd/Makefile]
960 [src/vm/jit/alpha/linux/Makefile]
961 [src/vm/jit/arm/Makefile]
962 [src/vm/jit/arm/linux/Makefile]
963 [src/vm/jit/i386/Makefile]
964 [src/vm/jit/i386/cygwin/Makefile]
965 [src/vm/jit/i386/darwin/Makefile]
966 [src/vm/jit/i386/freebsd/Makefile]
967 [src/vm/jit/i386/linux/Makefile]
968 [src/vm/jit/intrp/Makefile]
969 [src/vm/jit/inline/Makefile]
970 [src/vm/jit/loop/Makefile]
971 [src/vm/jit/m68k/Makefile]
972 [src/vm/jit/m68k/linux/Makefile]
973 [src/vm/jit/mips/Makefile]
974 [src/vm/jit/mips/irix/Makefile]
975 [src/vm/jit/mips/linux/Makefile]
976 [src/vm/jit/mips/uclinux/Makefile]
977 [src/vm/jit/optimizing/Makefile]
978 [src/vm/jit/parisc/Makefile]
979 [src/vm/jit/parisc/linux/Makefile]
980 [src/vm/jit/powerpc/Makefile]
981 [src/vm/jit/powerpc/darwin/Makefile]
982 [src/vm/jit/powerpc/linux/Makefile]
983 [src/vm/jit/powerpc/netbsd/Makefile]
984 [src/vm/jit/powerpc64/Makefile]
985 [src/vm/jit/powerpc64/linux/Makefile]
986 [src/vm/jit/s390/Makefile]
987 [src/vm/jit/schedule/Makefile]
988 [src/vm/jit/sparc64/Makefile]
989 [src/vm/jit/sparc64/linux/Makefile]
990 [src/vm/jit/sparc64/solaris/Makefile]
991 [src/vm/jit/tools/Makefile]
992 [src/vm/jit/verify/Makefile]
993 [src/vm/jit/x86_64/Makefile]
994 [src/vm/jit/x86_64/freebsd/Makefile]
995 [src/vm/jit/x86_64/linux/Makefile]
996 [src/vmcore/Makefile]
998 [tests/regression/Makefile]
999 [tests/regression/codepatching/Makefile]
1000 [tests/regression/jasmin/Makefile]
1001 [tests/regression/native/Makefile]
1002 [tests/regression/resolving/Makefile]
1003 [tests/regression/resolving/classes1/Makefile]
1004 [tests/regression/resolving/classes2/Makefile]
1005 [tests/regression/resolving/classes3/Makefile]
1009 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1012 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1020 ## indent-tabs-mode: t
1021 ## c-basic-offset: 4
1023 ## compile-command: "automake --add-missing"