From 9e08d4d17aeef660a4949f09e882240f010596d5 Mon Sep 17 00:00:00 2001
From: "Janet B. Anderson"
Date: Mon, 4 May 2009 21:46:29 +0000
Subject: [PATCH] Updated for R3.14.11.
---
documentation/README.1st | 818 ++++++++++++++++---------------
documentation/RELEASE_NOTES.html | 5 +
2 files changed, 422 insertions(+), 401 deletions(-)
diff --git a/documentation/README.1st b/documentation/README.1st
index e8b4bb002..fa001e9a7 100644
--- a/documentation/README.1st
+++ b/documentation/README.1st
@@ -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...
+ 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...
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. 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. 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 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 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.. Specific host-target build definitions
- CONFIG.Common. Specific target definitions for all hosts
- CONFIG..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.. Site specific host-target definitions
- CONFIG_SITE.Common. Site specific target defs for all hosts
- CONFIG_SITE..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. 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 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 dir (uninstall and tar)
+ Sample.Makefile Sample makefile with comments
+
+
+ base/configure/os directory - contains os-arch specific definitions
+
+ CONFIG.. Specific host-target build definitions
+ CONFIG.Common. Specific target definitions for all hosts
+ CONFIG..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.. Site specific host-target definitions
+ CONFIG_SITE.Common. Site specific target defs for all hosts
+ CONFIG_SITE..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. 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 .
+ PERLLIB
+ On WIN32, some versions of Perl require that the environment variable
+ PERLLIB be set to .
- 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 build settings
+ configure/os/CONFIG..Common Host common build settings
- configure/os/CONFIG.. Host build settings
- configure/os/CONFIG..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 common settings
+ configure/os/CONFIG.. Host-target settings
- configure/os/CONFIG.Common. Target cross settings
- configure/os/CONFIG.. 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/ directories. Libraries are
- installed into $(INSTALL_LOCATION)/lib/. 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. 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/ 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/ 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
- 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 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/ directories. Libraries are installed into
+ $(INSTALL_LOCATION)/lib/. 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. 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.
diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
index df629a9d5..98d817c35 100644
--- a/documentation/RELEASE_NOTES.html
+++ b/documentation/RELEASE_NOTES.html
@@ -383,6 +383,11 @@ tools to allow specifying the CA priority.
Changes between 3.14.9 and 3.14.10
+GCC_EXEC_PREFIX references removed from configuration files
+
+
Definition of GCC_EXEC_PREFIX removed from CONFIG.CrossCommon and
+unexport of GCC_EXEC_PREFIX removed from vxWorks and RTEMS builds.
+
RTEMS Release
RTEMS release 4.9 or newer is required. If you are using the RTEMS NFS