Hi all,
the attached patch adds the possibility to use a prebuilt glibj.zip,
rather than rebuilding it. This is handy when you are building Classpath
on a platform where the shell scripts using during the build of the
class library fall appart due to use of shell constructs like test -ef.
Then you can just reuse the a glibj.zip you build on another platform.
It is also handy when building GNU Classpath on platforms without much
memory, since the class library build step easily eats a few hundreds of
megabytes away. Finally, it is pretty useful for fast builds in
different configurations, which is something I do for kaffe before
releases on multiple platforms, where having to re-rebuild the class
library a few dozen of times is a bit of a waste.
I am sure there are other good uses, too.
cheers,
dalibor topic
2006-04-02 Dalibor Topic <[EMAIL PROTECTED]>
* configure.ac (with-glibj-zip): Added new option.
* examples/Makefile.am,
lib/Makefile.am,
tools/Makefile.am: Adapted build classpath to use glibj.zip,
in addition to classes in lib directory.
Index: configure.ac
===================================================================
RCS file: /sources/classpath/classpath/configure.ac,v
retrieving revision 1.141
diff -u -r1.141 configure.ac
--- configure.ac 2 Apr 2006 02:11:32 -0000 1.141
+++ configure.ac 2 Apr 2006 20:52:02 -0000
@@ -584,6 +584,33 @@
AX_CREATE_STDINT_H([include/config-int.h])
+dnl -----------------------------------------------------------------------
+dnl Support for using a prebuilt class library
+dnl -----------------------------------------------------------------------
+AC_ARG_WITH([glibj_zip],
+ AS_HELP_STRING([--with-glibj-zip=ABS.PATH],
+ [use prebuilt glibj.zip class library]))
+
+case "$with_glibj_zip" in
+"")
+ use_glibj_zip=false
+ ;;
+"no" )
+ use_glibj_zip=false
+ ;;
+"yes")
+ AC_MSG_ERROR([Please suply an absolute path to a prebuilt glibj.zip])
+ ;;
+*)
+ use_glibj_zip=true
+ PATH_TO_GLIBJ_ZIP=$with_glibj_zip
+ ;;
+esac;
+
+AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
+AC_SUBST(PATH_TO_GLIBJ_ZIP)
+
+
dnl -----------------------------------------------------------
dnl output files
dnl -----------------------------------------------------------
Index: examples/Makefile.am
===================================================================
RCS file: /sources/classpath/classpath/examples/Makefile.am,v
retrieving revision 1.11
diff -u -r1.11 Makefile.am
--- examples/Makefile.am 29 Mar 2006 20:24:36 -0000 1.11
+++ examples/Makefile.am 2 Apr 2006 20:52:03 -0000
@@ -1,17 +1,18 @@
## Input file for automake to generate the Makefile.in used by configure
+GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip'
# Setup the compiler to use the GNU Classpath library we just build
if FOUND_GCJ
-JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath '$(top_builddir)/lib' --classpath . -C
+JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C
else
if FOUND_JIKES
-JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:.
+JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):.
else
if FOUND_GCJX
-JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(top_builddir)/lib:.
+JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):.
else
if FOUND_ECJ
-JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath '$(top_builddir)/lib' -classpath .
+JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
else
error dunno how to setup the JCOMPILER and compile
endif
Index: lib/Makefile.am
===================================================================
RCS file: /sources/classpath/classpath/lib/Makefile.am,v
retrieving revision 1.114
diff -u -r1.114 Makefile.am
--- lib/Makefile.am 31 Mar 2006 22:42:19 -0000 1.114
+++ lib/Makefile.am 2 Apr 2006 20:52:06 -0000
@@ -87,10 +87,19 @@
.PHONY: genclasses
+if USE_PREBUILT_GLIBJ_ZIP
+
+glibj.zip:
+ cp $(PATH_TO_GLIBJ_ZIP) .
+
+else
+
glibj.zip: classes compile-classes resources
if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org META-INF > /dev/null; fi
if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org META-INF; fi
+endif # USE_PREBUILT_GLIBJ_ZIP
+
resources: copy-vmresources.sh
if ! [ -e gnu ]; then mkdir gnu; fi
if ! [ -e gnu/java ]; then mkdir gnu/java; fi
Index: tools/Makefile.am
===================================================================
RCS file: /sources/classpath/classpath/tools/Makefile.am,v
retrieving revision 1.10
diff -u -r1.10 Makefile.am
--- tools/Makefile.am 2 Apr 2006 16:58:06 -0000 1.10
+++ tools/Makefile.am 2 Apr 2006 20:52:06 -0000
@@ -1,17 +1,19 @@
## Input file for automake to generate the Makefile.in used by configure
+GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip'
+
# Setup the compiler to use the GNU Classpath library we just build
if FOUND_GCJ
-JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath '$(top_builddir)/lib' --classpath . -C
+JCOMPILER = $(GCJ) -encoding UTF-8 --bootclasspath $(GLIBJ_CLASSPATH) --classpath . -C
else
if FOUND_JIKES
-JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:.
+JCOMPILER = $(JIKES) $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(GLIBJ_CLASSPATH):.
else
if FOUND_GCJX
-JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(top_builddir)/lib:.
+JCOMPILER = $(GCJX) -encoding UTF-8 -bootclasspath '' -sourcepath '' -classpath $(GLIBJ_CLASSPATH):.
else
if FOUND_ECJ
-JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath '$(top_builddir)/lib' -classpath .
+JCOMPILER = $(ECJ) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
else
error dunno how to setup the JCOMPILER and compile
endif
@@ -19,9 +21,6 @@
endif
endif
-bin_SCRIPTS = jarsigner.sh
-EXTRA_DIST = jarsigner.sh.in
-
# All our example java source files
TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*.java $(srcdir)/gnu/classpath/tools/*/*.java $(srcdir)/gnu/classpath/tools/*/*/*.java
@@ -33,7 +32,7 @@
BUILT_SOURCES = $(TOOLS_ZIP)
# The templates that must be included into the generated zip file.
-GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav
+GRMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/giop/grmic/templates/*.jav
RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmi/rmic/templates/*.jav
TOOLS_TEMPLATES = $(GRMIC_TEMPLATES) $(RMIC_TEMPLATES)
@@ -41,9 +40,8 @@
# This covers the built-in help texts, both for giop and rmic subpackages.
GIOP_HELPS = $(srcdir)/gnu/classpath/tools/giop/*.txt
RMI_HELPS = $(srcdir)/gnu/classpath/tools/rmi/*.txt
-SECURITY_HELPS = $(srcdir)/gnu/classpath/tools/jarsigner/*.txt
-TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS) $(SECURITY_HELPS)
+TOOLS_HELPS = $(GIOP_HELPS) $(RMI_HELPS)
# The tool specific README files.
READMES = $(srcdir)/gnu/classpath/tools/giop/README
@@ -78,13 +76,11 @@
$(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
mkdir -p classes/gnu/classpath/tools/giop/grmic/templates
mkdir -p classes/gnu/classpath/tools/rmi/rmic/templates
- mkdir -p classes/gnu/classpath/tools/jarsigner
cp $(RMIC_TEMPLATES) classes/gnu/classpath/tools/rmi/rmic/templates
- cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates
+ cp $(GRMIC_TEMPLATES) classes/gnu/classpath/tools/giop/grmic/templates
cp $(RMI_HELPS) classes/gnu/classpath/tools/rmi/
cp $(GIOP_HELPS) classes/gnu/classpath/tools/giop/
- cp $(SECURITY_HELPS) classes/gnu/classpath/tools/jarsigner/
- $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES)
+ $(JCOMPILER) -d classes $(TOOLS_JAVA_FILES)
(cd classes; \
if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \