#************************************************************************* # EPICS BASE is distributed subject to a Software License Agreement found # in file LICENSE that is included with this distribution. #************************************************************************* # Support modules can use these rules to build submodules too. # # The requirements to do so are: # 1. Create a file CONFIG_SITE.local in the same directory as the # Makefile, which defines these variables (the last one is empty): # PARENT_MODULE - The name submodules call their parent # INSTALL_LOCATION := $($(PARENT_MODULE)) # CONFIG_INSTALLS = # 2. The Makefile must set TOP and include $(TOP)/configure/CONFIG and # CONFIG_SITE.local # 3. Submodules are added to the SUBMODULES variable in the Makefile # 4. Dependencies between submodules must be set using # _DEPEND_DIRS = # 5. The Makefile must end by including $(TOP)/configure/RULES_MODULES # 6. Submodules must have a configure/RELEASE file that contains # -include $(TOP)/../RELEASE.$(EPICS_HOST_ARCH).local # 7. Submodules must have a configure/CONFIG_SITE file that contains # -include $(TOP)/../CONFIG_SITE.local # Add checked-out submodules to DIRS, unless INSTALL_LOCATION is empty LIVE_SUBMODULES = $(subst /Makefile,, \ $(wildcard $(addsuffix /Makefile, $(SUBMODULES)))) live = $(if $(wildcard $(INSTALL_CONFIG)/RULES_TOP),LIVE,DEAD) DIRS += $($(live)_SUBMODULES) include $(CONFIG)/RULES_DIRS RELEASE_LOCAL := RELEASE.$(EPICS_HOST_ARCH).local # Ensure that RELEASE..local exists before doing anything else all host $(DIRS) $(ARCHS) $(ACTIONS) $(dirActionTargets) $(dirArchTargets) \ $(dirActionArchTargets) $(actionArchTargets): | $(RELEASE_LOCAL) # Convenience target RELEASE.host: $(RELEASE_LOCAL) $(RELEASE_LOCAL): Makefile $(CONFIG)/CONFIG_SITE \ $(wildcard $(CONFIG)/CONFIG_SITE.local) $(ECHO) Creating $@ with $(ECHO) " $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)" @echo $(PARENT_MODULE) = $(INSTALL_ABSOLUTE)> $@ .PHONY: RELEASE.host # Testing: Combine test failure logs from the live submodules TESTS_FAILED_LOGS = $(wildcard $(addsuffix /$(TESTS_FAILED_LOG), \ $(LIVE_SUBMODULES))) runtests test-results: % : | $(addsuffix $(DIVIDER)%, $(LIVE_SUBMODULES)) $(if $(TESTS_FAILED_LOGS), \ @$(CAT) $(TESTS_FAILED_LOGS)>> $(TESTS_FAILED_PATH))