- removed Java_java_lang_VMRuntime_insertSystemProperties (is now in
[cacao.git] / configure.in
index a931ee52aecc2ad3bca1a645e35c6a7670633a23..25a1153a3d4fd055c5ccdf41c54547c01f8a102d 100644 (file)
-cdnl autoconf; autoheader; automake
-
 dnl Process this file with autoconf to produce a configure script.
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([main.c])
-AC_CANONICAL_HOST
 
 
+AC_INIT(cacao, 0.92cvs, cacao@cacaojvm.org)
+AC_CONFIG_SRCDIR(src/cacao/cacao.c)
+AC_CANONICAL_HOST
 AC_PREREQ(2.59)
 AC_PREREQ(2.59)
-AM_INIT_AUTOMAKE(cacao, 0.40)
+AM_INIT_AUTOMAKE([1.9.0])
+
 AM_CONFIG_HEADER([config.h])
 
 AC_PREFIX_DEFAULT(/usr/local/cacao)
 
 AM_CONFIG_HEADER([config.h])
 
 AC_PREFIX_DEFAULT(/usr/local/cacao)
 
-dnl system type
 
 
+dnl system type
 case "$host_cpu" in
 case "$host_cpu" in
-alpha* )
+alpha )
        ARCH_DIR="alpha"
        ARCH_DIR="alpha"
-       CFLAGS="-Wall -O2 -g3 -mieee -D__ALPHA__"
-       AC_DEFINE([TRACE_ARGS_NUM], 6, [Defines integer argument register count])
-       AC_DEFINE([USE_CODEMMAP], 1, [use code mmap])
+        STATIC_CLASSPATH="1"
+       CFLAGS="-mieee -D__ALPHA__"
        ;;
 
        ;;
 
-i386* | i486* | i586* | i686* )
+i386 | i486 | i586 | i686 )
        ARCH_DIR="i386"
        ARCH_DIR="i386"
-       CFLAGS="-Wall -O0 -g3 -D__I386__"
-       AC_DEFINE([TRACE_ARGS_NUM], 8, [Defines integer argument register count])
-       AC_DEFINE([USE_CODEMMAP], 1, [use code mmap])
+        STATIC_CLASSPATH="0"
+       CFLAGS="-D__I386__ $CFLAGS"
        ;;
 
        ;;
 
-mips* )
+mips )
        ARCH_DIR="mips"
        ARCH_DIR="mips"
-       CFLAGS="-64 -O2 -OPT:Olimit=0 -g -DMAP_ANONYMOUS=0 -woff 1110,1164,1515 -D__MIPS__"
-       LIBS="-lelfutil"
-       AC_DEFINE([TRACE_ARGS_NUM], 8, [Defines integer argument register count])
+        STATIC_CLASSPATH="1"
+
+dnl for MIPSPro Compiler
+dnl    CFLAGS="-64 -OPT:Olimit=0 -woff 1110,1164,1515 -D__MIPS__ -D__MIPSEB__"
+       CFLAGS="-64 -OPT:Olimit=0 -D__MIPS__ -D__MIPSEB__"
+
+dnl for GCC
+dnl    CFLAGS="-mabi=64 -D__MIPS__ -D__MIPSEB__"
+dnl    LDFLAGS="-mabi=64"
        ;;
 
        ;;
 
-powerpc* | ppc* )
+powerpc | ppc )
        ARCH_DIR="powerpc"
        ARCH_DIR="powerpc"
-       CFLAGS="-Wall -O2 -g -DMAP_ANONYMOUS=0 -no-cpp-precomp -D__POWERPC__"
-       AC_DEFINE([TRACE_ARGS_NUM], 8, [Defines integer argument register count])
+        STATIC_CLASSPATH="1"
+       CFLAGS="-D__POWERPC__"
        ;;
 
        ;;
 
-x86_64* )
+x86_64 )
        ARCH_DIR="x86_64"
        ARCH_DIR="x86_64"
-       CFLAGS="-Wall -O2 -g3 -D__X86_64__"
-       AC_DEFINE([TRACE_ARGS_NUM], 6, [Defines integer argument register count])
-       AC_DEFINE([USE_CODEMMAP], 1, [use code mmap])
+        STATIC_CLASSPATH="0"
+       CFLAGS="-D__X86_64__"
        ;;
 
        ;;
 
-sparc* | * )
+* )
        AC_MSG_ERROR($host_cpu systems are not supported at this time)
         ;;
 esac
 
 
        AC_MSG_ERROR($host_cpu systems are not supported at this time)
         ;;
 esac
 
 
