fix bug 548
[org.ibex.core.git] / Makefile
index 45e0233..8b85eb5 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,12 +18,12 @@ target := $(target_$(platform))
 
 all:         Java2 Linux Win32 Darwin Solaris
 
-clean:      ; rm -rf build; rm build/class/org/ibex/util/Preprocessor.class
+clean:      ; rm -rf build
 dist-clean:
        rm -rf .configure* .install* build .compile .build*
-       find upstream -name config.cache -exec rm {} \;
+       find upstream -name config.cache -exec rm -f {} \;
        test -e upstream/org.ibex.nestedvm && make -C upstream/org.ibex.nestedvm clean
-       rm .install_org.ibex.nestedvm
+       rm -f .install_org.ibex.nestedvm
 
 libwing_Linux := -Lupstream/install/i686-pc-linux-gnu/lib/
 libwing_Linux +=   upstream/install/i686-pc-linux-gnu/lib/libWINGs.a
@@ -101,7 +101,7 @@ plat_classes_Solaris  := org.ibex.plat.Solaris $(plat_classes_X11)
 plat_classes_Darwin   := org.ibex.plat.Darwin org.ibex.plat.OpenGL $(plat_classes_POSIX)
 
 plat_java_src_sources     := $(patsubst %,build/java/%.java,$(subst .,/,$(plat_classes_$(platform))))
-java_src_sources          := $(shell find src -name '*.java' | grep -v Preprocessor | grep -v /plat/)
+java_src_sources          := $(shell find src -name '*.java' | grep -v NanoGoat | grep -v Preprocessor | grep -v /plat/)
 java_src_sources          += $(plat_java_src_sources)
 java_sources              := $(patsubst src/%.java,     build/java/%.java, $(java_src_sources))
 
@@ -157,16 +157,14 @@ java_sources              += build/java/gnu/regexp/REFilterReader.java
 
 java_classes              := $(java_sources:build/java/%.java=build/class/%.class)
 java_classes              += build/class/gnu/regexp/CharUnit.class build/class/gnu/regexp/IntPair.class
-
-.PRECIOUS: $(java_classes) $(java_sources) *.java upstream/org.ibex.crypto/src/org/ibex/crypto/DER.java
+java_classes              += build/class/org/ibex/util/MIPSApps.class
 
 ### Java Source Files ##############################################################################
 
-upstream/org.ibex.crypto/%.java:;   @make .download_org.ibex.crypto
-upstream/org.ibex.nestedvm/%.java:; @make .download_org.ibex.nestedvm
-link_upstream =  build/java/$(1): $(2)/$(1);
-link_upstream += @echo -e "\033[1mlinking            .java -> .java:  $$@\033[0m";
-link_upstream += mkdir -p $$(@D); ln -fs `echo $$(@D)/ | sed 's_[^/]*//*_../_g'`/$$< $$@
+$(java_sources):: .download_org.ibex.crypto .download_org.ibex.nestedvm .download_gnu.regexp-1.1.4
+link_upstream  = build/java/$(1):: $(2)/$(1) $(3); \
+                 @echo -e "\033[1mlinking            .java -> .java:  $$@\033[0m"; \
+                 mkdir -p $$(@D); ln -fs `echo $$(@D)/ | sed 's_[^/]*//*_../_g'`/$$< $$@
 build/cc/%.cc:     src/%.c    ; @echo linking $@; mkdir -p $(@D); ln -fs `echo $(@D)/ | sed 's_[^/]*//*_../_g'`/$< $@
 build/res/%:       src/%      ; @echo linking $@; mkdir -p $(@D); ln -fs `echo $(@D)/ | sed 's_[^/]*//*_../_g'`/$< $@
 $(call link_upstream,org/xwt/mips/%.java,upstream/org.ibex.nestedvm/src,.download_org.ibex.nestedvm)
@@ -174,7 +172,7 @@ $(call link_upstream,org/ibex/crypto/%.java,upstream/org.ibex.crypto/src,.downlo
 $(call link_upstream,org/ibex/net/ssl/%.java,upstream/org.ibex.crypto/src,.download_org.ibex.crypto)
 $(call link_upstream,org/ibex/net/SSL.java,upstream/org.ibex.crypto/src,.download_org.ibex.crypto)
 $(call link_upstream,gnu/regexp/%.java,upstream/gnu.regexp-1.1.4/src/src)
-build/java/org/ibex/%.java: src/org/ibex/%.java build/class/org/ibex/util/Preprocessor.class
+build/java/org/ibex/%.java: src/org/ibex/%.java .download_gnu.regexp-1.1.4 build/class/org/ibex/util/Preprocessor.class
        @echo -e "\033[1mpreprocessing      .java -> .java:  $<\033[0m"
        mkdir -p `dirname $@`; java -cp build/class:upstream/gnu.regexp-1.1.4/src/src org.ibex.util.Preprocessor < $< > $@
 $(call link_upstream,%.java,src)
@@ -188,10 +186,12 @@ build/class/org/ibex/util/Preprocessor.class: src/org/ibex/util/Preprocessor.jav
        $(javac) $< src/org/ibex/util/Vec.java upstream/gnu.regexp-1.1.4/src/src/gnu/regexp/*.java
 
 compile: .compile
-.compile: .download_org.ibex.nestedvm .download_bcel-5.1 .download_gnu.regexp-1.1.4 $(java_sources)
+.compile: $(java_sources)
        @echo -e "\n\033[1mcompiling          .java -> .class\033[0m"
        @echo $(java_sources) | tr ' ' '\n' | sed 's_build/java/_    _' | sed 's_/_._g' | sed 's_.java$$__g'
+       @make -s $(java_sources)
        $(javac) $(java_sources)
+       touch $@
 
 build/class/org/ibex/util/MIPSApps.class: build/mips/mipsapps.mips .install_org.ibex.nestedvm 
        @mkdir -p build/java/org/ibex/util