DESTDIR ?= JAR_DIR ?= /usr/share/java FAIL = exit 1 INSTALL = install JAR = jar JAVAC = javac MKDIRS = mkdir -p RM = rm -f TOUCH = touch all: PHONY jlex.jar jlex.jar: classes $(JAR) cfe $@ JLex.Main -C $< . classes: Main.java $(RM) -r $@ $(MKDIRS) $@ $(JAVAC) -d $@ $< || { $(RM) -r $@; $(FAIL); } $(TOUCH) $@ install: PHONY $(DESTDIR)$(JAR_DIR)/jlex.jar $(DESTDIR)$(JAR_DIR)/%.jar: %.jar $(INSTALL) -Dm644 $< $@ clean: PHONY $(RM) -r -- build *.jar .PHONY: PHONY .DELETE_ON_ERROR: .SECONDARY: