Installation
Instructions
EPICS
base
Release 3.14.0alpha1
What
is EPICS base?
The Experimental Physics and
Industrial Control Systems (EPICS) is an extensible set of software components and
tools with which application developers can create a control system. This
control system can be used to control accelerators, detectors, telescopes, or
other scientific experimental equipment. EPICS base is the set of core
software, i.e. the components of EPICS without which EPICS would not function.
EPICS base allows an arbitrary number of target systems, IOCs (input/output
controllers), and host systems, OPIs (operator interfaces) of various types.
What
is new in this release?
This version of EPICS base contains significant
changes and offers major improvements in functionality over previous versions.
Please check the RELEASE_NOTES file in the distribution for description of
changes and release migration details.
Copyright
Please review the COPYRIGHT* files included in the
distribution for legal terms of usage.
Supported
platforms
Currently this version of EPICS base has been built
on the following hosts and targets. If you are trying to build EPICS base on a
different host or for a different target machine you must have the proper
host/target cross compiler and header files and you will have to add the
appropriate configure files to the base/configure/os/directory. You can start
by copying existing configuration files in the configure/os directory and then
make changes for your new platforms.
Host target platforms (operating system –
architecture - <alternate c++ compiler>)
solaris - sparc
linux - x86
win32 - x86
win32
- x86 - borland
Cross compile target platforms (operating system -
architecture)
vxWorks
- 486
vxWorks - 68040
vxWorks - 68040lc
vxWorks
- 68060
vxWorks
- ppc604
vxWorks
- pentium
RTEMS
- gen68360
RTEMS
- mvme167
Supported
compilers
This version of EPICS base
has been built and tested using the host vendor's C++ compiler as well as the
GNU g++ compiler. The GNU cross-compiler has been used for all cross-compiled
targets. You may need
the host vendor's C++ compiler in your search path to do EPICS builds. Check
the definitions of ACC and CCC in
base/configure/os/CONFIG.<host>.<host> or the definitions for GCC
and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified in CONFIG_SITE.
Software
requirements
GNU make
You must use GNU make, gnumake, for any EPICS builds. Set your path so that a gnumake version 3.70
or later is available.
Perl
You must have perl version 5.0 or later installed. The configure
files do not specify the perl full pathname.
You need the perl executable in your search path.
Unzip and tar (Winzip on
WIN32 systems)
You
must have tools available to unzip and untar the EPICS base distribution file.
Tornado 2.0
You
must have Tornado 2.0 installed if any of your target systems are vxWorks
systems. Tornado 2.0 provides the
cross-compiler and header files needed to build for these target systems. The
full path location to Tornado 2.0 must be specified in the base/configure/RELEASE
file. You will
also need one or more board support packages. Consult the vxWorks documentation
for details.
Host
system storage requirements
The GNU zipped tar file is approximately 1.4 MB in
size. The unzipped untarred distribution source tree is approximately 6 MB. The
build created files for each host take approximately 40 MB and the build
created files for each target take approximately 10 MB.
Documentation
EPICS documentation is available
on the WWW via the EPICS home page at APS:
URL http://www.aps.anl.gov/Epics
HTML and ascii text versions
of this README file are in the distribution file and they are also will be available
on the IOC software R3.14 page which can be accessed from the APS EPICS home
page.
WWW
pages
EPICS home page at APS
Other WWW sites
Additional information on
EPICS can be found at the various other WWW links on the EPICS home page at
APS.
Mailing Lists
There are five EPICS mailing lists provided by APS.
See The EPICS home page for subscription instructions.
Distribution
components (this section needs work)
README Files
Startup directory files
.cshrc
EpicsHostArch
epics.bat
.bashrc
…
Configure directory
Directory structure
OS file naming convention
Directory structure
Building
EPICS base (Unix and Win32)
Unpack file
Unzip and untar the
distribution file. Use WinZip on Windows systems.
Set environment variable
Before you can build or use EPICS R3.14, the environment variable
EPICS_HOST_ARCH must be defined. A perl script EpicsHostArch.pl in the
base/startup directory has been provided to help set EPICS_HOST_ARCH. You
should have EPICS_HOST_ARCH set to your host operating
system followed by a dash and then your host architecture, e.g. solaris-sparc.
Check path requirements
As already mentioned, you must have the perl executable and you
may need C and C++ compilers in your search path. For building base you also
must have echo in your search path. For Unix host builds you also need touch,
cpp, cp, rm, mv, and mkdir in your search path and /bin/chmod must exist. On
some Unix systems you may also need ar and ranlib in you path.
Do
site-specific build configuration
Site configuration
To configure EPICS, you may want to modify the default definitions
in the following files:
configure/CONFIG_SITE - Build choices. Specify your
targets architectures.
configure/CONFIG_SITE_ENV - Set your environment variable definitions
configure/RELEASE -
TORNADO full path location
Host configuration
To configure each host system, you may override the default
definitions by adding a new file with override definitions into the
configure/os directory. The new file should have the same name as the
distribution file to be overridden except with CONFIG in the name changed to
CONFIG_SITE.
configure/os/CONFIG.<host>.<host> - Host build settings
configure/os/CONFIG.<host>.Common - Host cross build settings
Target configuration
To configure each target system, you may override the default
definitions by adding a new file with override definitions into the
configure/os directory. The new file should have the same name as the
distribution file to be overridden except with CONFIG in the name replaced by
CONFIG_SITE.
configure/os/CONFIG.Common.<target> - Target cross build settings
configure/os/CONFIG.<host>.<target> - Host-target build settings
Build EPICS base
After configuring the build you should be able to
build EPICS base by issuing the following commands in the distribution’s root
directory (base) -
gnumake clean
uninstall
gnumake
The command "gnumake clean
uninstall" will remove all files and directories generated by a previous build.
The command "gnumake" will build and install everything for the
configured host and targets.
It is recommended that you
do a “make clean uninstall” at the root directory of an EPICS directory structure before each complete
rebuild to ensure that all components will be rebuilt.
You can build using a single EPICS directory structure on multiple
host systems and for multiple cross target systems. The intermediate and binary
files generated by the build will be created in separate system subdirectories
and installed into the appropriate separate host/target install directories.
EPICS executables and perl scripts are installed into the $(INSTALL_LOCATION)/bin/<arch>
directories. Libraries are installed into $(INSTALL_LOCATION)/lib/<arch>.
The default definition for $(INSTALL_LOCATION) is $(TOP) which is the rootdirectory
in the directory structure, base. Temporary objects are stored in
O.<arch> source subdirectories, This allows objects for multiple cross target
architectures to be maintained at the same time. To build EPICS base
for a specific host/target combination you must have the proper host/target c++
cross compiler and target header files and the base/configure/os directory must
have the appropriate configure files.
Example
base application
A perl tool, makeBaseApp.pl is included in the
distribution file. This script will create a sample application that then can built
and the executed to try out this release of base. Also a perl tool, makeBaseExt.pl
is included in the distribution file. This script will create a sample
extension that then can be built and executed. The makeBaseApp.pl and
makeBaseExt.pl scripts will be installed into the bin/<hostarch> during
the base build.