Files
epics-base/README.htm
2001-07-25 20:46:09 +00:00

528 lines
28 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.77 [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.0alpha3</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 for the following targets. If you are trying to build EPICS
base on a different host or for a different target machine you must get
the proper host/target cross compiler and header files and you will have
to create and add the appropriate new 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 platforms (operating system - architecture - &lt;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.&lt;host>.&lt;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.&nbsp; 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.&nbsp; 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.&nbsp; 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.&lt;hostarch>
file. You will also need one or more board support packages. Consult the
vxWorks documentation for details.
<p><b>Optional GNU compiler requirement for solaris-sparc&nbsp; and win32-x86
hosts</b>
<br>If you wish to have the build automatically&nbsp; create header dependancy
include files for c/c++ source code (HDEPENDS set to YES&nbsp;in CONFIG_SITE)
, the gnu compilers gcc and&nbsp; g++ must be be in your path. Also, if
you have state notation language source files (*.st files) which require
c preprocessing before conversion to c source,&nbsp; gcc must be in your
path.</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:&nbsp; 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>&nbsp;&nbsp;&nbsp;&nbsp; base&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Root directory of the base istribution</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 compatibility build configuration files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/config/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl and shell scripts used in the R3.13 build</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system independent build config files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure/os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system dependent build config files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl and shell scripts used in the build</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/copyright&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Text files describing software copyrights</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
All epics base source code in subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/as&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Access security</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/bpt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Break point table</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/ca&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Channel access</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/cas&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Channel access server</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database access</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/db/test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database access tests</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dbStatic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Static database access</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dbtools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database dbLoadTemplate tools</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Device support (softDev and testDev)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/gdd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
General data descriptor</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/iocsh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Ioc shell command interpreter</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
General purpose library code in subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/bucketLib&nbsp;&nbsp;&nbsp;
Hash bucket</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/calc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Algebraic expression interpreter</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cvtFast&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Fast number to string conversion</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cxxTemplates C++ templates
and templates tests</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/dbmf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Memory management for frequent alloc/free</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/ellLib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EPICS double linked list</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/env&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Default EPICS environment settings</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/error&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Error handling definitions and routines</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/fdmgr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
File descriptor manager</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/freeList&nbsp;&nbsp;&nbsp;&nbsp;
Memory management using free lists</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/gpHash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
General purpose hash table</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/logClient&nbsp;&nbsp;&nbsp;
Logging client</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/macLib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Macro substitution handler</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/misc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Miscellaneous utilities</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/osi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system independent code</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/osi/os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system dependant code in subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/taskwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Task watchdog</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Test tools (timer, semBinary, semMutex,fdmgr, ?)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/timer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Timer</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/tsDefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 time stamp definitions and routines</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/ring&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ringPointer: First in first out circular buffers</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cppStd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
epicsList: Lists of pointers to objects</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/makeBaseApp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl tool+templates to create ioc app dvl tree</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/makeBaseExt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl tool+templates to create extension dvl tree</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/misc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Miscellaneous (coreRelease, iocInit, asSub*)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/rec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Record support</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/registry&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EPICS support function registry</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/rsrv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Channel access ioc resource server library</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/toolsComm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Code for the build tools antelope and e_flex</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/util&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Utilities (ca_test, iocLogServer, startCArepeater)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/vxWorks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 compatibility code specific to vxWorks</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/startup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Scripts for setting up path and environment</tt>
<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; </tt>Install directories created by the
build:
<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed scripts and executables in subdirs</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed libraries in arch subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/dbd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed data base definitions</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed header files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/include/os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed os specific header files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/templates&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed templates</tt>
<h3>
Build related components</h3>
<blockquote>
<li>
base/README* files</li>
<br><tt>README.htm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Instructions for setup and building epics base</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
(i.e. this document)</tt>
<br><tt>README.WIN32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Microsoft
WIN32 specific instructions</tt>
<br><tt>README.cxxTemplates&nbsp; Information about C++ templates in EPICS
base</tt>
<br><tt>README.niCpu030&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NI cpu030 specific
instructions</tt>
<br>&nbsp;
<li>
base/startup directory - contains scripts to set environment and path</li>
<br><tt>EpicsHostArch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; c shell script
to set EPICS_HOST_ARCH env variable</tt>
<br><tt>EpicsHostArch.pl&nbsp;&nbsp;&nbsp; perl script to set EPICS_HOST_ARCH
env variable</tt>
<br><tt>Site.profile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bourne shell
script to set path and env variables</tt>
<br><tt>Site.cshrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
c shell script to set path and env variables</tt>
<br><tt>borland.bat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WIN32
bat file to set path and env variables</tt>
<br><tt>win32.bat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
WIN32 bat file to set path and env variables</tt>
<br>&nbsp;
<li>
base/configure&nbsp; directory - contains build definitions and rules</li>
<br><tt>CONFIG.CrossCommon&nbsp;&nbsp;&nbsp; Cross build definitions</tt>
<br><tt>CONFIG.gnuCommon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gnu compiler build
definitions for all archs</tt>
<br><tt>CONFIG_ADDONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Definitions
for &lt;osclass> and DEFAULT options</tt>
<br><tt>CONFIG_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EPICS base tool and location definitions</tt>
<br><tt>CONFIG_BASE_VERSION&nbsp;&nbsp; Definitions for EPICS base version
number</tt>
<br><tt>CONFIG_COMMON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Definitions
common to all builds</tt>
<br><tt>CONFIG_ENV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Definitions of EPICS environment variables</tt>
<br><tt>CONFIG_SITE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Site specific make defintions</tt>
<br><tt>CONFIG_SITE_ENV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Site defaults
for EPICS environment variables</tt>
<br><tt>CONFIG&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Includes configure files and allows variable overrides</tt>
<br><tt>RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Location of external products such as Tornado II</tt>
<br><tt>RULES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Includes appropriate rules file</tt>
<br><tt>RULES.Db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Rules for database and database definition files</tt>
<br><tt>RULES_ARCHS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Definitions and rules for building architectures</tt>
<br><tt>RULES_BUILD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Build and install rules and definitions</tt>
<br><tt>RULES_DIRS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Definitions and rules for building subdirectories</tt>
<br><tt>RULES_JAVA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Definitions and rules for java jars and classes</tt>
<br><tt>RULES_TOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Rules specific to a &lt;top> dir (uninstall and tar)</tt>
<br><tt>Sample.Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sample makefile
with comments</tt>
<br>&nbsp;
<li>
base/configure/os directory - contains os-arch specific definitions</li>
<br><tt>CONFIG.&lt;host>.&lt;target>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specific
host-target build definitions</tt>
<br><tt>CONFIG.Common.&lt;target>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specific
target definitions for all hosts</tt>
<br><tt>CONFIG.&lt;host>.Common&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Specific host definitions for all targets</tt>
<br><tt>CONFIG.UnixCommon.Common&nbsp;&nbsp;&nbsp; Definitions for Unix
hosts and all target</tt>
<br><tt>CONFIG.&lt;host>.vxWorksCommon Specific host definitions for all
vx targets</tt>
<br><tt>CONFIG_COMPAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 arch compatibility definitions</tt>
<br><tt>CONFIG_SITE.&lt;host>.&lt;target> Site specific host-target definitions</tt>
<br><tt>CONFIG_SITE.Common.&lt;target> Site specific target defs for all
hosts</tt>
<br><tt>CONFIG_SITE.&lt;host>.Common&nbsp;&nbsp; Site specific host defs
for all targets</tt>
<br>&nbsp;
<li>
base/configure/tools directory - contains Perl scripts used for the build</li>
<br><tt>cp.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
This Perl script copies an existing file</tt>
<br><tt>installEpics.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installs built files into install directories.</tt>
<br><tt>makeConfigAppInclude.pl Generates include,bin, lib dir definitions</tt>
<br><tt>makeDbDepends.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generates
dependencies from substitution files</tt>
<br><tt>makeIocCdCommands.pl&nbsp;&nbsp;&nbsp; Generates cdCommands file
for use in IOCs</tt>
<br><tt>makeMakefile.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Creates a Makefile in O.&lt;arch> dirs</tt>
<br><tt>makeMakefileInclude.pl&nbsp; Creates file to be included by Makefile</tt>
<br><tt>makeRulesInclude.pl&nbsp;&nbsp;&nbsp;&nbsp; Creates .h depends
files included by Makefile</tt>
<br><tt>mkdir.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Creates a directory (like Unix mkdir)</tt>
<br><tt>munch.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Creates a ctdt.c file for vxWorks targets</tt>
<br><tt>mv.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Renames an existing file.</tt>
<br><tt>replaceVAR.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Changes CapFast VAR(xxx) to $(xxx) notation</tt>
<br><tt>rm.pl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
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.
<p>On WIN32, some versions of Perl require that&nbsp; the environment variable
PERLLIB be set to &lt;perl directory location>.</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 your
path, and the c compiler may require ld in your path.
<p>If you plan to build EPICS base shared libraries instead of archive
libraries, on Unix systems you will need to add&nbsp; fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
to your LD_LIBRARY_PATH environment variable. On WIN32 systems, building
shared libraries is the default setting and you will need to add&nbsp;
fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to your path.
Building shared libraries is determined by the value of the macro SHARED_LIBRARIES
in CONFIG_SITE (either YES or NO).</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&nbsp;&nbsp;&nbsp;&nbsp; </tt>Build
choices. Specify target archs.
<br><tt>configure/CONFIG_SITE_ENV </tt>Environment variable&nbsp; defaults
<br><tt>configure/RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</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.&lt;host>.&lt;host></tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- Host build settings
<br><tt>configure/os/CONFIG.&lt;host>.Common</tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
- 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.&lt;target></tt>&nbsp;&nbsp;
- Target cross settings
<br><tt>configure/os/CONFIG.&lt;host>.&lt;target>&nbsp;</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 must modify the default definitions in the base/config/CONFIG_SITE*&nbsp;
files to agree with the definitions in your base/configure 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&nbsp; 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/&lt;arch></tt>
directories. Libraries are installed into $<tt><font size=+1>(INSTALL_LOCATION)/lib/&lt;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.&lt;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>
Example application and extension</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/&lt;hostarch>
directory during the base build.</blockquote>
<blockquote>Instructions for building and executing the 3.14 example application
can be found in the section "Example Application" of Chapter 2, "New Features
for 3.14", in the&nbsp; "IOC Application Developer's Guide R3.14.0alpha3"
. The "Example Application"&nbsp; section briefly explains how to create
and build an example application in a user created &lt;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>