diff --git a/src/template/base/top/Makefile b/src/template/base/top/Makefile index f0d9ad762..19c9068d1 100644 --- a/src/template/base/top/Makefile +++ b/src/template/base/top/Makefile @@ -1,17 +1,31 @@ -#Makefile at top of application tree +# Makefile at top of application tree TOP = . include $(TOP)/configure/CONFIG -DIRS := $(DIRS) $(filter-out $(DIRS), configure) -DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *App)) -DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard iocBoot)) -define DIR_template - $(1)_DEPEND_DIRS = configure -endef -$(foreach dir, $(filter-out configure,$(DIRS)),$(eval $(call DIR_template,$(dir)))) +# Directories to build, any order +DIRS += configure +DIRS += $(wildcard *Sup) +DIRS += $(wildcard *App) +DIRS += $(wildcard *Top) +DIRS += $(wildcard iocBoot) +# The build order is controlled by these dependency rules: + +# All dirs except configure depend on configure +$(foreach dir, $(filter-out configure, $(DIRS)), \ + $(eval $(dir)_DEPEND_DIRS += configure)) + +# Any *App dirs depend on all *Sup dirs +$(foreach dir, $(filter %App, $(DIRS)), \ + $(eval $(dir)_DEPEND_DIRS += $(filter %Sup, $(DIRS)))) + +# Any *Top dirs depend on all *Sup and *App dirs +$(foreach dir, $(filter %Top, $(DIRS)), \ + $(eval $(dir)_DEPEND_DIRS += $(filter %Sup %App, $(DIRS)))) + +# iocBoot depends on all *App dirs iocBoot_DEPEND_DIRS += $(filter %App,$(DIRS)) +# Add any additional dependency rules here: + include $(TOP)/configure/RULES_TOP - -