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 8396 2007-08-22 15:47:25Z 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([libgen.h])
233 AC_CHECK_HEADERS([netdb.h])
234 AC_CHECK_HEADERS([stdlib.h])
235 AC_CHECK_HEADERS([string.h])
236 AC_CHECK_HEADERS([time.h])
237 AC_CHECK_HEADERS([ucontext.h])
238 AC_CHECK_HEADERS([unistd.h])
239 AC_CHECK_HEADERS([sys/ioctl.h])
240 AC_CHECK_HEADERS([sys/mman.h])
241 AC_CHECK_HEADERS([sys/resource.h])
242 AC_CHECK_HEADERS([sys/select.h])
243 AC_CHECK_HEADERS([sys/socket.h])
244 AC_CHECK_HEADERS([sys/stat.h])
245 AC_CHECK_HEADERS([sys/time.h])
246 AC_CHECK_HEADERS([sys/types.h])
248 dnl this is for fdlibm
249 AC_CHECK_HEADERS([stdint.h])
250 AC_CHECK_HEADERS([inttypes.h])
251 AC_CHECK_HEADERS([sys/config.h])
252 AC_CHECK_HEADERS([sys/types.h])
253 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
254 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
255 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]))
256 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]))
258 dnl Checks for typedefs, structures, and compiler characteristics.
267 dnl Checks for libraries (NOTE: Should be done before function checks,
268 dnl as some functions may be in libraries we check for).
269 AC_CHECK_LIB(dl, dlopen,,)
271 dnl Checks for library functions.
272 AC_PROG_GCC_TRADITIONAL
277 dnl keep them alpha-sorted!
278 AC_CHECK_FUNCS([accept])
279 AC_CHECK_FUNCS([access])
280 AC_CHECK_FUNCS([atoi])
281 AC_CHECK_FUNCS([atol])
282 AC_CHECK_FUNCS([calloc])
283 AC_CHECK_FUNCS([close])
284 AC_CHECK_FUNCS([confstr])
285 AC_CHECK_FUNCS([connect])
286 AC_CHECK_FUNCS([dirname])
287 AC_CHECK_FUNCS([fflush])
288 AC_CHECK_FUNCS([fopen])
289 AC_CHECK_FUNCS([fprintf])
290 AC_CHECK_FUNCS([free])
291 AC_CHECK_FUNCS([fstat])
292 AC_CHECK_FUNCS([getcwd])
293 AC_CHECK_FUNCS([gethostbyname])
294 AC_CHECK_FUNCS([gethostname])
295 AC_CHECK_FUNCS([getpagesize])
296 AC_CHECK_FUNCS([getrusage])
297 AC_CHECK_FUNCS([getsockname])
298 AC_CHECK_FUNCS([gettimeofday])
299 AC_CHECK_FUNCS([htons])
300 AC_CHECK_FUNCS([ioctl])
301 AC_CHECK_FUNCS([isnan])
302 AC_CHECK_FUNCS([listen])
303 AC_CHECK_FUNCS([localtime])
304 AC_CHECK_FUNCS([localtime_r])
305 AC_CHECK_FUNCS([lseek])
306 AC_CHECK_FUNCS([malloc])
307 AC_CHECK_FUNCS([mmap])
308 AC_CHECK_FUNCS([mprotect])
309 AC_CHECK_FUNCS([open])
310 AC_CHECK_FUNCS([readlink])
311 AC_CHECK_FUNCS([recv])
312 AC_CHECK_FUNCS([scandir])
313 AC_CHECK_FUNCS([select])
314 AC_CHECK_FUNCS([send])
315 AC_CHECK_FUNCS([setsockopt])
316 AC_CHECK_FUNCS([shutdown])
317 AC_CHECK_FUNCS([socket])
318 AC_CHECK_FUNCS([strchr])
319 AC_CHECK_FUNCS([strdup])
320 AC_CHECK_FUNCS([strerror])
321 AC_CHECK_FUNCS([strncmp])
322 AC_CHECK_FUNCS([strstr])
323 AC_CHECK_FUNCS([time])
326 dnl Checks for libraries.
328 dnl Checking sizeof void *
329 AC_CHECK_SIZEOF(void *)
333 dnl define install prefix
334 if test "x$prefix" = "xNONE"; then
335 CACAO_PREFIX=$ac_default_prefix
339 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
340 AC_SUBST(CACAO_PREFIX)
342 dnl define libdir prefix
343 if test "x$libdir" = "xNONE"; then
344 CACAO_LIBDIR=$ac_default_libdir
348 dnl expand CACAO_LIBDIR to something that is usable in C code
349 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
350 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
351 AC_SUBST(CACAO_LIBDIR)
362 dnl check for stuff that should be done in software
364 AC_CHECK_SOFT_FLOAT_CMP
365 AC_CHECK_SOFT_DOUBLE_CMP
368 dnl check for interpreter
369 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
371 AC_MSG_CHECKING(whether interpreter should be compiled)
372 if test x"$enable_intrp" = "xyes"; then
374 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
375 AM_CONDITIONAL([ENABLE_INTRP], [true])
382 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
384 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
385 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
386 AC_DEFINE([WITH_FFI], 1, [use libffi])],
389 dnl check for libffcall
390 AC_ARG_WITH([ffcall],
391 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
393 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
394 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
395 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
398 dnl check for libffi or libffcall
399 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
400 AC_ERROR(Enable only libffi or libffcall.)
402 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
403 AC_ERROR(Enable one of libffi or libffcall.)
408 AM_CONDITIONAL([ENABLE_INTRP], [false])
412 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
413 AC_ERROR(You have to enable at least the JIT or the interpreter.)
417 dnl check for garbage collector usage
418 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
419 AC_MSG_CHECKING(whether GC should be enabled)
420 enable_gc=${enable_gc:-boehm}
423 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
429 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
431 AC_MSG_RESULT(yes, boehm-gc)
435 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
437 AC_MSG_RESULT(yes, cacao-gc)
441 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
444 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
445 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
446 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
450 dnl check for dump memory usage
451 AC_MSG_CHECKING(whether dump memory should be disabled)
452 AC_ARG_ENABLE([dump],
453 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
454 [case "${enableval}" in
457 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
462 AC_MSG_RESULT(${DISABLE_DUMP})
466 AC_MSG_CHECKING(whether debug code generation should be enabled)
467 AC_ARG_ENABLE([debug],
468 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
469 [case "${enableval}" in
471 AC_DEFINE([NDEBUG], 1, [disable debug code])
477 if test x"${NDEBUG}" = "xno"; then
482 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
485 dnl check for memcheck support
486 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
487 AC_ARG_ENABLE([memcheck],
488 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
489 [case "${enableval}" in
490 yes) ENABLE_MEMCHECK=yes;;
491 *) ENABLE_MEMCHECK=no;;
493 [ENABLE_MEMCHECK=no])
494 AC_MSG_RESULT(${ENABLE_MEMCHECK})
495 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
497 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
498 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
502 dnl check for vmlog support
503 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
504 AC_ARG_ENABLE([vmlog],
505 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
506 [case "${enableval}" in
507 yes) ENABLE_VMLOG=yes;;
511 AC_MSG_RESULT(${ENABLE_VMLOG})
512 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
514 if test x"${ENABLE_VMLOG}" = "xyes"; then
515 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
519 dnl check for disassembler support
520 AC_MSG_CHECKING(whether disassembler should be enabled)
521 AC_ARG_ENABLE([disassembler],
522 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
523 [case "${enableval}" in
524 yes) ENABLE_DISASSEMBLER=yes;;
525 *) ENABLE_DISASSEMBLER=no;;
527 [ENABLE_DISASSEMBLER=no])
528 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
529 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
531 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
532 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
534 dnl check for binutils headers and libraries on some architectures for the
536 case "${ARCH_DIR}" in
537 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
538 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
539 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
540 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
541 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
544 cygwin | darwin | netbsd | solaris)
545 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
551 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
556 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
557 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
558 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
559 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
560 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
563 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
567 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
571 dnl check for statistics
572 AC_MSG_CHECKING(whether statistics generation should be enabled)
573 AC_ARG_ENABLE([statistics],
574 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
575 [case "${enableval}" in
576 yes) ENABLE_STATISTICS=yes;;
577 *) ENABLE_STATISTICS=no;;
579 [ENABLE_STATISTICS=no])
580 AC_MSG_RESULT(${ENABLE_STATISTICS})
581 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
583 if test x"${ENABLE_STATISTICS}" = "xyes"; then
584 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
588 dnl check for verifier
589 AC_MSG_CHECKING(whether classfile verification should be enabled)
590 AC_ARG_ENABLE([verifier],
591 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
592 [case "${enableval}" in
593 no) ENABLE_VERIFIER=no;;
594 *) ENABLE_VERIFIER=yes;;
596 [ENABLE_VERIFIER=yes])
597 AC_MSG_RESULT(${ENABLE_VERIFIER})
598 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
600 if test x"${ENABLE_VERIFIER}" = "xyes"; then
601 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
605 dnl check for compiler timing
606 AC_MSG_CHECKING(whether real-time timing should be enabled)
607 AC_ARG_ENABLE([rt-timing],
608 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
609 [case "${enableval}" in
610 yes) ENABLE_RT_TIMING=yes;;
611 *) ENABLE_RT_TIMING=no;;
613 [ENABLE_RT_TIMING=no])
614 AC_MSG_RESULT(${ENABLE_RT_TIMING})
615 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
617 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
618 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
622 dnl check for cycle count statistics
623 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
624 AC_ARG_ENABLE([cycles-stats],
625 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
626 [case "${enableval}" in
627 yes) ENABLE_CYCLES_STATS=yes;;
628 *) ENABLE_CYCLES_STATS=no;;
630 [ENABLE_CYCLES_STATS=no])
631 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
632 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
634 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
635 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
640 AC_MSG_CHECKING(whether to compile JVMTI support)
641 AC_ARG_ENABLE([jvmti],
642 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
643 [case "${enableval}" in
644 yes) ENABLE_JVMTI=yes;;
648 AC_MSG_RESULT(${ENABLE_JVMTI})
649 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
651 if test x"${ENABLE_JVMTI}" = "xyes"; then
652 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
656 AC_CHECK_ENABLE_THREADS
659 dnl check if if-conversion should be supported
660 AC_MSG_CHECKING(whether if-conversion should be supported)
661 AC_ARG_ENABLE([ifconv],
662 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
663 [case "${enableval}" in
664 no) ENABLE_IFCONV=no;;
665 *) ENABLE_IFCONV=yes;;
668 AC_MSG_RESULT(${ENABLE_IFCONV})
669 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
671 if test x"${ENABLE_IFCONV}" = "xyes"; then
672 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
676 dnl check for inlining
677 AC_MSG_CHECKING(whether method inlining should be supported)
678 AC_ARG_ENABLE([inlining],
679 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
680 [case "${enableval}" in
681 yes) ENABLE_INLINING=yes;;
682 *) ENABLE_INLINING=no;;
684 [ENABLE_INLINING=no])
685 AC_MSG_RESULT(${ENABLE_INLINING})
686 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
688 if test x"${ENABLE_INLINING}" = "xyes"; then
689 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
693 dnl check for inlining debug options
694 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
695 AC_ARG_ENABLE([inlining-debug],
696 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
697 [case "${enableval}" in
698 yes) ENABLE_INLINING_DEBUG=yes;;
699 *) ENABLE_INLINING_DEBUG=no;;
701 [ENABLE_INLINING_DEBUG=no])
702 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
703 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
705 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
706 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
710 dnl check for replacement
711 AC_MSG_CHECKING(whether on-stack replacement should be supported)
712 AC_ARG_ENABLE([replacement],
713 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
714 [case "${enableval}" in
715 yes) ENABLE_REPLACEMENT=yes;;
716 *) ENABLE_REPLACEMENT=no;;
718 [ENABLE_REPLACEMENT=no])
719 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
720 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
722 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
723 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
727 dnl check for loop optimization
728 AC_MSG_CHECKING(whether loop optimization should be supported)
729 AC_ARG_ENABLE([loop],
730 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
731 [case "${enableval}" in
732 yes) ENABLE_LOOP=yes;;
736 AC_MSG_RESULT(${ENABLE_LOOP})
737 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
739 if test x"${ENABLE_LOOP}" = "xyes"; then
740 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
744 dnl check if linear scan register allocator(lsra) with SSA should be used
745 AC_MSG_CHECKING(whether lsra with ssa should be supported)
747 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
748 [case "${enableval}" in
753 AC_MSG_RESULT(${ENABLE_SSA})
754 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
756 if test x"${ENABLE_SSA}" = "xyes"; then
757 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
762 dnl check if linear scan register allocator(lsra) should be used
763 AC_MSG_CHECKING(whether lsra should be supported)
764 AC_ARG_ENABLE([lsra],
765 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
766 [case "${enableval}" in
767 yes) ENABLE_LSRA=yes;;
772 if test x"${ENABLE_LSRA}" = "xyes"; then
773 if test x"${ENABLE_SSA}" = "xyes"; then
777 AC_MSG_RESULT(${ENABLE_LSRA})
778 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
780 if test x"${ENABLE_LSRA}" = "xyes"; then
781 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
785 dnl check if profiling should be supported
786 AC_MSG_CHECKING(whether profiling should be supported)
787 AC_ARG_ENABLE([profiling],
788 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
789 [case "${enableval}" in
790 yes) ENABLE_PROFILING=yes;;
791 *) ENABLE_PROFILING=no;;
793 [ENABLE_PROFILING=no])
794 AC_MSG_RESULT(${ENABLE_PROFILING})
795 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
797 if test x"${ENABLE_PROFILING}" = "xyes"; then
798 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
802 dnl check for instruction scheduler
803 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
805 AC_MSG_CHECKING(whether instruction scheduler should be supported)
806 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
807 case "${ARCH_DIR}" in
811 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
816 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
817 AM_CONDITIONAL([USE_SCHEDULER], [true])
820 AM_CONDITIONAL([USE_SCHEDULER], [false])
826 dnl check for stuff to be built
828 AC_CHECK_ENABLE_LIBJVM
830 dnl ATTENTION: These check must be after setting
831 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
832 dnl because libtool uses them to build the correct libraries.
836 AC_CHECK_ENABLE_STATICVM
837 AC_CHECK_ENABLE_ANNOTATIONS
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
857 AC_CHECK_WITH_JRE_LAYOUT
860 dnl check if GNU Classpath should be linked statically into CACAO
861 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
862 AC_ARG_WITH([static-classpath],
863 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
864 [case "${enableval}" in
865 yes) WITH_STATIC_CLASSPATH=yes;;
866 *) WITH_STATIC_CLASSPATH=no;;
868 [WITH_STATIC_CLASSPATH=no])
869 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
871 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
872 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
874 dnl check for some classpath related stuff when we link statically
879 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
880 AC_SUBST(WITH_STATIC_CLASSPATH)
883 dnl check for some programs we need
885 case "${WITH_CLASSPATH}" in
893 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
901 dnl If debug build and regex.h available, enable debug filter
902 if test x"${NDEBUG}" = "xno"; then
903 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
905 dnl If vmlog enambled and regex.h available, enable vmlogfilter
906 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
909 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
913 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
915 AM_CFLAGS=$ARCH_CFLAGS
919 AC_CONFIG_FILES([Makefile]
921 [contrib/setenvinstalled]
922 [contrib/setenvsource]
923 [contrib/vmlog/Makefile]
924 [contrib/vmlog/t/Makefile]
926 [doc/handbook/Makefile]
930 [src/cacaoh/Makefile]
931 [src/fdlibm/Makefile]
934 [src/mm/cacao-gc/Makefile]
935 [src/native/Makefile]
936 [src/native/include/Makefile]
937 [src/native/jvmti/Makefile]
938 [src/native/tools/Makefile]
939 [src/native/vm/Makefile]
940 [src/native/vm/cldc1.1/Makefile]
941 [src/native/vm/gnu/Makefile]
942 [src/native/vm/sun/Makefile]
943 [src/scripts/Makefile]
945 [src/threads/Makefile]
946 [src/threads/native/Makefile]
947 [src/threads/none/Makefile]
948 [src/toolbox/Makefile]
950 [src/vm/jit/Makefile]
951 [src/vm/jit/allocator/Makefile]
952 [src/vm/jit/alpha/Makefile]
953 [src/vm/jit/alpha/freebsd/Makefile]
954 [src/vm/jit/alpha/linux/Makefile]
955 [src/vm/jit/arm/Makefile]
956 [src/vm/jit/arm/linux/Makefile]
957 [src/vm/jit/i386/Makefile]
958 [src/vm/jit/i386/cygwin/Makefile]
959 [src/vm/jit/i386/darwin/Makefile]
960 [src/vm/jit/i386/freebsd/Makefile]
961 [src/vm/jit/i386/linux/Makefile]
962 [src/vm/jit/intrp/Makefile]
963 [src/vm/jit/inline/Makefile]
964 [src/vm/jit/loop/Makefile]
965 [src/vm/jit/m68k/Makefile]
966 [src/vm/jit/m68k/linux/Makefile]
967 [src/vm/jit/mips/Makefile]
968 [src/vm/jit/mips/irix/Makefile]
969 [src/vm/jit/mips/linux/Makefile]
970 [src/vm/jit/mips/uclinux/Makefile]
971 [src/vm/jit/optimizing/Makefile]
972 [src/vm/jit/parisc/Makefile]
973 [src/vm/jit/parisc/linux/Makefile]
974 [src/vm/jit/powerpc/Makefile]
975 [src/vm/jit/powerpc/darwin/Makefile]
976 [src/vm/jit/powerpc/linux/Makefile]
977 [src/vm/jit/powerpc/netbsd/Makefile]
978 [src/vm/jit/powerpc64/Makefile]
979 [src/vm/jit/powerpc64/linux/Makefile]
980 [src/vm/jit/s390/Makefile]
981 [src/vm/jit/schedule/Makefile]
982 [src/vm/jit/sparc64/Makefile]
983 [src/vm/jit/sparc64/linux/Makefile]
984 [src/vm/jit/sparc64/solaris/Makefile]
985 [src/vm/jit/verify/Makefile]
986 [src/vm/jit/x86_64/Makefile]
987 [src/vm/jit/x86_64/freebsd/Makefile]
988 [src/vm/jit/x86_64/linux/Makefile]
989 [src/vmcore/Makefile]
991 [tests/regression/Makefile]
992 [tests/regression/codepatching/Makefile]
993 [tests/regression/jasmin/Makefile]
994 [tests/regression/native/Makefile]
995 [tests/regression/resolving/Makefile]
996 [tests/regression/resolving/classes1/Makefile]
997 [tests/regression/resolving/classes2/Makefile]
998 [tests/regression/resolving/classes3/Makefile]
1002 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1005 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1013 ## indent-tabs-mode: t
1014 ## c-basic-offset: 4
1016 ## compile-command: "automake --add-missing"