comparison Makefile @ 193:60871afc2702

Improve build process.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 23 Apr 2019 15:11:35 +0300
parents 189cd8fe2304
children f3302a2d7815
comparison
equal deleted inserted replaced
192:8dbaa093c562 193:60871afc2702
1 # Settings, directories 1 ###
2 RUN=Ristipolku.class 2 ### Settings, directories
3 ###
4 # Utils
5 JAVA = java
6 JAVA_FLAGS +=
7 JAVAC = javac
8 JAVAC_FLAGS += -g -Xlint:unchecked
9 JAVAC_FLAGS += -Xlint:deprecation
10
11
12 MAINCLASS=Ristipolku.class
3 JARFILE=Ristipolku.jar 13 JARFILE=Ristipolku.jar
4 14
5 SRC=game 15 SRC=game/
16
6 RESOURCES=\ 17 RESOURCES=\
7 graphics/*.png \ 18 graphics/*.png \
8 graphics/*.jpg \ 19 graphics/*.jpg \
9 graphics/font.ttf \ 20 graphics/font.ttf \
10 sounds/*.wav 21 sounds/*.wav
11 22
12 CLASSES=G.class \ 23
24 ifneq ($(V),1)
25 COMPILE_OBJ = @echo " JAVAC $<" && $(JAVAC) $(JAVAC_FLAGS) $<
26 else
27 COMPILE_OBJ = $(JAVAC) $(JAVAC_FLAGS) $<
28 endif
29
30
31 ###
32 ### Targets and generic rules
33 ###
34 TARGETS=$(MAINCLASS)
35
36 all: $(TARGETS)
37
38
39 $(SRC)%.class: $(SRC)%.java
40 $(COMPILE_OBJ)
41
42
43 ###
44 ### Class depencies
45 ###
46 $(SRC)IDMWidget.class: $(SRC)IDMPoint.class
47
48 $(SRC)IDMButton.class: $(SRC)IDMWidget.class
49
50 $(SRC)IDMContainer.class: $(SRC)IDMWidget.class
51
52 $(SRC)IDMWindow.class: $(SRC)IDMWidget.class
53
54 $(SRC)Engine.class: $(addprefix $(SRC),\
13 Piece.class PieceType.class \ 55 Piece.class PieceType.class \
14 Engine.class Interpolate.class \ 56 Interpolate.class \
15 ResourceLoader.class \ 57 ResourceLoader.class \
16 Sound.class SoundManager.class \ 58 Sound.class SoundManager.class \
17 IDMPoint.class IDMWidget.class \ 59 IDMPoint.class IDMWidget.class \
18 IDMButton.class IDMContainer.class \ 60 IDMButton.class IDMContainer.class \
19 IDMWindow.class \ 61 IDMWindow.class \
20 AnimatedPointElement.class 62 AnimatedPointElement.class)
21 63
22 # Utils 64 Ristipolku.class: Ristipolku.java $(addprefix $(SRC),\
23 JAVAC=javac 65 Engine.class)
24 JAVAC_FLAGS=-g -Xlint:unchecked 66 $(COMPILE_OBJ)
25 APPLETVIEWER=appletviewer
26
27
28 ###
29 ### Targets
30 ###
31 TARGETS=$(RUN)
32
33 all: $(TARGETS)
34
35 $(SRC)/%.class: $(SRC)/%.java
36 $(JAVAC) $(JAVAC_FLAGS) $<
37
38 Ristipolku.class: Ristipolku.java $(addprefix $(SRC)/,$(CLASSES))
39 $(JAVAC) $(JAVAC_FLAGS) $<
40 67
41 68
42 run: $(RUN) 69 run: $(RUN)
43 $(APPLETVIEWER) $(patsubst %.class,%.html,$<) 70 $(APPLETVIEWER) $(patsubst %.class,%.html,$<)
44 71
45 72
46 ### 73 ###
47 ### Package 74 ### Package
48 ### 75 ###
49 $(JARFILE): $(RUN) $(RESOURCES) 76 $(JARFILE): $(MAINCLASS) $(RESOURCES)
50 jar cvfm $@ manifest.txt $+ $(SRC)/*.class 77 jar cvfm $@ manifest.txt $(MAINCLASS) $(RESOURCES) $(SRC)*.class
51 78
52 79
53 upload: $(JARFILE) 80 upload: $(JARFILE)
54 @scp $+ ccr@tnsp.org:tnsp/ristipolku/ 81 @scp $+ ccr@tnsp.org:tnsp/ristipolku/
55 $(RM) $< 82 $(RM) $<
57 84
58 ### 85 ###
59 ### Cleanup 86 ### Cleanup
60 ### 87 ###
61 clean: 88 clean:
62 $(RM) $(TARGETS) *.class $(SRC)/*.class 89 $(RM) $(TARGETS) *.class $(SRC)*.class
63 90
64 91
65 srcclean: clean 92 srcclean: clean
66 $(RM) *~ game/*~ graphics/*~ 93 $(RM) *~ game/*~ graphics/*~
67 94