totally new file layout
[org.ibex.tool.git] / Makefile
index 748de1a..e1e7642 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,20 +1,55 @@
-default: dist
+i = jar/.org.ibex
+default: $i.core $i.mail
 
-classes := ibex.tool.Preprocessor
+# 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
 
-sourcepath := src/java
-buildpath  := build/class
+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 $@
 
-version      := $(shell cat VERSION)
-java_sources := $(patsubst %,$(sourcepath)/%.java,$(subst .,/,$(classes)))
-java_classes := $(patsubst %,%.class,$(subst .,/,$(classes)))
+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
 
-compile:
-       mkdir -p $(buildpath)
-       javac -sourcepath $(sourcepath) -source 1.3 -target 1.1 -d $(buildpath) \
-       $(java_sources)
+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
 
-dist: compile
-       jar cf ibex-tool-$(version).jar -C $(buildpath) $(java_classes)
+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
 
-clean:;        rm -rf build