Updated for R3.14.11.
This commit is contained in:
@@ -1,488 +1,504 @@
|
||||
README.1st
|
||||
Installation Instructions
|
||||
|
||||
Installation Instructions
|
||||
EPICS base
|
||||
|
||||
EPICS base
|
||||
Release 3.14.*
|
||||
|
||||
Release 3.14.*
|
||||
Table of Contents
|
||||
|
||||
* What is EPICS base?
|
||||
* What is new in this release?
|
||||
* Copyright
|
||||
* Supported platforms
|
||||
* Supported compilers
|
||||
* Software requirements
|
||||
* Host system storage requirements
|
||||
* Documentation
|
||||
* WWW pages
|
||||
* Directory Structure
|
||||
* Build related components
|
||||
* Building EPICS base (Unix and Win32)
|
||||
* Example application and extension
|
||||
* Multiple host platforms
|
||||
|
||||
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.
|
||||
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?
|
||||
|
||||
Please check the RELEASE_NOTES file in the distribution for description
|
||||
of changes and release migration details.
|
||||
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.
|
||||
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 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.
|
||||
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.
|
||||
|
||||
Host platforms (operating system - architecture [- alternate toolset])
|
||||
Host platforms (operating system - architecture [- alternate toolset])
|
||||
|
||||
cygwin-x86
|
||||
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-x86-cygwin
|
||||
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)
|
||||
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
Supported compilers
|
||||
|
||||
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>.
|
||||
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>.
|
||||
|
||||
Software requirements
|
||||
|
||||
GNU make
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your
|
||||
path so that a gnumake version 3.81 or later is available.
|
||||
GNU make
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your path so that
|
||||
a gnumake version 3.81 or later is available.
|
||||
|
||||
Perl
|
||||
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.
|
||||
gcc
|
||||
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.
|
||||
|
||||
Unzip and tar (Winzip on WIN32 systems)
|
||||
You must have tools available to unzip and untar the EPICS base
|
||||
distribution file.
|
||||
Perl
|
||||
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.
|
||||
|
||||
Tornado 2
|
||||
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.
|
||||
Unzip and tar (Winzip on WIN32 systems)
|
||||
You must have tools available to unzip and untar the EPICS base distribution
|
||||
file.
|
||||
|
||||
GNU readline or Tecla library
|
||||
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.
|
||||
Target systems
|
||||
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.
|
||||
|
||||
Tornado 2
|
||||
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.
|
||||
|
||||
RTEMS
|
||||
For RTEMS targets, you must use RTEMS version 4.9.2 or later.
|
||||
|
||||
GNU readline or Tecla library
|
||||
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.
|
||||
|
||||
Host system storage requirements
|
||||
|
||||
The GNU zipped tar file is approximately 1.4 MB in size. The unzipped
|
||||
untarred distribution source tree is approximately 7.5 MB. The build
|
||||
created files for each host take approximately 40 MB and the build
|
||||
created files for each target take approximately 10 MB.
|
||||
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.
|
||||
|
||||
Documentation
|
||||
|
||||
EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL http://www.aps.anl.gov/epics
|
||||
|
||||
This README.1st file is in the base distribution and available on the
|
||||
IOC software, Base R3.14, release number, web page which can be accessed
|
||||
from the APS EPICS home page.
|
||||
EPICS documentation is available on the WWW via the EPICS home page at APS:
|
||||
URL http://www.aps.anl.gov/epics available on the IOC software, Base R3.14,
|
||||
release number, web page which can be accessed from the APS EPICS home page.
|
||||
|
||||
WWW pages
|
||||
|
||||
EPICS home page at APS
|
||||
EPICS home page at APS
|
||||
|
||||
http://www.aps.anl.gov/epics
|
||||
http://www.aps.anl.gov/epics
|
||||
|
||||
Other WWW sites
|
||||
Other WWW sites
|
||||
|
||||
Additional information on EPICS can be found at the
|
||||
various other WWW links on the EPICS home page at APS.
|
||||
Additional information on EPICS can be found at the various other WWW
|
||||
links on the EPICS home page at APS.
|
||||
|
||||
Mailing List
|
||||
Mailing List
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Directory Structure
|
||||
|
||||
Distribution directory structure:
|
||||
Distribution directory structure:
|
||||
|
||||
base Root directory of the base distribution
|
||||
base/config R3.13 compatibility build configuration files
|
||||
base/config/tools Perl and shell scripts used in the R3.13 build
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/configure/tools Perl and shell scripts used in the build
|
||||
base/documentation Distributation build documentation
|
||||
base/src All epics base source code in subdirectories
|
||||
base/src/RTEMS Code to configure RTEMS for EPICS
|
||||
base/src/as Access security
|
||||
base/src/bpt Break point table
|
||||
base/src/ca Channel access
|
||||
base/src/cas Channel access server library and examples
|
||||
base/src/catools Channel access tools caget,cainfo,camonitor,caput
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
base/src/dbtools Database dbLoadTemplate tools
|
||||
base/src/dev Device support (softDev and testDev)
|
||||
base/src/excas Example channel access server
|
||||
base/src/gdd General data descriptor
|
||||
base/src/iocsh Ioc shell command interpreter
|
||||
base/src/libCom General purpose library code in subdirectories
|
||||
base/src/libCom/bucketLib Hash bucket
|
||||
base/src/libCom/calc Algebraic expression interpreter
|
||||
base/src/libCom/cppStd Support for C++ standard template library
|
||||
base/src/libCom/cvtFast Fast number to string conversion
|
||||
base/src/libCom/cxxTemplates C++ templates and templates tests
|
||||
base/src/libCom/dbmf Memory management for frequent alloc/free
|
||||
base/src/libCom/ellLib EPICS double linked list
|
||||
base/src/libCom/env Default EPICS environment settings
|
||||
base/src/libCom/error Error handling definitions and routines
|
||||
base/src/libCom/fdmgr File descriptor manager
|
||||
base/src/libCom/freeList Memory management using free lists
|
||||
base/src/libCom/gpHash General purpose hash table
|
||||
base/src/libCom/logClient Logging client
|
||||
base/src/libCom/macLib Macro substitution handler
|
||||
base/src/libCom/misc Miscellaneous utilities
|
||||
base/src/libCom/osi Operating system independent code
|
||||
base/src/libCom/osi/os Operating system dependant code in subdirectories
|
||||
base/src/libCom/ring Methods for creating and using ring buffers
|
||||
base/src/libCom/taskwd Task watchdog
|
||||
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr,...)
|
||||
base/src/libCom/timer Timer
|
||||
base/src/libCom/tsDefs R3.13 time stamp definitions and routines
|
||||
base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree
|
||||
base/src/makeBaseExt Perl tool+templates to create extension dvl tree
|
||||
base/src/misc Miscellaneous (coreRelease, iocInit, asSub*)
|
||||
base/src/rec Record support
|
||||
base/src/registry EPICS support function registry
|
||||
base/src/rsrv Channel access ioc resource server library
|
||||
base/src/softIoc Example softIoc
|
||||
base/src/toolsComm Code for the build tools antelope and e_flex
|
||||
base/src/util Utilities (ca_test, iocLogServer, startCArepeater)
|
||||
base/src/vxWorks R3.13 compatibility code specific to vxWorks
|
||||
base/startup Scripts for setting up path and environment
|
||||
base Root directory of the base distribution
|
||||
base/config R3.13 compatibility build configuration files
|
||||
base/config/tools Perl and shell scripts used in the R3.13 build
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/documentation Distributation documentation
|
||||
base/src All epics base source code in subdirectories
|
||||
base/src/RTEMS Code to configure RTEMS for EPICS
|
||||
base/src/as Access security
|
||||
base/src/bpt Break point table
|
||||
base/src/ca Channel access
|
||||
base/src/cap5 Channel Access client interface for Perl 5
|
||||
base/src/cas Channel access server library and examples
|
||||
base/src/catools Channel access tools caget, cainfo, camonitor, caput
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
base/src/dbtools Database dbLoadTemplate tools
|
||||
base/src/dev Device support (camacDev, softDev, and testDev)
|
||||
base/src/excas Example channel access server
|
||||
base/src/gdd General data descriptor
|
||||
base/src/libCom General purpose library code in subdirectories
|
||||
base/src/libCom/bucketLib Hash bucket
|
||||
base/src/libCom/calc Algebraic expression interpreter
|
||||
base/src/libCom/cppStd Support for C++ standard template library
|
||||
base/src/libCom/cvtFast Fast number to string conversion
|
||||
base/src/libCom/cxxTemplates C++ templates and templates tests
|
||||
base/src/libCom/dbmf Memory management for frequent alloc/free
|
||||
base/src/libCom/ellLib EPICS double linked list
|
||||
base/src/libCom/env Default EPICS environment settings
|
||||
base/src/libCom/error Error handling definitions and routines
|
||||
base/src/libCom/fdmgr File descriptor manager
|
||||
base/src/libCom/freeList Memory management using free lists
|
||||
base/src/libCom/gpHash General purpose hash table
|
||||
base/src/libCom/iocsh ioc shell call registered functions
|
||||
base/src/libCom/logClient Logging client
|
||||
base/src/libCom/macLib Macro substitution handler
|
||||
base/src/libCom/misc Miscellaneous utilities
|
||||
base/src/libCom/osi Operating system independent code
|
||||
base/src/libCom/osi/os Operating system dependant code in subdirectories
|
||||
base/src/libCom/ring Methods for creating and using ring buffers
|
||||
base/src/libCom/taskwd Task watchdog
|
||||
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ...)
|
||||
base/src/libCom/timer Timer
|
||||
base/src/libCom/tsDefs R3.13 time stamp definitions and routines
|
||||
base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree
|
||||
base/src/makeBaseExt Perl tool+templates to create extension dvl tree
|
||||
base/src/misc Miscellaneous (coreRelease, iocInit, asSub*)
|
||||
base/src/rec Record support
|
||||
base/src/registry EPICS support function registry
|
||||
base/src/rsrv Channel access ioc resource server library
|
||||
base/src/softIoc Example softIoc
|
||||
base/src/tools Perl scripts used during the builds
|
||||
base/src/toolsComm Code for the build tools antelope and e_flex
|
||||
base/src/util Utilities (ca_test, iocLogServer, startCArepeater)
|
||||
base/src/vxWorks R3.13 compatibility code specific to vxWorks
|
||||
base/startup Scripts for setting up path and environment
|
||||
|
||||
Install directories created by the build:
|
||||
Install directories created by the build:
|
||||
|
||||
base/bin Installed scripts and executables in subdirs
|
||||
base/db Installed data bases
|
||||
base/dbd Installed data base definitions
|
||||
base/html Installed html documentation
|
||||
base/include Installed header files
|
||||
base/include/os Installed os specific header files
|
||||
base/javalib Installed java class files
|
||||
base/lib Installed libraries in arch subdirectories
|
||||
base/templates Installed templates
|
||||
bin Installed scripts and executables in subdirs
|
||||
cfg Installed build configuration files
|
||||
db Installed data bases
|
||||
dbd Installed data base definitions
|
||||
doc Installed documentation files
|
||||
html Installed html documentation
|
||||
include Installed header files
|
||||
include/os Installed os specific header files in subdirs
|
||||
javalib Installed java class and jar files
|
||||
lib Installed libraries in arch subdirectories
|
||||
lib/perl Installed perl modules
|
||||
templates Installed templates
|
||||
|
||||
Build related components
|
||||
|
||||
base/documentation/README* files
|
||||
base/documentation files
|
||||
|
||||
README.1st Instructions for setup and building epics base
|
||||
README.html html version of README.1st
|
||||
README.WIN32 Microsoft WIN32 specific instructions
|
||||
README.cxxTemplates Information about C++ templates in EPICS base
|
||||
README.niCpu030 NI cpu030 specific instructions
|
||||
README.darwin Installation notes for Mac OS X (Darwin)
|
||||
RELEASE_NOTES.html Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
Converting*To*.html Release specific conversion instructions
|
||||
Building*With*.html Release specific build instructions
|
||||
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
README.1st Instructions for setup and building epics base
|
||||
README.html html version of README.1st
|
||||
README.WIN32 Microsoft WIN32 specific instructions
|
||||
README.cxxTemplates Information about C++ templates in EPICS base
|
||||
README.niCpu030 NI cpu030 specific instructions
|
||||
README.darwin Installation notes for Mac OS X (Darwin)
|
||||
RELEASE_NOTES.html Notes on release changes
|
||||
KnownProblems.html List of known problems and workarounds
|
||||
Converting*To*.html Release specific conversion instructions
|
||||
Building*With*.html Release specific build instructions
|
||||
|
||||
EpicsHostArch c shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
borland.bat WIN32 bat file to set borland path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
win32-debug.bat WIN32 bat file to set debug path and env variables
|
||||
|
||||
base/configure directory - contains build definitions and rules
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
Makefile Installs CONFIG* RULES* creates CONFIG_APP_INCLUDE
|
||||
RELEASE Location of external products such as Tornado II
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_JAVA Definitions and rules for java jars and classes
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
|
||||
base/configure/os directory - contains os-arch specific definitions
|
||||
EpicsHostArch c shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
borland.bat WIN32 bat file to set borland path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
|
||||
CONFIG.<host>.<target> Specific host-target build definitions
|
||||
CONFIG.Common.<target> Specific target definitions for all hosts
|
||||
CONFIG.<host>.Common Specific host definitions for all targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all targets
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts
|
||||
CONFIG.Common.vxWorksCommon Specific host definitions for all vx targets
|
||||
CONFIG_COMPAT R3.13 arch compatibility definitions
|
||||
CONFIG_SITE.<host>.<target> Site specific host-target definitions
|
||||
CONFIG_SITE.Common.<target> Site specific target defs for all hosts
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
|
||||
base/configure/tools directory - contains Perl scripts used for the build
|
||||
base/configure directory - contains build definitions and rules
|
||||
|
||||
convertRelease.pl Performs consistancy checks on RELEASE files
|
||||
cp.pl This Perl script copies an existing file
|
||||
cvsclean.pl Remove all .#* files in directory tree
|
||||
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
|
||||
filterWarnings.pl Filters warning messages during HP builds
|
||||
fullpathName.pl Returns fullpath name of directory arg
|
||||
installEpics.pl Installs built files into install directories
|
||||
makeIncludeDbd.pl Creates *Include.dbd file from filename args
|
||||
makeMakefile.pl Creates a Makefile in O.<arch> dirs
|
||||
makeMakefileInclude.pl Creates file to be included by Makefile
|
||||
mkdir.pl Creates a directory (like Unix mkdir)
|
||||
mkmf.pl Generates dependencies from include stmnts
|
||||
munch.pl Creates a ctdt.c file for vxWorks targets
|
||||
mv.pl Renames an existing file
|
||||
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation
|
||||
rm.pl Quietly removes an existing file
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_FILE_TYPE Definitions for file types adl,alh,cfg,perlmod,edl
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
MAKEFILE Installs CONFIG* RULES* creates CONFIG_APP_INCLUDE
|
||||
RELEASE Location of external products such as Tornado II
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
RULES.ioc Rules for application iocBoot/ioc* directory
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_EXPAND Devinitions and rules for expanding vars in a file
|
||||
RULES_FILE_TYPE Definitions and rules for user defined file types
|
||||
RULES_JAVA Definitions and rules for java jars and classes
|
||||
RULES_TARGET Definitions and rules for prod and lib named targets
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
|
||||
|
||||
base/configure/os directory - contains os-arch specific definitions
|
||||
|
||||
CONFIG.<host>.<target> Specific host-target build definitions
|
||||
CONFIG.Common.<target> Specific target definitions for all hosts
|
||||
CONFIG.<host>.Common Specific host definitions for all targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all targets
|
||||
CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts
|
||||
CONFIG.Common.vxWorksCommon Definitions for all vx targets for all hosts
|
||||
CONFIG_COMPAT R3.13 arch compatibility definitions
|
||||
CONFIG_SITE.<host>.<target> Site specific host-target definitions
|
||||
CONFIG_SITE.Common.<target> Site specific target defs for all hosts
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
|
||||
|
||||
base/src/tools directory - contains Perl scripts used for the build
|
||||
|
||||
Makefile Makefile for installing the scripts into cfg dir
|
||||
convertRelease.pl Performs consistancy checks on RELEASE files
|
||||
cvsclean.pl Remove all .#* files in directory tree
|
||||
dos2unix.pl Converts text file from DOS CR/LF to unix ISO
|
||||
expandvars.pl Tool to expand @VAR@ variables while copying a file
|
||||
filterWarnings.pl Filters warning messages during HP builds
|
||||
fullpathName.pl Returns fullpath name of directory arg
|
||||
installEpics.pl Installs built files into install directories
|
||||
makeDbDepends.pl Gets dependencies from .substitution/.template files
|
||||
makeIncludeDbd.pl Creates *Include.dbd file from filename args files
|
||||
makeMakefile.pl Creates a Makefile in O.<arch> dirs
|
||||
makeTestfile.pl Generates a test harness $target.t file
|
||||
mkmf.pl Generates dependencies from include stmnts
|
||||
munch.pl Creates a ctdt.c file for vxWorks targets
|
||||
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation
|
||||
useManifestTool.pl Use MS VC++ version to set usage of Manifest Tool
|
||||
|
||||
Building EPICS base (Unix and Win32)
|
||||
|
||||
Unpack file
|
||||
Unpack file
|
||||
|
||||
Unzip and untar the distribution file. Use WinZip on
|
||||
Windows systems.
|
||||
Unzip and untar the distribution file. Use WinZip on Windows systems.
|
||||
|
||||
Set environment variable
|
||||
Set environment variables
|
||||
|
||||
Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
Files in the base/startup directory have been provided to help set
|
||||
required path and other environment variables .
|
||||
|
||||
EPICS_HOST_ARCH
|
||||
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.
|
||||
EPICS_HOST_ARCH
|
||||
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.
|
||||
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the
|
||||
environment variable PERLLIB be set to <perl directory
|
||||
location>.
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the environment variable
|
||||
PERLLIB be set to <perl directory location>.
|
||||
|
||||
PATH
|
||||
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.
|
||||
PATH
|
||||
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.
|
||||
|
||||
Unix LD_LIBRARY_PATH
|
||||
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.
|
||||
LD_LIBRARY_PATH
|
||||
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.
|
||||
|
||||
Win32 PATH
|
||||
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.
|
||||
Win32 PATH
|
||||
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.
|
||||
|
||||
Do site-specific build configuration
|
||||
|
||||
Do site-specific build configuration
|
||||
Site configuration
|
||||
To configure EPICS, you may want to modify the default definitions in
|
||||
the following files:
|
||||
|
||||
Site configuration
|
||||
To configure EPICS, you may want to modify the default
|
||||
definitions in the following files:
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO2 full path location
|
||||
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO 2 full path location
|
||||
Host configuration
|
||||
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.
|
||||
|
||||
Host configuration
|
||||
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.
|
||||
configure/os/CONFIG.<host>.<host> Host build settings
|
||||
configure/os/CONFIG.<host>.Common Host common build settings
|
||||
|
||||
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 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.
|
||||
|
||||
Target configuration
|
||||
To configure each target system, you may override the
|
||||
default definitions by adding a new file into 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.
|
||||
configure/os/CONFIG.Common.<target> Target common settings
|
||||
configure/os/CONFIG.<host>.<target> Host-target settings
|
||||
|
||||
configure/os/CONFIG.Common.<target> Target cross settings
|
||||
configure/os/CONFIG.<host>.<target> Host-target settings
|
||||
R3.13 compatibility configuration
|
||||
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.
|
||||
|
||||
R3.13 compatibility configuration
|
||||
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.
|
||||
Build EPICS base
|
||||
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
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 "gnumake clean uninstall"
|
||||
at the root directory of an EPICS directory structure before
|
||||
each complete rebuild to ensure that all components will be
|
||||
rebuilt.
|
||||
|
||||
Multiple host platforms
|
||||
|
||||
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 $(INSTALL_LOCATION)/bin/<arch> directories. Libraries are
|
||||
installed into $(INSTALL_LOCATION)/lib/<arch>. The default
|
||||
definition for $(INSTALL_LOCATION) is $(TOP) 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.
|
||||
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 "gnumake clean uninstall" at the root
|
||||
directory of an EPICS directory structure before each complete rebuild
|
||||
to ensure that all components will be rebuilt.
|
||||
|
||||
Example application and extension
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
Multiple host platforms
|
||||
|
||||
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
|
||||
$(INSTALL_LOCATION)/bin/<arch> directories. Libraries are installed into
|
||||
$(INSTALL_LOCATION)/lib/<arch>. The default definition for
|
||||
$(INSTALL_LOCATION) is $(TOP) 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.
|
||||
|
||||
@@ -383,6 +383,11 @@ tools to allow specifying the CA priority.</p>
|
||||
|
||||
<h2 align="center">Changes between 3.14.9 and 3.14.10</h2>
|
||||
|
||||
<h4>GCC_EXEC_PREFIX references removed from configuration files
|
||||
|
||||
<p>Definition of GCC_EXEC_PREFIX removed from CONFIG.CrossCommon and
|
||||
unexport of GCC_EXEC_PREFIX removed from vxWorks and RTEMS builds.</p>
|
||||
|
||||
<h4>RTEMS Release</h4>
|
||||
|
||||
<p>RTEMS release 4.9 or newer is required. If you are using the RTEMS NFS
|
||||
|
||||
Reference in New Issue
Block a user