summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-05-31 00:49:10 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-05-31 00:49:10 -0400
commit91f429648527f96c47dccde49ab5c05642debab5 (patch)
tree99dc1f15165a4018558138229fdee38024ce0975
parent719c44cf710cefaf55c69f64d131f4f90cf6727b (diff)
get subdir-deps working
-rw-r--r--Makefile13
-rw-r--r--rules/generic/Makefile8
2 files changed, 10 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 3d6dc07..dc9501f 100644
--- a/Makefile
+++ b/Makefile
@@ -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