diff options
Diffstat (limited to 'rules/groovy/Makefile')
-rw-r--r-- | rules/groovy/Makefile | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/rules/groovy/Makefile b/rules/groovy/Makefile new file mode 100644 index 0000000..d7e8d3a --- /dev/null +++ b/rules/groovy/Makefile @@ -0,0 +1,39 @@ +DESTDIR ?= +JAR_DIR ?= /usr/share/java + +ANTLR2 = $(JAVA) antlr.Tool +CP = cp +FAIL = exit 1 +FIND = find +INSTALL = install +JAR = jar +JAVA = java +JAVAC = javac +MKDIRS = mkdir -p +RM = rm -f + +dep_dir = $1 $(shell $(FIND) $1 2>/dev/null) + +all: PHONY build/groovy.jar + +build/generated-sources: $(call dep_dir,src/main) + for grammar in $(filter %.g,$^); do $(MKDIRS) $$(dirname $$grammar) && $(ANTLR2) -o $$(dirname $$grammar) $$grammar || { $(RM) -r $@; $(FAIL); }; done +build/classes: $(call dep_dir,src/main src/resources build/generated-sources) + $(RM) -r $@ + $(MKDIRS) $@ + $(CP) -a src/main/META-INF $@ + $(CP) -a src/resources/* $@ + $(FIND) src/main build/generated-sources -name '*.java' -exec $(JAVAC) -d $@ {} + +build/groovy.jar: $(call dep_dir,build/classes) + $(JAR) -cf $@ -C build/classes . + +install: PHONY $(DESTDIR)$(JAR_DIR)/groovy.jar + +$(DESTDIR)$(JAR_DIR)/groovy.jar: build/groovy.jar + $(INSTALL) -Dm644 $< $@ + +clean: PHONY + $(RM) -r build + +.PHONY: PHONY +.DELETE_ON_ERROR: |