From 4503e3cf26c00f856a1a5a4ed63a193d7800b7d0 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sun, 16 Nov 2014 03:33:12 -0500 Subject: Makefile: touch up - rename $(package_*) to $(packages_*), move them higher in the file - touch up whitespace on the download: rule - filter workdir from impacting any of the deps2* funcs (_sanitize_deps) - rename intermediate funcs for deps2{class,}path to start with '_' - split $(recurse) into multiple lines --- Makefile | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index fcd41fd..03a7b36 100644 --- a/Makefile +++ b/Makefile @@ -45,13 +45,16 @@ export JAR_DIR := $(shell $(CAT) conf/jardir.txt) # Post-processing for conf/sources.mk packages := $(filter-out _%,$(variables)) +packages_specific=$(filter $(patsubst rules/%/Makefile,%,$(wildcard rules/*/Makefile)),$(packages)) +packages_generic =$(filter-out $(packages_specific) $(packages_stub),$(packages)) + specs := $(foreach variable,$(variables),$(if $(findstring |,$($(variable))),$($(variable)))) tarbombs := $(addprefix build/extract/,$(call spec2,base,$(_tarbombs))) # download ##################################################################### download: PHONY \ - $(addprefix build/download/, \ + $(addprefix build/download/, \ $(call spec2,base,$(call specs_for,git tar)) \ $(call spec2,file,$(call specs_for,svn)) ) @@ -174,25 +177,28 @@ $(foreach package,$(packages),$(eval \ package: PHONY $(addprefix build/packages/,$(packages)) -package_specific=$(filter $(patsubst rules/%/Makefile,%,$(wildcard rules/*/Makefile)),$(packages)) -package_generic =$(filter-out $(patsubst rules/%/Makefile,%,$(wildcard rules/*/Makefile)),$(packages)) +_sanitize_deps = $(filter-out build/workdir/%,$1) -dirs2jars = $(if $1,$(shell $(FIND) $1 -name '*.jar')) -deps2jars = $(filter %.jar,$1) $(call dirs2jars,$(filter build/packages/%,$1)) -deps2classpath = $(shell $(ECHO) $(abspath $(call deps2jars,$1)) $(CLASSPATH) | $(SED) 'y/ /:/') +_dirs2jars = $(if $1,$(shell $(FIND) $1 -name '*.jar')) +_deps2jars = $(filter %.jar,$1) $(call _dirs2jars,$(filter build/packages/%,$1)) +deps2classpath = $(shell $(ECHO) $(abspath $(call _deps2jars,$(call _sanitize_deps,$1))) $(CLASSPATH) | $(SED) 'y/ /:/') -deps2bindirs = $(if $1,$(sort $(shell $(FIND) $1 -type f -executable -printf '%h\n' 2>/dev/null))) -sanitize_bindirs = $(filter-out $(subst :, ,$(PATH)),$(abspath $1)) -deps2path = $(shell $(ECHO) $(call sanitize_bindirs,$(call deps2bindirs,$1)) $(PATH) | $(SED) 'y/ /:/') +_deps2bindirs = $(if $1,$(sort $(shell $(FIND) $1 -type f -executable -printf '%h\n' 2>/dev/null))) +_sanitize_bindirs = $(filter-out $(subst :, ,$(PATH)),$(abspath $1)) +deps2path = $(shell $(ECHO) $(call _sanitize_bindirs,$(call _deps2bindirs,$(call _sanitize_deps,$1))) $(PATH) | $(SED) 'y/ /:/') -recurse = PATH='$(call deps2path,$^)' CLASSPATH='$(call deps2classpath,$^)' extra_makefiles='$(abspath $(wildcard rules/$*/*.mk))' $(MAKE) -C build/workdir/$* -f '$1' install DESTDIR='$(top)/$@' && $(EXISTS) '$@' +recurse = \ + PATH='$(call deps2path,$^)' \ + CLASSPATH='$(call deps2classpath,$^)' \ + extra_makefiles='$(abspath $(wildcard rules/$*/*.mk))' \ + $(MAKE) -C build/workdir/$* -f '$1' install DESTDIR='$(top)/$@' && $(EXISTS) '$@' -$(addprefix build/packages/,$(package_specific)): \ +$(addprefix build/packages/,$(packages_specific)): \ build/packages/%: RECURSIVE build/workdir/% rules/%/Makefile for dep in $(filter-out RECURSIVE,$^); do $(EXISTS) $$dep || { $(RM) -r '$@'; $(FAIL); }; done $(call recurse,$(top)/rules/$*/Makefile) || { $(RM) -r '$@'; $(FAIL); } -$(addprefix build/packages/,$(package_generic)): \ +$(addprefix build/packages/,$(packages_generic)): \ build/packages/%: RECURSIVE build/workdir/% rules/_generic/Makefile for dep in $(filter-out RECURSIVE,$^); do $(EXISTS) $$dep || { $(RM) -r '$@'; $(FAIL); }; done $(call recurse,$(top)/rules/_generic/Makefile) || { $(RM) -r '$@'; $(FAIL); } -- cgit v1.2.3