X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fvimcoder;a=blobdiff_plain;f=Makefile;h=cb127255a780c50ab06e353eeb2973fdb4541563;hp=8442eec41ece7c136f559532367c28fbbb1bea2a;hb=fabb7e8d373d2ea2bc6b65b117c9cb0a0a03c114;hpb=d097989661f2974a1f3035b422a1e74813cd1108 diff --git a/Makefile b/Makefile index 8442eec..cb12725 100644 --- 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