diff options
Diffstat (limited to 'rules/java_cup/Makefile')
-rw-r--r-- | rules/java_cup/Makefile | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/rules/java_cup/Makefile b/rules/java_cup/Makefile new file mode 100644 index 0000000..7d60a02 --- /dev/null +++ b/rules/java_cup/Makefile @@ -0,0 +1,38 @@ +DESTDIR ?= +JAR_DIR ?= /usr/share/java + +FAIL = exit 1 +FIND = find +INSTALL = install +JAR = jar +JAVAC = javac +MKDIRS = mkdir -p +RM = rm -f +TOUCH = touch + +dep_dir = $1 $(shell $(FIND) $1 2>/dev/null) + +all: PHONY java_cup.jar + +java_cup.jar: classes + $(JAR) cfe $@ java_cup.Main -C $< . + $(TOUCH) $< + +classes: . $(wildcard *.java) $(call dep_dir,runtime simple_calc) + $(RM) -r $@ + $(MKDIRS) $@ + $(JAVAC) -d $@ $(filter %.java,$^) || { $(RM) -r $@; $(FAIL); } + $(TOUCH) $@ + $(TOUCH) . + +install: PHONY $(DESTDIR)$(JAR_DIR)/java_cup.jar + +$(DESTDIR)$(JAR_DIR)/%.jar: %.jar + $(INSTALL) -Dm644 $< $@ + +clean: PHONY + $(RM) -r -- build *.jar + +.PHONY: PHONY +.DELETE_ON_ERROR: +.SECONDARY: |