X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=62b76eb92258b3241ffa17c9e805271b2cfbeb15;hb=bfb7d15b502b8170ec8a9b348c546418c0e44ace;hp=948b3390126a4c8b59e6dc5f3afe609ae8eb7e81;hpb=e7b150570f24b9418ddf17976a388e189643536c;p=cacao.git diff --git a/configure.ac b/configure.ac index 948b33901..62b76eb92 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,33 @@ +dnl configure.ac +dnl +dnl Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel, +dnl C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring, +dnl E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, +dnl J. Wenninger, Institut f. Computersprachen - TU Wien +dnl +dnl This file is part of CACAO. +dnl +dnl This program is free software; you can redistribute it and/or +dnl modify it under the terms of the GNU General Public License as +dnl published by the Free Software Foundation; either version 2, or (at +dnl your option) any later version. +dnl +dnl This program is distributed in the hope that it will be useful, but +dnl WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +dnl General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with this program; if not, write to the Free Software +dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +dnl 02110-1301, USA. +dnl +dnl $Id: configure.ac 7902 2007-05-11 22:33:15Z twisti $ + dnl Process this file with autoconf to produce a configure script. -AC_INIT(cacao, 0.96+svn, cacao@cacaojvm.org) + +AC_INIT(cacao, 0.98rc, cacao@cacaojvm.org) AC_CONFIG_SRCDIR(src/cacao/cacao.c) AC_CANONICAL_HOST AC_PREREQ(2.59) @@ -26,17 +53,27 @@ alpha | alphaev56 | alphapca56 ) ARCH_CFLAGS="-mieee -D__ALPHA__" ;; -arm | armv4tl | armv5b | armv5l ) +arm | armv4 | armv4tl | armv5b | armv5l ) ARCH_DIR="arm" ARCH_CFLAGS="-D__ARM__" ;; +hppa2.0 ) + ARCH_DIR="parisc" + ARCH_CFLAGS="-D__PARISC__" + ;; + i386 | i486 | i586 | i686 ) ARCH_DIR="i386" ARCH_CFLAGS="-D__I386__" ;; -mips ) +m68k ) + ARCH_DIR="m68k" + ARCH_CFLAGS="-D__M68K__" + ;; + +mips | mipsel ) ARCH_DIR="mips" ARCH_CFLAGS="-D__MIPS__" ;; @@ -51,7 +88,12 @@ powerpc64 ) ARCH_CFLAGS="-D__POWERPC64__" ;; -sparc64 ) +s390 ) + ARCH_DIR="s390" + ARCH_CFLAGS="-D__S390__" + ;; + +sparc | sparc64 ) ARCH_DIR="sparc64" ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__" ;; @@ -75,6 +117,12 @@ esac dnl host type case "$host_os" in +*cygwin* ) + OS_DIR="cygwin" + INTRP_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -Wall -Wno-long-long" + ARCH_CFLAGS="$ARCH_CFLAGS -D__WINDOWS__ -D__CYGWIN__ -ansi -pedantic -Wall -Wno-long-long" + ;; + *darwin* ) OS_DIR="darwin" INTRP_CFLAGS="$ARCH_CFLAGS -D__DARWIN__ -Wall -Wno-long-long" @@ -93,6 +141,19 @@ case "$host_os" in ARCH_CFLAGS="$ARCH_CFLAGS -D__IRIX__" ;; +*kfreebsd*-gnu) + OS_DIR="freebsd" + 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" + 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" + ;; + +dnl must be before *linux* +*uclinux | *elf ) + OS_DIR="uclinux" + 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" + 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" + ;; + *linux* | *Linux* ) OS_DIR="linux" 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" @@ -105,15 +166,25 @@ case "$host_os" in 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" ;; +*solaris* ) + OS_DIR="solaris" + dnl on solaris the architecture defines 'sparc','sun','unix' are not set when cpp is called with -ansi + dnl therefore we add them here + 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" + 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" + ;; + * ) ;; esac -dnl temporary set the CFLAGS for configure tests +dnl temporary set the CFLAGS for configure tests (e.g. inline keyword) dnl we set it properly at the end of this file CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS" +dnl set interpreter flags +AC_SUBST(INTRP_CFLAGS) dnl define some stuff required for --fullversion AC_DEFINE_UNQUOTED(VERSION_CONFIGURE_ARGS, "$ac_configure_args", [configure arguments]) @@ -125,7 +196,6 @@ dnl define and substitute some architecture specific variables AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory]) AC_SUBST(ARCH_DIR) AC_SUBST(OS_DIR) -AC_SUBST(INTRP_CFLAGS) AC_SUBST(USE_SCHEDULER) @@ -142,10 +212,16 @@ AM_PROG_MKDIR_P dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC + +dnl keep them alpha-sorted! AC_CHECK_HEADERS([fcntl.h]) -AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_HEADERS([string.h]) +AC_CHECK_HEADERS([time.h]) AC_CHECK_HEADERS([unistd.h]) AC_CHECK_HEADERS([sys/ioctl.h]) +AC_CHECK_HEADERS([sys/mman.h]) +AC_CHECK_HEADERS([sys/resource.h]) +AC_CHECK_HEADERS([sys/time.h]) dnl this is for fdlibm AC_CHECK_HEADERS([stdint.h]) @@ -170,11 +246,24 @@ dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_TYPE_SIGNAL AC_FUNC_MEMCMP -AC_CHECK_FUNCS([calloc mprotect getpagesize free]) -AC_CHECK_FUNCS([getcwd gettimeofday]) -AC_CHECK_FUNCS([scandir]) -AC_CHECK_FUNCS([mmap]) +AC_FUNC_MMAP + +dnl keep them alpha-sorted! +AC_CHECK_FUNCS([calloc]) +AC_CHECK_FUNCS([getpagesize]) +AC_CHECK_FUNCS([free]) +AC_CHECK_FUNCS([getcwd]) +AC_CHECK_FUNCS([gettimeofday]) +AC_CHECK_FUNCS([getrusage]) AC_CHECK_FUNCS([isnan]) +AC_CHECK_FUNCS([localtime]) +AC_CHECK_FUNCS([localtime_r]) +AC_CHECK_FUNCS([mmap]) +AC_CHECK_FUNCS([mprotect]) +AC_CHECK_FUNCS([scandir]) +AC_CHECK_FUNCS([strdup]) +AC_CHECK_FUNCS([time]) + dnl Checks for libraries. @@ -192,42 +281,30 @@ fi AC_DEFINE_UNQUOTED([CACAO_PREFIX], "${CACAO_PREFIX}", [installation prefix]) AC_SUBST(CACAO_PREFIX) +dnl define libdir prefix +if test "x$libdir" = "xNONE"; then + CACAO_LIBDIR=$ac_default_libdir +else + CACAO_LIBDIR=$libdir +fi +dnl expand CACAO_LIBDIR to something that is usable in C code +AS_AC_EXPAND([CACAO_LIBDIR], ${CACAO_LIBDIR}) +AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation prefix]) +AC_SUBST(CACAO_LIBDIR) -dnl Features - -dnl check arguments -dnl check for JIT compiler -AC_MSG_CHECKING(whether JIT compiler should be compiled) -AC_ARG_ENABLE([jit], - [AS_HELP_STRING(--disable-jit,disable JIT compiler [[default=yes]])], - [case "${enableval}" in - no) ENABLE_JIT=no;; - *) ENABLE_JIT=yes;; - esac], - [ENABLE_JIT=yes]) -AC_MSG_RESULT(${ENABLE_JIT}) -AM_CONDITIONAL([ENABLE_JIT], test x"${ENABLE_JIT}" = "xyes") +dnl Features -if test x"${ENABLE_JIT}" = "xyes"; then - AC_DEFINE([ENABLE_JIT], 1, [enable JIT compiler]) -fi +AC_CHECK_ENABLE_JAVA +AC_CHECK_ENABLE_JIT +dnl with-options +AC_CHECK_WITH_CACAOH -dnl check if softfloat should be used -AC_MSG_CHECKING(whether softfloat should be used) -AC_ARG_ENABLE([softfloat], - [AS_HELP_STRING(--enable-softfloat,use softfloat [[default=no]])], - [case "${enableval}" in - yes) ENABLE_SOFTFLOAT=yes;; - *) ENABLE_SOFTFLOAT=no;; - esac], - [ENABLE_SOFTFLOAT=no]) -AC_MSG_RESULT(${ENABLE_SOFTFLOAT}) - -if test x"${ENABLE_SOFTFLOAT}" = "xyes"; then - AC_DEFINE([ENABLE_SOFTFLOAT], 1, [enable softfloat]) -fi +dnl check for stuff that should be done in software +AC_CHECK_SOFTFLOAT +AC_CHECK_SOFT_FLOAT_CMP +AC_CHECK_SOFT_DOUBLE_CMP dnl check for interpreter @@ -280,18 +357,36 @@ fi dnl check for garbage collector usage -AC_MSG_CHECKING(whether GC should be disabled) -AC_ARG_ENABLE([gc], - [AS_HELP_STRING(--disable-gc,disable garbage collector (for debugging only!) [[default=yes]])], - [case "${enableval}" in - no) DISABLE_GC=yes - AC_DEFINE([DISABLE_GC], 1, [disable garbage collector]) - ;; - *) DISABLE_GC=no;; - esac], - [DISABLE_GC=no]) -AC_MSG_RESULT(${DISABLE_GC}) -AM_CONDITIONAL([DISABLE_GC], test x"${DISABLE_GC}" = "xyes") +AC_ARG_ENABLE([gc], [AS_HELP_STRING(--enable-gc,enable garbage collector support (none,boehm,cacao) [[default=boehm]])]) +AC_MSG_CHECKING(whether GC should be enabled) +enable_gc=${enable_gc:-boehm} +case "$enable_gc" in +no | none) + AC_DEFINE([DISABLE_GC], 1, [disable garbage collector]) + ENABLE_GC=none + AC_MSG_RESULT(no) + ;; + +boehm) + AC_DEFINE([ENABLE_GC_BOEHM], 1, [enable conservative boehm-gc]) + ENABLE_GC=boehm + AC_MSG_RESULT(yes, boehm-gc) + ;; + +cacao) + AC_DEFINE([ENABLE_GC_CACAO], 1, [enable exact cacao-gc]) + ENABLE_GC=cacao + AC_MSG_RESULT(yes, cacao-gc) + ;; + +*) + AC_MSG_ERROR($enable_gc is an unknown garbage collector package) + ;; +esac +AM_CONDITIONAL([DISABLE_GC], test x"${ENABLE_GC}" = "xnone") +AM_CONDITIONAL([ENABLE_GC_BOEHM], test x"${ENABLE_GC}" = "xboehm") +AM_CONDITIONAL([ENABLE_GC_CACAO], test x"${ENABLE_GC}" = "xcacao") + dnl check for dump memory usage @@ -329,6 +424,40 @@ fi AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes") +dnl check for memcheck support +AC_MSG_CHECKING(whether debugging memory checks should be enabled) +AC_ARG_ENABLE([memcheck], + [AS_HELP_STRING(--enable-memcheck,enable debugging memory checks [[default=no]])], + [case "${enableval}" in + yes) ENABLE_MEMCHECK=yes;; + *) ENABLE_MEMCHECK=no;; + esac], + [ENABLE_MEMCHECK=no]) +AC_MSG_RESULT(${ENABLE_MEMCHECK}) +AM_CONDITIONAL([ENABLE_MEMCHECK], test x"${ENABLE_MEMCHECK}" = "xyes") + +if test x"${ENABLE_MEMCHECK}" = "xyes"; then + AC_DEFINE([ENABLE_MEMCHECK], 1, [perform debugging memory checks]) +fi + + +dnl check for vmlog support +AC_MSG_CHECKING(whether vmlog tracing should be enabled) +AC_ARG_ENABLE([vmlog], + [AS_HELP_STRING(--enable-vmlog,enable vmlog tracing [[default=no]])], + [case "${enableval}" in + yes) ENABLE_VMLOG=yes;; + *) ENABLE_VMLOG=no;; + esac], + [ENABLE_VMLOG=no]) +AC_MSG_RESULT(${ENABLE_VMLOG}) +AM_CONDITIONAL([ENABLE_VMLOG], test x"${ENABLE_VMLOG}" = "xyes") + +if test x"${ENABLE_VMLOG}" = "xyes"; then + AC_DEFINE([ENABLE_VMLOG], 1, [enable vmlog tracing code]) +fi + + dnl check for disassembler support AC_MSG_CHECKING(whether disassembler should be enabled) AC_ARG_ENABLE([disassembler], @@ -347,14 +476,14 @@ if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then dnl check for binutils headers and libraries on some architectures for the dnl disassembler case "${ARCH_DIR}" in - arm | i386 | powerpc | x86_64 | sparc64 | powerpc64) + arm | i386 | powerpc | x86_64 | sparc64 | powerpc64 | s390 | m68k) AC_CHECK_HEADER([ansidecl.h],, [AC_MSG_ERROR(cannot find ansidecl.h)]) AC_CHECK_HEADER([symcat.h],, [AC_MSG_ERROR(cannot find symcat.h)]) AC_CHECK_HEADER([bfd.h],, [AC_MSG_ERROR(cannot find bfd.h)]) AC_CHECK_HEADER([dis-asm.h],, [AC_MSG_ERROR(cannot find dis-asm.h)]) case "${OS_DIR}" in - cygwin | darwin | netbsd ) + cygwin | darwin | netbsd | solaris) AC_CHECK_LIB(intl, dcgettext,, [AC_MSG_ERROR(cannot find libintl (from binutils))]) ;; esac @@ -459,61 +588,7 @@ if test x"${ENABLE_JVMTI}" = "xyes"; then fi -dnl threads -AC_ARG_ENABLE([threads], [AS_HELP_STRING(--enable-threads,enable threads support (none,green,native) [[default=native]])]) -AC_ARG_ENABLE([__thread], [AS_HELP_STRING(--enable-__thread,use TLS features)], [use__thread=$enableval], [use__thread=no]) - -AC_MSG_CHECKING(whether to include threads support) -enable_threads=${enable_threads:-native} -case "$enable_threads" in -no | none | single) - AC_MSG_RESULT(no) - dnl no threads for boehm - ac_configure_args="$ac_configure_args --disable-boehm-threads" - AM_CONDITIONAL([ENABLE_THREADS], [false]) - ;; - -native | posix | pthreads) - AC_DEFINE([ENABLE_THREADS], 1, [enable threads]) - - AM_CONDITIONAL([ENABLE_THREADS], [true]) - - AC_MSG_RESULT(yes, native) - AC_CHECK_LIB(pthread, main) - - ARCH_CFLAGS="$ARCH_CFLAGS -D_REENTRANT" - - dnl we changed ARCH_CFLAGS, set CFLAGS again - CFLAGS="$ARCH_CFLAGS $OPT_CFLAGS" - - dnl tell boehm to support threads as well - ac_configure_args="$ac_configure_args --enable-boehm-threads=posix" - ;; - -*) - AC_MSG_ERROR($enable_threads is an unknown thread package) - ;; -esac - - -dnl Check whether the compiler supports the __thread keyword. -if test "x$use__thread" != xno; then - AC_CACHE_CHECK([for __thread], ac_cv_gcc___thread, - [cat > conftest.c <<\EOF -__thread int a = 42; -EOF - if AC_TRY_COMMAND([${CC-cc} $ARCH_CFLAGS $OPT_CFLAGS -c conftest.c >&AS_MESSAGE_LOG_FD]); then - ac_cv_gcc___thread=yes - else - ac_cv_gcc___thread=no - fi - rm -f conftest*]) - if test "$ac_cv_gcc___thread" = yes; then - AC_DEFINE([HAVE___THREAD], 1, [have __thread]) - fi -else - ac_cv_gcc___thread=no -fi +AC_CHECK_ENABLE_THREADS dnl check if if-conversion should be supported @@ -550,6 +625,40 @@ if test x"${ENABLE_INLINING}" = "xyes"; then fi +dnl check for inlining debug options +AC_MSG_CHECKING(whether method inlining debug options should be enabled) +AC_ARG_ENABLE([inlining-debug], + [AS_HELP_STRING(--enable-inlining-debug,enable method inlining debug options [[default=no]])], + [case "${enableval}" in + yes) ENABLE_INLINING_DEBUG=yes;; + *) ENABLE_INLINING_DEBUG=no;; + esac], + [ENABLE_INLINING_DEBUG=no]) +AC_MSG_RESULT(${ENABLE_INLINING_DEBUG}) +AM_CONDITIONAL([ENABLE_INLINING_DEBUG], test x"${ENABLE_INLINING_DEBUG}" = "xyes") + +if test x"${ENABLE_INLINING_DEBUG}" = "xyes"; then + AC_DEFINE([ENABLE_INLINING_DEBUG], 1, [enable method inlining debug options]) +fi + + +dnl check for replacement +AC_MSG_CHECKING(whether on-stack replacement should be supported) +AC_ARG_ENABLE([replacement], + [AS_HELP_STRING(--enable-replacement,enable on-stack replacement [[default=no]])], + [case "${enableval}" in + yes) ENABLE_REPLACEMENT=yes;; + *) ENABLE_REPLACEMENT=no;; + esac], + [ENABLE_REPLACEMENT=no]) +AC_MSG_RESULT(${ENABLE_REPLACEMENT}) +AM_CONDITIONAL([ENABLE_REPLACEMENT], test x"${ENABLE_REPLACEMENT}" = "xyes") + +if test x"${ENABLE_REPLACEMENT}" = "xyes"; then + AC_DEFINE([ENABLE_REPLACEMENT], 1, [use on-stack replacement]) +fi + + dnl check for loop optimization AC_MSG_CHECKING(whether loop optimization should be supported) AC_ARG_ENABLE([loop], @@ -567,6 +676,24 @@ if test x"${ENABLE_LOOP}" = "xyes"; then fi +dnl check if linear scan register allocator(lsra) with SSA should be used +AC_MSG_CHECKING(whether lsra with ssa should be supported) +AC_ARG_ENABLE([ssa], + [AS_HELP_STRING(--disable-ssa,disable ssa [[default=no]])], + [case "${enableval}" in + no) ENABLE_SSA=no;; + *) ENABLE_SSA=yes;; + esac], + [ENABLE_SSA=no]) +AC_MSG_RESULT(${ENABLE_SSA}) +AM_CONDITIONAL([ENABLE_SSA], test x"${ENABLE_SSA}" = "xyes") + +if test x"${ENABLE_SSA}" = "xyes"; then + AC_DEFINE([ENABLE_SSA], 1, [enable lsra with ssa]) + ENABLE_LSRA="no" +fi + + dnl check if linear scan register allocator(lsra) should be used AC_MSG_CHECKING(whether lsra should be supported) AC_ARG_ENABLE([lsra], @@ -576,9 +703,15 @@ AC_ARG_ENABLE([lsra], *) ENABLE_LSRA=no;; esac], [ENABLE_LSRA=no]) + +if test x"${ENABLE_LSRA}" = "xyes"; then + if test x"${ENABLE_SSA}" = "xyes"; then + ENABLE_LSRA="no" + fi +fi AC_MSG_RESULT(${ENABLE_LSRA}) AM_CONDITIONAL([ENABLE_LSRA], test x"${ENABLE_LSRA}" = "xyes") - + if test x"${ENABLE_LSRA}" = "xyes"; then AC_DEFINE([ENABLE_LSRA], 1, [enable lsra]) fi @@ -643,6 +776,10 @@ fi AM_CONDITIONAL([ENABLE_ZLIB], test x"${ENABLE_ZLIB}" = "xyes") +dnl check for stuff to be built +AC_CHECK_ENABLE_JNI + + dnl check if a libjvm.so should be built AC_MSG_CHECKING(whether to build a libjvm.so) AC_ARG_ENABLE([libjvm], @@ -691,7 +828,7 @@ AC_SUBST(ENABLE_STATICVM) dnl where is CACAO's vm.zip AC_MSG_CHECKING(where CACAO's vm.zip is installed) AC_ARG_WITH([vm-zip], - [AS_HELP_STRING(--with-vm-zip,path to CACAO's vm.zip (includes the name of the file and may be flat) [[default=/usr/local/cacao/share/cacao/vm.zip]])], + [AS_HELP_STRING(--with-vm-zip=,path to CACAO's vm.zip (includes the name of the file and may be flat) [[default=/usr/local/cacao/share/cacao/vm.zip]])], [CACAO_VM_ZIP=${withval}], [CACAO_VM_ZIP=${CACAO_PREFIX}/share/cacao/vm.zip]) AC_MSG_RESULT(${CACAO_VM_ZIP}) @@ -699,53 +836,25 @@ AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip]) AC_SUBST(CACAO_VM_ZIP) -dnl is GNU classpath installed somewhere different -AC_MSG_CHECKING(where GNU Classpath is installed) -AC_ARG_WITH([classpath-prefix], - [AS_HELP_STRING(--with-classpath-prefix=,installation directory of GNU Classpath [[default=/usr/local/classpath]])], - [CLASSPATH_PREFIX=${withval}], - [CLASSPATH_PREFIX=/usr/local/classpath]) -AC_MSG_RESULT(${CLASSPATH_PREFIX}) -AC_DEFINE_UNQUOTED([CLASSPATH_PREFIX], "${CLASSPATH_PREFIX}", [GNU Classpath installation directory]) -AC_SUBST(CLASSPATH_PREFIX) - +AC_CHECK_WITH_CLASSPATH +AC_CHECK_WITH_CLASSPATH_PREFIX +AC_CHECK_WITH_CLASSPATH_CLASSES +AC_CHECK_WITH_CLASSPATH_LIBDIR +AC_CHECK_WITH_CLASSPATH_INCLUDEDIR -dnl where is GNU Classpath's glibj.zip -AC_MSG_CHECKING(where GNU Classpath's glibj.zip is installed) -AC_ARG_WITH([classpath-glibj-zip], - [AS_HELP_STRING(--with-classpath-glibj-zip,path to GNU Classpath's glibj.zip (includes the name of the file and may be flat) [[default=/usr/local/classpath/share/classpath/glibj.zip]])], - [CLASSPATH_GLIBJ_ZIP=${withval}], - [CLASSPATH_GLIBJ_ZIP=${CLASSPATH_PREFIX}/share/classpath/glibj.zip]) -AC_MSG_RESULT(${CLASSPATH_GLIBJ_ZIP}) -AC_DEFINE_UNQUOTED([CLASSPATH_GLIBJ_ZIP], "${CLASSPATH_GLIBJ_ZIP}", [GNU Classpath's glibj.zip]) -AC_SUBST(CLASSPATH_GLIBJ_ZIP) - -dnl where are the GNU Classpath libraries installed -AC_MSG_CHECKING(where GNU Classpath libraries are installed) -AC_ARG_WITH([classpath-libdir], - [AS_HELP_STRING(--with-classpath-libdir=,installation directory of GNU Classpath libraries [[default=/usr/local/classpath/lib]])], - [CLASSPATH_LIBDIR=${withval}], - [CLASSPATH_LIBDIR=${CLASSPATH_PREFIX}/lib]) -AC_MSG_RESULT(${CLASSPATH_LIBDIR}) - -dnl expand CLASSPATH_LIBDIR to something that is usable in C code -AS_AC_EXPAND([CLASSPATH_LIBDIR], ${CLASSPATH_LIBDIR}) -AC_DEFINE_UNQUOTED([CLASSPATH_LIBDIR], "${CLASSPATH_LIBDIR}", [GNU Classpath libraries installation directory]) -AC_SUBST(CLASSPATH_LIBDIR) - - -dnl where are the GNU Classpath headers installed -AC_MSG_CHECKING(where GNU Classpath headers are installed) -AC_ARG_WITH([classpath-includedir], - [AS_HELP_STRING(--with-classpath-includedir=,installation directory of GNU Classpath headers [[default=/usr/local/classpath/include]])], - [CLASSPATH_INCLUDEDIR=${withval}], - [CLASSPATH_INCLUDEDIR=${CLASSPATH_PREFIX}/include]) -AC_MSG_RESULT(${CLASSPATH_INCLUDEDIR}) - -AC_CHECK_HEADER([${CLASSPATH_INCLUDEDIR}/jni.h], - [AC_DEFINE_UNQUOTED([CLASSPATH_JNI_H], "${CLASSPATH_INCLUDEDIR}/jni.h", [GNU Classpath jni.h header])], - [AC_MSG_ERROR(cannot find jni.h)]) +dnl if we compile for a JRE-style directory layout +AC_MSG_CHECKING(if we compile for a JRE-style directory layout) +AC_ARG_WITH([jre-layout], + [AS_HELP_STRING(--with-jre-layout,compile for JRE-style directory layout [[default=no]])], + [case "${enableval}" in + yes) WITH_JRE_LAYOUT=yes + AC_DEFINE([WITH_JRE_LAYOUT], 1, [with JRE layout]) + ;; + *) WITH_JRE_LAYOUT=no;; + esac], + [WITH_JRE_LAYOUT=no]) +AC_MSG_RESULT(${WITH_JRE_LAYOUT}) dnl check if GNU Classpath should be linked statically into CACAO @@ -765,6 +874,11 @@ if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then dnl check for some classpath related stuff when we link statically AM_ICONV_LINK else + dnl we need this check for --enable-staticvm, otherwise ltdl can't find dlopen + if test x"${ENABLE_STATICVM}" = "xyes"; then + AC_CHECK_LIB(dl, dlopen,, [AC_MSG_ERROR(cannot find libdl)]) + fi + AC_CHECK_HEADERS([ltdl.h],, [AC_MSG_ERROR(cannot find ltdl.h)]) AC_CHECK_LIB(ltdl, lt_dlopen,, [AC_MSG_ERROR(cannot find libltdl)]) fi @@ -777,12 +891,6 @@ AC_PROG_JAVAC AC_PROG_JAR -dnl now configure subpackages -dnl the export is not my favorite (is there another way?) -export CFLAGS -AC_CONFIG_SUBDIRS(src/boehm-gc) - - dnl finally pass CFLAGS to Makefiles via AM_CFLAGS CFLAGS=$OPT_CFLAGS AM_CFLAGS=$ARCH_CFLAGS @@ -793,6 +901,8 @@ AC_CONFIG_FILES([Makefile] [contrib/Makefile] [contrib/setenvinstalled] [contrib/setenvsource] + [contrib/vmlog/Makefile] + [contrib/vmlog/t/Makefile] [doc/Makefile] [doc/handbook/Makefile] [man/Makefile] @@ -802,17 +912,19 @@ AC_CONFIG_FILES([Makefile] [src/fdlibm/Makefile] [src/lib/Makefile] [src/mm/Makefile] + [src/mm/cacao-gc/Makefile] [src/native/Makefile] [src/native/include/Makefile] [src/native/jvmti/Makefile] [src/native/tools/Makefile] [src/native/vm/Makefile] + [src/native/vm/cldc1.1/Makefile] + [src/native/vm/gnu/Makefile] [src/scripts/Makefile] [src/scripts/java] - [src/scripts/rmic] - [src/scripts/rmiregistry] [src/threads/Makefile] [src/threads/native/Makefile] + [src/threads/none/Makefile] [src/toolbox/Makefile] [src/vm/Makefile] [src/vm/jit/Makefile] @@ -820,33 +932,59 @@ AC_CONFIG_FILES([Makefile] [src/vm/jit/alpha/Makefile] [src/vm/jit/alpha/freebsd/Makefile] [src/vm/jit/alpha/linux/Makefile] + [src/vm/jit/arm/Makefile] + [src/vm/jit/arm/linux/Makefile] [src/vm/jit/i386/Makefile] + [src/vm/jit/i386/cygwin/Makefile] + [src/vm/jit/i386/darwin/Makefile] [src/vm/jit/i386/freebsd/Makefile] [src/vm/jit/i386/linux/Makefile] - [src/vm/jit/ifconv/Makefile] [src/vm/jit/intrp/Makefile] [src/vm/jit/inline/Makefile] [src/vm/jit/loop/Makefile] + [src/vm/jit/m68k/Makefile] + [src/vm/jit/m68k/linux/Makefile] [src/vm/jit/mips/Makefile] [src/vm/jit/mips/irix/Makefile] [src/vm/jit/mips/linux/Makefile] + [src/vm/jit/mips/uclinux/Makefile] + [src/vm/jit/optimizing/Makefile] + [src/vm/jit/parisc/Makefile] + [src/vm/jit/parisc/linux/Makefile] [src/vm/jit/powerpc/Makefile] [src/vm/jit/powerpc/darwin/Makefile] [src/vm/jit/powerpc/linux/Makefile] [src/vm/jit/powerpc/netbsd/Makefile] [src/vm/jit/powerpc64/Makefile] [src/vm/jit/powerpc64/linux/Makefile] - [src/vm/jit/profile/Makefile] + [src/vm/jit/s390/Makefile] [src/vm/jit/schedule/Makefile] [src/vm/jit/sparc64/Makefile] [src/vm/jit/sparc64/linux/Makefile] + [src/vm/jit/sparc64/solaris/Makefile] [src/vm/jit/tools/Makefile] [src/vm/jit/verify/Makefile] [src/vm/jit/x86_64/Makefile] + [src/vm/jit/x86_64/freebsd/Makefile] + [src/vm/jit/x86_64/linux/Makefile] + [src/vmcore/Makefile] [tests/Makefile] [tests/regression/Makefile] [tests/regression/codepatching/Makefile] - [tests/regression/native/Makefile]) + [tests/regression/jasmin/Makefile] + [tests/regression/native/Makefile] + [tests/regression/resolving/Makefile] + [tests/regression/resolving/classes1/Makefile] + [tests/regression/resolving/classes2/Makefile] + [tests/regression/resolving/classes3/Makefile] + ) + + +dnl now configure subpackages with OPT_CFLAGS and ARCH_CFLAGS +export OPT_CFLAGS +export ARCH_CFLAGS +AC_CONFIG_SUBDIRS(src/mm/boehm-gc) + AC_OUTPUT