Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
RULES_REQUIRE 2.26 KiB
# -*- mode: Makefile;-*-

# The following VARIABLES are defined in RULES_REQUIRE instead of CONFIG_REQUIRE,
# because they are used in ONLY RULES_REQUIRE. It is easy to understand them.
#

FILE_FILTER:= %~ %\#
E3_TEST_SCRIPT    := $(TOP)/tools/test_installed_modules.sh
#
E3_SHELL_FILES    := $(wildcard $(E3_MODULE_SRC_PATH)/tools/iocsh*)
E3_IOC_CFG_FILES  += $(E3_MODULE_SRC_PATH)/tools/setE3Env.bash
E3_IOC_CFG_FILES  += $(E3_MODULE_SRC_PATH)/tools/promptE3Env.bash
E3_REQUIRE_CONF_FILES := $(filter-out $(FILE_FILTER), $(wildcard $(TOP)/configure/E3/*))

check_uninstall:
ifneq (,$(strip $(wildcard $(E3_SITEMODS_PATH)/*)))
	$(error Cannot run 'make uninstall': please manually uninstall everything in $(E3_SITEMODS_PATH))
endif

.PHONY: e3-site-path requireconf

install: requireconf

requireconf: e3-site-path e3-require-path
	$(QUIET) install    -m 755 $(wildcard $(E3_MODULE_SRC_PATH)/tools/*.tcl)  $(E3_REQUIRE_TOOLS)/
	$(QUIET) install    -m 644 $(E3_MODULE_SRC_PATH)/tools/driver.makefile    $(E3_REQUIRE_TOOLS)/
	$(QUIET) install    -m 755 $(E3_MODULE_SRC_PATH)/tools/*.sh    $(E3_REQUIRE_TOOLS)/
	$(QUIET) install    -m 755 $(E3_SHELL_FILES)             $(E3_REQUIRE_BIN)/
	$(QUIET) install    -m 644 $(E3_IOC_CFG_FILES)           $(E3_REQUIRE_BIN)/
	$(QUIET) install    -m 644 $(E3_REQUIRE_CONF_FILES)      $(E3_REQUIRE_CONFIG)/


e3-require-path:
	$(QUIET) install -d -m 755 $(E3_REQUIRE_TOOLS)
	$(QUIET) install -d -m 755 $(E3_REQUIRE_BIN)
	$(QUIET) install -d -m 755 $(E3_REQUIRE_CONFIG)


e3-site-path:
	$(QUIET) install -d -m 755 $(E3_SITEMODS_PATH)

.PHONY: epics
epics:
	$(QUIET)echo "EPICS_BASE=$(EPICS_BASE)"        > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
	$(QUIET)echo "CHECK_RELEASE = YES"             > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE
	$(SUDOBASH) "$(MAKE) -C $(E3_MODULE_SRC_PATH)"

# We should be able to force an uninstall of require if we need to; this should not be done without some care and thought, however!
## Uninstall, including deleting siteMods directory.
forceuninstall: conf
	$(QUIET) $(E3_MODULE_MAKE_CMDS) uninstall

consistency_checks:

.PHONY: hdrs
hdrs:

VARS_EXCLUDES+=FILE_FILTER
VARS_EXCLUDES+=E3_SHELL_FILES
VARS_EXCLUDES+=E3_IOC_CFG_FILES
VARS_EXCLUDES+=E3_REQUIRE_CONF_FILES
VARS_EXCLUDES+=E3_ESSENVCFG_FILE
VARS_EXCLUDES+=E3_CONFIG_FILE