Skip to content
Snippets Groups Projects
Commit f9623e0b authored by Simon Rose's avatar Simon Rose
Browse files

Merge branch 'pre_commit_config_files' into 'master'

Cleaned up whitespace/end-of-files

See merge request e3/e3-require!43
parents db7360c3 b82a09a2
No related branches found
No related tags found
1 merge request!43Cleaned up whitespace/end-of-files
Pipeline #85568 passed
Showing
with 25 additions and 53 deletions
......@@ -30,4 +30,3 @@ TOP:=$(CURDIR)
include $(TOP)/configure/CONFIG
include $(TOP)/configure/RULES
Special Modes for ESS EPICS Environment (e3)
===
The Special modes are optional. However it will give users to explore more posssibilities while running IOC in any circumstances.
The Special modes are optional. However it will give users to explore more posssibilities while running IOC in any circumstances.
## Cell Mode
When a user faces the difficulty to work within entire work-flow in terms of the tighted-controlled deployment or within limited RW permissions. Sometimes, it is very difficult to compile and run any IOC appplication within the ESS EPICS environment. Thus, the Cell Mode is introduced.
When a user faces the difficulty to work within entire work-flow in terms of the tighted-controlled deployment or within limited RW permissions. Sometimes, it is very difficult to compile and run any IOC appplication within the ESS EPICS environment. Thus, the Cell Mode is introduced.
One should define `E3_CELL_PATH`, where one can has the RW permission. The default is `$(TOP)/cellMods` because the e3 has the assumption that one can download the e3-modules or e3-application within a writable path. This variable can be overried with `CONFIG_CELL.local` or `configure/CONFIG_CELL.local` as the same as other `CONFIG_MODULE` or `RELEASE` files. The different commands are shown in
One should define `E3_CELL_PATH`, where one can has the RW permission. The default is `$(TOP)/cellMods` because the e3 has the assumption that one can download the e3-modules or e3-application within a writable path. This variable can be overried with `CONFIG_CELL.local` or `configure/CONFIG_CELL.local` as the same as other `CONFIG_MODULE` or `RELEASE` files. The different commands are shown in
```
make cellinstall
make celluninstall
......@@ -25,15 +25,15 @@ iocsh.bash -l ${E3_CELL_PATH}
The e3 will handle all modules and applications as a dynamic libraries, which we have to consider when all symbols are resolved. We put this time at startup moment. Although it can slow down any IOC initialization, it is only way to avoid non-deterministic latencies during IOC execution [1].
Here we set the `LD_BIND_NOW=1` before we are going into actually IOC application, and run a IOC application with a scheduler policy of FIFO and a prority of 1. One needs the proper permission to execute it `chrt`, mostly `realtime` group should be created and a user should be in that group.
Here we set the `LD_BIND_NOW=1` before we are going into actually IOC application, and run a IOC application with a scheduler policy of FIFO and a prority of 1. One needs the proper permission to execute it `chrt`, mostly `realtime` group should be created and a user should be in that group.
* Command
```
iocsh.bash -rt
iocsh.bash -rt
```
## ESS Site System Application Mode
ESS is planing to deploy its through site-wide NFS shared directories. Due to long-term maintenance issues and minimal footprints on e3 application, we also introduce the SAMode (System Application Mode). It only is valid for the site-wide deployment system, not for any local installation.
ESS is planing to deploy its through site-wide NFS shared directories. Due to long-term maintenance issues and minimal footprints on e3 application, we also introduce the SAMode (System Application Mode). It only is valid for the site-wide deployment system, not for any local installation.
Technically, e3 uses `E3_SITEAPPS_PATH` to install any system specific applications. Without any modification, the default path is defined as follows:
```
......@@ -47,7 +47,7 @@ However, for the system or subsystem deployment procedure, we will replace them
* Target : `/siteApps/tgt`
* Experiments : `/siteApps/exp` and `/siteApps/exp{1..16}`
These parameter is define in each `configure/CONFIG_SITE_SYSTEMAPPS` as `E3_MODULES_PATH:=` and can be overridden via `configure/CONFIG_SITE_SYSTEMAPPS.local` also during the static (configure, build, and install) procedure.
These parameter is define in each `configure/CONFIG_SITE_SYSTEMAPPS` as `E3_MODULES_PATH:=` and can be overridden via `configure/CONFIG_SITE_SYSTEMAPPS.local` also during the static (configure, build, and install) procedure.
When an IOC is running, each IOC should know where they are belong into through `IOCID`, and will set `SITE_SYSTEMAPPS_PATH` before doing `source setE3Env.bash` and `iocsh.bash` or run `iocsh.bash` directly.
......@@ -86,17 +86,17 @@ Loaded myexample version master
Loading dbd file /siteApps/icsApps//myexample/master/dbd/myexample.dbd
Calling function myexample_registerRecordDeviceDriver
Loading module info records for myexample
# Set the IOC Prompt String One
# Set the IOC Prompt String One
epicsEnvSet IOCSH_PS1 "c72f6a5.kaffee.31345 > "
```
For the deployment system, we have to define each `E3_MODULES_PATH` differently within system specific application, it will be done with the global `CONFIG_SITE_SYSTEMAPPS.local`. And each ioc should know `SITE_SYSTEMAPPS_PATH` in order to match `E3_MODULES_PATH` before it starts.
For the deployment system, we have to define each `E3_MODULES_PATH` differently within system specific application, it will be done with the global `CONFIG_SITE_SYSTEMAPPS.local`. And each ioc should know `SITE_SYSTEMAPPS_PATH` in order to match `E3_MODULES_PATH` before it starts.
* `IOCID` defines a system group
* Before the systemd service, the additional systemd service check "mountable" path, which will be used in `SITE_SYSTEMAPPS_PATH`, and do `export $SITE_SYSTEMAPPS_PATH` globally.
* `IOCID` defines a system group
* Before the systemd service, the additional systemd service check "mountable" path, which will be used in `SITE_SYSTEMAPPS_PATH`, and do `export $SITE_SYSTEMAPPS_PATH` globally.
## References
[1] Original paragraph from Red Hat Enterprise Linux for Real Time 7 Tuning Guide. 2018-04-30 / CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0/
[1] Original paragraph from Red Hat Enterprise Linux for Real Time 7 Tuning Guide. 2018-04-30 / CC BY-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0/
require iocStats,617a4fd
var runScriptDebug 1
var requireDebug 1
require iocStats,617a4fd
loadIocsh("iocStats.iocsh", "IOCNAME=TEST1:")
iocInit()
......@@ -37,4 +37,3 @@ VARS_EXCLUDES+=EPICS_DEV_SNAPSHOT
VARS_EXCLUDES+=EPICS_PATCH_VSTRING
VARS_EXCLUDES+=EPICS_SITE_VSTRING
VARS_EXCLUDES+=COMMIT_DATE
......@@ -19,4 +19,3 @@ E3_MODULE_VERSION=$(E3_REQUIRE_VERSION)
-include $(TOP)/../../REQUIRE_CONFIG_MODULE.local
-include $(TOP)/../REQUIRE_CONFIG_MODULE.local
-include $(TOP)/configure/CONFIG_MODULE.local
......@@ -18,4 +18,3 @@ E3_MODULE_DEV_GITURL:="https://github.com/icshwi/require-ess"
-include $(TOP)/../../REQUIRE_CONFIG_MODULE_DEV.local
-include $(TOP)/../REQUIRE_CONFIG_MODULE_DEV.local
-include $(TOP)/configure/CONFIG_MODULE_DEV.local
......@@ -34,4 +34,3 @@ E3_MODULE_MAKE_CMDS:=make $(E3_REQUIRE_MAKEFILE_INPUT_OPTIONS)
## the following variables to display
VARS_EXCLUDES+=E3_REQUIRE_MAKEFILE_INPUT_OPTIONS
......@@ -3,4 +3,3 @@
E3_SITEMODS_PATH:=$(E3_REQUIRE_LOCATION)/siteMods
E3_SITELIBS_PATH:=$(E3_REQUIRE_LOCATION)/siteLibs
E3_SITEAPPS_PATH:=$(E3_REQUIRE_LOCATION)/siteApps
......@@ -42,7 +42,7 @@ export M_ADSUPPORT
export M_ADCORE
export M_OPCUA
### Exclude the following variables to display
### Exclude the following variables to display
VARS_EXCLUDES+=COMMUNITY_EPICS_MODULES
VARS_EXCLUDES+=M_AUTOSAVE
VARS_EXCLUDES+=M_DEVLIB2
......@@ -63,4 +63,3 @@ VARS_EXCLUDES+=M_IPAC
VARS_EXCLUDES+=M_ADSUPPORT
VARS_EXCLUDES+=M_ADCORE
VARS_EXCLUDES+=M_OPCUA
......@@ -15,4 +15,3 @@ E3_REQUIRE_CONFIG:=$(E3_REQUIRE_LOCATION)/configure
EXPORT_VARS+=$(filter E3_REQUIRE_%,$(.VARIABLES))
......@@ -31,11 +31,10 @@ 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
......@@ -31,4 +31,4 @@ endef
VARS_EXCLUDES+=E3_CFG_VARS
VARS_EXCLUDES+=G_E3_VAR0
\ No newline at end of file
VARS_EXCLUDES+=G_E3_VAR0
# -*- mode: Makefile;-*-
## This RULE should be used in case of inflating DB files
##
##
.PHONY: db
......
......@@ -7,10 +7,10 @@
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,7 +23,7 @@ help:
print $$1 "\t" helpMsg; \
} \
{ helpMsg = $$0 }' \
$(MAKEFILE_LIST) | column -ts:
$(MAKEFILE_LIST) | column -ts:
......@@ -48,7 +48,7 @@ forceuninstall: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) uninstall
## Build current module.
build: conf
build: conf
$(QUIET) $(E3_MODULE_MAKE_CMDS) build
## Displays information about the build process
......
......@@ -7,9 +7,8 @@
# 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
# $(QUIET)echo "INSTALL_LOCATION=$(M_IOCSTATS)" > $(TOP)/$(E3_MODULE_SRC_PATH)/configure/CONFIG_SITE
# $(MAKE) -C $(E3_MODULE_SRC_PATH)
#epics-clean:
# $(MAKE) -C $(E3_MODULE_SRC_PATH) clean
......@@ -2,11 +2,10 @@
.PHONY: patch patchrevert
## Apply Patch Files
## Apply Patch Files
patch:
$(QUIET) $(call patch_site)
## Revert Patch Files
## Revert Patch Files
patchrevert:
$(QUIET) $(call patch_revert_site)
# -*- 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.
# because they are used in ONLY RULES_REQUIRE. It is easy to understand them.
#
# CentOS7.4 and Debian 8, it works
IOCSH_HASH_VERSION:=$(shell git rev-parse --short HEAD)
......@@ -35,7 +35,7 @@ requireconf: e3-site-path e3-site-conf e3-require-path
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)
$(QUIET) install -d -m 755 $(E3_REQUIRE_CONFIG)
e3-site-path:
......@@ -60,4 +60,3 @@ VARS_EXCLUDES+=E3_IOC_CFG_FILES
VARS_EXCLUDES+=E3_REQUIRE_CONF_FILES
VARS_EXCLUDES+=E3_ESSENVCFG_FILE
VARS_EXCLUDES+=E3_CONFIG_FILE
......@@ -8,4 +8,3 @@ E3_REQUIRE_VERSION:=3.4.1
-include $(TOP)/../../RELEASE.local
-include $(TOP)/../RELEASE.local
-include $(TOP)/configure/RELEASE.local
......@@ -8,4 +8,3 @@ E3_REQUIRE_VERSION=$(E3_MODULE_VERSION)
-include $(TOP)/../../RELEASE_DEV.local
-include $(TOP)/../RELEASE_DEV.local
-include $(TOP)/configure/RELEASE_DEV.local
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment