LCGO
diff -u -r1.3 -r1.4
--- GNUmakefile 30 Oct 2006 10:52:18 -0000 1.3
+++ GNUmakefile 1 Nov 2006 13:47:13 -0000 1.4
@@ -1,13 +1,38 @@
-JDOM=jdom-1.0.jar
+JDOM=jdom-noxpath-1.0.jar
JEL=jel-0.9.10.jar
XERCES=xercesImpl-2.8.0.jar
+SAX=sax.jar
+DOM=dom.jar
+JAXP=jaxp-api.jar
+AELFRED=saxon-aelfred.jar
WORK=work
DIST=dist
-CLASSPATH=$(WORK)/jars/$(JDOM):$(WORK)/jars/$(JEL)
+UNAME:=$(shell uname)
+ifeq "$(UNAME)" "CYGWIN_NT-5.1"
+STATIC=1
+GCJ3=1
+endif
+
+ifdef RHEL4
+GCJ=gcj4
+GPP=g++4
+GCJH=gcjh4
+JAR=fastjar4
+else
+GCJ=gcj
+GPP=g++
+GCJH=gcjh
+ifdef GCJ3
+JAR=/usr/bin/jar
+else
+JAR=fastjar
+endif
+endif
+CP=$(WORK)/jars/$(JDOM):$(WORK)/jars/$(JEL):$(WORK)/jars/$(JAXP)
jsource := $(wildcard src/java/hep/gear/api/*.java)
jsource += $(wildcard src/java/hep/gear/base/*.java)
@@ -20,13 +45,12 @@
GEARBASESOURCES = $(cheaders)
-
.PHONY : all
all: test
$(WORK)/jars/$(JDOM):
mkdir -p $(WORK)/jars
- wget -P $(WORK)/jars http://www.ibiblio.org/maven/jdom/jars/$(JDOM)
+ wget -P $(WORK)/jars http://java.freehep.org/maven/aelfred/jars/$(JDOM)
$(WORK)/jars/$(JEL):
mkdir -p $(WORK)/jars
@@ -36,63 +60,85 @@
mkdir -p $(WORK)/jars
wget -P $(WORK)/jars http://www.ibiblio.org/maven/xerces/jars/$(XERCES)
+$(WORK)/jars/$(AELFRED):
+ mkdir -p $(WORK)/jars
+ wget -P $(WORK)/jars http://java.freehep.org/maven/aelfred/jars//$(AELFRED)
+
+$(WORK)/jars/$(JAXP):
+ mkdir -p $(WORK)/jars
+ wget -P $(WORK)/jars http://java.freehep.org/maven/aelfred/jars//$(JAXP)
+
+$(WORK)/jars/$(DOM):
+ mkdir -p $(WORK)/jars
+ wget -P $(WORK)/jars http://java.freehep.org/maven/aelfred/jars//$(DOM)
+
+$(WORK)/jars/$(SAX):
+ mkdir -p $(WORK)/jars
+ wget -P $(WORK)/jars http://java.freehep.org/maven/aelfred/jars//$(SAX)
+
$(DIST)/lib/%.jar.so : $(WORK)/jars/%.jar
mkdir -p $(DIST)/lib
- gcj -g -fPIC -findirect-dispatch -shared -o $@ $<
+ $(GCJ) -g --classpath="$(CP)" -fPIC -findirect-dispatch -shared -o $@ $<
-# Not currently used
-%.jar.a : %.jar
- gcj -c -g -findirect-dispatch -o $<.o $<
+$(DIST)/lib/%.jar.a : $(WORK)/jars/%.jar
+ mkdir -p $(DIST)/lib
+ $(GCJ) -c -g --classpath="$(CP)" -findirect-dispatch -o $<.o $<
ar rcs $@ $<.o
rm $<.o
$(DIST)/include/hep/lcgo/xml/reader/%.h: $(WORK)/jars/LCGO.jar
mkdir -p $(DIST)/include/hep/lcgo/xml/reader
- gcjh --classpath=$< -d $(DIST)/include hep.lcgo.xml.reader.$*
+ $(GCJH) --classpath="$<" -d $(DIST)/include hep.lcgo.xml.reader.$*
$(DIST)/include/hep/gear/api/%.h: $(WORK)/jars/LCGO.jar
mkdir -p $(DIST)/include/hep/gear/api
- gcjh --classpath=$< -d $(DIST)/include hep.gear.api.$*
+ $(GCJH) --classpath="$<" -d $(DIST)/include hep.gear.api.$*
$(DIST)/include/hep/gear/implementation/%.h: $(WORK)/jars/LCGO.jar
mkdir -p $(DIST)/include/hep/gear/implementation
- gcjh --classpath=$< -d $(DIST)/include hep.gear.implementation.$*
+ $(GCJH) --classpath="$<" -d $(DIST)/include hep.gear.implementation.$*
$(DIST)/include/hep/gear/base/%.h: $(WORK)/jars/LCGO.jar
mkdir -p $(DIST)/include/hep/gear/base
- gcjh --classpath=$< -d $(DIST)/include hep.gear.base.$*
+ $(GCJH) --classpath="$<" -d $(DIST)/include hep.gear.base.$*
$(DIST)/include/hep/gear/xml/%.h: $(WORK)/jars/LCGO.jar
mkdir -p $(DIST)/include/hep/gear/xml
- gcjh --classpath=$< -d $(DIST)/include hep.gear.xml.$*
+ $(GCJH) --classpath="$<" -d $(DIST)/include hep.gear.xml.$*
-$(WORK)/jars/LCGO.jar: src/java/hep/lcgo/xml/reader/*.java src/java/hep/lcgo/xml/reader/util/*.java src/java/hep/lcgo/util/cache/*.java $(jsource)
+$(WORK)/jars/LCGO.jar: src/java/hep/lcgo/xml/reader/*.java src/java/hep/lcgo/xml/reader/util/*.java src/java/hep/lcgo/util/cache/*.java $(jsource) $(WORK)/jars/$(JDOM) $(WORK)/jars/$(JEL) $(WORK)/jars/$(JAXP)
mkdir -p $(WORK)/classes
- gcj -d $(WORK)/classes --classpath=$(CLASSPATH) -C $^
- fastjar -cf $@ -C $(WORK)/classes .
+ $(GCJ) -d $(WORK)/classes --classpath=$(CP) -C $^
+ $(JAR) -cf $@ -C $(WORK)/classes .
$(WORK)/includes: src/include/* $(DIST)/include/hep/lcgo/xml/reader/LCGOReader.h $(DIST)/include/hep/lcgo/xml/reader/Detector.h $(DIST)/include/hep/lcgo/xml/reader/Constant.h $(GEARBASESOURCES)
cp -r src/include/*.h $(DIST)/include
touch $@
-#$(WORK)/includes: src/include/* $(DIST)/include/hep/lcgo/xml/reader/LCGOReader.h $(DIST)/include/hep/lcgo/xml/reader/Detector.h $(DIST)/include/hep/lcgo/xml/reader/Constant.h $(DIST)/include/hep/gear/base/Vector3D.h $(DIST)/include/hep/gear/base/Vector2D.h $(DIST)/include/hep/gear/base/Point3D.h $(DIST)/include/hep/gear/base/Point2D.h
-# cp -r src/include/*.h $(DIST)/include
-# touch $@
-
-
-$(WORK)/dist: $(DIST)/lib/$(XERCES).so $(DIST)/lib/$(JDOM).so $(DIST)/lib/$(JEL).so $(DIST)/lib/LCGO.jar.so $(DIST)/lib/LCGO.so $(WORK)/includes
+$(WORK)/dist: $(DIST)/lib/saxon-aelfred.jar.so $(DIST)/lib/jaxp-api.jar.so $(DIST)/lib/$(JDOM).so $(DIST)/lib/$(JEL).so $(DIST)/lib/LCGO.jar.so $(DIST)/lib/LCGO.so $(WORK)/includes
touch $@
$(DIST)/lib/LCGO.so: src/cpp/*.cc $(WORK)/includes
- gcj -o $@ -fPIC -shared -I$(DIST)/include src/cpp/*.cc
+ $(GCJ) -o $@ -fPIC -shared -I$(DIST)/include src/cpp/*.cc
+$(DIST)/lib/LCGO.a: src/cpp/*.cc $(WORK)/includes
+ $(GCJ) -c -I$(DIST)/include src/cpp/*.cc
+ ar rcs $@ *.o
+ rm *.o
+
+ifdef STATIC
+test: test.cc $(WORK)/includes $(DIST)/lib/LCGO.jar.a $(DIST)/lib/LCGO.a $(DIST)/lib/$(AELFRED).a $(DIST)/lib/$(JAXP).a $(DIST)/lib/$(JDOM).a $(DIST)/lib/$(JEL).a $(DIST)/lib/$(SAX).a $(DIST)/lib/$(DOM).a
+ $(GCJ) -o $@ -I$(DIST)/include test.cc $(DIST)/lib/LCGO.a $(DIST)/lib/LCGO.jar.a $(DIST)/lib/$(JDOM).a -Wl,--whole-archive $(DIST)/lib/$(AELFRED).a -Wl,--no-whole-archive $(DIST)/lib/$(JAXP).a $(DIST)/lib/$(JEL).a $(DIST)/lib/$(SAX).a $(DIST)/lib/$(DOM).a -lstdc++
+else
test: test.cc $(WORK)/dist
- gcj -g -c -o test.o -I$(DIST)/include test.cc
- g++ -o $@ test.o $(DIST)/lib/*.so -lgcj
-# g++ -g -o $@ -I$(DIST)/include $< $(DIST)/lib/*.so -lgcj
+ $(GCJ) -g -c -o test.o -I$(DIST)/include test.cc
+ $(GPP) -o $@ test.o $(DIST)/lib/*.so -lgcj
+# $(GPP) -g -o $@ -I$(DIST)/include $< $(DIST)/lib/*.so -lgcj
+endif
+
.PHONY : run
run: test
@@ -106,13 +152,13 @@
-rm -rf $(WORK)/includes
-rm -rf $(DIST)/include
-rm -rf $(DIST)/lib/LCGO*
- -rm test
+ -rm -f test test.exe
.PHONY : realclean
realclean:
-rm -rf $(WORK)
-rm -rf $(DIST)
- -rm test
+ -rm -f test test.exe