External classpath support.
authortwisti <none@none>
Fri, 18 Mar 2005 12:45:13 +0000 (12:45 +0000)
committertwisti <none@none>
Fri, 18 Mar 2005 12:45:13 +0000 (12:45 +0000)
configure.in
src/Makefile.am
src/lib/Makefile.am [new file with mode: 0644]

index 2f03cefccbc2fd6cf7b5782116c38fd81e90aa51..5ca764c3524039d069fde4970d5e626e9718e100 100644 (file)
@@ -241,14 +241,14 @@ green | native | posix | pthreads)
                CFLAGS="$CFLAGS -D_REENTRANT"
 
                dnl tell boehm to support threads as well
-               ac_configure_args="$ac_configure_args --enable-boehm-threads=posix"
+               CONFIGURE_ARGS="${CONFIGURE_ARGS} --enable-boehm-threads=posix"
                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"
+               CONFIGURE_ARGS="${CONFIGURE_ARGS} --disable-boehm-threads"
                AM_CONDITIONAL([NATIVE_THREADS], [false])
        fi
     ;;
@@ -336,26 +336,46 @@ if test x"$enable_gtk_peer" = "xyes"; then
        AC_MSG_RESULT(yes)
        AC_DEFINE([USE_GTK], 1, [use gtk])
        AM_CONDITIONAL([USE_GTK_PEER], [true])
-
 else
        AC_MSG_RESULT(no)
-       ac_configure_args="$ac_configure_args --disable-gtk-peer"
        AM_CONDITIONAL([USE_GTK_PEER], [false])
+       CONFIGURE_ARGS="${CONFIGURE_ARGS} --disable-gtk-peer"
 fi
 
 
-if test "x1" == "x$STATIC_CLASSPATH"; then
+if test "x$STATIC_CLASSPATH" = "x1"; then
         AC_DEFINE([STATIC_CLASSPATH], 1, [use classpath statically linked])
        AM_CONDITIONAL([STATIC_CLASSPATH], [true])
-
+       CONFIGURE_ARGS="${CONFIGURE_ARGS} --enable-static --disable-shared --disable-load-library"
 else
        AM_CONDITIONAL([STATIC_CLASSPATH], [false])
