56 lines
2.4 KiB
Plaintext
56 lines
2.4 KiB
Plaintext
#*************************************************************************
|
|
# 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
|
|
# <name>_DEPEND_DIRS = <prerequisites>
|
|
# 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.<host>.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))
|