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 8381 2007-08-21 13:00:21Z twisti $
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__"
57 arm | armv4 | armv4tl | armv5b | armv5l )
59 ARCH_CFLAGS="-D__ARM__"
65 ARCH_CFLAGS="-D__PARISC__"
69 i386 | i486 | i586 | i686 )
71 ARCH_CFLAGS="-D__I386__"
77 ARCH_CFLAGS="-D__M68K__"
83 ARCH_CFLAGS="-D__MIPS__"
84 dnl Is this correct for mipsel?
90 ARCH_CFLAGS="-D__POWERPC__"
96 ARCH_CFLAGS="-D__POWERPC64__"
102 ARCH_CFLAGS="-D__S390__"
108 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
109 dnl Is this correct for 64-bits?
115 ARCH_CFLAGS="-D__X86_64__"
121 ENABLE_STATICVM="yes"
122 ARCH_CFLAGS="-D__XDSPCORE__"
127 AC_MSG_ERROR($host_cpu systems are not supported at this time)
135 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
136 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long"
141 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
142 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall -Wno-long-long"
147 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
148 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
153 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
154 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
159 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"
160 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"
163 dnl must be before *linux*
166 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"
167 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"
172 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"
173 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"
178 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"
179 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"
184 dnl on solaris the architecture defines 'sparc','sun','unix' are not set when cpp is called with -ansi
185 dnl therefore we add them here
186 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"
187 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"
195 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
196 dnl we set it properly at the end of this file
197 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
199 dnl set interpreter flags
200 AC_SUBST(INTRP_CFLAGS)
202 dnl define some stuff required for --fullversion
203 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
204 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
205 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used])
208 dnl define and substitute some architecture specific variables
209 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
210 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
213 AC_SUBST(USE_SCHEDULER)
216 dnl Checks for programs.
226 dnl Checks for header files.
230 dnl keep them alpha-sorted!
231 AC_CHECK_HEADERS([fcntl.h])
232 AC_CHECK_HEADERS([netdb.h])
233 AC_CHECK_HEADERS([stdlib.h])
234 AC_CHECK_HEADERS([string.h])
235 AC_CHECK_HEADERS([time.h])
236 AC_CHECK_HEADERS([ucontext.h])
237 AC_CHECK_HEADERS([unistd.h])
238 AC_CHECK_HEADERS([sys/ioctl.h])
239 AC_CHECK_HEADERS([sys/mman.h])
240 AC_CHECK_HEADERS([sys/resource.h])
241 AC_CHECK_HEADERS([sys/select.h])
242 AC_CHECK_HEADERS([sys/socket.h])
243 AC_CHECK_HEADERS([sys/stat.h])
244 AC_CHECK_HEADERS([sys/time.h])
245 AC_CHECK_HEADERS([sys/types.h])
247 dnl this is for fdlibm
248 AC_CHECK_HEADERS([stdint.h])
249 AC_CHECK_HEADERS([inttypes.h])
250 AC_CHECK_HEADERS([sys/config.h])
251 AC_CHECK_HEADERS([sys/types.h])
252 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
253 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
254 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]))
255 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]))
257 dnl Checks for typedefs, structures, and compiler characteristics.
266 dnl Checks for libraries (NOTE: Should be done before function checks,
267 dnl as some functions may be in libraries we check for).
268 AC_CHECK_LIB(dl, dlopen,,)
270 dnl Checks for library functions.
271 AC_PROG_GCC_TRADITIONAL
276 dnl keep them alpha-sorted!
277 AC_CHECK_FUNCS([accept])
278 AC_CHECK_FUNCS([access])
279 AC_CHECK_FUNCS([atoi])
280 AC_CHECK_FUNCS([atol])
281 AC_CHECK_FUNCS([calloc])
282 AC_CHECK_FUNCS([close])
283 AC_CHECK_FUNCS([confstr])
284 AC_CHECK_FUNCS([connect])
285 AC_CHECK_FUNCS([fflush])
286 AC_CHECK_FUNCS([fopen])
287 AC_CHECK_FUNCS([fprintf])
288 AC_CHECK_FUNCS([free])
289 AC_CHECK_FUNCS([fstat])
290 AC_CHECK_FUNCS([getcwd])
291 AC_CHECK_FUNCS([gethostbyname])
292 AC_CHECK_FUNCS([gethostname])
293 AC_CHECK_FUNCS([getpagesize])
294 AC_CHECK_FUNCS([getrusage])
295 AC_CHECK_FUNCS([getsockname])
296 AC_CHECK_FUNCS([gettimeofday])
297 AC_CHECK_FUNCS([htons])
298 AC_CHECK_FUNCS([ioctl])
299 AC_CHECK_FUNCS([isnan])
300 AC_CHECK_FUNCS([listen])
301 AC_CHECK_FUNCS([localtime])
302 AC_CHECK_FUNCS([localtime_r])
303 AC_CHECK_FUNCS([lseek])
304 AC_CHECK_FUNCS([malloc])
305 AC_CHECK_FUNCS([mmap])
306 AC_CHECK_FUNCS([mprotect])
307 AC_CHECK_FUNCS([open])
308 AC_CHECK_FUNCS([recv])
309 AC_CHECK_FUNCS([scandir])
310 AC_CHECK_FUNCS([select])
311 AC_CHECK_FUNCS([send])
312 AC_CHECK_FUNCS([setsockopt])
313 AC_CHECK_FUNCS([shutdown])
314 AC_CHECK_FUNCS([socket])
315 AC_CHECK_FUNCS([strchr])
316 AC_CHECK_FUNCS([strdup])
317 AC_CHECK_FUNCS([strerror])
318 AC_CHECK_FUNCS([strncmp])
319 AC_CHECK_FUNCS([strstr])
320 AC_CHECK_FUNCS([time])
323 dnl Checks for libraries.
325 dnl Checking sizeof void *
326 AC_CHECK_SIZEOF(void *)
330 dnl define install prefix
331 if test "x$prefix" = "xNONE"; then
332 CACAO_PREFIX=$ac_default_prefix
336 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
337 AC_SUBST(CACAO_PREFIX)
339 dnl define libdir prefix
340 if test "x$libdir" = "xNONE"; then
341 CACAO_LIBDIR=$ac_default_libdir
345 dnl expand CACAO_LIBDIR to something that is usable in C code
346 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
347 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
348 AC_SUBST(CACAO_LIBDIR)
359 dnl check for stuff that should be done in software
361 AC_CHECK_SOFT_FLOAT_CMP
362 AC_CHECK_SOFT_DOUBLE_CMP
365 dnl check for interpreter
366 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
368 AC_MSG_CHECKING(whether interpreter should be compiled)
369 if test x"$enable_intrp" = "xyes"; then
371 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
372 AM_CONDITIONAL([ENABLE_INTRP], [true])
379 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
381 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
382 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
383 AC_DEFINE([WITH_FFI], 1, [use libffi])],
386 dnl check for libffcall
387 AC_ARG_WITH([ffcall],
388 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
390 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
391 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
392 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
395 dnl check for libffi or libffcall
396 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
397 AC_ERROR(Enable only libffi or libffcall.)
399 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
400 AC_ERROR(Enable one of libffi or libffcall.)
405 AM_CONDITIONAL([ENABLE_INTRP], [false])
409 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
410 AC_ERROR(You have to enable at least the JIT or the interpreter.)
414 dnl check for garbage collector usage
415 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
416 AC_MSG_CHECKING(whether GC should be enabled)
417 enable_gc=${enable_gc:-boehm}
420 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
426 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
428 AC_MSG_RESULT(yes, boehm-gc)
432 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
434 AC_MSG_RESULT(yes, cacao-gc)
438 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
441 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
442 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
443 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
447 dnl check for dump memory usage
448 AC_MSG_CHECKING(whether dump memory should be disabled)
449 AC_ARG_ENABLE([dump],
450 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
451 [case "${enableval}" in
454 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
459 AC_MSG_RESULT(${DISABLE_DUMP})
463 AC_MSG_CHECKING(whether debug code generation should be enabled)
464 AC_ARG_ENABLE([debug],
465 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
466 [case "${enableval}" in
468 AC_DEFINE([NDEBUG], 1, [disable debug code])
474 if test x"${NDEBUG}" = "xno"; then
479 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
482 dnl check for memcheck support
483 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
484 AC_ARG_ENABLE([memcheck],
485 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
486 [case "${enableval}" in
487 yes) ENABLE_MEMCHECK=yes;;
488 *) ENABLE_MEMCHECK=no;;
490 [ENABLE_MEMCHECK=no])
491 AC_MSG_RESULT(${ENABLE_MEMCHECK})
492 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
494 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
495 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
499 dnl check for vmlog support
500 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
501 AC_ARG_ENABLE([vmlog],
502 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
503 [case "${enableval}" in
504 yes) ENABLE_VMLOG=yes;;
508 AC_MSG_RESULT(${ENABLE_VMLOG})
509 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
511 if test x"${ENABLE_VMLOG}" = "xyes"; then
512 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
516 dnl check for disassembler support
517 AC_MSG_CHECKING(whether disassembler should be enabled)
518 AC_ARG_ENABLE([disassembler],
519 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
520 [case "${enableval}" in
521 yes) ENABLE_DISASSEMBLER=yes;;
522 *) ENABLE_DISASSEMBLER=no;;
524 [ENABLE_DISASSEMBLER=no])
525 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
526 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
528 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
529 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
531 dnl check for binutils headers and libraries on some architectures for the
533 case "${ARCH_DIR}" in
534 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
535 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
536 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
537 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
538 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
541 cygwin | darwin | netbsd | solaris)
542 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
548 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
553 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
554 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
555 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
556 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
557 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
560 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
564 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
568 dnl check for statistics
569 AC_MSG_CHECKING(whether statistics generation should be enabled)
570 AC_ARG_ENABLE([statistics],
571 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
572 [case "${enableval}" in
573 yes) ENABLE_STATISTICS=yes;;
574 *) ENABLE_STATISTICS=no;;
576 [ENABLE_STATISTICS=no])
577 AC_MSG_RESULT(${ENABLE_STATISTICS})
578 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
580 if test x"${ENABLE_STATISTICS}" = "xyes"; then
581 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
585 dnl check for verifier
586 AC_MSG_CHECKING(whether classfile verification should be enabled)
587 AC_ARG_ENABLE([verifier],
588 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
589 [case "${enableval}" in
590 no) ENABLE_VERIFIER=no;;
591 *) ENABLE_VERIFIER=yes;;
593 [ENABLE_VERIFIER=yes])
594 AC_MSG_RESULT(${ENABLE_VERIFIER})
595 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
597 if test x"${ENABLE_VERIFIER}" = "xyes"; then
598 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
602 dnl check for compiler timing
603 AC_MSG_CHECKING(whether real-time timing should be enabled)
604 AC_ARG_ENABLE([rt-timing],
605 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
606 [case "${enableval}" in
607 yes) ENABLE_RT_TIMING=yes;;
608 *) ENABLE_RT_TIMING=no;;
610 [ENABLE_RT_TIMING=no])
611 AC_MSG_RESULT(${ENABLE_RT_TIMING})
612 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
614 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
615 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
619 dnl check for cycle count statistics
620 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
621 AC_ARG_ENABLE([cycles-stats],
622 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
623 [case "${enableval}" in
624 yes) ENABLE_CYCLES_STATS=yes;;
625 *) ENABLE_CYCLES_STATS=no;;
627 [ENABLE_CYCLES_STATS=no])
628 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
629 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
631 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
632 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
637 AC_MSG_CHECKING(whether to compile JVMTI support)
638 AC_ARG_ENABLE([jvmti],
639 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
640 [case "${enableval}" in
641 yes) ENABLE_JVMTI=yes;;
645 AC_MSG_RESULT(${ENABLE_JVMTI})
646 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
648 if test x"${ENABLE_JVMTI}" = "xyes"; then
649 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
653 AC_CHECK_ENABLE_THREADS
656 dnl check if if-conversion should be supported
657 AC_MSG_CHECKING(whether if-conversion should be supported)
658 AC_ARG_ENABLE([ifconv],
659 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
660 [case "${enableval}" in
661 no) ENABLE_IFCONV=no;;
662 *) ENABLE_IFCONV=yes;;
665 AC_MSG_RESULT(${ENABLE_IFCONV})
666 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
668 if test x"${ENABLE_IFCONV}" = "xyes"; then
669 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
673 dnl check for inlining
674 AC_MSG_CHECKING(whether method inlining should be supported)
675 AC_ARG_ENABLE([inlining],
676 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
677 [case "${enableval}" in
678 yes) ENABLE_INLINING=yes;;
679 *) ENABLE_INLINING=no;;
681 [ENABLE_INLINING=no])
682 AC_MSG_RESULT(${ENABLE_INLINING})
683 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
685 if test x"${ENABLE_INLINING}" = "xyes"; then
686 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
690 dnl check for inlining debug options
691 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
692 AC_ARG_ENABLE([inlining-debug],
693 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
694 [case "${enableval}" in
695 yes) ENABLE_INLINING_DEBUG=yes;;
696 *) ENABLE_INLINING_DEBUG=no;;
698 [ENABLE_INLINING_DEBUG=no])
699 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
700 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
702 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
703 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
707 dnl check for replacement
708 AC_MSG_CHECKING(whether on-stack replacement should be supported)
709 AC_ARG_ENABLE([replacement],
710 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
711 [case "${enableval}" in
712 yes) ENABLE_REPLACEMENT=yes;;
713 *) ENABLE_REPLACEMENT=no;;
715 [ENABLE_REPLACEMENT=no])
716 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
717 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
719 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
720 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
724 dnl check for loop optimization
725 AC_MSG_CHECKING(whether loop optimization should be supported)
726 AC_ARG_ENABLE([loop],
727 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
728 [case "${enableval}" in
729 yes) ENABLE_LOOP=yes;;
733 AC_MSG_RESULT(${ENABLE_LOOP})
734 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
736 if test x"${ENABLE_LOOP}" = "xyes"; then
737 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
741 dnl check if linear scan register allocator(lsra) with SSA should be used
742 AC_MSG_CHECKING(whether lsra with ssa should be supported)
744 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
745 [case "${enableval}" in
750 AC_MSG_RESULT(${ENABLE_SSA})
751 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
753 if test x"${ENABLE_SSA}" = "xyes"; then
754 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
759 dnl check if linear scan register allocator(lsra) should be used
760 AC_MSG_CHECKING(whether lsra should be supported)
761 AC_ARG_ENABLE([lsra],
762 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
763 [case "${enableval}" in
764 yes) ENABLE_LSRA=yes;;
769 if test x"${ENABLE_LSRA}" = "xyes"; then
770 if test x"${ENABLE_SSA}" = "xyes"; then
774 AC_MSG_RESULT(${ENABLE_LSRA})
775 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
777 if test x"${ENABLE_LSRA}" = "xyes"; then
778 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
782 dnl check if profiling should be supported
783 AC_MSG_CHECKING(whether profiling should be supported)
784 AC_ARG_ENABLE([profiling],
785 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
786 [case "${enableval}" in
787 yes) ENABLE_PROFILING=yes;;
788 *) ENABLE_PROFILING=no;;
790 [ENABLE_PROFILING=no])
791 AC_MSG_RESULT(${ENABLE_PROFILING})
792 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
794 if test x"${ENABLE_PROFILING}" = "xyes"; then
795 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
799 dnl check for instruction scheduler
800 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
802 AC_MSG_CHECKING(whether instruction scheduler should be supported)
803 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
804 case "${ARCH_DIR}" in
808 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
813 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
814 AM_CONDITIONAL([USE_SCHEDULER], [true])
817 AM_CONDITIONAL([USE_SCHEDULER], [false])
823 dnl check for stuff to be built
825 AC_CHECK_ENABLE_LIBJVM
827 dnl ATTENTION: These check must be after setting
828 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
829 dnl because libtool uses them to build the correct libraries.
833 AC_CHECK_ENABLE_STATICVM
834 AC_CHECK_ENABLE_ANNOTATIONS
837 dnl where is CACAO's vm.zip
838 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
839 AC_ARG_WITH([vm-zip],
840 [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]])],
841 [CACAO_VM_ZIP=${withval}],
842 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
843 AC_MSG_RESULT(${CACAO_VM_ZIP})
844 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
845 AC_SUBST(CACAO_VM_ZIP)
848 AC_CHECK_WITH_CLASSPATH
849 AC_CHECK_WITH_CLASSPATH_PREFIX
850 AC_CHECK_WITH_CLASSPATH_CLASSES
851 AC_CHECK_WITH_CLASSPATH_LIBDIR
852 AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
854 AC_CHECK_WITH_JRE_LAYOUT
857 dnl check if GNU Classpath should be linked statically into CACAO
858 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
859 AC_ARG_WITH([static-classpath],
860 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
861 [case "${enableval}" in
862 yes) WITH_STATIC_CLASSPATH=yes;;
863 *) WITH_STATIC_CLASSPATH=no;;
865 [WITH_STATIC_CLASSPATH=no])
866 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
868 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
869 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
871 dnl check for some classpath related stuff when we link statically
876 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
877 AC_SUBST(WITH_STATIC_CLASSPATH)
880 dnl check for some programs we need
882 case "${WITH_CLASSPATH}" in
890 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
898 dnl If debug build and regex.h available, enable debug filter
899 if test x"${NDEBUG}" = "xno"; then
900 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
902 dnl If vmlog enambled and regex.h available, enable vmlogfilter
903 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
906 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
910 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
912 AM_CFLAGS=$ARCH_CFLAGS
916 AC_CONFIG_FILES([Makefile]
918 [contrib/setenvinstalled]
919 [contrib/setenvsource]
920 [contrib/vmlog/Makefile]
921 [contrib/vmlog/t/Makefile]
923 [doc/handbook/Makefile]
927 [src/cacaoh/Makefile]
928 [src/fdlibm/Makefile]
931 [src/mm/cacao-gc/Makefile]
932 [src/native/Makefile]
933 [src/native/include/Makefile]
934 [src/native/jvmti/Makefile]
935 [src/native/tools/Makefile]
936 [src/native/vm/Makefile]
937 [src/native/vm/cldc1.1/Makefile]
938 [src/native/vm/gnu/Makefile]
939 [src/native/vm/sun/Makefile]
940 [src/scripts/Makefile]
942 [src/threads/Makefile]
943 [src/threads/native/Makefile]
944 [src/threads/none/Makefile]
945 [src/toolbox/Makefile]
947 [src/vm/jit/Makefile]
948 [src/vm/jit/allocator/Makefile]
949 [src/vm/jit/alpha/Makefile]
950 [src/vm/jit/alpha/freebsd/Makefile]
951 [src/vm/jit/alpha/linux/Makefile]
952 [src/vm/jit/arm/Makefile]
953 [src/vm/jit/arm/linux/Makefile]
954 [src/vm/jit/i386/Makefile]
955 [src/vm/jit/i386/cygwin/Makefile]
956 [src/vm/jit/i386/darwin/Makefile]
957 [src/vm/jit/i386/freebsd/Makefile]
958 [src/vm/jit/i386/linux/Makefile]
959 [src/vm/jit/intrp/Makefile]
960 [src/vm/jit/inline/Makefile]
961 [src/vm/jit/loop/Makefile]
962 [src/vm/jit/m68k/Makefile]
963 [src/vm/jit/m68k/linux/Makefile]
964 [src/vm/jit/mips/Makefile]
965 [src/vm/jit/mips/irix/Makefile]
966 [src/vm/jit/mips/linux/Makefile]
967 [src/vm/jit/mips/uclinux/Makefile]
968 [src/vm/jit/optimizing/Makefile]
969 [src/vm/jit/parisc/Makefile]
970 [src/vm/jit/parisc/linux/Makefile]
971 [src/vm/jit/powerpc/Makefile]
972 [src/vm/jit/powerpc/darwin/Makefile]
973 [src/vm/jit/powerpc/linux/Makefile]
974 [src/vm/jit/powerpc/netbsd/Makefile]
975 [src/vm/jit/powerpc64/Makefile]
976 [src/vm/jit/powerpc64/linux/Makefile]
977 [src/vm/jit/s390/Makefile]
978 [src/vm/jit/schedule/Makefile]
979 [src/vm/jit/sparc64/Makefile]
980 [src/vm/jit/sparc64/linux/Makefile]
981 [src/vm/jit/sparc64/solaris/Makefile]
982 [src/vm/jit/verify/Makefile]
983 [src/vm/jit/x86_64/Makefile]
984 [src/vm/jit/x86_64/freebsd/Makefile]
985 [src/vm/jit/x86_64/linux/Makefile]
986 [src/vmcore/Makefile]
988 [tests/regression/Makefile]
989 [tests/regression/codepatching/Makefile]
990 [tests/regression/jasmin/Makefile]
991 [tests/regression/native/Makefile]
992 [tests/regression/resolving/Makefile]
993 [tests/regression/resolving/classes1/Makefile]
994 [tests/regression/resolving/classes2/Makefile]
995 [tests/regression/resolving/classes3/Makefile]
999 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1002 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1010 ## indent-tabs-mode: t
1011 ## c-basic-offset: 4
1013 ## compile-command: "automake --add-missing"