+dnl set optimization and debugging for all architectures and systems
+CFLAGS="-O0 -g3 $CFLAGS"
+
+
 case "$host_os" in
 *linux* | *Linux* )
 case "$host_os" in
 *linux* | *Linux* )
-        CFLAGS="$CFLAGS -D__LINUX__ -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
+        CFLAGS="-ansi -pedantic -Wall -Wno-long-long $CFLAGS -D__LINUX__ -D_POSIX_C_SOURCE=199506L -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_BSD_SOURCE"
        ;;
 *darwin* )
        ;;
 *darwin* )
-        CFLAGS="$CFLAGS -D__DARWIN__"
+        CFLAGS="-ansi -pedantic -Wall -Wno-long-long $CFLAGS -D__DARWIN__"
+        ;;
+*irix* )
+        CFLAGS="$CFLAGS -D__IRIX__"
         ;;
 * )
        ;;
 esac
 
         ;;
 * )
        ;;
 esac
 
-AC_SUBST(COMPILER_OBJECTS)
+
+dnl define install prefix
+if test "x$prefix" = xNONE; then
+       CACAO_INSTALL_PREFIX=$ac_default_prefix
+else
+       CACAO_INSTALL_PREFIX=$prefix
+fi
+AC_DEFINE_UNQUOTED([CACAO_INSTALL_PREFIX], "$CACAO_INSTALL_PREFIX", [Installation prefix])
+AC_SUBST(CACAO_INSTALL_PREFIX)
+
 
 AC_DEFINE_UNQUOTED([ARCH_DIR], "$ARCH_DIR", [Architecture directory])
 AC_SUBST(ARCH_DIR)
 
 
 AC_DEFINE_UNQUOTED([ARCH_DIR], "$ARCH_DIR", [Architecture directory])
 AC_SUBST(ARCH_DIR)
 
+
+AC_ARG_ENABLE([dynamicclasspath], [AS_HELP_STRING(--disable-dynamicclasspath, link classpath native code static even on platforms supporting dynamic loading)], [use_dynamicclasspath=$enableval], [use_dynamicclasspath=yes])
+dnl force static classpath linking ??
+AC_MSG_CHECKING(Link classpath static)
+if test "xno" == "x$use_dynamicclasspath"; then
+  STATIC_CLASSPATH="1"
+fi
+
+if test "$STATIC_CLASSPATH" == "1"; then
+       AC_MSG_RESULT(yes)
+else
+       AC_MSG_RESULT(no)
+fi
+AC_SUBST(STATIC_CLASSPATH)
+
 dnl Checks for programs.
 AC_PROG_CC
 AM_PROG_AS
 AC_PROG_RANLIB
 dnl Checks for programs.
 AC_PROG_CC
 AM_PROG_AS
 AC_PROG_RANLIB
+AC_DISABLE_SHARED
+AC_PROG_LIBTOOL
+AC_PROG_LN_S
 AC_PROG_MAKE_SET
 
 AC_PROG_MAKE_SET
 
-dnl Checks for libraries.
-dnl AC_CHECK_LIB(m, sin)
-
 dnl Checks for header files.
 AC_HEADER_DIRENT
 AC_HEADER_STDC
 dnl Checks for header files.
 AC_HEADER_DIRENT
 AC_HEADER_STDC
@@ -101,6 +135,9 @@ AC_FUNC_MMAP
 AC_TYPE_SIGNAL
 AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket)
 
 AC_TYPE_SIGNAL
 AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket)
 
+dnl Checks for libraries.
+AC_CHECK_LIB(m, fmod)
+
 dnl Check for mmap header anomalies (missing MAP_FAILED, etc.)
 if test $ac_cv_func_mmap_fixed_mapped = yes; then
        AC_CACHE_CHECK(whether MAP_FAILED is defined,
 dnl Check for mmap header anomalies (missing MAP_FAILED, etc.)
 if test $ac_cv_func_mmap_fixed_mapped = yes; then
        AC_CACHE_CHECK(whether MAP_FAILED is defined,
@@ -123,12 +160,26 @@ if test $ac_cv_func_mmap_fixed_mapped = yes; then
                                    ac_cv_map_anonymous=yes,
                                    ac_cv_map_anonymous=no))
 
                                    ac_cv_map_anonymous=yes,
                                    ac_cv_map_anonymous=no))
 
