Makefiles: add pre-build
[nit.git] / contrib / jwrapper / Makefile
index a6aa956..3173333 100644 (file)
@@ -1,5 +1,7 @@
 all: bin/jwrapper
 
+pre-build: src/javap_test_parser.nit src/serial.nit
+
 ../nitcc/src/nitcc:
        make -C ../nitcc
 
@@ -9,9 +11,12 @@ src/javap_test_parser.nit: ../nitcc/src/nitcc grammar/javap.sablecc
        mv javap_*.nit src/
        mv javap* gen/
 
-bin/jwrapper: src/javap_test_parser.nit $(shell ../../bin/nitls -M src/jwrapper.nit) ../../bin/nitc
+src/serial.nit: $(shell ../../bin/nitls -M src/jwrapper.nit)
+       ../../bin/nitserial -o src/serial.nit -d package src/jwrapper.nit
+
+bin/jwrapper: src/javap_test_parser.nit src/serial.nit $(shell ../../bin/nitls -M src/jwrapper.nit) ../../bin/nitc
        mkdir -p bin
-       ../../bin/nitc src/jwrapper.nit -o bin/jwrapper
+       ../../bin/nitc src/jwrapper.nit -o bin/jwrapper -m src/serial.nit
 
 clean:
        rm -f bin/javap_test_parser bin/jwrapper
@@ -20,6 +25,10 @@ clean:
 
 check: bin/jwrapper tests/wildcards.javap
        mkdir -p tmp
+       bin/jwrapper -v -u stub -o tests/statics.nit tests/statics.javap
+       ../../bin/nitpick -q tests/statics.nit
+       bin/jwrapper -v -u comment -o tests/generics.nit tests/generics.javap
+       ../../bin/nitpick -q tests/generics.nit
        bin/jwrapper -v -u comment -o tests/long.nit tests/long.javap
        ../../bin/nitpick -q tests/long.nit
        bin/jwrapper -v -u comment -o tests/inits.nit tests/inits.javap
@@ -30,10 +39,32 @@ check: bin/jwrapper tests/wildcards.javap
        ../../bin/nitpick -q tests/many.nit
        bin/jwrapper -v -u comment -o tests/wildcards.nit tests/wildcards.javap
        ../../bin/nitpick -q tests/wildcards.nit
+       make -C examples/queue/ check
+       make -C examples/java_api/ check
 
 check-libs: bin/jwrapper
        # This config dependent rule must be tweaked according to each system
-       bin/jwrapper -v -u ignore -o tests/rt.nit /usr/lib/jvm/default-java/jre/lib/rt.jar
-       bin/jwrapper -v -u ignore -o tests/java_tools.nit /usr/lib/jvm/default-java/lib/tools.jar
-       bin/jwrapper -v -u ignore -o tests/sablecc.nit ~/apps/sablecc-3-beta.3.altgen.20041114/lib/sablecc.jar
-       bin/jwrapper -v -u ignore -o tests/android.nit ~/sdks/android-sdk/platforms/android-10/android.jar
+
+       # The full local Java standard library
+       bin/jwrapper -v -u comment -o tests/rt_full.nit /usr/lib/jvm/default-java/jre/lib/rt.jar
+       echo "+ Disabled functions: `grep '#    fun' tests/rt_full.nit | wc -l` / `grep '^      fun' tests/rt_full.nit | wc -l`"
+       nitpick tests/rt_full.nit
+
+       # Only the `java` namespace of the standard library to avoid conflicts with other libs
+       bin/jwrapper -v -u comment -o tests/rt.nit /usr/lib/jvm/default-java/jre/lib/rt.jar -r ^java
+       echo "+ Disabled functions: `grep '#    fun' tests/rt.nit | wc -l` / `grep '^   fun' tests/rt.nit | wc -l`"
+       nitpick tests/rt.nit
+
+       # tools.jar, not using the standard library because of conflicts on sun.tools.jar.*
+       bin/jwrapper -v -u comment -o tests/java_tools.nit /usr/lib/jvm/default-java/lib/tools.jar -i tests/rt.nit
+       sed -i -e "s/import java/import java\nimport rt/" tests/java_tools.nit
+       echo "+ Disabled functions: `grep '#    fun' tests/java_tools.nit | wc -l` / `grep '^   fun' tests/java_tools.nit | wc -l`"
+       nitpick tests/java_tools.nit
+
+       # SableCC using the standard Java library
+       bin/jwrapper -v -u comment -o tests/sablecc.nit ~/apps/sablecc-3-beta.3.altgen.20041114/lib/sablecc.jar -i tests/rt.nit
+       sed -i -e "s/import java/import java\nimport rt/" tests/sablecc.nit
+       echo "+ Disabled functions: `grep '#    fun' tests/sablecc.nit | wc -l` / `grep '^      fun' tests/sablecc.nit | wc -l`"
+       nitpick tests/sablecc.nit
+
+       make -C examples/android_api/ check