X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.ac;h=b31143bd680c6f4a8a6c090cbc6ea52bd316a2ff;hb=163a556f6d971fce7f861d7ef8debbeca992a4de;hp=94dafc260aeba4f16d2c841a3ebd14845d8d5123;hpb=1905952e5b52b4ff0d9f5377fc031c019e4e5ef6;p=cacao.git diff --git a/configure.ac b/configure.ac index 94dafc260..b31143bd6 100644 --- a/configure.ac +++ b/configure.ac @@ -21,17 +21,15 @@ 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 7879 2007-05-07 13:45:19Z twisti $ dnl Process this file with autoconf to produce a configure script. -AC_INIT(cacao, 0.98rc, cacao@cacaojvm.org) +AC_INIT(cacao, 0.98+svn, cacao@cacaojvm.org) AC_CONFIG_SRCDIR(src/cacao/cacao.c) AC_CANONICAL_HOST AC_PREREQ(2.59) -AM_INIT_AUTOMAKE([1.9.0]) +AM_INIT_AUTOMAKE([1.9.0 dist-bzip2]) AM_MAINTAINER_MODE AM_CONFIG_HEADER([config.h]) @@ -51,56 +49,69 @@ case "$host_cpu" in alpha | alphaev56 | alphapca56 ) ARCH_DIR="alpha" ARCH_CFLAGS="-mieee -D__ALPHA__" + JAVA_ARCH="alpha" ;; arm | armv4 | armv4tl | armv5b | armv5l ) ARCH_DIR="arm" ARCH_CFLAGS="-D__ARM__" + JAVA_ARCH="arm" ;; hppa2.0 ) ARCH_DIR="parisc" ARCH_CFLAGS="-D__PARISC__" + JAVA_ARCH="hppa" ;; i386 | i486 | i586 | i686 ) ARCH_DIR="i386" ARCH_CFLAGS="-D__I386__" + JAVA_ARCH="i386" ;; m68k ) ARCH_DIR="m68k" ARCH_CFLAGS="-D__M68K__" + JAVA_ARCH="m68k" ;; mips | mipsel ) ARCH_DIR="mips" ARCH_CFLAGS="-D__MIPS__" + dnl Is this correct for mipsel? + JAVA_ARCH="mips" ;; powerpc ) ARCH_DIR="powerpc" ARCH_CFLAGS="-D__POWERPC__" + JAVA_ARCH="ppc" ;; powerpc64 ) ARCH_DIR="powerpc64" ARCH_CFLAGS="-D__POWERPC64__" + JAVA_ARCH="ppc64" ;; s390 ) ARCH_DIR="s390" ARCH_CFLAGS="-D__S390__" + JAVA_ARCH="s390" ;; sparc | sparc64 ) ARCH_DIR="sparc64" ARCH_CFLAGS="-mcpu=v9 -m64 -D__SPARC_64__" + dnl Is this correct for 64-bits? + JAVA_ARCH="sparc" ;; x86_64 ) ARCH_DIR="x86_64" ARCH_CFLAGS="-D__X86_64__" + JAVA_ARCH="amd64" ;; xdspcore ) @@ -194,6 +205,7 @@ AC_DEFINE_UNQUOTED(VERSION_CFLAGS, "$OPT_CFLAGS $ARCH_CFLAGS", [CFLAGS used]) dnl define and substitute some architecture specific variables AC_DEFINE_UNQUOTED([ARCH_DIR], "${ARCH_DIR}", [architecture directory]) +AC_DEFINE_UNQUOTED([JAVA_ARCH], "${JAVA_ARCH}", [Java architecture name]) AC_SUBST(ARCH_DIR) AC_SUBST(OS_DIR) AC_SUBST(USE_SCHEDULER) @@ -215,11 +227,21 @@ AC_HEADER_STDC dnl keep them alpha-sorted! AC_CHECK_HEADERS([fcntl.h]) +AC_CHECK_HEADERS([libgen.h]) +AC_CHECK_HEADERS([netdb.h]) +AC_CHECK_HEADERS([stdlib.h]) +AC_CHECK_HEADERS([string.h]) +AC_CHECK_HEADERS([time.h]) +AC_CHECK_HEADERS([ucontext.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/select.h]) +AC_CHECK_HEADERS([sys/socket.h]) +AC_CHECK_HEADERS([sys/stat.h]) AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_HEADERS([sys/types.h]) dnl this is for fdlibm AC_CHECK_HEADERS([stdint.h]) @@ -240,6 +262,10 @@ AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM +dnl Checks for libraries (NOTE: Should be done before function checks, +dnl as some functions may be in libraries we check for). +AC_CHECK_LIB(dl, dlopen,,) + dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_TYPE_SIGNAL @@ -247,16 +273,55 @@ AC_FUNC_MEMCMP AC_FUNC_MMAP dnl keep them alpha-sorted! +AC_CHECK_FUNCS([accept]) +AC_CHECK_FUNCS([access]) +AC_CHECK_FUNCS([atoi]) +AC_CHECK_FUNCS([atol]) AC_CHECK_FUNCS([calloc]) -AC_CHECK_FUNCS([getpagesize]) +AC_CHECK_FUNCS([close]) +AC_CHECK_FUNCS([confstr]) +AC_CHECK_FUNCS([connect]) +AC_CHECK_FUNCS([dirname]) +AC_CHECK_FUNCS([fflush]) +AC_CHECK_FUNCS([fopen]) +AC_CHECK_FUNCS([fprintf]) AC_CHECK_FUNCS([free]) +AC_CHECK_FUNCS([fstat]) +AC_CHECK_FUNCS([fsync]) AC_CHECK_FUNCS([getcwd]) -AC_CHECK_FUNCS([gettimeofday]) +AC_CHECK_FUNCS([gethostbyname]) +AC_CHECK_FUNCS([gethostname]) +AC_CHECK_FUNCS([getpagesize]) AC_CHECK_FUNCS([getrusage]) +AC_CHECK_FUNCS([getsockname]) +AC_CHECK_FUNCS([getsockopt]) +AC_CHECK_FUNCS([gettimeofday]) +AC_CHECK_FUNCS([htons]) +AC_CHECK_FUNCS([ioctl]) AC_CHECK_FUNCS([isnan]) +AC_CHECK_FUNCS([listen]) +AC_CHECK_FUNCS([localtime]) +AC_CHECK_FUNCS([localtime_r]) +AC_CHECK_FUNCS([lseek]) +AC_CHECK_FUNCS([malloc]) AC_CHECK_FUNCS([mmap]) AC_CHECK_FUNCS([mprotect]) +AC_CHECK_FUNCS([open]) +AC_CHECK_FUNCS([readlink]) +AC_CHECK_FUNCS([recv]) AC_CHECK_FUNCS([scandir]) +AC_CHECK_FUNCS([select]) +AC_CHECK_FUNCS([send]) +AC_CHECK_FUNCS([setsockopt]) +AC_CHECK_FUNCS([shutdown]) +AC_CHECK_FUNCS([socket]) +AC_CHECK_FUNCS([strchr]) +AC_CHECK_FUNCS([strdup]) +AC_CHECK_FUNCS([strerror]) +AC_CHECK_FUNCS([strncmp]) +AC_CHECK_FUNCS([strstr]) +AC_CHECK_FUNCS([time]) + dnl Checks for libraries. @@ -286,135 +351,24 @@ AC_DEFINE_UNQUOTED([CACAO_LIBDIR], "${CACAO_LIBDIR}", [library installation pref AC_SUBST(CACAO_LIBDIR) -dnl Features +AC_CHECK_ENABLE_LTDL AC_CHECK_ENABLE_JAVA -AC_CHECK_ENABLE_JIT - -dnl with-options -AC_CHECK_WITH_CACAOH - -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 -AC_ARG_ENABLE([intrp], [AS_HELP_STRING(--enable-intrp,enable interpreter [[default=no]])]) - -AC_MSG_CHECKING(whether interpreter should be compiled) -if test x"$enable_intrp" = "xyes"; then - AC_MSG_RESULT(yes) - AC_DEFINE([ENABLE_INTRP], 1, [enable interpreter]) - AM_CONDITIONAL([ENABLE_INTRP], [true]) - ENABLE_INTRP=yes - - AC_ASM_SKIP16 - - dnl check for libffi - AC_ARG_WITH([ffi], - [AS_HELP_STRING(--with-ffi,use libffi to call native functions)], - [WITH_FFI=yes - AC_CHECK_HEADERS([ffi.h],, [AC_MSG_ERROR(cannot find ffi.h)]) - AC_CHECK_LIB(ffi, ffi_call,, [AC_MSG_ERROR(cannot find libffi)]) - AC_DEFINE([WITH_FFI], 1, [use libffi])], - [WITH_FFI=no]) - - dnl check for libffcall - AC_ARG_WITH([ffcall], - [AS_HELP_STRING(--with-ffcall,use libffcall to call native functions)], - [WITH_FFCALL=yes - AC_CHECK_HEADERS([avcall.h],, [AC_MSG_ERROR(cannot find avcall.h)]) - AC_CHECK_LIB(avcall, __builtin_avcall,, [AC_MSG_ERROR(cannot find libavcall (from libffcall))]) - AC_DEFINE([WITH_FFCALL], 1, [use libffcall])], - [WITH_FFCALL=no]) - - dnl check for libffi or libffcall - if test x"${WITH_FFI}" = "xyes" -a x"${WITH_FFCALL}" = "xyes"; then - AC_ERROR(Enable only libffi or libffcall.) - fi - if test x"${WITH_FFI}" = "xno" -a x"${WITH_FFCALL}" = "xno"; then - AC_ERROR(Enable one of libffi or libffcall.) - fi - -else - AC_MSG_RESULT(no) - AM_CONDITIONAL([ENABLE_INTRP], [false]) - ENABLE_INTRP="no" -fi +AC_CHECK_ENABLE_JIT +AC_CHECK_ENABLE_INTRP if test x"${ENABLE_JIT}" = "xno" -a x"${ENABLE_INTRP}" = "xno"; then AC_ERROR(You have to enable at least the JIT or the interpreter.) fi +AC_CHECK_SOFTFLOAT +AC_CHECK_SOFT_FLOAT_CMP +AC_CHECK_SOFT_DOUBLE_CMP -dnl check for garbage collector usage -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 -AC_MSG_CHECKING(whether dump memory should be disabled) -AC_ARG_ENABLE([dump], - [AS_HELP_STRING(--disable-dump,disable dump memory (for debugging only!) [[default=yes]])], - [case "${enableval}" in - no) - DISABLE_DUMP=yes - AC_DEFINE([DISABLE_DUMP], 1, [disable dump memory]) - ;; - *) DISABLE_DUMP=no;; - esac], - [DISABLE_DUMP=no]) -AC_MSG_RESULT(${DISABLE_DUMP}) - - -dnl check for debug -AC_MSG_CHECKING(whether debug code generation should be enabled) -AC_ARG_ENABLE([debug], - [AS_HELP_STRING(--disable-debug,disable debug code generation [[default=yes]])], - [case "${enableval}" in - no) NDEBUG=yes - AC_DEFINE([NDEBUG], 1, [disable debug code]) - ;; - *) NDEBUG=no;; - esac], - [NDEBUG=no]) - -if test x"${NDEBUG}" = "xno"; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi -AM_CONDITIONAL([NDEBUG], test x"${NDEBUG}" = "xyes") +AC_CHECK_ENABLE_GC +AC_CHECK_ENABLE_DEBUG +AC_CHECK_ENABLE_DUMP dnl check for memcheck support @@ -434,6 +388,23 @@ if test x"${ENABLE_MEMCHECK}" = "xyes"; then fi +dnl check for handles (indirection cells) support +AC_MSG_CHECKING(whether handles (indirection cells) should be enabled) +AC_ARG_ENABLE([handles], + [AS_HELP_STRING(--enable-handles,enable handles (indirection cells) [[default=no]])], + [case "${enableval}" in + yes) ENABLE_HANDLES=yes;; + *) ENABLE_HANDLES=no;; + esac], + [ENABLE_HANDLES=no]) +AC_MSG_RESULT(${ENABLE_HANDLES}) +AM_CONDITIONAL([ENABLE_HANDLES], test x"${ENABLE_HANDLES}" = "xyes") + +if test x"${ENABLE_HANDLES}" = "xyes"; then + AC_DEFINE([ENABLE_HANDLES], 1, [enable handles (indirection cells)]) +fi + + dnl check for vmlog support AC_MSG_CHECKING(whether vmlog tracing should be enabled) AC_ARG_ENABLE([vmlog], @@ -481,6 +452,13 @@ if test x"${ENABLE_DISASSEMBLER}" = "xyes"; then ;; esac + case "${OS_DIR}" in + solaris) + AC_CHECK_LIB(rt, sem_init,, [AC_MSG_ERROR(cannot find librt)]) + ;; + esac + + AC_CHECK_LIB(iberty, xstrerror,, [AC_MSG_ERROR(cannot find libiberty (from binutils))]) AC_CHECK_LIB(bfd, bfd_get_arch,, [AC_MSG_ERROR(cannot find libbfd (from binutils))]) AC_CHECK_LIB(opcodes, disassembler,, [AC_MSG_ERROR(cannot find libopcodes (from binutils))]) @@ -749,73 +727,20 @@ else fi -dnl check if zlib should be used -AC_MSG_CHECKING(whether ZIP/JAR archives should be supported) -AC_ARG_ENABLE([zlib], - [AS_HELP_STRING(--disable-zlib,disable ZIP/JAR archive support (needs zlib) [[default=yes]])], - [case "${enableval}" in - no) ENABLE_ZLIB=no;; - *) ENABLE_ZLIB=yes;; - esac], - [ENABLE_ZLIB=yes]) -AC_MSG_RESULT(${ENABLE_ZLIB}) - -if test x"${ENABLE_ZLIB}" = "xyes"; then - AC_CHECK_HEADERS([zconf.h],, [AC_MSG_ERROR(cannot find zconf.h)]) - AC_CHECK_HEADERS([zlib.h],, [AC_MSG_ERROR(cannot find zlib.h)]) - AC_CHECK_LIB(z, inflate,, [AC_MSG_ERROR(cannot find libz)]) - AC_DEFINE([ENABLE_ZLIB], 1, [use zlib]) -fi -AM_CONDITIONAL([ENABLE_ZLIB], test x"${ENABLE_ZLIB}" = "xyes") - +AC_CHECK_ENABLE_ZLIB dnl check for stuff to be built AC_CHECK_ENABLE_JNI +AC_CHECK_ENABLE_LIBJVM - -dnl check if a libjvm.so should be built -AC_MSG_CHECKING(whether to build a libjvm.so) -AC_ARG_ENABLE([libjvm], - [AS_HELP_STRING(--disable-libjvm,build a libjvm.so [[default=yes]])], - [case "${enableval}" in - no) ENABLE_LIBJVM=no;; - *) ENABLE_LIBJVM=yes;; - esac], - [ENABLE_LIBJVM=yes]) -AC_MSG_RESULT(${ENABLE_LIBJVM}) -AM_CONDITIONAL([ENABLE_LIBJVM], test x"${ENABLE_LIBJVM}" = "xyes") -AC_SUBST(ENABLE_LIBJVM) - -if test x"${ENABLE_LIBJVM}" = "xyes"; then - AC_DEFINE([ENABLE_LIBJVM], 1, [enable libjvm.so]) - - dnl set AC_ENABLE_SHARED and AC_DISABLE_STATIC properly - enable_shared=yes - enable_static=no -else - enable_shared=no - enable_static=yes -fi - -dnl libtool stuff +dnl ATTENTION: These check must be after setting +dnl enable_shared/enable_static (happens in AC_CHECK_ENABLE_LIBJVM), +dnl because libtool uses them to build the correct libraries. AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL - -dnl check if CACAO should be linked statically -AC_MSG_CHECKING(whether to link CACAO statically) -AC_ARG_ENABLE([staticvm], - [AS_HELP_STRING(--enable-staticvm,link CACAO statically [[default=no]])], - [case "${enableval}" in - yes) ENABLE_STATICVM=yes - AC_DEFINE([ENABLE_STATICVM], 1, [link CACAO statically]) - ;; - *) ENABLE_STATICVM=no;; - esac], - [ENABLE_STATICVM=no]) -AC_MSG_RESULT(${ENABLE_STATICVM}) -AM_CONDITIONAL([ENABLE_STATICVM], test x"${ENABLE_STATICVM}" = "xyes") -AC_SUBST(ENABLE_STATICVM) +AC_CHECK_ENABLE_STATICVM +AC_CHECK_ENABLE_ANNOTATIONS dnl where is CACAO's vm.zip @@ -829,60 +754,44 @@ AC_DEFINE_UNQUOTED([CACAO_VM_ZIP], "${CACAO_VM_ZIP}", [CACAO's vm.zip]) AC_SUBST(CACAO_VM_ZIP) +AC_CHECK_WITH_CACAOH AC_CHECK_WITH_CLASSPATH AC_CHECK_WITH_CLASSPATH_PREFIX AC_CHECK_WITH_CLASSPATH_CLASSES AC_CHECK_WITH_CLASSPATH_LIBDIR AC_CHECK_WITH_CLASSPATH_INCLUDEDIR +AC_CHECK_WITH_JRE_LAYOUT -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 -AC_MSG_CHECKING(whether to link GNU Classpath native libraries statically into CACAO) -AC_ARG_WITH([static-classpath], - [AS_HELP_STRING(--with-static-classpath,link GNU classpath native libraries statically into CACAO [[default=no]])], - [case "${enableval}" in - yes) WITH_STATIC_CLASSPATH=yes;; - *) WITH_STATIC_CLASSPATH=no;; - esac], - [WITH_STATIC_CLASSPATH=no]) -AC_MSG_RESULT(${WITH_STATIC_CLASSPATH}) - -if test x"${WITH_STATIC_CLASSPATH}" = "xyes"; then - AC_DEFINE([WITH_STATIC_CLASSPATH], 1, [link GNU classpath native libraries statically into CACAO]) - - 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 -AM_CONDITIONAL([WITH_STATIC_CLASSPATH], test x"${WITH_STATIC_CLASSPATH}" = "xyes") -AC_SUBST(WITH_STATIC_CLASSPATH) +dnl check for some programs we need +case "${WITH_CLASSPATH}" in + cldc1.1 | gnu) + AC_PROG_JAVAC + AC_PROG_JAR + ;; + sun) + ;; + *) + AC_MSG_ERROR(unknown classpath configuration ${WITH_CLASSPATH}) + ;; +esac -dnl check for some programs we need -AC_PROG_JAVAC -AC_PROG_JAR +AC_CHECK_HEADERS( + [regex.h], + [ + dnl If debug build and regex.h available, enable debug filter + if test x"${NDEBUG}" = "xno"; then + AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter]) + fi + dnl If vmlog enambled and regex.h available, enable vmlogfilter + AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"]) + ], + [ + AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false]) + ] +) dnl finally pass CFLAGS to Makefiles via AM_CFLAGS CFLAGS=$OPT_CFLAGS @@ -909,10 +818,10 @@ AC_CONFIG_FILES([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/native/vm/sun/Makefile] [src/scripts/Makefile] [src/scripts/java] [src/threads/Makefile] @@ -940,6 +849,7 @@ AC_CONFIG_FILES([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] @@ -954,7 +864,6 @@ AC_CONFIG_FILES([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] @@ -969,7 +878,7 @@ AC_CONFIG_FILES([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