diff options
-rw-r--r-- | Makefile | 13 | ||||
-rw-r--r-- | rules/generic/Makefile | 8 |
2 files changed, 10 insertions, 11 deletions
@@ -116,17 +116,16 @@ deps2classpath = $(shell echo $(abspath $(call deps2jars,$1)) | tr ' ' :) $(addprefix build/packages/,$(package_specific)): \ build/packages/%: RECURSIVE build/workdir/% rules/%/Makefile - $(MAKE) -C build/workdir/$* -f '$(top)/rules/$*/Makefile' install \ - DESTDIR='$(top)/$@' \ - CLASSPATH='$(call deps2classpath,$^)' + CLASSPATH='$(call deps2classpath,$^)' \ + $(if $(wildcard rules/$*/subdir-deps.mk),subdir_deps='$(abspath rules/$*/subdir-deps.mk)') \ + $(MAKE) -C build/workdir/$* -f '$(top)/rules/$*/Makefile' install DESTDIR='$(top)/$@' mkdir -p build/packages/all && lndir -silent '$(top)/$@' build/packages/all - $(addprefix build/packages/,$(package_generic)): \ build/packages/%: RECURSIVE build/workdir/% rules/generic/Makefile - $(MAKE) -C build/workdir/$* -f '$(top)/rules/generic/Makefile' install \ - DESTDIR='$(top)/$@' \ - CLASSPATH='$(call deps2classpath,$^)' + CLASSPATH='$(call deps2classpath,$^)' \ + $(if $(wildcard rules/$*/subdir-deps.mk),subdir_deps='$(abspath rules/$*/subdir-deps.mk)') \ + $(MAKE) -C build/workdir/$* -f '$(top)/rules/generic/Makefile' install DESTDIR='$(top)/$@' mkdir -p build/packages/all && lndir -silent '$(top)/$@' build/packages/all # boilerplate ################################################################## diff --git a/rules/generic/Makefile b/rules/generic/Makefile index 4f4b73a..be090bd 100644 --- a/rules/generic/Makefile +++ b/rules/generic/Makefile @@ -19,9 +19,11 @@ version := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:versi group := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:groupId -n -c /_:project/_:parent/_:groupId pom.xml)) srcdir := $(firstword $(shell $(XMLSTARLET) sel -T -t -c /_:project/_:build/_:sourceDirectory -n pom.xml) $(srcdir) src/main/java) subdirs := $(patsubst %/pom.xml,%,$(wildcard */pom.xml)) -subdir-deps ?= targets := pom $(if $(wildcard src/main/ $(srcdir)),jar) +subdir_deps ?= +$(if $(subdir_deps),$(eval include $(subdir_deps))) + ################################################################################ dep_dir = $1 $(shell $(FIND) $1 2>/dev/null) @@ -81,13 +83,11 @@ deps2jars = $(wildcard $(patsubst %/all,%/target/*.jar,$(filter $(addsuffix /all deps2classpath = $(shell echo $(abspath $(call deps2jars,$1)) $(CLASSPATH) | tr ' ' :) define recurse-rule -$1/%: PHONY +$1/%: PHONY $(addsuffix /all,$($1_deps)) CLASSPATH='$$(call deps2classpath,$$^)' srcdir='$$(srcdir)' version='$$(version)' $$(MAKE) -C '$1' -f '$$(abspath $$(firstword $$(MAKEFILE_LIST)))' '$$*' endef $(foreach subdir,$(subdirs),$(eval $(call recurse-rule,$(subdir)))) -$(if $(subdir-deps),include $(subdir-deps)) - # boilerplate .PHONY: PHONY FORCE |