504 lines
26 KiB
HTML
504 lines
26 KiB
HTML
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="Author" content="jba">
|
|
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
|
</head>
|
|
<body>
|
|
README.htm
|
|
<center>
|
|
<h1>
|
|
Installation Instructions</h1></center>
|
|
|
|
<center>
|
|
<h2>
|
|
EPICS base</h2></center>
|
|
|
|
<center>
|
|
<h2>
|
|
Release 3.14.0alpha2</h2></center>
|
|
|
|
<h3>
|
|
What is EPICS base?</h3>
|
|
|
|
<blockquote>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.</blockquote>
|
|
|
|
<h3>
|
|
What is new in this release?</h3>
|
|
|
|
<blockquote>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.</blockquote>
|
|
|
|
<h3>
|
|
Copyright</h3>
|
|
|
|
<blockquote>Please review the COPYRIGHT* files included in the distribution
|
|
for legal terms of usage.</blockquote>
|
|
|
|
<h3>
|
|
Supported platforms</h3>
|
|
|
|
<blockquote>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.</blockquote>
|
|
|
|
<blockquote><b>Host target platforms (operating system - architecture -
|
|
<alternate c++ compiler>)</b>
|
|
<blockquote><tt>solaris-sparc</tt>
|
|
<br><tt>solaris-sparc-gnu</tt>
|
|
<br><tt>linux-x86</tt>
|
|
<br><tt>win32-x86</tt>
|
|
<br><tt>win32-x86-borland</tt></blockquote>
|
|
</blockquote>
|
|
|
|
<blockquote>
|
|
<h4>
|
|
Cross compile target platforms (operating system - architecture)</h4>
|
|
</blockquote>
|
|
|
|
<blockquote>
|
|
<blockquote><tt>vxWorks-486</tt>
|
|
<br><tt>vxWorks-68040</tt>
|
|
<br><tt>vxWorks-68040lc</tt>
|
|
<br><tt>vxWorks-68060</tt>
|
|
<br><tt>vxWorks-ppc604</tt>
|
|
<br><tt>vxWorks-pentium</tt>
|
|
<br><tt>RTEMS-gen68360</tt>
|
|
<br><tt>RTEMS-mvme167</tt>
|
|
<br><tt>RTEMS-pc386</tt></blockquote>
|
|
</blockquote>
|
|
|
|
<h3>
|
|
Supported compilers</h3>
|
|
|
|
<blockquote>This version of EPICS base has been built and tested using
|
|
the host vendor's C and C++ compilers as well as the GNU gcc and g++ compilers.
|
|
The GNU cross-compilers have 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 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.</blockquote>
|
|
|
|
<h3>
|
|
Software requirements</h3>
|
|
|
|
<blockquote><b>GNU make</b>
|
|
<br>You must use GNU make, gnumake, for any EPICS builds. Set your
|
|
path so that a gnumake version 3.70 or later is available.
|
|
<p><b>Perl</b>
|
|
<br>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.
|
|
<p><b>Unzip and tar (Winzip on WIN32 systems)</b>
|
|
<br>You must have tools available to unzip and untar the EPICS base distribution
|
|
file.
|
|
<p><b>Tornado 2.0</b>
|
|
<br>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 or base/configure/RELEASE.<hostarch>
|
|
file. You will also need one or more board support packages. Consult the
|
|
vxWorks documentation for details.
|
|
<p><b>GNU compiler for solaris-sparc and win32-x86 hosts</b>
|
|
<br>The host architecture build requires that g++ be in your path if you
|
|
wish to run "gnumake depends" (not required) to create header dependancy
|
|
include files for c/c++ source code. Also, if you have state notation language
|
|
source files which require c preprocessing to generate solaris-sparc object
|
|
files (*.st files), gcc must be in your path.
|
|
<br> </blockquote>
|
|
|
|
<h3>
|
|
Host system storage requirements</h3>
|
|
|
|
<blockquote>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.</blockquote>
|
|
|
|
<h3>
|
|
Documentation</h3>
|
|
|
|
<blockquote>EPICS documentation is available on the WWW via the EPICS home
|
|
page at APS: URL <a href="http://www.aps.anl.gov/Epics">http://www.aps.anl.gov/Epics</a></blockquote>
|
|
|
|
<blockquote>This README.htm is in the base distribution file and will be
|
|
available on the IOC software R3.14 EPICS WWW page which can be accessed
|
|
from the APS EPICS home page.</blockquote>
|
|
|
|
<h3>
|
|
WWW pages</h3>
|
|
|
|
<blockquote>
|
|
<h4>
|
|
EPICS home page at APS</h4>
|
|
|
|
<blockquote><a href="http://www.aps.anl.gov/Epics">http://www.aps.anl.gov/epics</a></blockquote>
|
|
|
|
<h4>
|
|
Other WWW sites</h4>
|
|
|
|
<blockquote>Additional information on EPICS can be found at the various
|
|
other WWW links on the EPICS home page at APS.</blockquote>
|
|
|
|
<h4>
|
|
Mailing Lists</h4>
|
|
|
|
<blockquote>There are five EPICS mailing lists provided by APS. See The
|
|
EPICS home page for subscription instructions.</blockquote>
|
|
</blockquote>
|
|
|
|
<h3>
|
|
Directory Structure</h3>
|
|
|
|
<blockquote>Distribution directory structure:</blockquote>
|
|
<tt> base
|
|
Root directory of the base distribution</tt>
|
|
<br><tt> base/configure
|
|
Operating system independent build config files</tt>
|
|
<br><tt> base/configure/os
|
|
Operating system dependent build config files</tt>
|
|
<br><tt> base/configure/tools
|
|
Perl and shell scripts used in the build</tt>
|
|
<br><tt> base/config
|
|
R3.13 compatibility build configuration files</tt>
|
|
<br><tt> base/src
|
|
All epics base source code in subdirectories</tt>
|
|
<br><tt> base/src/as
|
|
Access security</tt>
|
|
<br><tt> base/src/bpt
|
|
Break point table</tt>
|
|
<br><tt> base/src/ca
|
|
Channel access</tt>
|
|
<br><tt> base/src/cas
|
|
Channel access server</tt>
|
|
<br><tt> base/src/db
|
|
Database access</tt>
|
|
<br><tt> base/src/dbStatic
|
|
Static database access</tt>
|
|
<br><tt> base/src/dbtools
|
|
Database dbLoadTemplate tools</tt>
|
|
<br><tt> base/src/dev
|
|
Device support</tt>
|
|
<br><tt> base/src/gdd
|
|
General data descriptor</tt>
|
|
<br><tt> base/src/iocsh
|
|
Ioc shell command interpreter</tt>
|
|
<br><tt> base/src/libCom
|
|
General purpose library code in subdirectories</tt>
|
|
<br><tt> base/src/libCom/bucketLib
|
|
Hash bucket</tt>
|
|
<br><tt> base/src/libCom/calc
|
|
Algebraic expression interpreter</tt>
|
|
<br><tt> base/src/libCom/cvtFast
|
|
Fast number to string conversion</tt>
|
|
<br><tt> base/src/libCom/cxxTemplates C++ templates</tt>
|
|
<br><tt> base/src/libCom/dbmf
|
|
Memory management for frequent alloc/free</tt>
|
|
<br><tt> base/src/libCom/ellLib
|
|
EPICS double linked list</tt>
|
|
<br><tt> base/src/libCom/env
|
|
Default EPICS environment settings</tt>
|
|
<br><tt> base/src/libCom/error
|
|
Error handling definitions and routines</tt>
|
|
<br><tt> base/src/libCom/fdmgr
|
|
File descriptor manager</tt>
|
|
<br><tt> base/src/libCom/freeList
|
|
Memory management using free lists</tt>
|
|
<br><tt> base/src/libCom/gpHash
|
|
General purpose hash table</tt>
|
|
<br><tt> base/src/libCom/logClient
|
|
Logging client</tt>
|
|
<br><tt> base/src/libCom/macLib
|
|
Macro substitution handler</tt>
|
|
<br><tt> base/src/libCom/misc
|
|
Miscellaneous utilities</tt>
|
|
<br><tt> base/src/libCom/osi
|
|
Operating system independent code</tt>
|
|
<br><tt> base/src/libCom/osi/os
|
|
Operating system dependant code in subdirectories</tt>
|
|
<br><tt> base/src/libCom/test
|
|
Test tools (timer, semBinary, semMutex,fdmgr, ?)</tt>
|
|
<br><tt> base/src/libCom/timer
|
|
Timer</tt>
|
|
<br><tt> base/src/libCom/taskwd
|
|
Task watchdog</tt>
|
|
<br><tt> base/src/libCompat
|
|
EPICS base R3.13 compatibility code</tt>
|
|
<br><tt> base/src/makeBaseApp
|
|
Perl tool+templates to create app dvl tree</tt>
|
|
<br><tt> base/src/makeBaseExt
|
|
Perl tool+templates to create extension dvl tree</tt>
|
|
<br><tt> base/src/misc
|
|
Miscellaneous (coreRelease, iocInit, asSub*)</tt>
|
|
<br><tt> base/src/rec
|
|
Record support</tt>
|
|
<br><tt> base/src/registry
|
|
EPICS support function registry</tt>
|
|
<br><tt> base/src/rsrv
|
|
Channel access ioc resource server library</tt>
|
|
<br><tt> base/src/toolsComm
|
|
Code for the build tools antelope and e_flex</tt>
|
|
<br><tt> base/src/util
|
|
Utilities (ca_test, iocLogServer, startCArepeater)</tt>
|
|
<br><tt> base/src/vxWorks
|
|
R3.13 compatibility code specific to vxWorks</tt>
|
|
<br><tt> base/startup
|
|
Scripts for setting up path and environment</tt>
|
|
<p><tt> Install directories created by the build</tt>
|
|
<br><tt> base/bin
|
|
Installed scripts and executables in subdirs</tt>
|
|
<br><tt> base/lib
|
|
Installed libraries in arch subdirectories</tt>
|
|
<br><tt> base/dbd
|
|
Installed data base definitions</tt>
|
|
<br><tt> base/include
|
|
Installed header files</tt>
|
|
<br><tt> base/include/os
|
|
Installed os specific header files</tt>
|
|
<br><tt> base/templates
|
|
Installed templates</tt>
|
|
<h3>
|
|
Build related components</h3>
|
|
|
|
<blockquote>
|
|
<li>
|
|
base/README* files</li>
|
|
|
|
<p><br><tt>README.htm
|
|
Instructions for setup and building epics base</tt>
|
|
<br><tt>
|
|
(i.e. this document)</tt>
|
|
<br><tt>README.WIN32 Microsoft
|
|
WIN32 specific instructions</tt>
|
|
<br><tt>README.cxxTemplates Information about C++ templates in EPICS
|
|
base</tt>
|
|
<br><tt>README.niCpu030 NI cpu030 specific
|
|
instructions</tt>
|
|
<br>
|
|
<li>
|
|
base/startup directory - contains scripts to set environment and path</li>
|
|
|
|
<p><br><tt>EpicsHostArch c shell script
|
|
to set EPICS_HOST_ARCH env variable</tt>
|
|
<br><tt>EpicsHostArch.pl perl script to set EPICS_HOST_ARCH
|
|
env variable</tt>
|
|
<br><tt>Site.profile bourne shell
|
|
script to set path and env variables</tt>
|
|
<br><tt>Site.cshrc
|
|
c shell script to set path and env variables</tt>
|
|
<br><tt>borland.bat WIN32
|
|
bat file to set path and env variables</tt>
|
|
<br><tt>win32.bat
|
|
WIN32 bat file to set path and env variables</tt>
|
|
<br>
|
|
<li>
|
|
base/configure directory - contains build definitions and rules</li>
|
|
|
|
<br>
|
|
<p>
|
|
<p><tt>CONFIG.CrossCommon Cross build definitions</tt>
|
|
<br><tt>CONFIG_ADDONS Definitions
|
|
for <osclass> and DEFAULT options</tt>
|
|
<br><tt>CONFIG_BASE
|
|
EPICS base tool and location definitions</tt>
|
|
<br><tt>CONFIG_BASE_VERSION Definitions for EPICS base version
|
|
number</tt>
|
|
<br><tt>CONFIG_COMMON Definitions
|
|
common to all builds</tt>
|
|
<br><tt>CONFIG_ENV
|
|
Definitions of EPICS environment variables</tt>
|
|
<br><tt>CONFIG_SITE
|
|
Site specific make defintions</tt>
|
|
<br><tt>CONFIG_SITE_ENV Site defaults
|
|
for EPICS environment variables</tt>
|
|
<br><tt>CONFIG
|
|
Includes configure files and allows variable overrides</tt>
|
|
<br><tt>RELEASE
|
|
Location of external products such as Tornado II</tt>
|
|
<br><tt>RULES
|
|
Includes appropriate rules file</tt>
|
|
<br><tt>RULES.Db
|
|
Rules for database and database definition files</tt>
|
|
<br><tt>RULES_ARCHS
|
|
Definitions and rules for building architectures</tt>
|
|
<br><tt>RULES_BUILD
|
|
Build and install rules and definitions</tt>
|
|
<br><tt>RULES_DIRS
|
|
Definitions and rules for building subdirectories</tt>
|
|
<br><tt>RULES_JAVA
|
|
Definitions and rules for java jars and classes</tt>
|
|
<br><tt>RULES_TOP
|
|
Rules specific to a <top> dir (uninstall and tar)</tt>
|
|
<br>
|
|
<li>
|
|
base/configure/os directory - contains os-arch specific definitions</li>
|
|
|
|
<br>
|
|
<p>
|
|
<p><tt>CONFIG.<host>.<target> Specific
|
|
host-target build definitions</tt>
|
|
<br><tt>CONFIG.Common.<target> Specific
|
|
target definitions for all hosts</tt>
|
|
<br><tt>CONFIG.<host>.Common
|
|
Specific host definitions for all targets</tt>
|
|
<br><tt>CONFIG.UnixCommon.Common Definitions for Unix
|
|
hosts and all target</tt>
|
|
<br><tt>CONFIG.<host>.vxWorksCommon Specific host definitions for all
|
|
vx targets</tt>
|
|
<br><tt>CONFIG_COMPAT
|
|
R3.13 arch compatibility definitions</tt>
|
|
<br>
|
|
<li>
|
|
base/configure/tools directory - contains Perl scripts used for the build</li>
|
|
|
|
<br>
|
|
<p>
|
|
<p><tt>cp.pl
|
|
This Perl script copies an existing file</tt>
|
|
<br><tt>installEpics.pl
|
|
Installs built files into install directories.</tt>
|
|
<br><tt>makeConfigAppInclude.pl Generates include,bin, lib dir definitions</tt>
|
|
<br><tt>makeDbDepends.pl Generates
|
|
dependencies from substitution files</tt>
|
|
<br><tt>makeIocCdCommands.pl Generates cdCommands file
|
|
for use in IOCs</tt>
|
|
<br><tt>makeMakefile.pl
|
|
Creates a Makefile in O.<arch> dirs</tt>
|
|
<br><tt>makeMakefileInclude.pl Creates file to be included by Makefile</tt>
|
|
<br><tt>mkdir.pl
|
|
Creates a directory (like Unix mkdir)</tt>
|
|
<br><tt>munch.pl
|
|
Creates a ctdt.c file for vxWorks targets</tt>
|
|
<br><tt>mv.pl
|
|
Renames an existing file.</tt>
|
|
<br><tt>replaceVAR.pl
|
|
Changes CapFast VAR(xxx) to $(xxx) notation</tt>
|
|
<br><tt>rm.pl
|
|
Quietly removes an existing file.</tt></blockquote>
|
|
|
|
<h3>
|
|
Building EPICS base (Unix and Win32)</h3>
|
|
|
|
<blockquote><b>Unpack file</b>
|
|
<blockquote>Unzip and untar the distribution file. Use WinZip on Windows
|
|
systems.</blockquote>
|
|
S<b>et environment variable</b>
|
|
<blockquote>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.</blockquote>
|
|
<b>Check path requirements</b>
|
|
<blockquote>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, and the c compiler may require ld in your path..</blockquote>
|
|
<b>Do site-specific build configuration</b>
|
|
<blockquote><b>Site configuration</b>
|
|
<br>To configure EPICS, you may want to modify the default definitions
|
|
in the following files:
|
|
<blockquote><tt>configure/CONFIG_SITE </tt>-
|
|
Build choices. Specify your target archs.
|
|
<br><tt>configure/CONFIG_SITE_ENV </tt>- Set your environment variable
|
|
definitions
|
|
<br><tt>configure/RELEASE </tt>-
|
|
TORNADO 2 full path location</blockquote>
|
|
|
|
<p><br><b>Host configuration</b>
|
|
<br>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.
|
|
<blockquote><tt>configure/os/CONFIG.<host>.<host></tt>
|
|
- Host build settings
|
|
<br><tt>configure/os/CONFIG.<host>.Common</tt>
|
|
- Host cross build settings</blockquote>
|
|
<b>Target configuration</b>
|
|
<br>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.
|
|
<blockquote><tt>configure/os/CONFIG.Common.<target></tt>
|
|
- Target cross settings
|
|
<br><tt>configure/os/CONFIG.<host>.<target> </tt> - Host-target
|
|
settings</blockquote>
|
|
<b>R3.13 compatibility configuration</b>
|
|
<br>To configure EPICS base for building with R3.13 extensions and ioc
|
|
applications , you will want to modify the default definitions in the base/config/CONFIG_SITE*
|
|
files to agree with the definitions in your configure/base files.</blockquote>
|
|
|
|
<h4>
|
|
<b>Build EPICS base</b></h4>
|
|
|
|
<blockquote>After configuring the build you should be able to build EPICS
|
|
base by issuing the following commands in the distribution's root directory
|
|
(base)
|
|
<blockquote><tt>gnumake clean uninstall</tt>
|
|
<br><tt>gnumake</tt></blockquote>
|
|
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.
|
|
<br>It is recommended that you do a "gnumake clean uninstall" at the root
|
|
directory of an EPICS directory structure before each complete rebuild
|
|
to ensure that all components will be rebuilt.</blockquote>
|
|
</blockquote>
|
|
|
|
<h3>
|
|
Multiple host platforms</h3>
|
|
|
|
<blockquote>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 subdirectories
|
|
and installed into the appropriate separate host/target install directories.
|
|
EPICS executables and perl scripts are installed into the <tt>$(INSTALL_LOCATION)/bin/<arch></tt>
|
|
directories. Libraries are installed into $<tt><font size=+1>(INSTALL_LOCATION)/lib/<arch></font></tt>.
|
|
The default definition for <tt>$(INSTALL_LOCATION)</tt> is <tt>$(TOP)</tt>
|
|
which is the root directory in the distribution directory structure, base.
|
|
Created object files 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.</blockquote>
|
|
|
|
<h3>
|
|
Examples</h3>
|
|
|
|
<blockquote>A perl tool, makeBaseApp.pl is included in the distribution
|
|
file. This script will create a sample application that then can be built
|
|
and then executed to try out this release of base. Also, a perl script,
|
|
makeBaseExt.pl, is included in the distribution file. This script will
|
|
create a sample extension that can be built and executed. The makeBaseApp.pl
|
|
and makeBaseExt.pl scripts are installed into the install location bin/<hostarch>
|
|
directory during the base build.</blockquote>
|
|
|
|
<h3>
|
|
Example base application</h3>
|
|
|
|
<blockquote>Instructions for building and executing a 3.14 example application
|
|
can be found in the section "Example Application" of Chapter 2, "New Features
|
|
for 3.14", in the "IOC Application Developer's Guide R3.14.0alpha2"
|
|
. The "Example Application" section briefly explains how to create
|
|
and build an example application in a user created <top> directory.
|
|
It also explains how to run the example application on a vxWorks ioc or
|
|
a host system and run an example channel access client on the host system.</blockquote>
|
|
|
|
</body>
|
|
</html>
|