+       AC_CACHE_CHECK(whether MAP_ANON is defined,
+                      ac_cv_map_anon,
+                      AC_EGREP_CPP(yes, 
+                                   [#include <sys/mman.h>
+                                    #ifdef MAP_ANON
+                                       yes
+                                    #endif],
+                                   ac_cv_map_anon=yes,
+                                   ac_cv_map_anon=no))
+
        if test $ac_cv_map_failed = yes; then
        if test $ac_cv_map_failed = yes; then
-               AC_DEFINE([HAVE_MAP_FAILED], 1, [Define if mman.h defines MAP_FAILED])
+               AC_DEFINE([HAVE_MAP_FAILED], 1, [Define if <sys/mman.h> defines MAP_FAILED])
        fi
 
        if test $ac_cv_map_anonymous = yes; then
        fi
 
        if test $ac_cv_map_anonymous = yes; then
-               AC_DEFINE([HAVE_MAP_ANONYMOUS], 1, [Define if mman.h defines MAP_ANONYMOUS])
+               AC_DEFINE([HAVE_MAP_ANONYMOUS], 1, [Define if <sys/mman.h> defines MAP_ANONYMOUS])
+       fi
+
+       if test $ac_cv_map_anon = yes; then
+               AC_DEFINE([HAVE_MAP_ANON], 1, [Define if <sys/mman.h> defines MAP_ANON])
        fi
 fi
 
        fi
 fi
 
@@ -137,7 +188,7 @@ dnl Features
 
 dnl check arguments
 AC_ARG_ENABLE([threads], [AS_HELP_STRING(--enable-threads,enable threads support (none,green,native) [[default=native]])])
 
 dnl check arguments
 AC_ARG_ENABLE([threads], [AS_HELP_STRING(--enable-threads,enable threads support (none,green,native) [[default=native]])])
-AC_ARG_ENABLE([__thread], [AS_HELP_STRING(--disable-__thread,do not use TLS features even when supporting them)], [use__thread=$enablevalval], [use__thread=yes])
+AC_ARG_ENABLE([__thread], [AS_HELP_STRING(--enable-__thread,use TLS features)], [use__thread=$enableval], [use__thread=no])
 
 
 dnl threads
 
 
 dnl threads
@@ -148,34 +199,35 @@ no | none | single)
        AC_MSG_RESULT(no)
        dnl no threads for boehm
        ac_configure_args="$ac_configure_args --disable-boehm-threads"
        AC_MSG_RESULT(no)
        dnl no threads for boehm
        ac_configure_args="$ac_configure_args --disable-boehm-threads"
+       AM_CONDITIONAL([USE_THREADS], [false])
+       AM_CONDITIONAL([NATIVE_THREADS], [false])
        ;;
        ;;
