X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=configure.in;h=3dfe0ed03f0d5f1279fb62386752e5344396e00b;hb=3a192e50844d883a3879e0751c791c49955fec07;hp=58cc21790f1f85286c6e3a1fdca0efd125a8256e;hpb=da1ec0911ac5a27aa64cfce1649fdb56515db497;p=cacao.git diff --git a/configure.in b/configure.in index 58cc21790..3dfe0ed03 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ dnl autoconf; autoheader; automake dnl Process this file with autoconf to produce a configure script. -AC_INIT(jit.c) +AC_INIT(main.c) AC_CANONICAL_HOST AM_INIT_AUTOMAKE(cacao, 0.40) @@ -11,59 +11,50 @@ AC_PREFIX_DEFAULT(/usr/local/cacao) dnl system type -ASMPART="asmpart.S" case "$host_cpu" in alpha* ) - SYSDEP_DIR="alpha" + ARCH_DIR="alpha" CFLAGS="-mieee -O2 -g3 -D__ALPHA__" - COMPILER_OBJECTS="compiler.o" - AC_DEFINE(OLD_COMPILER) AC_DEFINE(TRACE_ARGS_NUM, 6) AC_DEFINE(USE_CODEMMAP) ;; +i386* | i486* | i586* | i686* ) + ARCH_DIR="i386" + CFLAGS="-Wall -O2 -g3 -D__I386__" + AC_DEFINE(TRACE_ARGS_NUM, 8) + AC_DEFINE(USE_CODEMMAP) + ;; + mips* ) - SYSDEP_DIR="mips" - ASMPART="asmpart.s" + ARCH_DIR="mips" CFLAGS="-64 -O2 -OPT:Olimit=0 -g -DMAP_ANONYMOUS=0 -woff 1110,1164,1515 -D__MIPS__" LIBS="-lelfutil" - COMPILER_OBJECTS="" AC_DEFINE(TRACE_ARGS_NUM, 8) ;; -i386* | i486* | i586* | i686* ) - SYSDEP_DIR="i386" - CFLAGS="-O0 -g3 -D__I386__" - COMPILER_OBJECTS="i386/libdisass.a" +powerpc* | ppc* ) + ARCH_DIR="powerpc" + CFLAGS="-O2 -g -DMAP_ANONYMOUS=0 -no-cpp-precomp" AC_DEFINE(TRACE_ARGS_NUM, 8) - AC_DEFINE(USE_CODEMMAP) ;; x86_64* ) - SYSDEP_DIR="x86_64" - CFLAGS="-O0 -g3 -D__X86_64__" - COMPILER_OBJECTS="x86_64/libdisass.a" + ARCH_DIR="x86_64" + CFLAGS="-O2 -g3 -D__X86_64__" AC_DEFINE(TRACE_ARGS_NUM, 6) AC_DEFINE(USE_CODEMMAP) ;; -powerpc* | ppc* ) - SYSDEP_DIR="powerpc" - CFLAGS="-O2 -g -DMAP_ANONYMOUS=0 -no-cpp-precomp" - COMPILER_OBJECTS="powerpc/libdisass.a" - AC_DEFINE(TRACE_ARGS_NUM, 8) - ;; - sparc* | * ) - AC_MSG_ERROR($target systems are not supported at this time) ;; - + AC_MSG_ERROR($host_cpu systems are not supported at this time) + ;; esac AC_SUBST(COMPILER_OBJECTS) -AC_SUBST(ASMPART) -AC_DEFINE_UNQUOTED(SYSDEP_DIR, "$SYSDEP_DIR") -AC_SUBST(SYSDEP_DIR) +AC_DEFINE_UNQUOTED(ARCH_DIR, "$ARCH_DIR") +AC_SUBST(ARCH_DIR) dnl Checks for programs. AC_PROG_CC @@ -95,6 +86,10 @@ AC_FUNC_MEMCMP AC_FUNC_MMAP AC_TYPE_SIGNAL AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket) +AC_CHECK_FUNCS(copysign copysignf) +AC_CHECK_FUNCS(finite finitef) +AC_CHECK_FUNCS(fmod fmodf) +AC_CHECK_FUNCS(isnan isnanf) dnl Check for mmap header anomalies (missing MAP_FAILED, etc.) if test $ac_cv_func_mmap_fixed_mapped = yes; then @@ -131,8 +126,12 @@ fi dnl Features dnl check arguments -AC_ARG_ENABLE(threads, [ --enable-threads enable threads support]) -AC_ARG_WITH(gc, [ --with-gc[=ARG] use garbage collector [gc2,gc1,boehm]]) +AC_ARG_ENABLE(threads, [ --enable-threads enable threads support [default yes]]) +AC_ARG_ENABLE([__thread], + [ --disable-__thread do not use TLS features even when supporting them], + [use__thread=$enablevalval], + [use__thread=yes]) + dnl threads AC_MSG_CHECKING(whether to include threads support) @@ -151,47 +150,155 @@ else AC_SUBST(THREAD_OBJ) fi -dnl garbage collector version -AC_MSG_CHECKING(which garbage collector to use) -case "$with_gc" in -boehm ) - AC_MSG_RESULT(Boehm garbage collector) - GC_OBJ="mm/libboehm.a libgc.a" - if test ! -e libgc.a; then - AC_MSG_ERROR([libgc.a not found, see README.boehm]) - fi - AC_DEFINE(USE_BOEHM) - BOEHM_LIB=libboehm.a - ;; -gc1 ) - AC_MSG_RESULT(old garbage collector) - GC_OBJ="mm/libmm_old.a" - ;; -gc2 | "" ) - AC_MSG_RESULT(new garbage collector) - GC_OBJ="mm/libmm_new.a" - ;; -* ) - AC_MSG_ERROR(Invalid GC) +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} $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) + fi +else + ac_cv_gcc___thread=no +fi + +dnl now configure boehm gc +AC_CONFIG_SUBDIRS(mm/boehm-gc) + + +AC_ARG_WITH(classcompiler, [ --with-classcompiler[=ARG] compiler for creating classpath [jikes,javac13,complang] [default=javac13]]) + +dnl java compiler +AC_MSG_CHECKING(which java compiler to use to use) +case "$with_classcompiler" in +jikes ) + AC_MSG_RESULT(jikes (good luck, doesn't seem to really work)) + CCOMP="jikes" + ;; +complang ) + AC_MSG_RESULT(complang, make sure that CLASSPATH is set correctly) + CCOMP="complang" + ;; +* | "") + AC_MSG_RESULT(javac13 (with -target 1.1)) + CCOMP="javac13complang" ;; esac -AC_SUBST(GC_OBJ) -AC_SUBST(BOEHM_LIB) + + +dnl check if zlib should be used +AC_ARG_ENABLE(zlib, [ --enable-zlib enable zip archive class storage (experimental), needs zlib [default no]]) + +AC_MSG_CHECKING(whether zip archives should be supported) +if test x"$enable_zlib" = "xyes"; then + ZIP_LIBS=-lz + ZIP_C=unzip.c + AC_DEFINE(USE_ZLIB) + AC_MSG_RESULT(yes) + +else + ZIP_LIBS="" + ZIP_C="" + AC_MSG_RESULT(no) + +fi +AC_SUBST(ZIP_LIBS) +AC_SUBST(ZIP_C) + +dnl check arguments +AC_ARG_ENABLE(gtkpeer, [ --enable-gtkpeer enable threads support [default no]]) + +dnl threads +AC_MSG_CHECKING(whether to use gtk awt peers) +if test x"$enable_gtkpeer" = "xyes"; then + AC_MSG_RESULT(yes) + AWTPEERS="java.awt.peer.ComponentPeer \ + java.awt.peer.MenuPeer \ + java.awt.peer.MenuItemPeer \ + gnu.java.awt.peer.gtk.GdkPixbufDecoder \ + 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.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.GtkGenericPeer \ + gnu.java.awt.peer.gtk.GtkListPeer \ + gnu.java.awt.peer.gtk.GtkLabelPeer \ + gnu.java.awt.peer.gtk.GtkTextAreaPeer \ + gnu.java.awt.peer.gtk.GtkCheckboxPeer \ + 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="gnuclasspathnat/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) + +else + AWT_OBJS= + AWTPEERS= + USEGTK=no + AC_SUBST(USEGTK) + AC_SUBST(AWTPEERS) + AC_SUBST(AWT_OBJS) + AC_MSG_RESULT(no) +fi AC_OUTPUT(Makefile \ - toolbox/Makefile \ mm/Makefile \ + toolbox/Makefile \ threads/Makefile \ jit/Makefile \ - alpha/Makefile \ - mips/Makefile \ - i386/Makefile \ - x86_64/Makefile \ - powerpc/Makefile \ + jit/loop/Makefile \ + jit/alpha/Makefile \ + jit/i386/Makefile \ + jit/mips/Makefile \ + jit/powerpc/Makefile \ + jit/x86_64/Makefile \ nat/Makefile \ doc/Makefile \ - comp/Makefile \ - narray/Makefile \ tst/Makefile \ tst/kaffe/Makefile \ jvmtst/Makefile ) + + +cd gnuclasspathnat +echo "========================================================================" +echo "calling: ./gnuclasspathnat/configure --prefix=$prefix/classpath --with-$CCOMP=yes --enable-jni=yes --enable-gtk-peer=$USEGTK --enable-shared=no --enable-static=yes --with-zip=no --enable-portable-native-sync -enable-java=no" +echo "========================================================================" + +./configure --prefix=$prefix/classpath --with-$CCOMP=yes \ + --enable-jni=yes --enable-gtk-peer=$USEGTK --enable-shared=no --enable-static=yes --with-zip=no \ + --enable-portable-native-sync -enable-java=no +cd .. + + +