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 8351 2007-08-19 17:56:23Z 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([atoi])
279 AC_CHECK_FUNCS([atol])
280 AC_CHECK_FUNCS([calloc])
281 AC_CHECK_FUNCS([close])
282 AC_CHECK_FUNCS([confstr])
283 AC_CHECK_FUNCS([connect])
284 AC_CHECK_FUNCS([fflush])
285 AC_CHECK_FUNCS([fopen])
286 AC_CHECK_FUNCS([fprintf])
287 AC_CHECK_FUNCS([free])
288 AC_CHECK_FUNCS([fstat])
289 AC_CHECK_FUNCS([getcwd])
290 AC_CHECK_FUNCS([gethostbyname])
291 AC_CHECK_FUNCS([gethostname])
292 AC_CHECK_FUNCS([getpagesize])
293 AC_CHECK_FUNCS([getrusage])
294 AC_CHECK_FUNCS([getsockname])
295 AC_CHECK_FUNCS([gettimeofday])
296 AC_CHECK_FUNCS([htons])
297 AC_CHECK_FUNCS([ioctl])
298 AC_CHECK_FUNCS([isnan])
299 AC_CHECK_FUNCS([listen])
300 AC_CHECK_FUNCS([localtime])
301 AC_CHECK_FUNCS([localtime_r])
302 AC_CHECK_FUNCS([lseek])
303 AC_CHECK_FUNCS([malloc])
304 AC_CHECK_FUNCS([mmap])
305 AC_CHECK_FUNCS([mprotect])
306 AC_CHECK_FUNCS([open])
307 AC_CHECK_FUNCS([recv])
308 AC_CHECK_FUNCS([scandir])
309 AC_CHECK_FUNCS([select])
310 AC_CHECK_FUNCS([send])
311 AC_CHECK_FUNCS([setsockopt])
312 AC_CHECK_FUNCS([shutdown])
313 AC_CHECK_FUNCS([socket])
314 AC_CHECK_FUNCS([strchr])
315 AC_CHECK_FUNCS([strdup])
316 AC_CHECK_FUNCS([strerror])
317 AC_CHECK_FUNCS([strncmp])
318 AC_CHECK_FUNCS([strstr])
319 AC_CHECK_FUNCS([time])
322 dnl Checks for libraries.
324 dnl Checking sizeof void *
325 AC_CHECK_SIZEOF(void *)
329 dnl define install prefix
330 if test "x$prefix" = "xNONE"; then
331 CACAO_PREFIX=$ac_default_prefix
335 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
336 AC_SUBST(CACAO_PREFIX)
338 dnl define libdir prefix
339 if test "x$libdir" = "xNONE"; then
340 CACAO_LIBDIR=$ac_default_libdir
344 dnl expand CACAO_LIBDIR to something that is usable in C code
345 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
346 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
347 AC_SUBST(CACAO_LIBDIR)
358 dnl check for stuff that should be done in software
360 AC_CHECK_SOFT_FLOAT_CMP
361 AC_CHECK_SOFT_DOUBLE_CMP
364 dnl check for interpreter
365 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
367 AC_MSG_CHECKING(whether interpreter should be compiled)
368 if test x"$enable_intrp" = "xyes"; then
370 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
371 AM_CONDITIONAL([ENABLE_INTRP], [true])
378 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
380 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
381 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
382 AC_DEFINE([WITH_FFI], 1, [use libffi])],
385 dnl check for libffcall
386 AC_ARG_WITH([ffcall],
387 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
389 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
390 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
391 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
394 dnl check for libffi or libffcall
395 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
396 AC_ERROR(Enable only libffi or libffcall.)
398 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
399 AC_ERROR(Enable one of libffi or libffcall.)
404 AM_CONDITIONAL([ENABLE_INTRP], [false])
408 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
409 AC_ERROR(You have to enable at least the JIT or the interpreter.)
413 dnl check for garbage collector usage
414 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
415 AC_MSG_CHECKING(whether GC should be enabled)
416 enable_gc=${enable_gc:-boehm}
419 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
425 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
427 AC_MSG_RESULT(yes, boehm-gc)
431 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
433 AC_MSG_RESULT(yes, cacao-gc)
437 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
440 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
441 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
442 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
446 dnl check for dump memory usage
447 AC_MSG_CHECKING(whether dump memory should be disabled)
448 AC_ARG_ENABLE([dump],
449 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
450 [case "${enableval}" in
453 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
458 AC_MSG_RESULT(${DISABLE_DUMP})
462 AC_MSG_CHECKING(whether debug code generation should be enabled)
463 AC_ARG_ENABLE([debug],
464 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
465 [case "${enableval}" in
467 AC_DEFINE([NDEBUG], 1, [disable debug code])
473 if test x"${NDEBUG}" = "xno"; then
478 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
481 dnl check for memcheck support
482 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
483 AC_ARG_ENABLE([memcheck],
484 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
485 [case "${enableval}" in
486 yes) ENABLE_MEMCHECK=yes;;
487 *) ENABLE_MEMCHECK=no;;
489 [ENABLE_MEMCHECK=no])
490 AC_MSG_RESULT(${ENABLE_MEMCHECK})
491 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
493 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
494 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
498 dnl check for vmlog support
499 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
500 AC_ARG_ENABLE([vmlog],
501 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
502 [case "${enableval}" in
503 yes) ENABLE_VMLOG=yes;;
507 AC_MSG_RESULT(${ENABLE_VMLOG})
508 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
510 if test x"${ENABLE_VMLOG}" = "xyes"; then
511 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
515 dnl check for disassembler support
516 AC_MSG_CHECKING(whether disassembler should be enabled)
517 AC_ARG_ENABLE([disassembler],
518 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
519 [case "${enableval}" in
520 yes) ENABLE_DISASSEMBLER=yes;;
521 *) ENABLE_DISASSEMBLER=no;;
523 [ENABLE_DISASSEMBLER=no])
524 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
525 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
527 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
528 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
530 dnl check for binutils headers and libraries on some architectures for the
532 case "${ARCH_DIR}" in
533 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
534 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
535 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
536 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
537 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
540 cygwin | darwin | netbsd | solaris)
541 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
547 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
552 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
553 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
554 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
555 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
556 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
559 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
563 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
567 dnl check for statistics
568 AC_MSG_CHECKING(whether statistics generation should be enabled)
569 AC_ARG_ENABLE([statistics],
570 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
571 [case "${enableval}" in
572 yes) ENABLE_STATISTICS=yes;;
573 *) ENABLE_STATISTICS=no;;
575 [ENABLE_STATISTICS=no])
576 AC_MSG_RESULT(${ENABLE_STATISTICS})
577 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
579 if test x"${ENABLE_STATISTICS}" = "xyes"; then
580 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
584 dnl check for verifier
585 AC_MSG_CHECKING(whether classfile verification should be enabled)
586 AC_ARG_ENABLE([verifier],
587 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
588 [case "${enableval}" in
589 no) ENABLE_VERIFIER=no;;
590 *) ENABLE_VERIFIER=yes;;
592 [ENABLE_VERIFIER=yes])
593 AC_MSG_RESULT(${ENABLE_VERIFIER})
594 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
596 if test x"${ENABLE_VERIFIER}" = "xyes"; then
597 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
601 dnl check for compiler timing
602 AC_MSG_CHECKING(whether real-time timing should be enabled)
603 AC_ARG_ENABLE([rt-timing],
604 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
605 [case "${enableval}" in
606 yes) ENABLE_RT_TIMING=yes;;
607 *) ENABLE_RT_TIMING=no;;
609 [ENABLE_RT_TIMING=no])
610 AC_MSG_RESULT(${ENABLE_RT_TIMING})
611 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
613 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
614 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
618 dnl check for cycle count statistics
619 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
620 AC_ARG_ENABLE([cycles-stats],
621 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
622 [case "${enableval}" in
623 yes) ENABLE_CYCLES_STATS=yes;;
624 *) ENABLE_CYCLES_STATS=no;;
626 [ENABLE_CYCLES_STATS=no])
627 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
628 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
630 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
631 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
636 AC_MSG_CHECKING(whether to compile JVMTI support)
637 AC_ARG_ENABLE([jvmti],
638 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
639 [case "${enableval}" in
640 yes) ENABLE_JVMTI=yes;;
644 AC_MSG_RESULT(${ENABLE_JVMTI})
645 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
647 if test x"${ENABLE_JVMTI}" = "xyes"; then
648 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
652 AC_CHECK_ENABLE_THREADS
655 dnl check if if-conversion should be supported
656 AC_MSG_CHECKING(whether if-conversion should be supported)
657 AC_ARG_ENABLE([ifconv],
658 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
659 [case "${enableval}" in
660 no) ENABLE_IFCONV=no;;
661 *) ENABLE_IFCONV=yes;;
664 AC_MSG_RESULT(${ENABLE_IFCONV})
665 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
667 if test x"${ENABLE_IFCONV}" = "xyes"; then
668 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
672 dnl check for inlining
673 AC_MSG_CHECKING(whether method inlining should be supported)
674 AC_ARG_ENABLE([inlining],
675 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
676 [case "${enableval}" in
677 yes) ENABLE_INLINING=yes;;
678 *) ENABLE_INLINING=no;;
680 [ENABLE_INLINING=no])
681 AC_MSG_RESULT(${ENABLE_INLINING})
682 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
684 if test x"${ENABLE_INLINING}" = "xyes"; then
685 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
689 dnl check for inlining debug options
690 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
691 AC_ARG_ENABLE([inlining-debug],
692 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
693 [case "${enableval}" in
694 yes) ENABLE_INLINING_DEBUG=yes;;
695 *) ENABLE_INLINING_DEBUG=no;;
697 [ENABLE_INLINING_DEBUG=no])
698 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
699 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
701 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
702 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
706 dnl check for replacement
707 AC_MSG_CHECKING(whether on-stack replacement should be supported)
708 AC_ARG_ENABLE([replacement],
709 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
710 [case "${enableval}" in
711 yes) ENABLE_REPLACEMENT=yes;;
712 *) ENABLE_REPLACEMENT=no;;
714 [ENABLE_REPLACEMENT=no])
715 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
716 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
718 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
719 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
723 dnl check for loop optimization
724 AC_MSG_CHECKING(whether loop optimization should be supported)
725 AC_ARG_ENABLE([loop],
726 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
727 [case "${enableval}" in
728 yes) ENABLE_LOOP=yes;;
732 AC_MSG_RESULT(${ENABLE_LOOP})
733 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
735 if test x"${ENABLE_LOOP}" = "xyes"; then
736 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
740 dnl check if linear scan register allocator(lsra) with SSA should be used
741 AC_MSG_CHECKING(whether lsra with ssa should be supported)
743 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
744 [case "${enableval}" in
749 AC_MSG_RESULT(${ENABLE_SSA})
750 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
752 if test x"${ENABLE_SSA}" = "xyes"; then
753 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
758 dnl check if linear scan register allocator(lsra) should be used
759 AC_MSG_CHECKING(whether lsra should be supported)
760 AC_ARG_ENABLE([lsra],
761 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
762 [case "${enableval}" in
763 yes) ENABLE_LSRA=yes;;
768 if test x"${ENABLE_LSRA}" = "xyes"; then
769 if test x"${ENABLE_SSA}" = "xyes"; then
773 AC_MSG_RESULT(${ENABLE_LSRA})
774 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
776 if test x"${ENABLE_LSRA}" = "xyes"; then
777 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
781 dnl check if profiling should be supported
782 AC_MSG_CHECKING(whether profiling should be supported)
783 AC_ARG_ENABLE([profiling],
784 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
785 [case "${enableval}" in
786 yes) ENABLE_PROFILING=yes;;
787 *) ENABLE_PROFILING=no;;
789 [ENABLE_PROFILING=no])
790 AC_MSG_RESULT(${ENABLE_PROFILING})
791 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
793 if test x"${ENABLE_PROFILING}" = "xyes"; then
794 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
798 dnl check for instruction scheduler
799 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
801 AC_MSG_CHECKING(whether instruction scheduler should be supported)
802 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
803 case "${ARCH_DIR}" in
807 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
812 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
813 AM_CONDITIONAL([USE_SCHEDULER], [true])
816 AM_CONDITIONAL([USE_SCHEDULER], [false])
822 dnl check for stuff to be built
824 AC_CHECK_ENABLE_LIBJVM
826 dnl ATTENTION: These check must be after setting
827 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
828 dnl because libtool uses them to build the correct libraries.
832 dnl check if CACAO should be linked statically
833 AC_MSG_CHECKING(whether to link CACAO statically)
834 AC_ARG_ENABLE([staticvm],
835 [AS_HELP_STRING(--enable-staticvm,link CACAO statically [[default=no]])],
836 [case "${enableval}" in
837 yes) ENABLE_STATICVM=yes
838 AC_DEFINE([ENABLE_STATICVM], 1, [link CACAO statically])
840 *) ENABLE_STATICVM=no;;
842 [ENABLE_STATICVM=no])
843 AC_MSG_RESULT(${ENABLE_STATICVM})
844 AM_CONDITIONAL([ENABLE_STATICVM], test x"${ENABLE_STATICVM}" = "xyes")
845 AC_SUBST(ENABLE_STATICVM)
848 AC_CHECK_ENABLE_ANNOTATIONS
851 dnl where is CACAO's vm.zip
852 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
853 AC_ARG_WITH([vm-zip],
854 [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]])],
855 [CACAO_VM_ZIP=${withval}],
856 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
857 AC_MSG_RESULT(${CACAO_VM_ZIP})
858 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
859 AC_SUBST(CACAO_VM_ZIP)
862 AC_CHECK_WITH_CLASSPATH
863 AC_CHECK_WITH_CLASSPATH_PREFIX
864 AC_CHECK_WITH_CLASSPATH_CLASSES
865 AC_CHECK_WITH_CLASSPATH_LIBDIR
866 AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
869 dnl if we compile for a JRE-style directory layout
870 AC_MSG_CHECKING(if we compile for a JRE-style directory layout)
871 AC_ARG_WITH([jre-layout],
872 [AS_HELP_STRING(--with-jre-layout,compile for JRE-style directory layout [[default=no]])],
873 [case "${enableval}" in
874 yes) WITH_JRE_LAYOUT=yes
875 AC_DEFINE([WITH_JRE_LAYOUT], 1, [with JRE layout])
877 *) WITH_JRE_LAYOUT=no;;
879 [WITH_JRE_LAYOUT=no])
880 AC_MSG_RESULT(${WITH_JRE_LAYOUT})
883 dnl check if GNU Classpath should be linked statically into CACAO
884 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
885 AC_ARG_WITH([static-classpath],
886 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
887 [case "${enableval}" in
888 yes) WITH_STATIC_CLASSPATH=yes;;
889 *) WITH_STATIC_CLASSPATH=no;;
891 [WITH_STATIC_CLASSPATH=no])
892 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
894 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
895 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
897 dnl check for some classpath related stuff when we link statically
902 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
903 AC_SUBST(WITH_STATIC_CLASSPATH)
906 dnl check for some programs we need
908 case "${WITH_CLASSPATH}" in
916 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
924 dnl If debug build and regex.h available, enable debug filter
925 if test x"${NDEBUG}" = "xno"; then
926 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
928 dnl If vmlog enambled and regex.h available, enable vmlogfilter
929 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
932 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
936 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
938 AM_CFLAGS=$ARCH_CFLAGS
942 AC_CONFIG_FILES([Makefile]
944 [contrib/setenvinstalled]
945 [contrib/setenvsource]
946 [contrib/vmlog/Makefile]
947 [contrib/vmlog/t/Makefile]
949 [doc/handbook/Makefile]
953 [src/cacaoh/Makefile]
954 [src/fdlibm/Makefile]
957 [src/mm/cacao-gc/Makefile]
958 [src/native/Makefile]
959 [src/native/include/Makefile]
960 [src/native/jvmti/Makefile]
961 [src/native/tools/Makefile]
962 [src/native/vm/Makefile]
963 [src/native/vm/cldc1.1/Makefile]
964 [src/native/vm/gnu/Makefile]
965 [src/native/vm/sun/Makefile]
966 [src/scripts/Makefile]
968 [src/threads/Makefile]
969 [src/threads/native/Makefile]
970 [src/threads/none/Makefile]
971 [src/toolbox/Makefile]
973 [src/vm/jit/Makefile]
974 [src/vm/jit/allocator/Makefile]
975 [src/vm/jit/alpha/Makefile]
976 [src/vm/jit/alpha/freebsd/Makefile]
977 [src/vm/jit/alpha/linux/Makefile]
978 [src/vm/jit/arm/Makefile]
979 [src/vm/jit/arm/linux/Makefile]
980 [src/vm/jit/i386/Makefile]
981 [src/vm/jit/i386/cygwin/Makefile]
982 [src/vm/jit/i386/darwin/Makefile]
983 [src/vm/jit/i386/freebsd/Makefile]
984 [src/vm/jit/i386/linux/Makefile]
985 [src/vm/jit/intrp/Makefile]
986 [src/vm/jit/inline/Makefile]
987 [src/vm/jit/loop/Makefile]
988 [src/vm/jit/m68k/Makefile]
989 [src/vm/jit/m68k/linux/Makefile]
990 [src/vm/jit/mips/Makefile]
991 [src/vm/jit/mips/irix/Makefile]
992 [src/vm/jit/mips/linux/Makefile]
993 [src/vm/jit/mips/uclinux/Makefile]
994 [src/vm/jit/optimizing/Makefile]
995 [src/vm/jit/parisc/Makefile]
996 [src/vm/jit/parisc/linux/Makefile]
997 [src/vm/jit/powerpc/Makefile]
998 [src/vm/jit/powerpc/darwin/Makefile]
999 [src/vm/jit/powerpc/linux/Makefile]
1000 [src/vm/jit/powerpc/netbsd/Makefile]
1001 [src/vm/jit/powerpc64/Makefile]
1002 [src/vm/jit/powerpc64/linux/Makefile]
1003 [src/vm/jit/s390/Makefile]
1004 [src/vm/jit/schedule/Makefile]
1005 [src/vm/jit/sparc64/Makefile]
1006 [src/vm/jit/sparc64/linux/Makefile]
1007 [src/vm/jit/sparc64/solaris/Makefile]
1008 [src/vm/jit/verify/Makefile]
1009 [src/vm/jit/x86_64/Makefile]
1010 [src/vm/jit/x86_64/freebsd/Makefile]
1011 [src/vm/jit/x86_64/linux/Makefile]
1012 [src/vmcore/Makefile]
1014 [tests/regression/Makefile]
1015 [tests/regression/codepatching/Makefile]
1016 [tests/regression/jasmin/Makefile]
1017 [tests/regression/native/Makefile]
1018 [tests/regression/resolving/Makefile]
1019 [tests/regression/resolving/classes1/Makefile]
1020 [tests/regression/resolving/classes2/Makefile]
1021 [tests/regression/resolving/classes3/Makefile]
1025 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1028 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1036 ## indent-tabs-mode: t
1037 ## c-basic-offset: 4
1039 ## compile-command: "automake --add-missing"