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 Process this file with autoconf to produce a configure script.
28 AC_INIT(cacao, 0.98+svn, cacao@cacaojvm.org)
29 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
32 AM_INIT_AUTOMAKE([1.9.0 dist-bzip2])
35 AM_CONFIG_HEADER([config.h])
37 AC_PREFIX_DEFAULT(/usr/local/cacao)
40 dnl set optimization and debugging for all architectures and systems
41 if test x"$CFLAGS" = "x"; then
49 alpha | alphaev56 | alphapca56 )
51 ARCH_CFLAGS="-mieee -D__ALPHA__"
55 arm | armv4 | armv4tl | armv5b | armv5l )
57 ARCH_CFLAGS="-D__ARM__"
63 ARCH_CFLAGS="-D__PARISC__"
67 i386 | i486 | i586 | i686 )
69 ARCH_CFLAGS="-D__I386__"
75 ARCH_CFLAGS="-D__M68K__"
81 ARCH_CFLAGS="-D__MIPS__"
82 dnl Is this correct for mipsel?
88 ARCH_CFLAGS="-D__POWERPC__"
94 ARCH_CFLAGS="-D__POWERPC64__"
100 ARCH_CFLAGS="-D__S390__"
106 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
107 dnl Is this correct for 64-bits?
113 ARCH_CFLAGS="-D__X86_64__"
119 ENABLE_STATICVM="yes"
120 ARCH_CFLAGS="-D__XDSPCORE__"
125 AC_MSG_ERROR($host_cpu systems are not supported at this time)
133 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
134 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long"
139 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
140 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall -Wno-long-long"
145 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
146 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
151 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
152 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
157 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"
158 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"
161 dnl must be before *linux*
164 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"
165 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"
170 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"
171 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"
176 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"
177 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"
182 dnl on solaris the architecture defines 'sparc','sun','unix' are not set when cpp is called with -ansi
183 dnl therefore we add them here
184 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"
185 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"
193 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
194 dnl we set it properly at the end of this file
195 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
197 dnl set interpreter flags
198 AC_SUBST(INTRP_CFLAGS)
200 dnl define some stuff required for --fullversion
201 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
202 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
203 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used])
206 dnl define and substitute some architecture specific variables
207 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
208 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
211 AC_SUBST(USE_SCHEDULER)
214 dnl Checks for programs.
224 dnl Checks for header files.
228 dnl keep them alpha-sorted!
229 AC_CHECK_HEADERS([fcntl.h])
230 AC_CHECK_HEADERS([libgen.h])
231 AC_CHECK_HEADERS([netdb.h])
232 AC_CHECK_HEADERS([stdlib.h])
233 AC_CHECK_HEADERS([string.h])
234 AC_CHECK_HEADERS([time.h])
235 AC_CHECK_HEADERS([ucontext.h])
236 AC_CHECK_HEADERS([unistd.h])
237 AC_CHECK_HEADERS([sys/ioctl.h])
238 AC_CHECK_HEADERS([sys/mman.h])
239 AC_CHECK_HEADERS([sys/resource.h])
240 AC_CHECK_HEADERS([sys/select.h])
241 AC_CHECK_HEADERS([sys/socket.h])
242 AC_CHECK_HEADERS([sys/stat.h])
243 AC_CHECK_HEADERS([sys/time.h])
244 AC_CHECK_HEADERS([sys/types.h])
246 dnl this is for fdlibm
247 AC_CHECK_HEADERS([stdint.h])
248 AC_CHECK_HEADERS([inttypes.h])
249 AC_CHECK_HEADERS([sys/config.h])
250 AC_CHECK_HEADERS([sys/types.h])
251 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
252 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
253 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]))
254 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]))
256 dnl Checks for typedefs, structures, and compiler characteristics.
265 dnl Checks for libraries (NOTE: Should be done before function checks,
266 dnl as some functions may be in libraries we check for).
267 AC_CHECK_LIB(dl, dlopen,,)
269 dnl Checks for library functions.
270 AC_PROG_GCC_TRADITIONAL
275 dnl keep them alpha-sorted!
276 AC_CHECK_FUNCS([accept])
277 AC_CHECK_FUNCS([access])
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([dirname])
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([readlink])
309 AC_CHECK_FUNCS([recv])
310 AC_CHECK_FUNCS([scandir])
311 AC_CHECK_FUNCS([select])
312 AC_CHECK_FUNCS([send])
313 AC_CHECK_FUNCS([setsockopt])
314 AC_CHECK_FUNCS([shutdown])
315 AC_CHECK_FUNCS([socket])
316 AC_CHECK_FUNCS([strchr])
317 AC_CHECK_FUNCS([strdup])
318 AC_CHECK_FUNCS([strerror])
319 AC_CHECK_FUNCS([strncmp])
320 AC_CHECK_FUNCS([strstr])
321 AC_CHECK_FUNCS([time])
324 dnl Checks for libraries.
326 dnl Checking sizeof void *
327 AC_CHECK_SIZEOF(void *)
331 dnl define install prefix
332 if test "x$prefix" = "xNONE"; then
333 CACAO_PREFIX=$ac_default_prefix
337 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
338 AC_SUBST(CACAO_PREFIX)
340 dnl define libdir prefix
341 if test "x$libdir" = "xNONE"; then
342 CACAO_LIBDIR=$ac_default_libdir
346 dnl expand CACAO_LIBDIR to something that is usable in C code
347 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
348 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
349 AC_SUBST(CACAO_LIBDIR)
360 dnl check for stuff that should be done in software
362 AC_CHECK_SOFT_FLOAT_CMP
363 AC_CHECK_SOFT_DOUBLE_CMP
366 dnl check for interpreter
367 AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])])
369 AC_MSG_CHECKING(whether interpreter should be compiled)
370 if test x"$enable_intrp" = "xyes"; then
372 AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter])
373 AM_CONDITIONAL([ENABLE_INTRP], [true])
380 [AS_HELP_STRING(--with-ffi,use libffi to call native functions)],
382 AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)])
383 AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)])
384 AC_DEFINE([WITH_FFI], 1, [use libffi])],
387 dnl check for libffcall
388 AC_ARG_WITH([ffcall],
389 [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)],
391 AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)])
392 AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))])
393 AC_DEFINE([WITH_FFCALL], 1, [use libffcall])],
396 dnl check for libffi or libffcall
397 if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then
398 AC_ERROR(Enable only libffi or libffcall.)
400 if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then
401 AC_ERROR(Enable one of libffi or libffcall.)
406 AM_CONDITIONAL([ENABLE_INTRP], [false])
410 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
411 AC_ERROR(You have to enable at least the JIT or the interpreter.)
415 dnl check for garbage collector usage
416 AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])])
417 AC_MSG_CHECKING(whether GC should be enabled)
418 enable_gc=${enable_gc:-boehm}
421 AC_DEFINE([DISABLE_GC], 1, [disable garbage collector])
427 AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc])
429 AC_MSG_RESULT(yes, boehm-gc)
433 AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc])
435 AC_MSG_RESULT(yes, cacao-gc)
439 AC_MSG_ERROR($enable_gc is an unknown garbage collector package)
442 AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone")
443 AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm")
444 AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao")
448 dnl check for dump memory usage
449 AC_MSG_CHECKING(whether dump memory should be disabled)
450 AC_ARG_ENABLE([dump],
451 [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])],
452 [case "${enableval}" in
455 AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory])
460 AC_MSG_RESULT(${DISABLE_DUMP})
464 AC_MSG_CHECKING(whether debug code generation should be enabled)
465 AC_ARG_ENABLE([debug],
466 [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])],
467 [case "${enableval}" in
469 AC_DEFINE([NDEBUG], 1, [disable debug code])
475 if test x"${NDEBUG}" = "xno"; then
480 AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes")
483 dnl check for memcheck support
484 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
485 AC_ARG_ENABLE([memcheck],
486 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
487 [case "${enableval}" in
488 yes) ENABLE_MEMCHECK=yes;;
489 *) ENABLE_MEMCHECK=no;;
491 [ENABLE_MEMCHECK=no])
492 AC_MSG_RESULT(${ENABLE_MEMCHECK})
493 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
495 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
496 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
500 dnl check for handles (indirection cells) support
501 AC_MSG_CHECKING(whether handles (indirection cells) should be enabled)
502 AC_ARG_ENABLE([handles],
503 [AS_HELP_STRING(--enable-handles,enable handles (indirection cells) [[default=no]])],
504 [case "${enableval}" in
505 yes) ENABLE_HANDLES=yes;;
506 *) ENABLE_HANDLES=no;;
509 AC_MSG_RESULT(${ENABLE_HANDLES})
510 AM_CONDITIONAL([ENABLE_HANDLES], test x"${ENABLE_HANDLES}" = "xyes")
512 if test x"${ENABLE_HANDLES}" = "xyes"; then
513 AC_DEFINE([ENABLE_HANDLES], 1, [enable handles (indirection cells)])
517 dnl check for vmlog support
518 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
519 AC_ARG_ENABLE([vmlog],
520 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
521 [case "${enableval}" in
522 yes) ENABLE_VMLOG=yes;;
526 AC_MSG_RESULT(${ENABLE_VMLOG})
527 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
529 if test x"${ENABLE_VMLOG}" = "xyes"; then
530 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
534 dnl check for disassembler support
535 AC_MSG_CHECKING(whether disassembler should be enabled)
536 AC_ARG_ENABLE([disassembler],
537 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
538 [case "${enableval}" in
539 yes) ENABLE_DISASSEMBLER=yes;;
540 *) ENABLE_DISASSEMBLER=no;;
542 [ENABLE_DISASSEMBLER=no])
543 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
544 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
546 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
547 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
549 dnl check for binutils headers and libraries on some architectures for the
551 case "${ARCH_DIR}" in
552 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
553 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
554 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
555 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
556 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
559 cygwin | darwin | netbsd | solaris)
560 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
566 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
571 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
572 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
573 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
574 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
575 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
578 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
582 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
586 dnl check for statistics
587 AC_MSG_CHECKING(whether statistics generation should be enabled)
588 AC_ARG_ENABLE([statistics],
589 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
590 [case "${enableval}" in
591 yes) ENABLE_STATISTICS=yes;;
592 *) ENABLE_STATISTICS=no;;
594 [ENABLE_STATISTICS=no])
595 AC_MSG_RESULT(${ENABLE_STATISTICS})
596 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
598 if test x"${ENABLE_STATISTICS}" = "xyes"; then
599 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
603 dnl check for verifier
604 AC_MSG_CHECKING(whether classfile verification should be enabled)
605 AC_ARG_ENABLE([verifier],
606 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
607 [case "${enableval}" in
608 no) ENABLE_VERIFIER=no;;
609 *) ENABLE_VERIFIER=yes;;
611 [ENABLE_VERIFIER=yes])
612 AC_MSG_RESULT(${ENABLE_VERIFIER})
613 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
615 if test x"${ENABLE_VERIFIER}" = "xyes"; then
616 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
620 dnl check for compiler timing
621 AC_MSG_CHECKING(whether real-time timing should be enabled)
622 AC_ARG_ENABLE([rt-timing],
623 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
624 [case "${enableval}" in
625 yes) ENABLE_RT_TIMING=yes;;
626 *) ENABLE_RT_TIMING=no;;
628 [ENABLE_RT_TIMING=no])
629 AC_MSG_RESULT(${ENABLE_RT_TIMING})
630 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
632 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
633 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
637 dnl check for cycle count statistics
638 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
639 AC_ARG_ENABLE([cycles-stats],
640 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
641 [case "${enableval}" in
642 yes) ENABLE_CYCLES_STATS=yes;;
643 *) ENABLE_CYCLES_STATS=no;;
645 [ENABLE_CYCLES_STATS=no])
646 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
647 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
649 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
650 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
655 AC_MSG_CHECKING(whether to compile JVMTI support)
656 AC_ARG_ENABLE([jvmti],
657 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
658 [case "${enableval}" in
659 yes) ENABLE_JVMTI=yes;;
663 AC_MSG_RESULT(${ENABLE_JVMTI})
664 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
666 if test x"${ENABLE_JVMTI}" = "xyes"; then
667 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
671 AC_CHECK_ENABLE_THREADS
674 dnl check if if-conversion should be supported
675 AC_MSG_CHECKING(whether if-conversion should be supported)
676 AC_ARG_ENABLE([ifconv],
677 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
678 [case "${enableval}" in
679 no) ENABLE_IFCONV=no;;
680 *) ENABLE_IFCONV=yes;;
683 AC_MSG_RESULT(${ENABLE_IFCONV})
684 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
686 if test x"${ENABLE_IFCONV}" = "xyes"; then
687 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
691 dnl check for inlining
692 AC_MSG_CHECKING(whether method inlining should be supported)
693 AC_ARG_ENABLE([inlining],
694 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
695 [case "${enableval}" in
696 yes) ENABLE_INLINING=yes;;
697 *) ENABLE_INLINING=no;;
699 [ENABLE_INLINING=no])
700 AC_MSG_RESULT(${ENABLE_INLINING})
701 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
703 if test x"${ENABLE_INLINING}" = "xyes"; then
704 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
708 dnl check for inlining debug options
709 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
710 AC_ARG_ENABLE([inlining-debug],
711 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
712 [case "${enableval}" in
713 yes) ENABLE_INLINING_DEBUG=yes;;
714 *) ENABLE_INLINING_DEBUG=no;;
716 [ENABLE_INLINING_DEBUG=no])
717 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
718 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
720 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
721 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
725 dnl check for replacement
726 AC_MSG_CHECKING(whether on-stack replacement should be supported)
727 AC_ARG_ENABLE([replacement],
728 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
729 [case "${enableval}" in
730 yes) ENABLE_REPLACEMENT=yes;;
731 *) ENABLE_REPLACEMENT=no;;
733 [ENABLE_REPLACEMENT=no])
734 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
735 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
737 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
738 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
742 dnl check for loop optimization
743 AC_MSG_CHECKING(whether loop optimization should be supported)
744 AC_ARG_ENABLE([loop],
745 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
746 [case "${enableval}" in
747 yes) ENABLE_LOOP=yes;;
751 AC_MSG_RESULT(${ENABLE_LOOP})
752 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
754 if test x"${ENABLE_LOOP}" = "xyes"; then
755 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
759 dnl check if linear scan register allocator(lsra) with SSA should be used
760 AC_MSG_CHECKING(whether lsra with ssa should be supported)
762 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
763 [case "${enableval}" in
768 AC_MSG_RESULT(${ENABLE_SSA})
769 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
771 if test x"${ENABLE_SSA}" = "xyes"; then
772 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
777 dnl check if linear scan register allocator(lsra) should be used
778 AC_MSG_CHECKING(whether lsra should be supported)
779 AC_ARG_ENABLE([lsra],
780 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
781 [case "${enableval}" in
782 yes) ENABLE_LSRA=yes;;
787 if test x"${ENABLE_LSRA}" = "xyes"; then
788 if test x"${ENABLE_SSA}" = "xyes"; then
792 AC_MSG_RESULT(${ENABLE_LSRA})
793 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
795 if test x"${ENABLE_LSRA}" = "xyes"; then
796 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
800 dnl check if profiling should be supported
801 AC_MSG_CHECKING(whether profiling should be supported)
802 AC_ARG_ENABLE([profiling],
803 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
804 [case "${enableval}" in
805 yes) ENABLE_PROFILING=yes;;
806 *) ENABLE_PROFILING=no;;
808 [ENABLE_PROFILING=no])
809 AC_MSG_RESULT(${ENABLE_PROFILING})
810 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
812 if test x"${ENABLE_PROFILING}" = "xyes"; then
813 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
817 dnl check for instruction scheduler
818 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
820 AC_MSG_CHECKING(whether instruction scheduler should be supported)
821 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
822 case "${ARCH_DIR}" in
826 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
831 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
832 AM_CONDITIONAL([USE_SCHEDULER], [true])
835 AM_CONDITIONAL([USE_SCHEDULER], [false])
841 dnl check for stuff to be built
843 AC_CHECK_ENABLE_LIBJVM
845 dnl ATTENTION: These check must be after setting
846 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
847 dnl because libtool uses them to build the correct libraries.
851 AC_CHECK_ENABLE_STATICVM
852 AC_CHECK_ENABLE_ANNOTATIONS
855 dnl where is CACAO's vm.zip
856 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
857 AC_ARG_WITH([vm-zip],
858 [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]])],
859 [CACAO_VM_ZIP=${withval}],
860 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
861 AC_MSG_RESULT(${CACAO_VM_ZIP})
862 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
863 AC_SUBST(CACAO_VM_ZIP)
866 AC_CHECK_WITH_CLASSPATH
867 AC_CHECK_WITH_CLASSPATH_PREFIX
868 AC_CHECK_WITH_CLASSPATH_CLASSES
869 AC_CHECK_WITH_CLASSPATH_LIBDIR
870 AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
872 AC_CHECK_WITH_JRE_LAYOUT
875 dnl check if GNU Classpath should be linked statically into CACAO
876 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
877 AC_ARG_WITH([static-classpath],
878 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
879 [case "${enableval}" in
880 yes) WITH_STATIC_CLASSPATH=yes;;
881 *) WITH_STATIC_CLASSPATH=no;;
883 [WITH_STATIC_CLASSPATH=no])
884 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
886 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
887 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
889 dnl check for some classpath related stuff when we link statically
894 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
895 AC_SUBST(WITH_STATIC_CLASSPATH)
898 dnl check for some programs we need
900 case "${WITH_CLASSPATH}" in
908 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
916 dnl If debug build and regex.h available, enable debug filter
917 if test x"${NDEBUG}" = "xno"; then
918 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
920 dnl If vmlog enambled and regex.h available, enable vmlogfilter
921 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
924 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
928 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
930 AM_CFLAGS=$ARCH_CFLAGS
934 AC_CONFIG_FILES([Makefile]
936 [contrib/setenvinstalled]
937 [contrib/setenvsource]
938 [contrib/vmlog/Makefile]
939 [contrib/vmlog/t/Makefile]
941 [doc/handbook/Makefile]
945 [src/cacaoh/Makefile]
946 [src/fdlibm/Makefile]
949 [src/mm/cacao-gc/Makefile]
950 [src/native/Makefile]
951 [src/native/include/Makefile]
952 [src/native/jvmti/Makefile]
953 [src/native/tools/Makefile]
954 [src/native/vm/Makefile]
955 [src/native/vm/cldc1.1/Makefile]
956 [src/native/vm/gnu/Makefile]
957 [src/native/vm/sun/Makefile]
958 [src/scripts/Makefile]
960 [src/threads/Makefile]
961 [src/threads/native/Makefile]
962 [src/threads/none/Makefile]
963 [src/toolbox/Makefile]
965 [src/vm/jit/Makefile]
966 [src/vm/jit/allocator/Makefile]
967 [src/vm/jit/alpha/Makefile]
968 [src/vm/jit/alpha/freebsd/Makefile]
969 [src/vm/jit/alpha/linux/Makefile]
970 [src/vm/jit/arm/Makefile]
971 [src/vm/jit/arm/linux/Makefile]
972 [src/vm/jit/i386/Makefile]
973 [src/vm/jit/i386/cygwin/Makefile]
974 [src/vm/jit/i386/darwin/Makefile]
975 [src/vm/jit/i386/freebsd/Makefile]
976 [src/vm/jit/i386/linux/Makefile]
977 [src/vm/jit/intrp/Makefile]
978 [src/vm/jit/inline/Makefile]
979 [src/vm/jit/loop/Makefile]
980 [src/vm/jit/m68k/Makefile]
981 [src/vm/jit/m68k/linux/Makefile]
982 [src/vm/jit/mips/Makefile]
983 [src/vm/jit/mips/irix/Makefile]
984 [src/vm/jit/mips/linux/Makefile]
985 [src/vm/jit/mips/uclinux/Makefile]
986 [src/vm/jit/optimizing/Makefile]
987 [src/vm/jit/parisc/Makefile]
988 [src/vm/jit/parisc/linux/Makefile]
989 [src/vm/jit/powerpc/Makefile]
990 [src/vm/jit/powerpc/darwin/Makefile]
991 [src/vm/jit/powerpc/linux/Makefile]
992 [src/vm/jit/powerpc/netbsd/Makefile]
993 [src/vm/jit/powerpc64/Makefile]
994 [src/vm/jit/powerpc64/linux/Makefile]
995 [src/vm/jit/s390/Makefile]
996 [src/vm/jit/schedule/Makefile]
997 [src/vm/jit/sparc64/Makefile]
998 [src/vm/jit/sparc64/linux/Makefile]
999 [src/vm/jit/sparc64/solaris/Makefile]
1000 [src/vm/jit/verify/Makefile]
1001 [src/vm/jit/x86_64/Makefile]
1002 [src/vm/jit/x86_64/freebsd/Makefile]
1003 [src/vm/jit/x86_64/linux/Makefile]
1004 [src/vmcore/Makefile]
1006 [tests/regression/Makefile]
1007 [tests/regression/codepatching/Makefile]
1008 [tests/regression/jasmin/Makefile]
1009 [tests/regression/native/Makefile]
1010 [tests/regression/resolving/Makefile]
1011 [tests/regression/resolving/classes1/Makefile]
1012 [tests/regression/resolving/classes2/Makefile]
1013 [tests/regression/resolving/classes3/Makefile]
1017 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1020 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1028 ## indent-tabs-mode: t
1029 ## c-basic-offset: 4
1031 ## compile-command: "automake --add-missing"