comparison Makefile @ 165:0303db4df28f

Improve build system.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 01 Mar 2017 13:56:08 +0200
parents e8eeac403e5f
children 88b364dfd501
comparison
equal deleted inserted replaced
164:2b2fa62cfea5 165:0303db4df28f
1 # Settings, directories 1 # Settings, directories
2 RUN=Ristipolku.class 2 RUN=Ristipolku.class
3 JARFILE=Ristipolku.jar
3 4
4 RESOURCES=graphics/*.png graphics/*.jpg graphics/font.ttf sounds/*.wav 5 SRC=game
6 RESOURCES=\
7 graphics/*.png \
8 graphics/*.jpg \
9 graphics/font.ttf \
10 sounds/*.wav
5 11
6 CLASSES=game/G.class \ 12 CLASSES=G.class \
7 game/Piece.class game/PieceType.class \ 13 Piece.class PieceType.class \
8 game/Engine.class game/Interpolate.class \ 14 Engine.class Interpolate.class \
9 game/ResourceLoader.class \ 15 ResourceLoader.class \
10 game/Sound.class game/SoundManager.class \ 16 Sound.class SoundManager.class \
11 game/IDMPoint.class game/IDMWidget.class \ 17 IDMPoint.class IDMWidget.class \
12 game/IDMButton.class game/IDMContainer.class \ 18 IDMButton.class IDMContainer.class \
13 game/AnimatedPointElement.class 19 AnimatedPointElement.class
14 20
15 # Utils 21 # Utils
16 JAVAC=javac -g -Xlint:unchecked 22 JAVAC=javac
23 JAVAC_FLAGS=-g -Xlint:unchecked
17 APPLETVIEWER=aoss appletviewer 24 APPLETVIEWER=aoss appletviewer
25
18 26
19 ### 27 ###
20 ### Targets 28 ### Targets
21 ### 29 ###
22 TARGETS=$(RUN) 30 TARGETS=$(RUN)
23 31
24 all: $(TARGETS) 32 all: $(TARGETS)
25 33
26 game/%.class: game/%.java 34 $(SRC)/%.class: $(SRC)/%.java
27 $(JAVAC) $< 35 $(JAVAC) $(JAVAC_FLAGS) $<
28 36
29 Ristipolku.class: Ristipolku.java $(CLASSES) 37 Ristipolku.class: Ristipolku.java $(addprefix $(SRC)/,$(CLASSES))
30 $(JAVAC) $< 38 $(JAVAC) $(JAVAC_FLAGS) $<
31 39
32 40
33 run: $(RUN) 41 run: $(RUN)
34 $(APPLETVIEWER) $(patsubst %.class,%.html,$<) 42 $(APPLETVIEWER) $(patsubst %.class,%.html,$<)
35 43
36 44
37 ### 45 ###
38 ### Package 46 ### Package
39 ### 47 ###
40 Ristipolku.jar: $(RUN) $(RESOURCES) 48 $(JARFILE): $(RUN) $(RESOURCES)
41 jar cvfm $@ manifest.txt $+ game/*.class 49 jar cvfm $@ manifest.txt $+ $(SRC)/*.class
42 50
43 51
44 upload: Ristipolku.jar 52 upload: $(JARFILE)
45 @scp $+ ccr@tnsp.org:tnsp/ristipolku/ 53 @scp $+ ccr@tnsp.org:tnsp/ristipolku/
46 $(RM) $< 54 $(RM) $<
47 55
48 56
49 ### 57 ###
50 ### Cleanup 58 ### Cleanup
51 ### 59 ###
52 clean: 60 clean:
53 $(RM) $(TARGETS) *.class game/*.class 61 $(RM) $(TARGETS) *.class $(SRC)/*.class
54 62
55 63
56 srcclean: clean 64 srcclean: clean
57 $(RM) *~ game/*~ graphics/*~ 65 $(RM) *~ game/*~ graphics/*~
58 66