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

Updated README and changelog

parent a035b160
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
# 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.
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