]> Dogcows Code - chaz/vimcoder/blob - Makefile
targets should only depend on main class
[chaz/vimcoder] / Makefile
1
2 # Use this file with ``make'' to compile and package VimCoder.
3 # Supported targets: all clean distclean dist fetch jar
4
5 project = VimCoder
6 version = 0.3.1
7
8 sources = src/com/dogcows/VimCoder.java src/com/dogcows/Util.java src/com/dogcows/Editor.java
9 library = lib/ContestApplet.jar
10 jarfile = $(project)-$(version).jar
11
12 JAVAC = javac
13 JAVACFLAGS = -d . -sourcepath src -classpath $(library)
14
15
16 classes = $(sources:src/%.java=%.class)
17 all: $(firstword $(classes))
18
19 clean:
20 rm -rf META-INF com
21
22 distclean: clean
23 rm -rf lib
24
25 dist:
26 git archive HEAD --prefix=vimcoder-$(version)/ | bzip2 >vimcoder-$(version).tar.bz2
27
28 fetch: $(library)
29
30 jar: $(jarfile)
31
32
33 $(library):
34 @echo "Fetching dependencies..."
35 mkdir -p lib
36 curl -o $@ http://www.topcoder.com/contest/classes/ContestApplet.jar
37
38 $(jarfile): $(firstword $(classes)) META-INF/MANIFEST.MF
39 @echo "Packaging jar file..."
40 mkdir -p com/dogcows/resources
41 cp src/com/dogcows/resources/* com/dogcows/resources
42 rm -f $@
43 zip $@ META-INF/MANIFEST.MF COPYING README $$(find com -type f | sort)
44 @echo "Done."
45
46 $(classes): $(sources) $(library)
47 $(JAVAC) $(JAVACFLAGS) $<
48
49 META-INF/MANIFEST.MF:
50 mkdir -p META-INF
51 printf "Manifest-Version: 1.0\n\n" >$@
52
53
54 .PHONY: all clean distclean dist fetch jar
55
This page took 0.031937 seconds and 4 git commands to generate.