From: twisti Date: Fri, 18 Mar 2005 12:45:13 +0000 (+0000) Subject: External classpath support. X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=ff8f072e317898bb96663141fd5f27f22f284880;p=cacao.git External classpath support. --- diff --git a/configure.in b/configure.in index 2f03cefcc..5ca764c35 100644 --- a/configure.in +++ b/configure.in @@ -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=,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] diff --git a/src/Makefile.am b/src/Makefile.am index 266da237a..b53a43148 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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, @@ -26,15 +28,21 @@ ## ## 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 index 000000000..5054229fb --- /dev/null +++ b/src/lib/Makefile.am @@ -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: