view Makefile @ 205:76972d900783 default tip

Fix verbose build echos.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 29 Feb 2024 21:49:56 +0200
parents dd2caf5321ba
children
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