Mercurial > hg > ristipolku
view Makefile @ 204:dd2caf5321ba
Improve build system.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 25 Feb 2022 15:46:07 +0200 |
parents | f6f8fd893c49 |
children | 76972d900783 |
line wrap: on
line source
### ### 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/ RESOURCES=\ graphics/*.png \ graphics/*.jpg \ graphics/font.ttf \ sounds/*.wav ### ### Functions and compilation/link commands ### ifneq ($(V),1) DO_CMD=/bin/echo -E " $(1) $(2)" && $(3) else DO_CMD=/bin/echo -E $(3) && $(3) endif DO_MKDIR=if test ! -z "$(1)" -a ! -d "$(1)"; then /bin/echo -E " MKDIR $(1)"; mkdir -p "$(1)"; fi COMPILE_JAVA_OBJ = \ @$(call DO_MKDIR,$(OBJPATH)) ; \ $(call DO_CMD,JAVAC,$<,$(JAVAC) $(JAVAC_FLAGS) $< $(1)) ### ### Targets and generic rules ### TARGETS = $(MAINCLASS) all: $(TARGETS) $(SRC)%.class: $(SRC)%.java $(call COMPILE_JAVA_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 \ Interpolate.class \ ResourceLoader.class \ Sound.class SoundManager.class \ IDMPoint.class IDMWidget.class \ IDMButton.class IDMContainer.class \ IDMWindow.class \ AnimatedPointElement.class) Ristipolku.class: Ristipolku.java $(addprefix $(SRC),\ Engine.class) $(call COMPILE_JAVA_OBJ,) run: $(MAINCLASS) @$(JAVA) $(JAVA_FLAGS) $(patsubst %.class,%,$<) ### ### Package ### $(JARFILE): $(MAINCLASS) $(RESOURCES) jar cvfm $@ manifest.txt $(MAINCLASS) $(RESOURCES) $(SRC)*.class ### ### Cleanup ### clean: -$(RM) $(TARGETS) *.class $(SRC)*.class distclean: clean -$(RM) *~ game/*~ graphics/*~ # dummy