X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=configure.in;h=25a1153a3d4fd055c5ccdf41c54547c01f8a102d;hb=f54a6a889fc6dcbfa01881f012fb9defe124c4b2;hp=a931ee52aecc2ad3bca1a645e35c6a7670633a23;hpb=2f926eca9b07b02b973310f4b6e85e59af75489e;p=cacao.git diff --git a/configure.in b/configure.in index a931ee52a..25a1153a3 100644 --- a/configure.in +++ b/configure.in @@ -1,83 +1,117 @@ -cdnl autoconf; autoheader; automake - 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) -AM_INIT_AUTOMAKE(cacao, 0.40) +AM_INIT_AUTOMAKE([1.9.0]) + AM_CONFIG_HEADER([config.h]) AC_PREFIX_DEFAULT(/usr/local/cacao) -dnl system type +dnl system type case "$host_cpu" in -alpha* ) +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" - 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" - 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" - 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" - 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 +dnl set optimization and debugging for all architectures and systems +CFLAGS="-O0 -g3 $CFLAGS" + + 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* ) - CFLAGS="$CFLAGS -D__DARWIN__" + CFLAGS="-ansi -pedantic -Wall -Wno-long-long $CFLAGS -D__DARWIN__" + ;; +*irix* ) + CFLAGS="$CFLAGS -D__IRIX__" ;; * ) ;; 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_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 +AC_DISABLE_SHARED +AC_PROG_LIBTOOL +AC_PROG_LN_S 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 @@ -101,6 +135,9 @@ AC_FUNC_MMAP 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, @@ -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_CACHE_CHECK(whether MAP_ANON is defined, + ac_cv_map_anon, + AC_EGREP_CPP(yes, + [#include + #ifdef MAP_ANON + yes + #endif], + ac_cv_map_anon=yes, + ac_cv_map_anon=no)) + 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 defines MAP_FAILED]) 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 defines MAP_ANONYMOUS]) + fi + + if test $ac_cv_map_anon = yes; then + AC_DEFINE([HAVE_MAP_ANON], 1, [Define if defines MAP_ANON]) 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]])]) -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 @@ -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" + 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]) - 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 - 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_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" + 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" + AM_CONDITIONAL([NATIVE_THREADS], [false]) 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 - ZIP_LIBS="" - ZIP_C="" AC_MSG_RESULT(no) + AM_CONDITIONAL([USE_ZLIB], [false]) else - ZIP_LIBS="-lz" - ZIP_C="unzip.c" - AC_DEFINE([USE_ZLIB], 1, [use zlib]) AC_MSG_RESULT(yes) + AC_DEFINE([USE_ZLIB], 1, [use zlib]) + AC_CHECK_HEADERS([zlib.h]) AC_CHECK_LIB(z, main) + AM_CONDITIONAL([USE_ZLIB], [true]) 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 @@ -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) - 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 - AWT_OBJS="" - AWTPEERS="" - USEGTK="no" - AC_SUBST(USEGTK) - AC_SUBST(AWTPEERS) - AC_SUBST(AWT_OBJS) 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 +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 -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: