[coreboot] [commit] r5195 - trunk
repository service
svn at coreboot.org
Sat Mar 6 22:18:44 CET 2010
Author: oxygene
Date: Sat Mar 6 22:18:43 2010
New Revision: 5195
URL: http://tracker.coreboot.org/trac/coreboot/changeset/5195
Log:
More readable recursive descent macro in Makefile
Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
Acked-by: Stefan Reinauer <stepan at coresystems.de>
Modified:
trunk/Makefile
Modified: trunk/Makefile
==============================================================================
--- trunk/Makefile Sat Mar 6 19:16:25 2010 (r5194)
+++ trunk/Makefile Sat Mar 6 22:18:43 2010 (r5195)
@@ -119,8 +119,32 @@
crt0s:=
ldscripts:=
types:=obj initobj driver smmobj
-includemakefiles=$(foreach type,$(2), $(eval $(type)-y:=)) $(eval subdirs-y:=) $(eval -include $(1)) $(if $(strip $(3)),$(foreach type,$(2),$(eval $(type)s+=$$(patsubst util/%,$(obj)/util/%,$$(patsubst src/%,$(obj)/%,$$(addprefix $(dir $(1)),$$($(type)-y))))))) $(eval subdirs+=$$(subst $(PWD)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
-evaluate_subdirs=$(eval cursubdirs:=$(subdirs)) $(eval subdirs:=) $(foreach dir,$(cursubdirs),$(eval $(call includemakefiles,$(dir)/Makefile.inc,$(types),$(1)))) $(if $(subdirs),$(eval $(call evaluate_subdirs, $(1))))
+
+# Clean -y variables, include Makefile.inc
+# If $(3) is non-empty, add paths to files in X-y, and add them to Xs
+# Add subdirs-y to subdirs
+includemakefiles= \
+ $(foreach type,$(2), $(eval $(type)-y:=)) \
+ $(eval subdirs-y:=) \
+ $(eval -include $(1)) \
+ $(if $(strip $(3)), \
+ $(foreach type,$(2), \
+ $(eval $(type)s+= \
+ $$(patsubst util/%, \
+ $(obj)/util/%, \
+ $$(patsubst src/%, \
+ $(obj)/%, \
+ $$(addprefix $(dir $(1)),$$($(type)-y))))))) \
+ $(eval subdirs+=$$(subst $(PWD)/,,$$(abspath $$(addprefix $(dir $(1)),$$(subdirs-y)))))
+
+# For each path in $(subdirs) call includemakefiles, passing $(1) as $(3)
+# Repeat until subdirs is empty
+evaluate_subdirs= \
+ $(eval cursubdirs:=$(subdirs)) \
+ $(eval subdirs:=) \
+ $(foreach dir,$(cursubdirs), \
+ $(eval $(call includemakefiles,$(dir)/Makefile.inc,$(types),$(1)))) \
+ $(if $(subdirs),$(eval $(call evaluate_subdirs, $(1))))
# collect all object files eligible for building
subdirs:=$(PLATFORM-y) $(BUILD-y)
More information about the coreboot
mailing list