Files
artloglaby/java/Makefile
philippe lhardy 0b33e56e0a clean out
add interface/InterfaceName target to create a template interface
move generate_newclass.sh to generate_new.sh and take class or interface as argument

Signed-off-by: philippe lhardy <philippe@pavilionartlogiciel>
2015-02-19 22:21:44 +01:00

54 lines
1.3 KiB
Makefile

PACKAGE=org.artisanlogiciel.games
PACKAGE_DIR=$(subst .,/,$(PACKAGE))
OUT=out
EDITOR=emacs
$(OUT):
mkdir -p $(OUT)
clean:
@find $(OUT) -name "*.class" -type f -print0|xargs -0 rm 2>/dev/null || echo "nothing to clean"
test:
javac -d $(OUT) $(PACKAGE_DIR)/LabyModel.java
javac -d $(OUT) $(PACKAGE_DIR)/Main.java
java -cp $(OUT) $(PACKAGE).Main
run/%: $(OUT)
javac -d $(OUT) $(PACKAGE_DIR)/$(subst run/,,$@).java
java -cp $(OUT) $(PACKAGE)/$(subst run/,,$@)
display: run/Display
display/%: $(OUT)
javac -d $(OUT) $(PACKAGE_DIR)/Display.java
java -cp $(OUT) $(PACKAGE).Display $(subst display/,,$@)
compile/%:
javac -d $(OUT) $(PACKAGE_DIR)/$(subst compile/,,$@).java
$(PACKAGE_DIR)/%.java:
./generate_new.sh class $(subst .java,,$(subst $(PACKAGE_DIR)/,,$@))
interface/%:
./generate_new.sh interface package_dir=$(PACKAGE_DIR) $(subst interface/,,$@)
$(EDITOR) $(PACKAGE_DIR)/$(subst interface/,,$@).java
work/%: $(PACKAGE_DIR)/$(subst work/,,%).java
$(EDITOR) $<
work: work/LabyModel
save:
git citool
.PHONY: clean test work display work/% run/% save compile/% interface/%
# tried to avoid intermediate file removal : does not work
# .SECONDARY: $(PACKAGE_DIR)/%.java
# this does work : once precious intermediate file is not removed.
.PRECIOUS: $(PACKAGE_DIR)/%.java