Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
e3-require
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Anders Lindh Olsson
e3-require
Commits
658f8461
Commit
658f8461
authored
4 years ago
by
Simon Rose
Browse files
Options
Downloads
Patches
Plain Diff
Updated README and changelog
parent
a035b160
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
CHANGELOG.md
+3
-0
3 additions, 0 deletions
CHANGELOG.md
README.md
+33
-89
33 additions, 89 deletions
README.md
with
36 additions
and
89 deletions
CHANGELOG.md
+
3
−
0
View file @
658f8461
...
...
@@ -16,6 +16,9 @@
*
Removed all references to
`sudo`
. If
`sudo`
needs to be used, it should be done manually.
*
Fixed issue with module name checking which caused modules to fail to build on certain linux distributions
## Other changes
*
Removed
`require`
as a submodule and merged it into
`e3-require`
.
# 3.3.0
3.
3.0 is a relatively major release with many bugfixes and a number of features added based on consultation
...
...
This diff is collapsed.
Click to expand it.
README.md
+
33
−
89
View file @
658f8461
# e3-require
The e3 version of
`require`
based on the PSI version of (
`require`
)[https://github.com/paulscherrerinstitute/require].
There are significant diferences between the two modules, significant enough that it is not proper to call it a fork
any longer.
## Setup
At its heart,
`require`
performs:
*
Dynamic loading of EPICS modules and rudimentary dependency resolution
*
Loading of IOCs using a custom startup script calling
`softIocPVA`
*
Building of EPICS modules into standardized packages
```
e3-require (master)$ make init
e3-require (master)$ make vars
e3-require (master)$ make build
e3-require (master)$ make install
```
For more documentation on this, please see (e3.pages)[http://e3.pages.esss.lu.se/design/2_require.html].
## Update shell environment
```
e3-require (master)$ make requireconf
```
## Structural differences between PSI require and ESS require
## Execute iocsh.bash
The main differences between the two is that ESS
`require`
includes a number of configuration files defining special
build targets for EPICS modules. For example, the following targets are defined.
*
`make build`
- Runs the custom build process defined in
`require`
.
*
`make vars`
- Displays a number of custom build variables e.g. install locations, etc.
*
`make debug`
- Runs a debug build process, displaying information about the current build
*
`make cellinstall`
- Installs the module in a local directory, e.g. for testing purposes
For more special rules, look at the files in [configure/modules].
```
e3-require (master)$ source tools/setE3Env.bash
Set the ESS EPICS Environment as follows:
THIS Source NAME : setE3Env.bash
THIS Source PATH : /home/jhlee/e3/e3-require/tools
EPICS_BASE : /epics/base-3.15.5
EPICS_HOST_ARCH : linux-x86_64
E3_REQUIRE_LOCATION : /epics/base-3.15.5/require/3.0.0
PATH : /epics/base-3.15.5/require/3.0.0/bin:/epics/base-3.15.5/bin/linux-x86_64:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/jhlee/bin
LD_LIBRARY_PATH : /epics/base-3.15.5/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/siteLibs/linux-x86_64
Enjoy E3!
jhlee@faiserver: e3-require (master)$ iocsh.bash
#
# Start at "2018-W35-Aug28-0012-23-CEST"
#
# Version information:
# European Spallation Source ERIC : iocsh.bash (v0.3.1-6690f8a.PID-9225)
#
# --->--> snip -->-->
# Please Use Version and other environment variables
# in order to report or debug this shell
#
# HOSTDISPLAY=""
# WINDOWID="54535878"
# PWD="/home/jhlee/e3/e3-require"
# USER="jhlee"
# LOGNAME="jhlee"
# EPICS_HOST_ARCH="linux-x86_64"
# EPICS_BASE="/epics/base-3.15.5"
# E3_REQUIRE_NAME="require"
# E3_REQUIRE_VERSION="3.0.0"
# E3_REQUIRE_LOCATION="/epics/base-3.15.5/require/3.0.0"
# E3_REQUIRE_BIN="/epics/base-3.15.5/require/3.0.0/bin"
# E3_REQUIRE_DB="/epics/base-3.15.5/require/3.0.0/db"
# E3_REQUIRE_DBD="/epics/base-3.15.5/require/3.0.0/dbd"
# E3_REQUIRE_INC="/epics/base-3.15.5/require/3.0.0/include"
# E3_REQUIRE_LIB="/epics/base-3.15.5/require/3.0.0/lib"
# E3_SITEAPPS_PATH="/epics/base-3.15.5/require/3.0.0/siteApps"
# E3_SITELIBS_PATH="/epics/base-3.15.5/require/3.0.0/siteLibs"
# E3_SITEMODS_PATH="/epics/base-3.15.5/require/3.0.0/siteMods"
# EPICS_DRIVER_PATH="/epics/base-3.15.5/require/3.0.0/siteMods"
# EPICS_CA_AUTO_ADDR_LIST="no"
# EPICS_CA_ADDR_LIST="10.0.6.172 10.0.6.60"
# PATH="/epics/base-3.15.5/require/3.0.0/bin:/epics/base-3.15.5/bin/linux-x86_64:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/jhlee/bin"
# LD_LIBRARY_PATH="/epics/base-3.15.5/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/lib/linux-x86_64:/epics/base-3.15.5/require/3.0.0/siteLibs/linux-x86_64"
# --->--> snip -->-->
#
# Set REQUIRE_IOC for its internal PVs
epicsEnvSet REQUIRE_IOC "E3R:FAISERVER"
#
# Set E3_IOCSH_TOP for the absolute path where iocsh.bash is executed.
epicsEnvSet E3_IOCSH_TOP "/home/jhlee/e3/e3-require"
#
#
# Load require module, which has the version 3.0.0
#
dlload /epics/base-3.15.5/require/3.0.0/lib/linux-x86_64/librequire.so
dbLoadDatabase /epics/base-3.15.5/require/3.0.0/dbd/require.dbd
require_registerRecordDeviceDriver
Loading module info records for require
#
# Set the IOC Prompt String One
epicsEnvSet IOCSH_PS1 "6690f8a.faiserver.9240 > "
#
#
iocInit
Starting iocInit
############################################################################
## EPICS R3.15.5-E3-3.15.5-patch
## EPICS Base built Aug 27 2018
############################################################################
iocRun: All initialization complete
6690f8a.faiserver.9240 >
The main parts that we have taken from PSI
`require`
are
`require.c`
and
`driver.makefile`
, which respectively
load modules dynamically at run-time, and which run the custom build process. However, both of these have been
modified significantly for the purposes of e3.
Furthermore, we have added the custom startup script
`iocsh.bash`
which sets up the IOC's environment before
running
`softIocPVA`
from EPICS base.
## Building `require`
In order to build require, you must first have EPICS base installed. After that, you must configure
`CONFIG_MODULE`
and
`RELEASE`
to specify the require version and the location of EPICS base. Having done so, run
```
bash
$
make build
$
make
install
```
To test your build, run
```
bash
$
source
${
EPICS_BASE
}
/require/
${
E3_REQUIRE_VERSION
}
/bin/setE3Env.bash
$
iocsh.bash
```
## TODO
which should start up an IOC and load require.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment