totally new file layout
[org.ibex.tool.git] / Makefile
index 5ec7444..e1e7642 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,55 @@
-sources = $(shell find src -name \*.java)
-classes = $(sources:src/%.java=build/%.class)
+i = jar/.org.ibex
+default: $i.core $i.mail
 
-default: org.ibex.tool.jar
+# dependencies
+$i.util:
+$i.crypto:   $i.util
+$i.io:       $i.util
+$i.classgen: $i.util jar/bcel.jar
+$i.gcclass:  $i.util jar/bcel.jar
+$i.nestedvm: $i.util jar/bcel.jar
+$i.net:      $i.util $i.io        $i.crypto
+$i.doc:      $i.util $i.io
+$i.js:       $i.util $i.io $i.net
+$i.jinetd:   $i.util $i.io $i.net $i.crypto $i.js
+$i.mail:     $i.util $i.io $i.net $i.crypto $i.js $i.jinetd jar/prevayler.jar
+$i.core:     $i.util $i.io $i.net $i.crypto $i.js                         $i.nestedvm
 
-org.ibex.tool.jar: $(classes)
-       @java -cp src:build org.ibex.tool.Compiler -j org.ibex.tool.jar -m org.ibex.tool.Compiler -v src
-       @cd src; jar -uf ../org.ibex.tool.jar `find . -name \*.rsc -or -name \*.properties`
+jar/.%: jar/org.ibex.tool.jar
+       @make -s repo/$*
+       @echo "Building        $*"
+       @cd repo/$*; java -Djava.ext.dirs=../../jar -jar ../../jar/org.ibex.tool.jar -s 1.5 -t 1.2 -v -w -j $*.jar src
+       @mv repo/$*/$*.jar jar/
+       @touch $@
 
-$(classes): $(sources)
-       @mkdir -p build
-       @javac -sourcepath java -d build -source 1.3 -target 1.1 \
-               $(sources)
+jar/bcel.jar:
+       @curl http://mirrors.mix5.com/apache/jakarta/bcel/binaries/bcel-5.1.tar.gz | tar -xzf - bcel-5.1/bcel-5.1.jar
+       @mv bcel-5.1/bcel-5.1.jar jar/bcel.jar
+       @rmdir bcel-5.1
+
+jar/prevayler.jar:
+       @curl http://voxel.dl.sourceforge.net/sourceforge/prevayler/prevayler-2.02.005.tar.gz | \
+               tar -xzf - prevayler-2.02.005/prevayler-2.02.005.jar
+       @mv prevayler-2.02.005/prevayler-2.02.005.jar jar/prevayler.jar
+       @rmdir prevayler-2.02.005
+
+repo/%:
+       @test -e $* || (echo "Fetching        $*"; \
+                        darcs get -q --repo repo/$*-   \
+                               http://`echo $* | sed 's_\([^.]*\).\([^.]*\).\([^.]*\)_\3.\2.\1_'`; mv repo/$*- repo/$*; true)
 
-clean:
+jar/org.ibex.tool.jar:
+       @mkdir -p build
+       @mkdir -p jar
+       @echo "Building        org.ibex.tool"
+       @javac -sourcepath java -d build -source 1.3 -target 1.1 $(shell find repo/org.ibex.tool/src -name \*.java)
+       @echo "Bootstrapping   org.ibex.tool"
+       @java -cp repo/org.ibex.tool/src:build \
+               org.ibex.tool.Compiler -v \
+                       -j jar/org.ibex.tool.jar \
+                       -m org.ibex.tool.Compiler \
+                       repo/org.ibex.tool/src
+       @cd repo/org.ibex.tool/src; jar -uf ../../../jar/org.ibex.tool.jar `find . -name \*.rsc -or -name \*.properties`
+       @echo "Cleaning        org.ibex.tool"
        @rm -rf build
+