From bfbb55ed6430f6b4d9bb49d4f2592ef9a5713e75 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 29 Dec 2014 03:08:09 -0500 Subject: refactor (again): new download script, separate architectures, modules --- Makefile.d/modules.mk | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Makefile.d/modules.mk (limited to 'Makefile.d/modules.mk') diff --git a/Makefile.d/modules.mk b/Makefile.d/modules.mk new file mode 100644 index 0000000..cbd92ed --- /dev/null +++ b/Makefile.d/modules.mk @@ -0,0 +1,44 @@ +# Easy names for tmp/builddeps-stamps/% +$(foreach arch,$(arches),$(foreach module,$(modules), builddeps-$(arch)/$(module) )): builddeps-%: PHONY tmp/builddeps-stamps/% + +# The "all" rules +getdeps: $(foreach arch,$(arches),$(foreach module,$(modules), src/$(arch)/$(module) )) +builddeps: $(foreach arch,$(arches),$(foreach module,$(modules), builddeps-$(arch)/$(module) )) +cleandeps: $(foreach arch,$(arches),$(foreach module,$(modules), cleandeps-$(arch)/$(module) )) + rm -rf roms/* tmp/* + +# If we depend on a file in src/$(arch)/$(module)/, tell Make that we +# should generate it by calling the builddep rule. +define rule_module_files +src/%(arch)/%(module)/%: | tmp/builddeps-stamps/%(arch)/%(module) + test -e $@ +endef +$(eval $(call multiglob,modules_files,arch module)) + +# The generic rules + +# "get" rules +define rule_download +src/%(arch)/%(module): Makefile.d/downloader Makefile.d/modules/%(module).mk $(%(module)_patches) + Makefile.d/downloader %(arch) %(module)::$(%(module)_source) + $(%(module)_patch) + test -d $@ + touch $@ +endef +$(eval $(call multiglob,download,arch module)) + +# "builddeps" and "cleandeps" rules +# % = arch/module +tmp/builddeps-stamps/%: src/% + cd $< && { test -f ./Makefile || test -x ./configure || ./autogen.sh; } + cd $< && { test -f ./Makefile || ./configure $($*_configure); } + $(MAKE) -C $< + mkdir -p $(@D) + touch $@ + +# "cleandeps" rules +$(foreach arch,$(arches),$(foreach module,$(modules), cleandeps-$(arch)/$(module) )): \ +cleandeps-%: PHONY cleandeps-%-custom + rm -f tmp/builddeps-stamps/% +cleandeps-%-custom: PHONY + test ! -f src/$*/Makefile || $(MAKE) -C src/$* clean -- cgit v1.2.3