+       CONFIGURE_ARGS="${CONFIGURE_ARGS} --disable-static --enable-shared --enable-load-library"
+fi
+
+
+dnl should we use an external classpath installation
+AC_ARG_WITH([external-classpath], [AS_HELP_STRING(--with-external-classpath=<dir>,installation directory of external GNU classpath [[default=no]])])
+
+AC_MSG_CHECKING(whether to use an external GNU classpath)
+if test x"$with_external_classpath" != "x"; then
+       if test x"$with_external_classpath" = "xyes"; then
+               AC_MSG_ERROR(please specify the installation prefix)
+       fi
+       AC_MSG_RESULT($with_external_classpath)
+       AC_DEFINE([WITH_EXTERNAL_CLASSPATH], 1, [external classpath])
+       AM_CONDITIONAL([WITH_EXTERNAL_CLASSPATH], [true])
+       EXTERNAL_CLASSPATH_PREFIX="$with_external_classpath"
+       AC_DEFINE_UNQUOTED([EXTERNAL_CLASSPATH_PREFIX], "${EXTERNAL_CLASSPATH_PREFIX}", [external classpath directory])
+       AC_SUBST(EXTERNAL_CLASSPATH_PREFIX)
+else
+       AC_MSG_RESULT(no)
+       AM_CONDITIONAL([WITH_EXTERNAL_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 --libdir=${CACAO_INSTALL_PREFIX}/jre/lib/${ARCH_DIR} --enable-jni --disable-cni --disable-regen-headers --enable-static --enable-shared --enable-load-library"
+ac_configure_args="$ac_configure_args --libdir=${CACAO_INSTALL_PREFIX}/jre/lib/${ARCH_DIR} --enable-jni --disable-cni --disable-regen-headers ${CONFIGURE_ARGS}"
 
 
 dnl now configure boehm gc and gnu classpath
@@ -371,6 +391,7 @@ AC_CONFIG_FILES([Makefile]
                [src/Makefile]
                [src/cacao/Makefile]
                [src/cacaoh/Makefile]
+               [src/lib/Makefile]
                [src/mm/Makefile]
                [src/native/Makefile]
                [src/native/include/Makefile]
index 266da237a24eab17719abae8cc848b4d714fe7c4..b53a431483cdf1e92e93875bc39e2ad396456308 100644 (file)
@@ -1,3 +1,5 @@
+## src/Makefile.am
+##
 ## Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
 ## R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
 ## C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
 ##
 ## Changes:
 ##
-## $Id: Makefile.am 1999 2005-03-05 17:01:20Z twisti $
+## $Id: Makefile.am 2035 2005-03-18 12:45:13Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
-# keep this order!!!
+if WITH_EXTERNAL_CLASSPATH
+CLASSPATH = lib
+else
+CLASSPATH = classpath
+endif
+
+# Keep this order!!!
 
 SUBDIRS = \
        boehm-gc \
-       classpath \
+       $(CLASSPATH) \
        mm \
        toolbox \
        vm \
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
new file mode 100644 (file)
index 0000000..5054229
--- /dev/null
@@ -0,0 +1,84 @@
+## src/lib/Makefile.am
+##
+## Copyright (C) 1996-2005 R. Grafl, A. Krall, C. Kruegel, C. Oates,
+## R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
+## C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
+## Institut f. Computersprachen - TU Wien
+##
+## This file is part of CACAO.
+##
+## This program is free software; you can redistribute it and/or
+## modify it under the terms of the GNU General Public License as
+## published by the Free Software Foundation; either version 2, or (at
+## your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+##
+## Contact: cacao@complang.tuwien.ac.at
+##
+## Authors: Christian Thalinger
+##
+## Changes:
+##
+## $Id: Makefile.am 2035 2005-03-18 12:45:13Z twisti $
+
+## Process this file with automake to produce Makefile.in
+
+CLEANFILES = vm.zip
+
+JAVA_VM_FILES = \
+       $(top_srcdir)/src/classpath/vm/reference/gnu/java/nio/VMPipe.java \
+       $(top_srcdir)/src/classpath/vm/reference/gnu/java/nio/VMSelector.java \
+       $(top_srcdir)/src/classpath/vm/reference/gnu/classpath/VMSystemProperties.java \
+       $(top_srcdir)/src/classpath/vm/reference/gnu/classpath/VMStackWalker.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/io/VMFile.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/io/VMObjectStreamClass.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/reflect/Constructor.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/reflect/Field.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/reflect/Method.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMClass.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMClassLoader.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMCompiler.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMDouble.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMFloat.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMObject.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMProcess.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMRuntime.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMSystem.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMString.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMThread.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/lang/VMThrowable.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/security/VMAccessController.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/util/VMTimeZone.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/nio/channels/VMChannels.java \
+       $(top_srcdir)/src/classpath/vm/reference/java/nio/VMDirectByteBuffer.java
+
+#GLIBJ_ZIP = $(EXTERNAL_CLASSPATH_PREFIX)/share/classpath/glibj.zip
+GLIBJ_ZIP = ../classpath/lib/rt.jar
+
+vmzipdir = $(prefix)/jre/lib
+vmzip_DATA = vm.zip
+
+vm.zip: $(JAVA_VM_FILES)
+       jikes -bootclasspath $(GLIBJ_ZIP) -d classes $(JAVA_VM_FILES)
+       cd classes && zip -r ../vm.zip .
+
+clean-local:
+       -rm -rf classes
+
+
+## Local variables:
+## mode: Makefile
+## indent-tabs-mode: t
+## c-basic-offset: 4
+## tab-width: 8
+## compile-command: "automake --add-missing"
+## End: