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 vmlog support
501 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
502 AC_ARG_ENABLE([vmlog],
503 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
504 [case "${enableval}" in
505 yes) ENABLE_VMLOG=yes;;
509 AC_MSG_RESULT(${ENABLE_VMLOG})
510 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
512 if test x"${ENABLE_VMLOG}" = "xyes"; then
513 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
517 dnl check for disassembler support
518 AC_MSG_CHECKING(whether disassembler should be enabled)
519 AC_ARG_ENABLE([disassembler],
520 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
521 [case "${enableval}" in
522 yes) ENABLE_DISASSEMBLER=yes;;
523 *) ENABLE_DISASSEMBLER=no;;
525 [ENABLE_DISASSEMBLER=no])
526 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
527 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
529 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
530 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
532 dnl check for binutils headers and libraries on some architectures for the
534 case "${ARCH_DIR}" in
535 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
536 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
537 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
538 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
539 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
542 cygwin | darwin | netbsd | solaris)
543 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
549 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
554 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
555 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
556 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
557 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
558 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
561 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
565 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
569 dnl check for statistics
570 AC_MSG_CHECKING(whether statistics generation should be enabled)
571 AC_ARG_ENABLE([statistics],
572 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
573 [case "${enableval}" in
574 yes) ENABLE_STATISTICS=yes;;
575 *) ENABLE_STATISTICS=no;;
577 [ENABLE_STATISTICS=no])
578 AC_MSG_RESULT(${ENABLE_STATISTICS})
579 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
581 if test x"${ENABLE_STATISTICS}" = "xyes"; then
582 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
586 dnl check for verifier
587 AC_MSG_CHECKING(whether classfile verification should be enabled)
588 AC_ARG_ENABLE([verifier],
589 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=yes]])],
590 [case "${enableval}" in
591 no) ENABLE_VERIFIER=no;;
592 *) ENABLE_VERIFIER=yes;;
594 [ENABLE_VERIFIER=yes])
595 AC_MSG_RESULT(${ENABLE_VERIFIER})
596 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
598 if test x"${ENABLE_VERIFIER}" = "xyes"; then
599 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
603 dnl check for compiler timing
604 AC_MSG_CHECKING(whether real-time timing should be enabled)
605 AC_ARG_ENABLE([rt-timing],
606 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
607 [case "${enableval}" in
608 yes) ENABLE_RT_TIMING=yes;;
609 *) ENABLE_RT_TIMING=no;;
611 [ENABLE_RT_TIMING=no])
612 AC_MSG_RESULT(${ENABLE_RT_TIMING})
613 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
615 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
616 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
620 dnl check for cycle count statistics
621 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
622 AC_ARG_ENABLE([cycles-stats],
623 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
624 [case "${enableval}" in
625 yes) ENABLE_CYCLES_STATS=yes;;
626 *) ENABLE_CYCLES_STATS=no;;
628 [ENABLE_CYCLES_STATS=no])
629 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
630 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
632 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
633 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
638 AC_MSG_CHECKING(whether to compile JVMTI support)
639 AC_ARG_ENABLE([jvmti],
640 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
641 [case "${enableval}" in
642 yes) ENABLE_JVMTI=yes;;
646 AC_MSG_RESULT(${ENABLE_JVMTI})
647 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
649 if test x"${ENABLE_JVMTI}" = "xyes"; then
650 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
654 AC_CHECK_ENABLE_THREADS
657 dnl check if if-conversion should be supported
658 AC_MSG_CHECKING(whether if-conversion should be supported)
659 AC_ARG_ENABLE([ifconv],
660 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=yes]])],
661 [case "${enableval}" in
662 no) ENABLE_IFCONV=no;;
663 *) ENABLE_IFCONV=yes;;
666 AC_MSG_RESULT(${ENABLE_IFCONV})
667 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
669 if test x"${ENABLE_IFCONV}" = "xyes"; then
670 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
674 dnl check for inlining
675 AC_MSG_CHECKING(whether method inlining should be supported)
676 AC_ARG_ENABLE([inlining],
677 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
678 [case "${enableval}" in
679 yes) ENABLE_INLINING=yes;;
680 *) ENABLE_INLINING=no;;
682 [ENABLE_INLINING=no])
683 AC_MSG_RESULT(${ENABLE_INLINING})
684 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
686 if test x"${ENABLE_INLINING}" = "xyes"; then
687 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
691 dnl check for inlining debug options
692 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
693 AC_ARG_ENABLE([inlining-debug],
694 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
695 [case "${enableval}" in
696 yes) ENABLE_INLINING_DEBUG=yes;;
697 *) ENABLE_INLINING_DEBUG=no;;
699 [ENABLE_INLINING_DEBUG=no])
700 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
701 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
703 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
704 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
708 dnl check for replacement
709 AC_MSG_CHECKING(whether on-stack replacement should be supported)
710 AC_ARG_ENABLE([replacement],
711 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
712 [case "${enableval}" in
713 yes) ENABLE_REPLACEMENT=yes;;
714 *) ENABLE_REPLACEMENT=no;;
716 [ENABLE_REPLACEMENT=no])
717 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
718 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
720 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
721 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
725 dnl check for loop optimization
726 AC_MSG_CHECKING(whether loop optimization should be supported)
727 AC_ARG_ENABLE([loop],
728 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
729 [case "${enableval}" in
730 yes) ENABLE_LOOP=yes;;
734 AC_MSG_RESULT(${ENABLE_LOOP})
735 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
737 if test x"${ENABLE_LOOP}" = "xyes"; then
738 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
742 dnl check if linear scan register allocator(lsra) with SSA should be used
743 AC_MSG_CHECKING(whether lsra with ssa should be supported)
745 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])],
746 [case "${enableval}" in
751 AC_MSG_RESULT(${ENABLE_SSA})
752 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
754 if test x"${ENABLE_SSA}" = "xyes"; then
755 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
760 dnl check if linear scan register allocator(lsra) should be used
761 AC_MSG_CHECKING(whether lsra should be supported)
762 AC_ARG_ENABLE([lsra],
763 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
764 [case "${enableval}" in
765 yes) ENABLE_LSRA=yes;;
770 if test x"${ENABLE_LSRA}" = "xyes"; then
771 if test x"${ENABLE_SSA}" = "xyes"; then
775 AC_MSG_RESULT(${ENABLE_LSRA})
776 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
778 if test x"${ENABLE_LSRA}" = "xyes"; then
779 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
783 dnl check if profiling should be supported
784 AC_MSG_CHECKING(whether profiling should be supported)
785 AC_ARG_ENABLE([profiling],
786 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
787 [case "${enableval}" in
788 yes) ENABLE_PROFILING=yes;;
789 *) ENABLE_PROFILING=no;;
791 [ENABLE_PROFILING=no])
792 AC_MSG_RESULT(${ENABLE_PROFILING})
793 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
795 if test x"${ENABLE_PROFILING}" = "xyes"; then
796 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
800 dnl check for instruction scheduler
801 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
803 AC_MSG_CHECKING(whether instruction scheduler should be supported)
804 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
805 case "${ARCH_DIR}" in
809 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
814 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
815 AM_CONDITIONAL([USE_SCHEDULER], [true])
818 AM_CONDITIONAL([USE_SCHEDULER], [false])
824 dnl check for stuff to be built
826 AC_CHECK_ENABLE_LIBJVM
828 dnl ATTENTION: These check must be after setting
829 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
830 dnl because libtool uses them to build the correct libraries.
834 AC_CHECK_ENABLE_STATICVM
835 AC_CHECK_ENABLE_ANNOTATIONS
838 dnl where is CACAO's vm.zip
839 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
840 AC_ARG_WITH([vm-zip],
841 [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]])],
842 [CACAO_VM_ZIP=${withval}],
843 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
844 AC_MSG_RESULT(${CACAO_VM_ZIP})
845 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
846 AC_SUBST(CACAO_VM_ZIP)
849 AC_CHECK_WITH_CLASSPATH
850 AC_CHECK_WITH_CLASSPATH_PREFIX
851 AC_CHECK_WITH_CLASSPATH_CLASSES
852 AC_CHECK_WITH_CLASSPATH_LIBDIR
853 AC_CHECK_WITH_CLASSPATH_INCLUDEDIR
855 AC_CHECK_WITH_JRE_LAYOUT
858 dnl check if GNU Classpath should be linked statically into CACAO
859 AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO)
860 AC_ARG_WITH([static-classpath],
861 [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])],
862 [case "${enableval}" in
863 yes) WITH_STATIC_CLASSPATH=yes;;
864 *) WITH_STATIC_CLASSPATH=no;;
866 [WITH_STATIC_CLASSPATH=no])
867 AC_MSG_RESULT(${WITH_STATIC_CLASSPATH})
869 if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then
870 AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO])
872 dnl check for some classpath related stuff when we link statically
877 AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes")
878 AC_SUBST(WITH_STATIC_CLASSPATH)
881 dnl check for some programs we need
883 case "${WITH_CLASSPATH}" in
891 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
899 dnl If debug build and regex.h available, enable debug filter
900 if test x"${NDEBUG}" = "xno"; then
901 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
903 dnl If vmlog enambled and regex.h available, enable vmlogfilter
904 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
907 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
911 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
913 AM_CFLAGS=$ARCH_CFLAGS
917 AC_CONFIG_FILES([Makefile]
919 [contrib/setenvinstalled]
920 [contrib/setenvsource]
921 [contrib/vmlog/Makefile]
922 [contrib/vmlog/t/Makefile]
924 [doc/handbook/Makefile]
928 [src/cacaoh/Makefile]
929 [src/fdlibm/Makefile]
932 [src/mm/cacao-gc/Makefile]
933 [src/native/Makefile]
934 [src/native/include/Makefile]
935 [src/native/jvmti/Makefile]
936 [src/native/tools/Makefile]
937 [src/native/vm/Makefile]
938 [src/native/vm/cldc1.1/Makefile]
939 [src/native/vm/gnu/Makefile]
940 [src/native/vm/sun/Makefile]
941 [src/scripts/Makefile]
943 [src/threads/Makefile]
944 [src/threads/native/Makefile]
945 [src/threads/none/Makefile]
946 [src/toolbox/Makefile]
948 [src/vm/jit/Makefile]
949 [src/vm/jit/allocator/Makefile]
950 [src/vm/jit/alpha/Makefile]
951 [src/vm/jit/alpha/freebsd/Makefile]
952 [src/vm/jit/alpha/linux/Makefile]
953 [src/vm/jit/arm/Makefile]
954 [src/vm/jit/arm/linux/Makefile]
955 [src/vm/jit/i386/Makefile]
956 [src/vm/jit/i386/cygwin/Makefile]
957 [src/vm/jit/i386/darwin/Makefile]
958 [src/vm/jit/i386/freebsd/Makefile]
959 [src/vm/jit/i386/linux/Makefile]
960 [src/vm/jit/intrp/Makefile]
961 [src/vm/jit/inline/Makefile]
962 [src/vm/jit/loop/Makefile]
963 [src/vm/jit/m68k/Makefile]
964 [src/vm/jit/m68k/linux/Makefile]
965 [src/vm/jit/mips/Makefile]
966 [src/vm/jit/mips/irix/Makefile]
967 [src/vm/jit/mips/linux/Makefile]
968 [src/vm/jit/mips/uclinux/Makefile]
969 [src/vm/jit/optimizing/Makefile]
970 [src/vm/jit/parisc/Makefile]
971 [src/vm/jit/parisc/linux/Makefile]
972 [src/vm/jit/powerpc/Makefile]
973 [src/vm/jit/powerpc/darwin/Makefile]
974 [src/vm/jit/powerpc/linux/Makefile]
975 [src/vm/jit/powerpc/netbsd/Makefile]
976 [src/vm/jit/powerpc64/Makefile]
977 [src/vm/jit/powerpc64/linux/Makefile]
978 [src/vm/jit/s390/Makefile]
979 [src/vm/jit/schedule/Makefile]
980 [src/vm/jit/sparc64/Makefile]
981 [src/vm/jit/sparc64/linux/Makefile]
982 [src/vm/jit/sparc64/solaris/Makefile]
983 [src/vm/jit/verify/Makefile]
984 [src/vm/jit/x86_64/Makefile]
985 [src/vm/jit/x86_64/freebsd/Makefile]
986 [src/vm/jit/x86_64/linux/Makefile]
987 [src/vmcore/Makefile]
989 [tests/regression/Makefile]
990 [tests/regression/codepatching/Makefile]
991 [tests/regression/jasmin/Makefile]
992 [tests/regression/native/Makefile]
993 [tests/regression/resolving/Makefile]
994 [tests/regression/resolving/classes1/Makefile]
995 [tests/regression/resolving/classes2/Makefile]
996 [tests/regression/resolving/classes3/Makefile]
1000 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
1003 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
1011 ## indent-tabs-mode: t
1012 ## c-basic-offset: 4
1014 ## compile-command: "automake --add-missing"