3 dnl Copyright (C) 1996-2005, 2006, 2007, 2008
4 dnl CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
6 dnl This file is part of CACAO.
8 dnl This program is free software; you can redistribute it and/or
9 dnl modify it under the terms of the GNU General Public License as
10 dnl published by the Free Software Foundation; either version 2, or (at
11 dnl your option) any later version.
13 dnl This program is distributed in the hope that it will be useful, but
14 dnl WITHOUT ANY WARRANTY; without even the implied warranty of
15 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 dnl General Public License for more details.
18 dnl You should have received a copy of the GNU General Public License
19 dnl along with this program; if not, write to the Free Software
20 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 dnl Process this file with autoconf to produce a configure script.
26 AC_INIT(cacao, 0.98+svn, cacao@cacaojvm.org)
27 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
30 AM_INIT_AUTOMAKE([1.9.0 dist-bzip2])
33 AM_CONFIG_HEADER([config.h])
35 AC_PREFIX_DEFAULT(/usr/local/cacao)
38 dnl set optimization and debugging for all architectures and systems
39 if test x"$CFLAGS" = "x"; then
47 alpha | alphaev56 | alphapca56 )
49 ARCH_CFLAGS="-mieee -D__ALPHA__"
53 arm | armv4 | armv4tl | armv5b | armv5l )
55 ARCH_CFLAGS="-D__ARM__"
61 ARCH_CFLAGS="-D__PARISC__"
65 i386 | i486 | i586 | i686 )
67 ARCH_CFLAGS="-D__I386__"
73 ARCH_CFLAGS="-D__M68K__"
79 ARCH_CFLAGS="-D__MIPS__"
80 dnl Is this correct for mipsel?
86 ARCH_CFLAGS="-D__POWERPC__"
92 ARCH_CFLAGS="-D__POWERPC64__"
98 ARCH_CFLAGS="-D__S390__"
104 ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__"
105 dnl Is this correct for 64-bits?
111 ARCH_CFLAGS="-D__X86_64__"
117 ENABLE_STATICVM="yes"
118 ARCH_CFLAGS="-D__XDSPCORE__"
123 AC_MSG_ERROR($host_cpu systems are not supported at this time)
131 INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long"
132 ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long"
137 INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long"
138 ARCH_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -ansi -pedantic -Wall -Wno-long-long"
143 INTRP_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
144 ARCH_CFLAGS="$ARCH_CFLAGS -D__FREEBSD__ -ansi -pedantic -Wall -Wno-long-long -D_XOPEN_SOURCE_EXTENDED"
149 INTRP_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
150 ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__"
155 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"
156 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"
159 dnl must be before *linux*
162 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"
163 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"
168 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"
169 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"
174 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"
175 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"
180 dnl on solaris the architecture defines 'sparc','sun','unix' are not set when cpp is called with -ansi
181 dnl therefore we add them here
182 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"
183 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"
191 dnl temporary set the CFLAGS for configure tests (e.g. inline keyword)
192 dnl we set it properly at the end of this file
193 CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS"
195 dnl set interpreter flags
196 AC_SUBST(INTRP_CFLAGS)
198 dnl define and substitute some architecture specific variables
199 AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory])
200 AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name])
203 AC_SUBST(USE_SCHEDULER)
206 dnl Checks for programs.
216 dnl Checks for header files.
220 dnl keep them alpha-sorted!
221 AC_CHECK_HEADERS([assert.h])
222 AC_CHECK_HEADERS([errno.h])
223 AC_CHECK_HEADERS([fcntl.h])
224 AC_CHECK_HEADERS([libgen.h])
225 AC_CHECK_HEADERS([netdb.h])
226 AC_CHECK_HEADERS([stdlib.h])
227 AC_CHECK_HEADERS([string.h])
228 AC_CHECK_HEADERS([time.h])
229 AC_CHECK_HEADERS([ucontext.h])
230 AC_CHECK_HEADERS([unistd.h])
231 AC_CHECK_HEADERS([sys/ioctl.h])
232 AC_CHECK_HEADERS([sys/mman.h])
233 AC_CHECK_HEADERS([sys/resource.h])
234 AC_CHECK_HEADERS([sys/select.h])
235 AC_CHECK_HEADERS([sys/socket.h])
236 AC_CHECK_HEADERS([sys/stat.h])
237 AC_CHECK_HEADERS([sys/time.h])
238 AC_CHECK_HEADERS([sys/types.h])
240 dnl this is for fdlibm
241 AC_CHECK_HEADERS([stdint.h])
242 AC_CHECK_HEADERS([inttypes.h])
243 AC_CHECK_HEADERS([sys/config.h])
244 AC_CHECK_HEADERS([sys/types.h])
245 AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
246 AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
247 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]))
248 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]))
250 dnl Checks for typedefs, structures, and compiler characteristics.
259 dnl Checks for libraries (NOTE: Should be done before function checks,
260 dnl as some functions may be in libraries we check for).
261 AC_CHECK_LIB(dl, dlopen,,)
263 dnl Checks for library functions.
264 AC_PROG_GCC_TRADITIONAL
269 dnl keep them alpha-sorted!
270 AC_CHECK_FUNCS([abort])
271 AC_CHECK_FUNCS([accept])
272 AC_CHECK_FUNCS([access])
273 AC_CHECK_FUNCS([atoi])
274 AC_CHECK_FUNCS([atol])
275 AC_CHECK_FUNCS([calloc])
276 AC_CHECK_FUNCS([close])
277 AC_CHECK_FUNCS([confstr])
278 AC_CHECK_FUNCS([connect])
279 AC_CHECK_FUNCS([dirname])
280 AC_CHECK_FUNCS([fclose])
281 AC_CHECK_FUNCS([fflush])
282 AC_CHECK_FUNCS([fopen])
283 AC_CHECK_FUNCS([fprintf])
284 AC_CHECK_FUNCS([fread])
285 AC_CHECK_FUNCS([free])
286 AC_CHECK_FUNCS([fstat])
287 AC_CHECK_FUNCS([fsync])
288 AC_CHECK_FUNCS([ftruncate])
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([getsockopt])
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([memcpy])
306 AC_CHECK_FUNCS([memset])
307 AC_CHECK_FUNCS([mmap])
308 AC_CHECK_FUNCS([mprotect])
309 AC_CHECK_FUNCS([open])
310 AC_CHECK_FUNCS([read])
311 AC_CHECK_FUNCS([readlink])
312 AC_CHECK_FUNCS([realloc])
313 AC_CHECK_FUNCS([recv])
314 AC_CHECK_FUNCS([scandir])
315 AC_CHECK_FUNCS([select])
316 AC_CHECK_FUNCS([send])
317 AC_CHECK_FUNCS([setsockopt])
318 AC_CHECK_FUNCS([shutdown])
319 AC_CHECK_FUNCS([socket])
320 AC_CHECK_FUNCS([stat])
321 AC_CHECK_FUNCS([strcat])
322 AC_CHECK_FUNCS([strchr])
323 AC_CHECK_FUNCS([strcpy])
324 AC_CHECK_FUNCS([strdup])
325 AC_CHECK_FUNCS([strerror])
326 AC_CHECK_FUNCS([strlen])
327 AC_CHECK_FUNCS([strncmp])
328 AC_CHECK_FUNCS([strstr])
329 AC_CHECK_FUNCS([time])
330 AC_CHECK_FUNCS([write])
333 dnl Checks for libraries.
335 dnl Checking sizeof void *
336 AC_CHECK_SIZEOF(void *)
340 dnl define install prefix
341 if test "x$prefix" = "xNONE"; then
342 CACAO_PREFIX=$ac_default_prefix
346 AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix])
347 AC_SUBST(CACAO_PREFIX)
349 dnl define libdir prefix
350 if test "x$libdir" = "xNONE"; then
351 CACAO_LIBDIR=$ac_default_libdir
355 dnl expand CACAO_LIBDIR to something that is usable in C code
356 AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR})
357 AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix])
358 AC_SUBST(CACAO_LIBDIR)
366 AC_CHECK_ENABLE_INTRP
368 if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then
369 AC_ERROR(You have to enable at least the JIT or the interpreter.)
373 AC_CHECK_SOFT_FLOAT_CMP
374 AC_CHECK_SOFT_DOUBLE_CMP
377 AC_CHECK_ENABLE_DEBUG
381 dnl check for memcheck support
382 AC_MSG_CHECKING(whether debugging memory checks should be enabled)
383 AC_ARG_ENABLE([memcheck],
384 [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])],
385 [case "${enableval}" in
386 yes) ENABLE_MEMCHECK=yes;;
387 *) ENABLE_MEMCHECK=no;;
389 [ENABLE_MEMCHECK=no])
390 AC_MSG_RESULT(${ENABLE_MEMCHECK})
391 AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes")
393 if test x"${ENABLE_MEMCHECK}" = "xyes"; then
394 AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks])
398 dnl check for handles (indirection cells) support
399 AC_MSG_CHECKING(whether handles (indirection cells) should be enabled)
400 AC_ARG_ENABLE([handles],
401 [AS_HELP_STRING(--enable-handles,enable handles (indirection cells) [[default=no]])],
402 [case "${enableval}" in
403 yes) ENABLE_HANDLES=yes;;
404 *) ENABLE_HANDLES=no;;
407 AC_MSG_RESULT(${ENABLE_HANDLES})
408 AM_CONDITIONAL([ENABLE_HANDLES], test x"${ENABLE_HANDLES}" = "xyes")
410 if test x"${ENABLE_HANDLES}" = "xyes"; then
411 AC_DEFINE([ENABLE_HANDLES], 1, [enable handles (indirection cells)])
415 dnl check for vmlog support
416 AC_MSG_CHECKING(whether vmlog tracing should be enabled)
417 AC_ARG_ENABLE([vmlog],
418 [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])],
419 [case "${enableval}" in
420 yes) ENABLE_VMLOG=yes;;
424 AC_MSG_RESULT(${ENABLE_VMLOG})
425 AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes")
427 if test x"${ENABLE_VMLOG}" = "xyes"; then
428 AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code])
432 dnl check for disassembler support
433 AC_MSG_CHECKING(whether disassembler should be enabled)
434 AC_ARG_ENABLE([disassembler],
435 [AS_HELP_STRING(--enable-disassembler,enable disassembler [[default=no]])],
436 [case "${enableval}" in
437 yes) ENABLE_DISASSEMBLER=yes;;
438 *) ENABLE_DISASSEMBLER=no;;
440 [ENABLE_DISASSEMBLER=no])
441 AC_MSG_RESULT(${ENABLE_DISASSEMBLER})
442 AM_CONDITIONAL([ENABLE_DISASSEMBLER], test x"${ENABLE_DISASSEMBLER}" = "xyes")
444 if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then
445 AC_DEFINE([ENABLE_DISASSEMBLER], 1, [enable disassembler])
447 dnl check for binutils headers and libraries on some architectures for the
449 case "${ARCH_DIR}" in
450 arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k)
451 AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)])
452 AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)])
453 AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)])
454 AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)])
457 cygwin | darwin | netbsd | solaris)
458 AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))])
464 AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)])
469 AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))])
470 AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))])
471 AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))])
472 AC_DEFINE([WITH_BINUTILS_DISASSEMBLER], 1, [use binutils disassembler])
473 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [true])
476 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
480 AM_CONDITIONAL([WITH_BINUTILS_DISASSEMBLER], [false])
484 dnl check for statistics
485 AC_MSG_CHECKING(whether statistics generation should be enabled)
486 AC_ARG_ENABLE([statistics],
487 [AS_HELP_STRING(--enable-statistics,enable statistics generation [[default=no]])],
488 [case "${enableval}" in
489 yes) ENABLE_STATISTICS=yes;;
490 *) ENABLE_STATISTICS=no;;
492 [ENABLE_STATISTICS=no])
493 AC_MSG_RESULT(${ENABLE_STATISTICS})
494 AM_CONDITIONAL([ENABLE_STATISTICS], test x"${ENABLE_STATISTICS}" = "xyes")
496 if test x"${ENABLE_STATISTICS}" = "xyes"; then
497 AC_DEFINE([ENABLE_STATISTICS], 1, [enable statistics])
501 dnl check for verifier
502 AC_MSG_CHECKING(whether classfile verification should be enabled)
503 AC_ARG_ENABLE([verifier],
504 [AS_HELP_STRING(--disable-verifier,disable classfile verification [[default=enabled]])],
505 [case "${enableval}" in
506 no) ENABLE_VERIFIER=no;;
507 *) ENABLE_VERIFIER=yes;;
509 [ENABLE_VERIFIER=yes])
510 AC_MSG_RESULT(${ENABLE_VERIFIER})
511 AM_CONDITIONAL([ENABLE_VERIFIER], test x"${ENABLE_VERIFIER}" = "xyes")
513 if test x"${ENABLE_VERIFIER}" = "xyes"; then
514 AC_DEFINE([ENABLE_VERIFIER], 1, [enable classfile verification])
518 dnl check for compiler timing
519 AC_MSG_CHECKING(whether real-time timing should be enabled)
520 AC_ARG_ENABLE([rt-timing],
521 [AS_HELP_STRING(--enable-rt-timing,enable real-time timing [[default=no]])],
522 [case "${enableval}" in
523 yes) ENABLE_RT_TIMING=yes;;
524 *) ENABLE_RT_TIMING=no;;
526 [ENABLE_RT_TIMING=no])
527 AC_MSG_RESULT(${ENABLE_RT_TIMING})
528 AM_CONDITIONAL([ENABLE_RT_TIMING], test x"${ENABLE_RT_TIMING}" = "xyes")
530 if test x"${ENABLE_RT_TIMING}" = "xyes"; then
531 AC_DEFINE([ENABLE_RT_TIMING], 1, [enable real-time timing])
535 dnl check for cycle count statistics
536 AC_MSG_CHECKING(whether cycle count statistics should be enabled)
537 AC_ARG_ENABLE([cycles-stats],
538 [AS_HELP_STRING(--enable-cycles-stats,enable cycle count statistics [[default=no]])],
539 [case "${enableval}" in
540 yes) ENABLE_CYCLES_STATS=yes;;
541 *) ENABLE_CYCLES_STATS=no;;
543 [ENABLE_CYCLES_STATS=no])
544 AC_MSG_RESULT(${ENABLE_CYCLES_STATS})
545 AM_CONDITIONAL([ENABLE_CYCLES_STATS], test x"${ENABLE_CYCLES_STATS}" = "xyes")
547 if test x"${ENABLE_CYCLES_STATS}" = "xyes"; then
548 AC_DEFINE([ENABLE_CYCLES_STATS], 1, [enable cycle count statistics])
553 AC_MSG_CHECKING(whether to compile JVMTI support)
554 AC_ARG_ENABLE([jvmti],
555 [AS_HELP_STRING(--enable-jvmti,enable JVMTI [[default=no]])],
556 [case "${enableval}" in
557 yes) ENABLE_JVMTI=yes;;
561 AC_MSG_RESULT(${ENABLE_JVMTI})
562 AM_CONDITIONAL([ENABLE_JVMTI], test x"${ENABLE_JVMTI}" = "xyes")
564 if test x"${ENABLE_JVMTI}" = "xyes"; then
565 AC_DEFINE([ENABLE_JVMTI], 1, [use JVMTI])
569 AC_CHECK_ENABLE_THREADS
572 dnl check if if-conversion should be supported
573 AC_MSG_CHECKING(whether if-conversion should be supported)
574 AC_ARG_ENABLE([ifconv],
575 [AS_HELP_STRING(--disable-ifconv,disable if-conversion [[default=enabled]])],
576 [case "${enableval}" in
577 no) ENABLE_IFCONV=no;;
578 *) ENABLE_IFCONV=yes;;
581 AC_MSG_RESULT(${ENABLE_IFCONV})
582 AM_CONDITIONAL([ENABLE_IFCONV], test x"${ENABLE_IFCONV}" = "xyes")
584 if test x"${ENABLE_IFCONV}" = "xyes"; then
585 AC_DEFINE([ENABLE_IFCONV], 1, [enable if-conversion])
589 dnl check for inlining
590 AC_MSG_CHECKING(whether method inlining should be supported)
591 AC_ARG_ENABLE([inlining],
592 [AS_HELP_STRING(--enable-inlining,enable method inlining [[default=no]])],
593 [case "${enableval}" in
594 yes) ENABLE_INLINING=yes;;
595 *) ENABLE_INLINING=no;;
597 [ENABLE_INLINING=no])
598 AC_MSG_RESULT(${ENABLE_INLINING})
599 AM_CONDITIONAL([ENABLE_INLINING], test x"${ENABLE_INLINING}" = "xyes")
601 if test x"${ENABLE_INLINING}" = "xyes"; then
602 AC_DEFINE([ENABLE_INLINING], 1, [use method inlining])
606 dnl check for inlining debug options
607 AC_MSG_CHECKING(whether method inlining debug options should be enabled)
608 AC_ARG_ENABLE([inlining-debug],
609 [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])],
610 [case "${enableval}" in
611 yes) ENABLE_INLINING_DEBUG=yes;;
612 *) ENABLE_INLINING_DEBUG=no;;
614 [ENABLE_INLINING_DEBUG=no])
615 AC_MSG_RESULT(${ENABLE_INLINING_DEBUG})
616 AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes")
618 if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then
619 AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options])
623 dnl check for replacement
624 AC_MSG_CHECKING(whether on-stack replacement should be supported)
625 AC_ARG_ENABLE([replacement],
626 [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])],
627 [case "${enableval}" in
628 yes) ENABLE_REPLACEMENT=yes;;
629 *) ENABLE_REPLACEMENT=no;;
631 [ENABLE_REPLACEMENT=no])
632 AC_MSG_RESULT(${ENABLE_REPLACEMENT})
633 AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes")
635 if test x"${ENABLE_REPLACEMENT}" = "xyes"; then
636 AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement])
640 dnl check for loop optimization
641 AC_MSG_CHECKING(whether loop optimization should be supported)
642 AC_ARG_ENABLE([loop],
643 [AS_HELP_STRING(--enable-loop,enable loop optimization [[default=no]])],
644 [case "${enableval}" in
645 yes) ENABLE_LOOP=yes;;
649 AC_MSG_RESULT(${ENABLE_LOOP})
650 AM_CONDITIONAL([ENABLE_LOOP], test x"${ENABLE_LOOP}" = "xyes")
652 if test x"${ENABLE_LOOP}" = "xyes"; then
653 AC_DEFINE([ENABLE_LOOP], 1, [use loop optimization])
657 dnl check if linear scan register allocator(lsra) with SSA should be used
658 AC_MSG_CHECKING(whether lsra with ssa should be supported)
660 [AS_HELP_STRING(--disable-ssa,disable ssa [[default=disabled]])],
661 [case "${enableval}" in
666 AC_MSG_RESULT(${ENABLE_SSA})
667 AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes")
669 if test x"${ENABLE_SSA}" = "xyes"; then
670 AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa])
675 dnl check if linear scan register allocator(lsra) should be used
676 AC_MSG_CHECKING(whether lsra should be supported)
677 AC_ARG_ENABLE([lsra],
678 [AS_HELP_STRING(--enable-lsra,enable linear scan register allocator [[default=no]])],
679 [case "${enableval}" in
680 yes) ENABLE_LSRA=yes;;
685 if test x"${ENABLE_LSRA}" = "xyes"; then
686 if test x"${ENABLE_SSA}" = "xyes"; then
690 AC_MSG_RESULT(${ENABLE_LSRA})
691 AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes")
693 if test x"${ENABLE_LSRA}" = "xyes"; then
694 AC_DEFINE([ENABLE_LSRA], 1, [enable lsra])
698 dnl check if profiling should be supported
699 AC_MSG_CHECKING(whether profiling should be supported)
700 AC_ARG_ENABLE([profiling],
701 [AS_HELP_STRING(--enable-profiling,enable profiling [[default=no]])],
702 [case "${enableval}" in
703 yes) ENABLE_PROFILING=yes;;
704 *) ENABLE_PROFILING=no;;
706 [ENABLE_PROFILING=no])
707 AC_MSG_RESULT(${ENABLE_PROFILING})
708 AM_CONDITIONAL([ENABLE_PROFILING], test x"${ENABLE_PROFILING}" = "xyes")
710 if test x"${ENABLE_PROFILING}" = "xyes"; then
711 AC_DEFINE([ENABLE_PROFILING], 1, [enable profiling])
715 dnl check for instruction scheduler
716 AC_ARG_ENABLE([scheduler], [AS_HELP_STRING(--enable-scheduler,enable instruction scheduler [[default=no]])])
718 AC_MSG_CHECKING(whether instruction scheduler should be supported)
719 if test x"${USE_SCHEDULER}" = "x1" -o x"$enable_scheduler" = "xyes"; then
720 case "${ARCH_DIR}" in
724 AC_MSG_ERROR(instruction scheduler is not available for ${ARCH_DIR} code generator)
729 AC_DEFINE([USE_SCHEDULER], 1, [use scheduler])
730 AM_CONDITIONAL([USE_SCHEDULER], [true])
733 AM_CONDITIONAL([USE_SCHEDULER], [false])
739 dnl check for stuff to be built
741 AC_CHECK_ENABLE_LIBJVM
743 dnl ATTENTION: These check must be after setting
744 dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM),
745 dnl because libtool uses them to build the correct libraries.
749 AC_CHECK_ENABLE_STATICVM
750 AC_CHECK_ENABLE_ANNOTATIONS
751 AC_CHECK_ENABLE_ASSERTION
754 dnl where is CACAO's vm.zip
755 AC_MSG_CHECKING(where CACAO's vm.zip is installed)
756 AC_ARG_WITH([vm-zip],
757 [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]])],
758 [CACAO_VM_ZIP=${withval}],
759 [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip])
760 AC_MSG_RESULT(${CACAO_VM_ZIP})
761 AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip])
762 AC_SUBST(CACAO_VM_ZIP)
766 AC_CHECK_WITH_CLASSPATH
768 dnl Now we check for jre-layout so we can skip some checks that are
770 AC_CHECK_WITH_JRE_LAYOUT
772 AC_CHECK_WITH_CLASSPATH_PREFIX
773 AC_CHECK_WITH_CLASSPATH_CLASSES
775 if test x"${WITH_JRE_LAYOUT}" = "xno"; then
776 AC_CHECK_WITH_CLASSPATH_LIBDIR
779 dnl The check for jni_md.h must be before jni.h.
780 AC_CHECK_WITH_JNI_MD_H
784 dnl check for some programs we need
786 case "${WITH_CLASSPATH}" in
794 AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH})
802 dnl If debug build and regex.h available, enable debug filter
803 if test x"${NDEBUG}" = "xno"; then
804 AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
806 dnl If vmlog enambled and regex.h available, enable vmlogfilter
807 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
810 AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
819 AZ_PYTHON_VERSION_ENSURE( [2.4] )
824 dnl define some stuff required for --fullversion
825 AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments])
826 AC_DEFINE_UNQUOTED(VERSION_CC, "$CC", [CC used])
827 AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS $CPPFLAGS", [CFLAGS used])
830 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
832 AM_CFLAGS=$ARCH_CFLAGS
833 AM_CPPFLAGS="$CPPFLAGS"
835 AC_SUBST(AM_CPPFLAGS)
838 AC_CONFIG_FILES([Makefile]
840 [contrib/setenvinstalled]
841 [contrib/setenvsource]
842 [contrib/vmlog/Makefile]
843 [contrib/vmlog/t/Makefile]
845 [doc/handbook/Makefile]
849 [src/cacaoh/Makefile]
850 [src/classes/Makefile]
851 [src/fdlibm/Makefile]
853 [src/mm/cacao-gc/Makefile]
854 [src/native/Makefile]
855 [src/native/include/Makefile]
856 [src/native/jvmti/Makefile]
857 [src/native/vm/Makefile]
858 [src/native/vm/cldc1.1/Makefile]
859 [src/native/vm/gnu/Makefile]
860 [src/native/vm/sun/Makefile]
861 [src/scripts/Makefile]
863 [src/threads/Makefile]
864 [src/threads/none/Makefile]
865 [src/threads/posix/Makefile]
866 [src/toolbox/Makefile]
868 [src/vm/jit/Makefile]
869 [src/vm/jit/allocator/Makefile]
870 [src/vm/jit/alpha/Makefile]
871 [src/vm/jit/alpha/freebsd/Makefile]
872 [src/vm/jit/alpha/linux/Makefile]
873 [src/vm/jit/arm/Makefile]
874 [src/vm/jit/arm/linux/Makefile]
875 [src/vm/jit/i386/Makefile]
876 [src/vm/jit/i386/cygwin/Makefile]
877 [src/vm/jit/i386/darwin/Makefile]
878 [src/vm/jit/i386/freebsd/Makefile]
879 [src/vm/jit/i386/linux/Makefile]
880 [src/vm/jit/intrp/Makefile]
881 [src/vm/jit/inline/Makefile]
882 [src/vm/jit/ir/Makefile]
883 [src/vm/jit/loop/Makefile]
884 [src/vm/jit/m68k/Makefile]
885 [src/vm/jit/m68k/linux/Makefile]
886 [src/vm/jit/mips/Makefile]
887 [src/vm/jit/mips/irix/Makefile]
888 [src/vm/jit/mips/linux/Makefile]
889 [src/vm/jit/mips/uclinux/Makefile]
890 [src/vm/jit/optimizing/Makefile]
891 [src/vm/jit/parisc/Makefile]
892 [src/vm/jit/parisc/linux/Makefile]
893 [src/vm/jit/powerpc/Makefile]
894 [src/vm/jit/powerpc/darwin/Makefile]
895 [src/vm/jit/powerpc/linux/Makefile]
896 [src/vm/jit/powerpc/netbsd/Makefile]
897 [src/vm/jit/powerpc64/Makefile]
898 [src/vm/jit/powerpc64/linux/Makefile]
899 [src/vm/jit/s390/Makefile]
900 [src/vm/jit/schedule/Makefile]
901 [src/vm/jit/sparc64/Makefile]
902 [src/vm/jit/sparc64/linux/Makefile]
903 [src/vm/jit/sparc64/solaris/Makefile]
904 [src/vm/jit/verify/Makefile]
905 [src/vm/jit/x86_64/Makefile]
906 [src/vm/jit/x86_64/freebsd/Makefile]
907 [src/vm/jit/x86_64/linux/Makefile]
908 [src/vmcore/Makefile]
910 [tests/regression/Makefile]
911 [tests/regression/bugzilla/Makefile]
912 [tests/regression/codepatching/Makefile]
913 [tests/regression/assertion/Makefile]
914 [tests/regression/jasmin/Makefile]
915 [tests/regression/native/Makefile]
916 [tests/regression/resolving/Makefile]
917 [tests/regression/resolving/classes1/Makefile]
918 [tests/regression/resolving/classes2/Makefile]
919 [tests/regression/resolving/classes3/Makefile]
923 dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS
926 AC_CONFIG_SUBDIRS(src/mm/boehm-gc)
934 ## indent-tabs-mode: t
937 ## compile-command: "automake --add-missing"