+
 green | native | posix | pthreads)
        AC_DEFINE([USE_THREADS], 1, [use threads])
        AC_DEFINE([EXTERNAL_OVERFLOW], 1, [external overflow])
        AC_DEFINE([DONT_FREE_FIRST], 1, [don't free first])
 
 green | native | posix | pthreads)
        AC_DEFINE([USE_THREADS], 1, [use threads])
        AC_DEFINE([EXTERNAL_OVERFLOW], 1, [external overflow])
        AC_DEFINE([DONT_FREE_FIRST], 1, [don't free first])
 
-       LIBTHREAD="libthreads.a"
-       THREAD_OBJ="threads/libthreads.a"
-       AC_SUBST(LIBTHREAD)
-       AC_SUBST(THREAD_OBJ)
+       AM_CONDITIONAL([USE_THREADS], [true])
 
        if test x"$enable_threads" != "xgreen"; then
 
        if test x"$enable_threads" != "xgreen"; then
-               AC_DEFINE([NATIVE_THREADS], 1, [use pthreads])
-               THREAD_LIB="-lpthread"
-               AC_SUBST(THREAD_LIB)
                AC_MSG_RESULT(yes, native)
                 AC_CHECK_LIB(pthread, main)
                AC_MSG_RESULT(yes, native)
                 AC_CHECK_LIB(pthread, main)
+               AC_DEFINE([NATIVE_THREADS], 1, [use pthreads])
 
                CFLAGS="$CFLAGS -D_REENTRANT"
 
                dnl tell boehm to support threads as well and classpath to
                 dnl synchronize VM threads portably
                ac_configure_args="$ac_configure_args --enable-boehm-threads=posix --enable-portable-native-sync"
 
                CFLAGS="$CFLAGS -D_REENTRANT"
 
                dnl tell boehm to support threads as well and classpath to
                 dnl synchronize VM threads portably
                ac_configure_args="$ac_configure_args --enable-boehm-threads=posix --enable-portable-native-sync"
+               AM_CONDITIONAL([NATIVE_THREADS], [true])
+
        else
                AC_MSG_RESULT(yes, green)
 
                dnl no threads for boehm
                ac_configure_args="$ac_configure_args --disable-boehm-threads"
        else
                AC_MSG_RESULT(yes, green)
 
                dnl no threads for boehm
                ac_configure_args="$ac_configure_args --disable-boehm-threads"
+               AM_CONDITIONAL([NATIVE_THREADS], [false])
        fi
     ;;
 *)
        fi
     ;;
 *)
@@ -209,23 +261,15 @@ AC_ARG_ENABLE([zlib], [AS_HELP_STRING(--enable-zlib,enable zip archive class sto
 
 AC_MSG_CHECKING(whether zip archives should be supported)
 if test x"$enable_zlib" = "xno"; then
 
 AC_MSG_CHECKING(whether zip archives should be supported)
 if test x"$enable_zlib" = "xno"; then
-       ZIP_LIBS=""
-       ZIP_C=""
        AC_MSG_RESULT(no)
        AC_MSG_RESULT(no)
+       AM_CONDITIONAL([USE_ZLIB], [false])
 else
 else
-       ZIP_LIBS="-lz"
-       ZIP_C="unzip.c"
-       AC_DEFINE([USE_ZLIB], 1, [use zlib])
        AC_MSG_RESULT(yes)
        AC_MSG_RESULT(yes)
+       AC_DEFINE([USE_ZLIB], 1, [use zlib])
+        AC_CHECK_HEADERS([zlib.h])
         AC_CHECK_LIB(z, main)
         AC_CHECK_LIB(z, main)
+       AM_CONDITIONAL([USE_ZLIB], [true])
 fi
 fi
-AC_SUBST(ZIP_LIBS)
-AC_SUBST(ZIP_C)
-
-
-dnl set some essential classpath options, even if their classpath default is
-dnl suitable for us
-ac_configure_args="$ac_configure_args --enable-jni --disable-cni --disable-regen-headers --enable-static --enable-shared --enable-load-library"
 
 
 dnl check arguments
 
 
 dnl check arguments
@@ -236,83 +280,80 @@ dnl enable gtk peer
 AC_MSG_CHECKING(whether to use gtk awt peers)
 if test x"$enable_gtk_peer" = "xyes"; then
        AC_MSG_RESULT(yes)
 AC_MSG_CHECKING(whether to use gtk awt peers)
 if test x"$enable_gtk_peer" = "xyes"; then
        AC_MSG_RESULT(yes)
-       AWTPEERS="java.awt.peer.ComponentPeer \
-               java.awt.Graphics\
-               java.awt.Window\
-               java.awt.peer.MenuPeer \
-               java.awt.peer.MenuItemPeer \
-               gnu.java.awt.peer.gtk.GdkPixbufDecoder \
-               gnu.java.awt.peer.gtk.GtkGenericPeer \
-               gnu.java.awt.peer.gtk.GtkMenuBarPeer \
-               gnu.java.awt.peer.gtk.GtkScrollPanePeer \
-               gnu.java.awt.peer.gtk.GtkMenuPeer \
-               gnu.java.awt.peer.gtk.GtkTextComponentPeer \
-               gnu.java.awt.peer.gtk.GtkComponentPeer \
-               gnu.java.awt.peer.gtk.GtkPopupMenuPeer \
-               gnu.java.awt.peer.gtk.GtkCheckboxPeer \
-               gnu.java.awt.peer.gtk.GtkCheckboxGroupPeer \
-               gnu.java.awt.peer.gtk.GtkMenuItemPeer \
-               gnu.java.awt.peer.gtk.GdkGraphics \
-               gnu.java.awt.peer.gtk.GtkToolkit \
-               gnu.java.awt.peer.gtk.GtkCanvasPeer \
-               gnu.java.awt.peer.gtk.GtkFramePeer \
-               gnu.java.awt.peer.gtk.GdkFontMetrics \
-               gnu.java.awt.peer.gtk.GtkScrollbarPeer \
-               gnu.java.awt.peer.gtk.GtkListPeer \
-               gnu.java.awt.peer.gtk.GtkLabelPeer \
-               gnu.java.awt.peer.gtk.GtkTextAreaPeer \
-               gnu.java.awt.peer.gtk.GtkFileDialogPeer \
-               gnu.java.awt.peer.gtk.GtkImagePainter \
-               gnu.java.awt.peer.gtk.GtkChoicePeer \
-               gnu.java.awt.peer.gtk.GtkPanelPeer \
-               gnu.java.awt.peer.gtk.GtkMainThread \
-               gnu.java.awt.peer.gtk.GtkButtonPeer \
-               gnu.java.awt.peer.gtk.GtkTextFieldPeer \
-               gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer \
-               gnu.java.awt.peer.gtk.GtkClipboard \
-               gnu.java.awt.peer.gtk.GtkWindowPeer"
-               AWT_OBJS="classpath/native/jni/gtk-peer/.libs/libgtkpeer.a \
-                       -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangoxft-1.0 \
-                       -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 \
-                       -lgthread-2.0 -lart_lgpl_2"
-               USEGTK="yes"
-               AC_SUBST(USEGTK)
-               AC_SUBST(AWTPEERS)
-               AC_SUBST(AWT_OBJS)
-               AC_DEFINE([USE_GTK], 1, [use gtk])
+       AC_DEFINE([USE_GTK], 1, [use gtk])
+       AM_CONDITIONAL([USE_GTK_PEER], [true])
 
 else
 
 else
-       AWT_OBJS=""
-       AWTPEERS=""
-       USEGTK="no"
-       AC_SUBST(USEGTK)
-       AC_SUBST(AWTPEERS)
-       AC_SUBST(AWT_OBJS)
        AC_MSG_RESULT(no)
        AC_MSG_RESULT(no)
+       ac_configure_args="$ac_configure_args --disable-gtk-peer"
+       AM_CONDITIONAL([USE_GTK_PEER], [false])
+fi
+
+
+if test "x1" == "x$STATIC_CLASSPATH"; then
+        AC_DEFINE([STATIC_CLASSPATH], 1, [use classpath statically linked])
+       AM_CONDITIONAL([STATIC_CLASSPATH], [true])
 
 
-        ac_configure_args="$ac_configure_args --disable-gtk-peer"
+else
+       AM_CONDITIONAL([STATIC_CLASSPATH], [false])
 fi
 
 
 fi
 
 
+dnl set some essential classpath options, even if their classpath default is
+dnl suitable for us
+ac_configure_args="$ac_configure_args --enable-jni --disable-cni --disable-regen-headers --enable-static --enable-shared --enable-load-library"
+
+
 dnl now configure boehm gc and gnu classpath
 dnl the export is not my favorite (is there another way?)
 export CFLAGS
 dnl now configure boehm gc and gnu classpath
 dnl the export is not my favorite (is there another way?)
 export CFLAGS
-AC_CONFIG_SUBDIRS(mm/boehm-gc classpath)
-
-
-AC_OUTPUT(Makefile \
-          mm/Makefile \
-         toolbox/Makefile \
-         threads/Makefile \
-         jit/Makefile \
-          jit/loop/Makefile \
-          jit/alpha/Makefile \
-          jit/i386/Makefile \
-          jit/mips/Makefile \
-          jit/powerpc/Makefile \
-          jit/x86_64/Makefile \
-          nat/Makefile \
-          doc/Makefile \
-         tst/Makefile \
-         tst/kaffe/Makefile \
-         jvmtst/Makefile )
+AC_CONFIG_SUBDIRS(src/boehm-gc src/classpath)
+
+
+AC_CONFIG_FILES([Makefile]
+               [doc/Makefile]
+               [doc/handbook/Makefile]
+               [man/Makefile]
+               [src/Makefile]
+               [src/cacao/Makefile]
+               [src/cacaoh/Makefile]
+               [src/mm/Makefile]
+               [src/native/Makefile]
+               [src/native/include/Makefile]
+               [src/native/tools/Makefile]
+               [src/native/vm/Makefile]
+               [src/scripts/Makefile]
+               [src/scripts/cacao]
+               [src/scripts/java]
+               [src/scripts/rmic]
+               [src/scripts/rmiregistry]
+               [src/threads/Makefile]
+               [src/threads/green/Makefile]
+               [src/threads/native/Makefile]
+               [src/toolbox/Makefile]
+               [src/vm/Makefile]
+               [src/vm/jit/Makefile]
+               [src/vm/jit/alpha/Makefile]
+               [src/vm/jit/i386/Makefile]
+               [src/vm/jit/inline/Makefile]
+               [src/vm/jit/loop/Makefile]
+               [src/vm/jit/mips/Makefile]
+               [src/vm/jit/powerpc/Makefile]
+               [src/vm/jit/tools/Makefile]
+               [src/vm/jit/verify/Makefile]
+               [src/vm/jit/x86_64/Makefile]
+               [tests/Makefile]
+               [tests/jvm98/Makefile]
+               [tests/kaffe/Makefile]
+               [tests/native/Makefile])
+
+AC_OUTPUT
+
+
+## Local variables:
+## mode: m4
+## indent-tabs-mode: t
+## c-basic-offset: 4
+## tab-width: 8
+## compile-command: "automake --add-missing"
+## End: