changeset 193:60871afc2702

Improve build process.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 23 Apr 2019 15:11:35 +0300
parents 8dbaa093c562
children f8626a142c4d
files Makefile
diffstat 1 files changed, 54 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Tue Apr 23 13:00:25 2019 +0300
+++ b/Makefile	Tue Apr 23 15:11:35 2019 +0300
@@ -1,42 +1,69 @@
-# Settings, directories
-RUN=Ristipolku.class
+###
+### Settings, directories
+###
+# Utils
+JAVA = java
+JAVA_FLAGS +=
+JAVAC = javac
+JAVAC_FLAGS += -g -Xlint:unchecked
+JAVAC_FLAGS += -Xlint:deprecation
+
+
+MAINCLASS=Ristipolku.class
 JARFILE=Ristipolku.jar
 
-SRC=game
+SRC=game/
+
 RESOURCES=\
 	graphics/*.png \
 	graphics/*.jpg \
 	graphics/font.ttf \
 	sounds/*.wav
 
-CLASSES=G.class \
+
+ifneq ($(V),1)
+COMPILE_OBJ = @echo " JAVAC $<" && $(JAVAC) $(JAVAC_FLAGS) $<
+else
+COMPILE_OBJ = $(JAVAC) $(JAVAC_FLAGS) $<
+endif
+
+
+###
+### Targets and generic rules
+###
+TARGETS=$(MAINCLASS)
+
+all: $(TARGETS)
+
+
+$(SRC)%.class: $(SRC)%.java
+	$(COMPILE_OBJ)
+
+
+###
+### Class depencies
+###
+$(SRC)IDMWidget.class: $(SRC)IDMPoint.class
+
+$(SRC)IDMButton.class: $(SRC)IDMWidget.class
+
+$(SRC)IDMContainer.class: $(SRC)IDMWidget.class
+
+$(SRC)IDMWindow.class: $(SRC)IDMWidget.class
+
+$(SRC)Engine.class: $(addprefix $(SRC),\
 	Piece.class PieceType.class \
-	Engine.class Interpolate.class \
+	Interpolate.class \
 	ResourceLoader.class \
 	Sound.class SoundManager.class \
 	IDMPoint.class IDMWidget.class \
 	IDMButton.class IDMContainer.class \
 	IDMWindow.class \
-	AnimatedPointElement.class
-
-# Utils
-JAVAC=javac
-JAVAC_FLAGS=-g -Xlint:unchecked
-APPLETVIEWER=appletviewer
-
+	AnimatedPointElement.class)
 
-###
-### Targets
-###
-TARGETS=$(RUN)
-
-all: $(TARGETS)
-
-$(SRC)/%.class: $(SRC)/%.java
-	$(JAVAC) $(JAVAC_FLAGS) $<
-
-Ristipolku.class: Ristipolku.java $(addprefix $(SRC)/,$(CLASSES))
-	$(JAVAC) $(JAVAC_FLAGS) $<
+Ristipolku.class: Ristipolku.java $(addprefix $(SRC),\
+	Engine.class)
+	$(COMPILE_OBJ)
 
 
 run: $(RUN)
@@ -46,8 +73,8 @@
 ###
 ### Package
 ###
-$(JARFILE): $(RUN) $(RESOURCES)
-	jar cvfm $@ manifest.txt $+ $(SRC)/*.class
+$(JARFILE): $(MAINCLASS) $(RESOURCES)
+	jar cvfm $@ manifest.txt $(MAINCLASS) $(RESOURCES) $(SRC)*.class
 
 
 upload: $(JARFILE)
@@ -59,7 +86,7 @@
 ### Cleanup
 ###
 clean:
-	$(RM) $(TARGETS) *.class $(SRC)/*.class
+	$(RM) $(TARGETS) *.class $(SRC)*.class
 
 
 srcclean: clean