This is the pilot project in order to build the reliable and easy-to-understand approach for ESS EPICS environment. The golden rule is to keep any other EPICS base, and modules sources intact. Still, ESS EPICS environment needs more resource to maintain the additional work load, however, we don't need to maintain different and synced (not well maintain) almost same repositories for entire EPICS community resouces.
This repository works with the following dependent repositories as well. And ESS will use the same environment of PSI, where is the inventor of the dynamic loading EPICS environment. It doesn't cover all requirements which any accelerator or EPICS users want to do, but it has covered the PSI requirements, and it is covering the ESS requirements. Since the current ESS EPICS environment doesn't sync with PSI one, this approach may guide ESS to keep the synchronization, and to minimize any further maintenance issues.
## Rules
* ESS DOES NOT touch or modify any original source from EPICS community developer. If needed, ESS forks their repository into github, and does some patches. And ESS will use the patches one as the repository address before merging the patches to the original repository. This workflow reduces ESS resources in many forms.
* ESS SHOULD NOT develop its own dynamic loading EPICS environment.
## Dependency
## Goals
* e3-base
* e3-env
*Building Environment SHOULD*
* Be transparent to any Linux flavors, then any users can enjoy this environment if they want to. At least, Debian and CentOS MUST be supported.
* Minimize to use additional scripts, i.e., Python, which made some troubles on early environment building system.
* Use the restricted and manual version control to resolve many troubles in terms of modules version dependency
* Use the one global environmental variables to allow us to track which systems are installed
* Use the transparent EPICS environment in order to switch version between require versions, and to enable or disable the E3 environment
* Provide a way to setup the Generic EPICS BASE environment also.
## Dependent Repositories
* e3-base https://github.com/icshwi/e3-base
* e3-env https://github.com/icshwi/e3-env
## Setup
* Load all git submodules
```
$ make init
```
* Print pre-defined environments. Note that this should be synced with e3-base one.
```
$ make env
```
If it is not the same as e3-base one, please modify e3-env/e3-env file according to e3-base one.
One can check it again.
```
$ make env
```
* Build e3-require
```
$ make build
```
* Install e3-require
```
make init
make build
make install
```
## Execute iocsh
Once one installs e3-require, one can execute the simple iocsh for testing.
``
cd e3-env
. setE3env.bash
iocsh
```
e3-require (master)$ . e3-env/setE3Env.bash
jhlee@kaffee: e3-require (master)$ iocsh
Library /work/iocBoot/R3.15.4/linux-x86_64/libmisc.so not found.