565 lines
33 KiB
HTML
565 lines
33 KiB
HTML
<!DOCTYPE HTML>
|
|
<HTML>
|
|
README.html
|
|
<BODY>
|
|
<CENTER>
|
|
<H1>Installation Instructions</H1>
|
|
<H2>EPICS base Release 3.14.*</H2><BR>
|
|
</CENTER>
|
|
<HR>
|
|
<H3> Table of Contents</H3>
|
|
<UL>
|
|
<LI><A HREF="#0_0_1"> What is EPICS base?</A></LI>
|
|
<LI><A HREF="#0_0_2"> What is new in this release?</A></LI>
|
|
<LI><A HREF="#0_0_3"> Copyright</A></LI>
|
|
<LI><A HREF="#0_0_4"> Supported platforms</A></LI>
|
|
<LI><A HREF="#0_0_5"> Supported compilers</A></LI>
|
|
<LI><A HREF="#0_0_6"> Software requirements</A></LI>
|
|
<LI><A HREF="#0_0_7"> Host system storage requirements</A></LI>
|
|
<LI><A HREF="#0_0_8"> Documentation</A></LI>
|
|
<LI><A HREF="#0_0_9"> WWW pages</A></LI>
|
|
<LI><A HREF="#0_0_10"> Directory Structure</A></LI>
|
|
<LI><A HREF="#0_0_11"> Build related components</A></LI>
|
|
<LI><A HREF="#0_0_12"> Building EPICS base (Unix and Win32)</A></LI>
|
|
<LI><A HREF="#0_0_13"> Example application and extension</A></LI>
|
|
<LI><A HREF="#0_0_14"> Multiple host platforms</A></LI>
|
|
</UL>
|
|
<HR>
|
|
<H3><A NAME="0_0_1"> What is EPICS base?</A></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><A NAME="0_0_2"> What is new in this release?</A></H3>
|
|
<BLOCKQUOTE> Please check the RELEASE_NOTES file in the distribution for
|
|
description of changes and release migration details.</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_3"> Copyright</A></H3>
|
|
<BLOCKQUOTE>Please review the COPYRIGHT* files included in the
|
|
distribution for legal terms of usage.</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_4"> Supported platforms</A></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>
|
|
<H4>Host platforms (operating system - architecture [- alternate
|
|
toolset])</H4>
|
|
<BLOCKQUOTE>
|
|
<PRE>cygwin-x86 (unix style API, uses cygwin1.dll compatability library)
|
|
darwin-ppc
|
|
darwin-x86
|
|
darwin-ppcx86
|
|
freebsd-x86
|
|
freebsd-x86_64
|
|
linux-ppc
|
|
linux-x86
|
|
linux-x86_64
|
|
linux-x86-borland
|
|
solaris-sparc
|
|
solaris-sparc-gnu
|
|
solaris-sparc64
|
|
solaris-sparc64-gnu
|
|
solaris-x86
|
|
solaris-x86-gnu
|
|
win32-x86
|
|
win32-x86-mingw (WIN32 API, uses MS dlls)
|
|
win32-x86-cygwin (WIN32 API, uses MS dlls)
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
<H4> Cross compile target platforms (operating system - architecture)</H4>
|
|
<BLOCKQUOTE>
|
|
<PRE>linux-386
|
|
linux-486
|
|
linux-586
|
|
linux-686
|
|
linux-arm
|
|
linux-arm_eb
|
|
linux-arm_el
|
|
linux-athlon
|
|
linux-cris
|
|
linux-cris_v10
|
|
linux-cris_v32
|
|
linux-xscale_be
|
|
vxWorks-486
|
|
vxWorks-68040
|
|
vxWorks-68040lc
|
|
vxWorks-68060
|
|
vxWorks-pentium
|
|
vxWorks-ppc603
|
|
vxWorks-ppc603_long
|
|
vxWorks-ppc604
|
|
vxWorks-ppc604_long
|
|
vxWorks-ppc604_altivec
|
|
vxWorks-mpc8540
|
|
RTEMS-at91rm9200ek
|
|
RTEMS-beatnik
|
|
RTEMS-gen68360
|
|
RTEMS-mcp750
|
|
RTEMS-mvme167
|
|
RTEMS-mvme2100
|
|
RTEMS-mvme3100
|
|
RTEMS-mvme5500
|
|
RTEMS-pc386
|
|
RTEMS-psim
|
|
RTEMS-uC5282
|
|
</PRE>
|
|
</BLOCKQUOTE>
|
|
</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_5"> Supported compilers</A></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 CC and CCC in
|
|
base/configure/os/CONFIG.<host>.<host>.</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_6"> Software requirements</A></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.81 or later is available.
|
|
<P><B>gcc</B>
|
|
<BR> For most cases, you must have gcc version 3.4.2 or later.
|
|
Appropriate versions of vendor C and C++ compilers may be used for
|
|
native compilation.</P>
|
|
<P><B>Perl</B>
|
|
<BR> You must have perl version 5.8 or later installed. The configure
|
|
files do not specify the perl full pathname. You need the perl
|
|
executable in your search path.</P>
|
|
<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>
|
|
<P><B>Target systems</B>
|
|
<BR> EPICS supports IOCs running on embedded platforms such as VxWorks
|
|
and RTEMS via cross-compilers. EPICS also supports ?soft? IOCs running
|
|
as processes on the host platform.</P>
|
|
<P><B>Tornado 2</B>
|
|
<BR> You must have Tornado 2 installed if any of your target systems are
|
|
vxWorks systems. Tornado 2 provides the cross-compiler and header files
|
|
needed to build for these target systems. The full path location to
|
|
Tornado 2 should 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>
|
|
<P><B>RTEMS</B>
|
|
<BR> For RTEMS targets, you must use RTEMS version 4.9.2 or later.</P>
|
|
<P><B>GNU readline or Tecla library</B>
|
|
<BR> GNU readline and Tecla librararies can be used by the IOC shell to
|
|
provide command line editing and command line history recall and edit.
|
|
GNU readline (or Tecla library) must be installed on your target system
|
|
when COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target.
|
|
EPICS (EPICS shell) is the default specified in CONFIG_COMMON. A
|
|
READLINE override is defined for linux-x86 in the EPICS distribution.
|
|
Comment out COMMANDLINE_LIBRARY=READLINE in
|
|
configure/os/CONFIG_SITE.Common.linux-x86 if readline is not installed
|
|
on linux-x86. Command-line editing and history will then be those
|
|
supplied by the os. On vxWorks the ledLib command-line input libraries
|
|
are used.</P>
|
|
</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_7"> Host system storage requirements</A></H3>
|
|
<BLOCKQUOTE>The GNU zipped tar file is approximately 1.4 MB in size. The
|
|
unzipped untarred distribution source tree is approximately 7.3 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><A NAME="0_0_8"> Documentation</A></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> available on the IOC software, Base
|
|
R3.14, release number, web page which can be accessed from the APS
|
|
EPICS home page.</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_9"> WWW pages</A></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 List</H4>
|
|
<BLOCKQUOTE>There is an EPICS mailing list called tech-talk which is
|
|
hosted at APS with a list repeater at BESSY. See the EPICS home page
|
|
for subscription instructions.</BLOCKQUOTE></BLOCKQUOTE>
|
|
<H3><A NAME="0_0_10"> Directory Structure</A></H3>
|
|
<BLOCKQUOTE><H4>Distribution directory structure:</H4>
|
|
<BLOCKQUOTE><TT>
|
|
base Root directory of the base distribution</TT>
|
|
<BR> <TT>base/config R3.13 compatibility build
|
|
configuration files</TT>
|
|
<BR> <TT>base/config/tools Perl and shell scripts used
|
|
in the R3.13 build</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/documentation Distributation documentation</TT>
|
|
<BR> <TT>base/src All epics base source code in
|
|
subdirectories</TT>
|
|
<BR> <TT>base/src/RTEMS Code to configure RTEMS for
|
|
EPICS</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/cap5 Channel Access client
|
|
interface for Perl 5</TT>
|
|
<BR> <TT>base/src/cas Channel access server library
|
|
and examples</TT>
|
|
<BR> <TT>base/src/catools Channel access tools caget,
|
|
cainfo, camonitor, caput</TT>
|
|
<BR> <TT>base/src/db Database access</TT>
|
|
<BR> <TT>base/src/db/test Database access tests</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 (camacDev,
|
|
softDev, and testDev)</TT>
|
|
<BR> <TT>base/src/excas Example channel access server</TT>
|
|
<BR> <TT>base/src/gdd General data descriptor</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/cppStd Support for C++ standard
|
|
template library</TT>
|
|
<BR> <TT>base/src/libCom/cvtFast Fast number to string
|
|
conversion</TT>
|
|
<BR> <TT>base/src/libCom/cxxTemplates C++ templates and templates
|
|
tests</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/ring Methods for creating and
|
|
using ring buffers</TT>
|
|
<BR> <TT>base/src/libCom/taskwd Task watchdog</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/tsDefs R3.13 time stamp definitions
|
|
and routines</TT>
|
|
<BR> <TT>base/src/makeBaseApp Perl tool+templates to create
|
|
ioc 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/softIoc Example softIoc</TT>
|
|
<BR> <TT>base/src/tools Perl scripts used during the
|
|
builds</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>
|
|
</BLOCKQUOTE>
|
|
<H4>Install directories created by the build:</H4>
|
|
<BLOCKQUOTE>
|
|
<P><TT>bin Installed scripts and executables in
|
|
subdirs</TT>
|
|
<BR> <TT>cfg Installed build configuration
|
|
files</TT>
|
|
<BR> <TT>db Installed data bases</TT>
|
|
<BR> <TT>dbd Installed data base definitions</TT>
|
|
<BR> <TT>doc Installed documentation files</TT>
|
|
<BR> <TT>html Installed html documentation</TT>
|
|
<BR> <TT>include Installed header files</TT>
|
|
<BR> <TT>include/os Installed os specific header files
|
|
in subdirs</TT>
|
|
<BR> <TT>javalib Installed java class and jar files</TT>
|
|
<BR> <TT>lib Installed libraries in arch
|
|
subdirectories</TT>
|
|
<BR> <TT>lib/perl Installed perl modules</TT>
|
|
<BR> <TT>templates Installed templates</TT></P>
|
|
</BLOCKQUOTE>
|
|
</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_11"> Build related components</A></H3>
|
|
<BLOCKQUOTE>
|
|
<H4> base/documentation/README* files</H4>
|
|
<BLOCKQUOTE>
|
|
<TT>README.1st Instructions for setup and building epics
|
|
base</TT>
|
|
<BR> <TT>README.html html version of README.1st</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> <TT>README.darwin Installation notes for Mac OS X (Darwin)</TT>
|
|
<BR> <TT>RELEASE_NOTES.html Notes on release changes</TT>
|
|
<BR> <TT>KnownProblems.html List of known problems and workarounds</TT>
|
|
<BR> <TT>Converting*To*.html Release specific conversion instructions</TT>
|
|
<BR> <TT>Building*With*.html Release specific build instructions</TT>
|
|
</BLOCKQUOTE>
|
|
<H4> base/startup directory - contains scripts to set environment and path</H4>
|
|
<BLOCKQUOTE>
|
|
<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 borland path and env
|
|
variables</TT>
|
|
<BR> <TT>cygwin.bat WIN32 bat file to set cygwin path and env
|
|
variables</TT>
|
|
<BR> <TT>win32.bat WIN32 bat file to set path and env
|
|
variables</TT>
|
|
<BR> <TT>win32-debug.bat WIN32 debug bat file to set debug path and
|
|
env variables</TT>
|
|
</BLOCKQUOTE>
|
|
<H4> base/configure directory - contains build definitions and rules</H4>
|
|
<BLOCKQUOTE>
|
|
<TT>CONFIG Includes configure files and allows
|
|
variable overrides</TT>
|
|
<BR> <TT>CONFIG.CrossCommon Cross build definitions</TT>
|
|
<BR> <TT>CONFIG.gnuCommon Gnu compiler build definitions for all
|
|
archs</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>MAKEFILE Installs CONFIG* RULES* creates
|
|
CONFIG_APP_INCLUDE</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.ioc Rules for application iocBoot/ioc*
|
|
directory</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> <TT>Sample.Makefile Sample makefile with comments</TT>
|
|
<BR>
|
|
</BLOCKQUOTE>
|
|
<H4> base/configure/os directory - contains os-arch specific definitions</H4>
|
|
<BLOCKQUOTE>
|
|
<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
|
|
targets</TT>
|
|
<BR> <TT>CONFIG.Common.UnixCommon Definitions for Unix targets and
|
|
all hosts</TT>
|
|
<BR> <TT>CONFIG.Common.vxWorksCommon Specific host definitions for all
|
|
vx targets</TT>
|
|
<BR> <TT>CONFIG_COMPAT R3.13 arch compatibility
|
|
definitions</TT>
|
|
<BR> <TT>CONFIG_SITE.<host>.<target> Site specific host-target
|
|
definitions</TT>
|
|
<BR> <TT>CONFIG_SITE.Common.<target> Site specific target defs for all
|
|
hosts</TT>
|
|
<BR> <TT>CONFIG_SITE.<host>.Common Site specific host defs for all
|
|
targets</TT>
|
|
<BR>
|
|
</BLOCKQUOTE>
|
|
<H4> base/src/tools directory - contains Perl scripts used for the build</H4>
|
|
<BLOCKQUOTE>
|
|
<TT>Makefile Makefile for installing the scripts into cfg dir</TT><BR>
|
|
<TT>convertRelease.pl Performs consistancy checks on RELEASE
|
|
files</TT>
|
|
<BR> <TT>cvsclean.pl Remove all .#* files in directory tree</TT>
|
|
<BR> <TT>dos2unix.pl Converts text file from DOS CR/LF to unix ISO</TT>
|
|
<BR> <TT>expandvars.pl Tool to expand @VAR@ variables while copying a file</TT>
|
|
<BR> <TT>filterWarnings.pl Filters warning messages during HP
|
|
builds</TT>
|
|
<BR> <TT>fullpathName.pl Returns fullpath name of directory arg</TT>
|
|
<BR> <TT>installEpics.pl Installs built files into install
|
|
directories</TT>
|
|
<BR> <TT>makeIncludeDbd.pl Creates *Include.dbd file from filename
|
|
args</TT> files
|
|
<BR> <TT>makeMakefile.pl Creates a Makefile in O.<arch> dirs</TT>
|
|
<BR> <TT>makeTestfile.pl Generates a test harness $target.t file</TT>
|
|
<BR> <TT>mkmf.pl Generates dependencies from include
|
|
stmnts</TT>
|
|
<BR> <TT>munch.pl Creates a ctdt.c file for vxWorks
|
|
targets</TT>
|
|
<BR> <TT>replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation</TT>
|
|
<BR> <TT>useManifestTool.pl Use MS VC++ version to set usage of Manifest Tool</TT>
|
|
</BLOCKQUOTE>
|
|
</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_12"> Building EPICS base (Unix and Win32)</A></H3>
|
|
<BLOCKQUOTE>
|
|
<H4> Unpack file</H4>
|
|
<BLOCKQUOTE>
|
|
Unzip and untar the distribution file. Use WinZip on Windows
|
|
systems.
|
|
</BLOCKQUOTE>
|
|
<H4>Set environment variables</H4>
|
|
<BLOCKQUOTE>
|
|
Files in the base/startup directory have been provided to
|
|
help set required path and other environment variables .
|
|
<P><B>EPICS_HOST_ARCH</B>
|
|
<BR> 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.
|
|
If you are not using the OS vendor's c/c++ compiler for host builds,
|
|
you will need another dash followed by the alternate compiler name
|
|
(e.g. "-gnu" for GNU c/c++ compilers on a solaris host or "-borland"
|
|
for Borland c/c++ compilers on a WIN32 host). See configure/CONFIG_SITE
|
|
for a list of supported EPICS_HOST_ARCH values.</P>
|
|
<P><B>PERLLIB</B>
|
|
<BR> On WIN32, some versions of Perl require that the environment
|
|
variable PERLLIB be set to <perl directory location>.</P>
|
|
<P><B>PATH</B>
|
|
<BR> 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 ln, 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 as and ld in your path. On
|
|
solaris systems you need uname in your path.</P>
|
|
<P><B>LD_LIBRARY_PATH</B>
|
|
<BR> It is no longer necessary to have LD_LIBRARY_PATH include EPICS
|
|
directories on a Unix type system. R3.14 shared libraries and
|
|
executables will contain the full path name to libraries they require.
|
|
However, if you move the EPICS directories from their build-time
|
|
location then in order for libraries to be found at runtime
|
|
LD_LIBRARY_PATH must include the full pathname to
|
|
$(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking executables.
|
|
Building shared libraries is now the default setting for all Unix type
|
|
hosts. NOTE: You will still need LD_LIBRARY_PATH for R3.13 extension
|
|
shared libraries even if the R3.13 extensions are built with R3.14
|
|
base.</P>
|
|
<P><B>Win32 PATH</B>
|
|
<BR> On WIN32 systems, for R3.14.7 and later, it is no longer necessary
|
|
to add fullpathname to $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH) to
|
|
your path for finding dlls during EPICS builds. The win32 configure
|
|
files in base now add this directory to the path definition.</P>
|
|
</BLOCKQUOTE>
|
|
<H4>Do site-specific build configuration</H4>
|
|
<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
|
|
Build choices. Specify target archs.<br></TT>
|
|
<TT>configure/CONFIG_SITE_ENV
|
|
Environment variable defaults</TT><br>
|
|
<TT>configure/RELEASE
|
|
TORNADO2 full path location</TT>
|
|
</BLOCKQUOTE><B> Host configuration</B>
|
|
<BR> To configure each host system, you may override the default
|
|
definitions by adding a new file in the configure/os directory with
|
|
override definitions. 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>
|
|
|
|
Host build settings</TT><BR>
|
|
<TT>configure/os/CONFIG.<host>.Common
|
|
|
|
Host common build settings</TT>
|
|
</BLOCKQUOTE><B> Target configuration</B>
|
|
<BR> To configure each target system, you may override the default
|
|
definitions by adding a new file in the configure/os directory with
|
|
override definitions. 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. This step is necessary even if the host system
|
|
is the only target system.<BLOCKQUOTE>
|
|
<TT>configure/os/CONFIG.Common.<target>
|
|
Target common settings</TT><BR>
|
|
<TT>configure/os/CONFIG.<host>.<target>
|
|
Host-target settings</TT>
|
|
</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* files to agree with definitions you made in
|
|
base/configure and base/configure/os 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>
|
|
</BLOCKQUOTE>
|
|
<H3><A NAME="0_0_13"> Example application and extension</A></H3>
|
|
<BLOCKQUOTE>A perl tool, makeBaseApp.pl is included in the distribution
|
|
file. This script will create a sample application that 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><BLOCKQUOTE>
|
|
Instructions for building and executing the 3.14 example application
|
|
can be found in the section "Example Application" of Chapter 2,
|
|
"Getting Started", in the "IOC Application Developer's Guide" for this
|
|
release. The "Example IOC 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>
|
|
<H3><A NAME="0_0_14"> Multiple host platforms</A></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>(INSTALL_LOCATION)/lib/<arch></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/c++ cross compiler and target header files and the
|
|
base/configure/os directory must have the appropriate configure files.</BLOCKQUOTE>
|
|
</BLOCKQUOTE></BODY>
|
|
</HTML>
|