Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • e3/wrappers/e3-require
  • waynelewis/e3-require
  • krisztianloki/e3-require
  • timokorhonen/e3-require
  • juntongliu/e3-require
  • roryclarke/e3-require
  • alfiorizzo/e3-require
  • lucasmagalhaes/e3-require
  • lucas-module-testgroup/e3-require
  • grzegorzkowalski/e3-require
  • anderslindh1/e3-require
11 results
Show changes
Showing
with 191 additions and 135 deletions
......@@ -4,7 +4,6 @@
E3_REQUIRE_LOCATION:=$(EPICS_BASE)/$(E3_REQUIRE_NAME)/$(E3_REQUIRE_VERSION)
E3_REQUIRE_TOOLS:=$(E3_REQUIRE_LOCATION)/tools
E3_REQUIRE_BIN:=$(E3_REQUIRE_LOCATION)/bin
E3_REQUIRE_LIB:=$(E3_REQUIRE_LOCATION)/lib
......@@ -12,7 +11,3 @@ E3_REQUIRE_DB:=$(E3_REQUIRE_LOCATION)/db
E3_REQUIRE_DBD:=$(E3_REQUIRE_LOCATION)/dbd
E3_REQUIRE_INC:=$(E3_REQUIRE_LOCATION)/include
E3_REQUIRE_CONFIG:=$(E3_REQUIRE_LOCATION)/configure
EXPORT_VARS+=$(filter E3_REQUIRE_%,$(.VARIABLES))
......@@ -4,3 +4,5 @@ ifdef DEBUG_SHELL
else
SHELL = /usr/bin/bash
endif
VARS_EXCLUDES+=SHELL
TEST_DIR:=$(TOP)/tests
RUN_IOCSH_TEST_COMMAND = run-iocsh --name "${EPICS_BASE}/require/${E3_REQUIRE_VERSION}/bin/iocsh.bash" -r "$(E3_MODULE_NAME),$(E3_MODULE_VERSION)" -l $(TEMP_CELL_PATH)
RUN_IOCSH_TEST_COMMAND = run-iocsh --name "${EPICS_BASE}/require/${E3_REQUIRE_VERSION}/bin/iocsh" -r "$(E3_MODULE_NAME),$(E3_MODULE_VERSION)" -l $(TEMP_CELL_PATH)
TEMP_CELL_PATH := $(TOP)/testMods-$(shell date +"%y%m%d%H%M%S")
RMDIR = $(RM) -rf
EXPORT_VARS += TEMP_CELL_PATH
\ No newline at end of file
EXPORT_VARS+=TEMP_CELL_PATH
VARS_EXCLUDES+=TEST_DIR
VARS_EXCLUDES+=RMDIR
VARS_EXCLUDES+=TEMP_CELL_PATH
# Legacy file. Needed since <module>.Makefiles include this.
# Keep always the module up-to-date
define git_update =
git submodule deinit -f $@/
sed -i '/submodule/,24465d' $(TOP)/.git/config
rm -rf $(TOP)/.git/modules/$@
git submodule init $@/
git submodule update --init --recursive $@/.
......@@ -14,28 +13,37 @@ git submodule update --remote --merge $@/
endef
define patch_site
for i in $(wildcard $(TOP)/patch/Site/$(E3_MODULE_VERSION)-*.p0.patch); do\
printf "\nPatching %s with the file : %s\n" "$(E3_MODULE_SRC_PATH)" "$$i"; \
git apply --directory=$(E3_MODULE_SRC_PATH) --ignore-whitespace -p0 $$i;\
done
patches=$$(ls $(TOP)/patch/Site/$(E3_MODULE_VERSION)/*.p0.patch 2> /dev/null); \
if [ -n "$$patches" ]; then \
for i in $$patches; do \
printf "\nPatching %s with the file : %s\n" "$(E3_MODULE_SRC_PATH)" "$$i"; \
git apply --directory=$(E3_MODULE_SRC_PATH) --ignore-whitespace -p0 $$i; \
done; \
else \
echo ">>> No patches to apply" >&2; \
fi
endef
define patch_revert_site
for i in $(wildcard $(TOP)/patch/Site/$(E3_MODULE_VERSION)-*.p0.patch); do\
printf "\nReverting applied patch %s with the file : %s\n" "$(E3_MODULE_SRC_PATH)" "$$i"; \
git apply -R --directory=$(E3_MODULE_SRC_PATH) --ignore-whitespace -p0 $$i;\
done
patches=$$(ls $(TOP)/patch/Site/$(E3_MODULE_VERSION)/*.p0.patch 2> /dev/null); \
if [ -n "$$patches" ]; then \
for i in $$patches; do\
printf "\nReverting applied patch %s with the file : %s\n" "$(E3_MODULE_SRC_PATH)" "$$i"; \
git apply -R --directory=$(E3_MODULE_SRC_PATH) --ignore-whitespace -p0 $$i;\
done \
else \
echo ">>> No patches to revert" >&2; \
fi
endef
ifndef VERBOSE
QUIET := @
endif
### Exclude the following variables to display
### Exclude the following variables to display
VARS_EXCLUDES+=git_update
VARS_EXCLUDES+=git_module_init_update
VARS_EXCLUDES+=patch_site
VARS_EXCLUDES+=patch_revert_site
VARS_EXCLUDES+=QUIET
VARS_EXCLUDES+=SHELL
# Generate E3 setE3Env.bash configuration
# Remove the genrated indent
define G_E3_VAR0
endef
# EPICS_BASE
define G_E3_VAR1
declare -g DEFAULT_EPICS_BASE=$(E3_MODULES_PATH)
endef
# E3_REQUIRE_NAME
define G_E3_VAR2
declare -g DEFAULT_REQUIRE_NAME=$(E3_REQUIRE_NAME)
endef
# E3_REQUIRE_VERSION
define G_E3_VAR3
declare -g DEFAULT_REQUIRE_VERSION=$(E3_REQUIRE_VERSION)
endef
define E3_CFG_VARS :=
$(G_E3_VAR0)
$(G_E3_VAR1)
$(G_E3_VAR2)
$(G_E3_VAR3)
endef
VARS_EXCLUDES+=E3_CFG_VARS
VARS_EXCLUDES+=G_E3_VAR0
\ No newline at end of file
File moved
.PHONY: consistency_checks
consistency_checks: module_name_check loc-check
ifneq (require,$(E3_MODULE_NAME))
consistency_checks: sitemods_check
endif
# Check that the module name satisfies a few conditions before we go on.
module_name_check:
ifneq ($(shell echo $(E3_MODULE_NAME) | grep -q '^[a-z_][a-z0-9_]*$$' ; echo $$?),0)
$(error E3_MODULE_NAME '$(E3_MODULE_NAME)' is not valid. It should consist only of lowercase letters, numbers, and underscores.)
endif
# Check that a module is including RULES_SITEMODS instead of manually including RULES_E3
.PHONY: sitemods_check
sitemods_check:
ifeq ($(filter RULES_SITEMODS,$(notdir $(MAKEFILE_LIST))),)
$(error RULES_E3 should only be loaded from RULES_SITEMODS)
endif
# Check that e3 wrappers are using EPICS_MODULE_TAG to manage local source mode
.PHONU: loc-check
loc-check:
ifneq (,$(findstring -loc,$(E3_MODULE_SRC_PATH)))
$(error DEPRECATED: Local source mode "-loc" has been deprecated. Please comment out the EPICS_MODULE_TAG to use local source mode.)
endif
# -*- mode: Makefile;-*-
## This RULE should be used in case of inflating DB files
##
.PHONY: db
db: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) db
# -*- mode: Makefile;-*-
.PHONY: devvars devenv devinit devbuild devclean devinstall devrebuild devuninstall devdistclean devconf devrequireconf
ifneq ($(E3_LOCAL_SOURCE),1)
.PHONY: devvars devenv devinit devbuild devclean devinstall devrebuild devuninstall devdistclean devconf devepics devepics-clean devepics-distclean devpatch devpatchrevert devexistent devdep devvers
devvars: vars
devenv: devvars
## Initializes a dev setup, defined with configure/CONFIG_MODULE_DEV and configure/RELEASE_DEV
devinit: git-submodule-sync
git clone $(E3_MODULE_DEV_GITURL) $(E3_MODULE_SRC_PATH)
cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG)
......@@ -24,8 +26,14 @@ devrebuild: nonexists
devuninstall: nonexists
devdistclean: nonexists
devconf: nonexists
devrequireconf: nonexists
devepics: nonexists
devepics-clean: nonexists
devepics-distclean: nonexists
devpatch: nonexists
devpatchrevert: nonexists
devexistent: nonexists
devdep: nonexists
devvers: nonexists
nonexists:
$(QUIET)echo ""
$(QUIET)echo "------------------------------------------------------------"
......@@ -35,15 +43,38 @@ nonexists:
$(QUIET)echo ""
else
## Displays information about the build process (development mode)
devdebug: debug
## Build current module (development mode)
devbuild: build
## Deletes temporary build files (development mode)
devclean: clean
## Install the current module (development mode)
devinstall: install
devrebuild: rebuild
## Uninstall the current module (development mode)
devuninstall: uninstall
devconf: conf
devrequireconf: requireconf
devdistclean: clean
$(QUIET)echo "Removing $(E3_MODULE_SRC_PATH) ......... "
rm -rf $(E3_MODULE_SRC_PATH)
devepics: epics
devepics-clean: epics-clean
devepics-distclean: epics-distclean
devpatch: patch
devpatchrevert: patchrevert
devexistent: existent
endif
devdep: dep
devvers: vers
endif # E3_MODULE_SRC_PATH_FLAG
else
dev%:
$(error You are in local source mode. No dev targets are available)
endif # E3_LOCAL_SOURCE
......@@ -17,7 +17,6 @@ dkms_install:
dkms_uninstall:
$(DKMS) uninstall $(DKMS_ARGS)
$(QUIET) depmod
$(QUIET) depmod
.PHONY: dkms_build dkms_install dkms_remove dkms_uninstall
......@@ -3,14 +3,14 @@
.DEFAULT_GOAL := help
.PHONY: help default install uninstall build rebuild clean conf all
.PHONY: help default install uninstall build rebuild clean conf all prebuild
default: help
# # help is defined in
# # help is defined in
# # https://gist.github.com/rcmachado/af3db315e31383502660
help:
$(info --------------------------------------- )
$(info --------------------------------------- )
$(info Available targets)
$(info --------------------------------------- )
$(QUIET) awk '/^[a-zA-Z\-\_0-9]+:/ { \
......@@ -23,38 +23,48 @@ help:
print $$1 "\t" helpMsg; \
} \
{ helpMsg = $$0 }' \
$(MAKEFILE_LIST) | column -ts:
$(MAKEFILE_LIST) | column -ts:
## Install module to $(E3_MODULES_INSTALL_LOCATION)
install: install_module hdrs
## Install require to $(EPICS_BASE)/require/$(E3_MODULE_VERSION)
install: requireconf install_module
.PHONY: db
db: err_no_db_rule
install_module: build db
.PHONY: err_no_db_rule
err_no_db_rule:
$(error The 'db' target has been discontinued. If you have custom database expansion rule to use, please contact the e3 team)
.PHONY: install_module
install_module: build db_internal
$(QUIET) $(E3_MODULE_MAKE_CMDS) install
## Uninstall the current module
uninstall: conf
ifeq (,$(strip $(wildcard $(E3_SITEMODS_PATH)/*)))
$(QUIET) $(E3_MODULE_MAKE_CMDS) uninstall
else
$(error Cannot run 'make uninstall': please manually uninstall everything in $(E3_SITEMODS_PATH))
endif
.PHONY: check_uninstall
check_uninstall:
# 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
## Uninstall the current module
uninstall: check_uninstall conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) uninstall
## Build current module.
build: conf
## Build current module
build: conf checkout prebuild
$(QUIET) $(E3_MODULE_MAKE_CMDS) build
## Run module-specific commands before building
prebuild: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) prebuild
## Displays information about the build process
debug: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) debug
.PHONY: db_internal
db_internal: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) db_internal
## Clean, build, and install the current module
rebuild: clean build install
......@@ -62,10 +72,42 @@ rebuild: clean build install
clean: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) clean
## Initializes, patches, builds, and installs
all: init patch rebuild
# Copy $(E3_MODULE_MAKEFILE) into $(E3_MODULE_SRC_PATH)
conf:
$(QUIET) install -m 644 $(TOP)/$(E3_MODULE_MAKEFILE) $(E3_MODULE_SRC_PATH)/
include $(REQUIRE_CONFIG)/RULES_CHECKS
conf: consistency_checks
$(QUIET) install -p -m 644 $(TOP)/$(E3_MODULE_MAKEFILE) $(E3_MODULE_SRC_PATH)/
.PHONY: init git-submodule-sync $(E3_MODULE_SRC_PATH) checkout
ifeq (,$(strip $(EPICS_MODULE_TAG)))
E3_LOCAL_SOURCE:=1
endif
ifeq ($(E3_LOCAL_SOURCE),1)
init:
$(QUIET) echo ">> You are in the local source mode."
$(QUIET) echo ">> Nothing happens."
checkout:
else
## Syncs and checks out the tag $(EPICS_MODULE_TAG) for the submodule
init: git-submodule-sync $(E3_MODULE_SRC_PATH) checkout
git-submodule-sync:
$(QUIET) git submodule sync
$(E3_MODULE_SRC_PATH):
$(QUIET) $(git_update)
checkout:
cd $(E3_MODULE_SRC_PATH) && git checkout $(EPICS_MODULE_TAG)
endif
# -*- mode: Makefile;-*-
# One should define the any dependency modules and EPICS base path
# in the following directory
# .PHONY: epics epics-clean
# epics:
# $(QUIET)echo "EPICS_BASE=$(EPICS_BASE)" > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/RELEASE
# $(QUIET)echo "INSTALL_LOCATION=$(M_IOCSTATS)" > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE
# $(MAKE) -C $(E3_MODULE_SRC_PATH)
.PHONY: epics-clean epics-distclean
#epics-clean:
# $(MAKE) -C $(E3_MODULE_SRC_PATH) clean
epics-clean:
$(MAKE) -C $(E3_MODULE_SRC_PATH) clean
epics-distclean:
$(MAKE) -C $(E3_MODULE_SRC_PATH) distclean
.PHONY: patch patchrevert
.PHONY: check_for_old_patches
check_for_old_patches:
$(if $(wildcard $(TOP)/patch/Site/$(patsubst %+0,%,$(E3_MODULE_VERSION))*.p0.patch),$(warning Warning: old-style patches detected. Please move them to patch/Site/$$E3_MODULE_VERSION/.))
## Apply Patch Files
patch:
## Apply Patch Files
patch: check_for_old_patches
$(QUIET) $(call patch_site)
## Revert Patch Files
patchrevert:
## Revert Patch Files
patchrevert: check_for_old_patches
$(QUIET) $(call patch_revert_site)
......@@ -4,15 +4,9 @@ include $(REQUIRE_CONFIG)/RULES_E3
include $(REQUIRE_CONFIG)/RULES_CELL
include $(REQUIRE_CONFIG)/DEFINES_FT
include $(REQUIRE_CONFIG)/RULES_PATCH
include $(REQUIRE_CONFIG)/RULES_E3_SITELIBS
include $(REQUIRE_CONFIG)/RULES_TEST
include $(REQUIRE_CONFIG)/RULES_VLIBS
include $(REQUIRE_CONFIG)/RULES_DKMS
include $(REQUIRE_CONFIG)/RULES_PROD
include $(REQUIRE_CONFIG)/RULES_VARS
#include $(REQUIRE_CONFIG)/RULES_EPICS
include $(REQUIRE_CONFIG)/RULES_DEV
......@@ -26,4 +26,4 @@ else # if the if-run-iocsh-exists test fails
test:
$(error run-iocsh must be installed to use the test capability. Please install run-iocsh from PyPI.)
endif
\ No newline at end of file
endif
......@@ -6,13 +6,13 @@ DEP_MODULES:=$(filter %_DEP_VERSION, $(E3_MODULES_VARIABLES))
LEVEL?=2
## Print relevant environment variables
.PHONY: env
env: vars
GENERATED_DEP_FILE:=$(E3_MODULES_INSTALL_LOCATION_LIB)/$(EPICS_HOST_ARCH)/$(E3_MODULE_NAME).dep
## Print relevant environment variables
.PHONY: vars
vars: header
$(foreach v, $(E3_MODULES_VARIABLES), $(info $(v) = $($(v)))) @#noop
$(foreach v, $(filter-out %_DEP_VERSION,$(E3_MODULES_VARIABLES)), $(info $(v) = $($(v)))) @#noop
$(foreach v, $(filter %_DEP_VERSION,$(E3_MODULES_VARIABLES)), $(info $(v) = $($(v)))) @#noop
.PHONY: header
header:
......@@ -31,11 +31,16 @@ else
$(QUIET)tree -L $(LEVEL) $(E3_MODULES_PATH)/$(E3_MODULE_NAME)
endif
## Displays dependency information, both configured and generated
.PHONY: dep
dep:
$(QUIET)echo "require $(E3_MODULE_NAME),$(E3_MODULE_VERSION)"
$(QUIET)echo "< configured ..."
$(foreach v, $(DEP_MODULES), $(info $(v) = $($(v)))) @#noop
ifneq ("$(wildcard $(GENERATED_DEP_FILE))","")
$(QUIET)echo "> generated ..."
$(QUIET)tail -n+2 $(GENERATED_DEP_FILE)
endif
.PHONY: vers
vers:
......
EPICS_BASE=/epics/base-7.0.5
EPICS_BASE=/epics/base-7.0.6.1
E3_REQUIRE_NAME:=require
E3_REQUIRE_VERSION:=3.4.1
E3_REQUIRE_VERSION:=4.0.0
# The definitions shown below can also be placed in an untracked RELEASE.local
-include $(TOP)/../../RELEASE.local
-include $(TOP)/../RELEASE.local
-include $(TOP)/configure/RELEASE.local
EPICS_BASE=/epics/base-7.0.4
E3_REQUIRE_NAME:=require
E3_REQUIRE_VERSION=$(E3_MODULE_VERSION)
# The definitions shown below can also be placed in an untracked RELEASE.local
-include $(TOP)/../../RELEASE_DEV.local
-include $(TOP)/../RELEASE_DEV.local
-include $(TOP)/configure/RELEASE_DEV.local
# -*- mode: Makefile;-*-
# include $(EPICS_BASE)/configure/RULES
include $(TOP)/configure/E3/DEFINES_FT
include $(REQUIRE_CONFIG)/DEFINES_FT
#
# We cannot use file operation in CentOS7.4,
# because Makefile version is 3.8.
# include $(TOP)/configure/E3/DEFINES_REQUIRE
include $(TOP)/configure/E3/RULES_E3
include $(TOP)/configure/E3/RULES_EPICS
include $(REQUIRE_CONFIG)/RULES_E3
include $(REQUIRE_CONFIG)/RULES_EPICS
include $(TOP)/configure/E3/RULES_REQUIRE
include $(TOP)/configure/module/RULES_REQUIRE
include $(TOP)/configure/E3/RULES_PATCH
include $(TOP)/configure/E3/RULES_DB
include $(TOP)/configure/E3/RULES_VARS
include $(REQUIRE_CONFIG)/RULES_PATCH
include $(REQUIRE_CONFIG)/RULES_VARS
include $(TOP)/configure/module/RULES_TEST
ifneq (,$(findstring dev,$(MAKECMDGOALS)))
include $(TOP)/configure/E3/RULES_DEV
include $(REQUIRE_CONFIG)/RULES_DEV
endif