]> Dogcows Code - chaz/vimcoder/blobdiff - Makefile
make the jar file also depend on the resources
[chaz/vimcoder] / Makefile
index 8442eec41ece7c136f559532367c28fbbb1bea2a..cb127255a780c50ab06e353eeb2973fdb4541563 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,21 +1,24 @@
 
-project                := VimCoder
-version                := 0.3.1
+# Use this file with GNU make to compile and package VimCoder.
+# Supported targets: all clean distclean dist fetch jar
 
-mainclass      = bin/com/dogcows/VimCoder.class
+project                = VimCoder
+version                = 0.3.2
+
+sources                = $(wildcard src/com/dogcows/*.java)
 library                = lib/ContestApplet.jar
 jarfile                = $(project)-$(version).jar
+resources      = $(wildcard src/com/dogcows/resources/*)
 
-JAVAC          := javac
-JAVACFLAGS     := -d bin -sourcepath src -classpath bin:$(library)
-
+JAVAC          = javac
+JAVACFLAGS     = -d . -sourcepath src -classpath $(library)
 
-.PHONY: all clean distclean dist fetch jar
 
-all: $(library) $(mainclass)
+classes                = $(sources:src/%.java=%.class)
+all: $(firstword $(classes))
 
 clean:
-       rm -rf bin build
+       rm -rf META-INF com
 
 distclean: clean
        rm -rf lib
@@ -25,20 +28,30 @@ dist:
 
 fetch: $(library)
 
-jar: all $(jarfile)
+jar: $(jarfile)
 
 
+$(classes): $(sources) $(library)
+       $(JAVAC) $(JAVACFLAGS) $<
+
 $(library):
-       sh make.sh fetch $@
+       @echo "Fetching dependencies..."
+       mkdir -p lib
+       curl -o $@ http://www.topcoder.com/contest/classes/ContestApplet.jar
 
-bin/com/dogcows/%.class: src/com/dogcows/%.java
-       mkdir -p bin/com/dogcows/resources &&\
-$(JAVAC) $(JAVACFLAGS) $< &&\
-cp -R src/com/dogcows/resources bin/com/dogcows/
+$(jarfile): $(classes) $(resources) META-INF/MANIFEST.MF
+       @echo "Packaging jar file..."
+       mkdir -p com/dogcows/resources
+       cp src/com/dogcows/resources/* com/dogcows/resources
+       rm -f $@
+       zip $@ META-INF/MANIFEST.MF COPYING README $$(find com -type f | sort)
+       @echo "Done."
 
-$(jarfile): $(mainclass)
-       sh make.sh jar $@
+META-INF/MANIFEST.MF:
+       @echo "Generating MANIFEST.MF..."
+       mkdir -p META-INF
+       printf "Manifest-Version: 1.0\n\n" >$@
 
 
-$(mainclass): src/com/dogcows/Util.java src/com/dogcows/Editor.java
+.PHONY: all clean distclean dist fetch jar
 
This page took 0.023776 seconds and 4 git commands to generate.