totally new file layout
[org.ibex.tool.git] / Makefile
index dcd5829..e1e7642 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,55 @@
-default: $(patsubst src/java/%.java,build/%.class,$(shell find src/java -name \*.java))
-       @cp -R src/rsc/* build/
+i = jar/.org.ibex
+default: $i.core $i.mail
 
-build/%.class:
-       @mkdir -p build
-       @echo "Compiling       $(subst /,.,$*)"
-       @javac -sourcepath src/java -d build -source 1.3 -target 1.1 \
-               src/java/$*.java
+# 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
+
+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 $@
+
+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
 
-clean:
+repo/%:
+       @test -e $* || (echo "Fetching        $*"; \
+                        darcs get -q --repo repo/$*-   \
+                               http://`echo $* | sed 's_\([^.]*\).\([^.]*\).\([^.]*\)_\3.\2.\1_'`; mv repo/$*- repo/$*; true)
+
+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
+