2002-02-07 21:26:05 +00:00
2002-02-07 20:33:26 +00:00
2001-10-02 13:57:41 +00:00
1994-07-17 07:18:59 +00:00
1994-07-15 20:28:54 +00:00
1994-07-17 07:18:59 +00:00
1994-07-17 07:18:59 +00:00
1994-07-14 22:04:20 +00:00
2000-10-12 18:33:39 +00:00
2001-09-14 17:28:33 +00:00
2001-09-14 17:28:33 +00:00
1996-07-11 00:05:57 +00:00
doc
2001-10-17 22:23:42 +00:00

README 

                  Installation Instructions

                           EPICS base

                      Release 3.14.0beta1

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.

What is new in this release?

     This version of EPICS base contains significant changes and offers
     major improvements in functionality over previous versions. Please
     check the RELEASE_NOTES file in the distribution for description of
     changes and release migration details.

Copyright

     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.

     Host platforms (operating system - architecture - <alternate c++
     compiler>) 

         solaris-sparc 
         solaris-sparc-gnu 
         linux-x86 
         win32-x86 
         win32-x86-borland

     Cross compile target platforms (operating system - architecture)

         vxWorks-486 
         vxWorks-68040 
         vxWorks-68040lc 
         vxWorks-68060 
         vxWorks-ppc603 
         vxWorks-ppc604 
         vxWorks-pentium 
         RTEMS-gen68360 
         RTEMS-mvme167 
         RTEMS-pc386

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 ACC and
     CCC in base/configure/os/CONFIG.<host>.<host> or the definitions
     for GCC and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified
     in CONFIG_SITE.

Software requirements

     GNU make 
     You must use GNU make, gnumake, for any EPICS builds.  Set your
     path so that a gnumake version 3.70 or later is available. 

     Perl 
     You must have perl version 5.0 or later installed. The configure files do
     not specify the perl full pathname.  You need the perl executable in
     your search path. 

     Unzip and tar (Winzip on WIN32 systems) 
     You must have tools available to unzip and untar the EPICS base
     distribution file. 

     Tornado 2.0 
     You must have Tornado 2.0 installed if any of your target systems are
     vxWorks systems.  Tornado 2.0 provides the cross-compiler and header
     files needed to build for these target systems. The full path location to
     Tornado 2.0 must be specified in the base/configure/RELEASE or
     base/configure/RELEASE.<hostarch> file. You will also need one or
     more board support packages. Consult the vxWorks documentation for
     details. 

     Optional GNU compiler requirement for solaris-sparc  and
     win32-x86 hosts 
     If you have state notation language source files (*.st files) which require
     c preprocessing before conversion to c source,  gcc must be in your path.

Host system storage requirements

     The GNU zipped tar file is approximately 1.4 MB in size. The unzipped
     untarred distribution source tree is approximately 6 MB. The build
     created files for each host take approximately 40 MB and the build
     created files for each target take approximately 10 MB.

Documentation

     EPICS documentation is available on the WWW via the EPICS home
     page at APS:  URL http://www.aps.anl.gov/Epics

     This README.htm is in the base distribution file and will be available
     on the IOC software R3.14 EPICS WWW page which can be accessed
     from the APS EPICS home page.

WWW pages

     EPICS home page at APS

         http://www.aps.anl.gov/epics

     Other WWW sites

         Additional information on EPICS can be found at the
         various other WWW links on the EPICS home page at APS.

     Mailing Lists

         There are five EPICS mailing lists provided by APS. See The
         EPICS home page for subscription instructions.

Directory Structure

     Distribution directory structure:

     base                         Root directory of the base istribution 
     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/copyright               Text files describing software copyrights 
     base/src                     All epics base source code in subdirectories 
     base/src/as                  Access security 
     base/src/bpt                 Break point table 
     base/src/ca                  Channel access 
     base/src/cas                 Channel access server 
     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/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/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/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/libCom/ring         ringPointer: First in first out circular buffers 
     base/src/libCom/cppStd       epicsList: Lists of pointers to objects 
     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/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: 

     base/bin                     Installed scripts and executables in subdirs 
     base/lib                     Installed libraries in arch subdirectories 
     base/dbd                     Installed data base definitions 
     base/include                 Installed header files 
     base/include/os              Installed os specific header files 
     base/templates               Installed templates 

Build related components

     base/README* files 
     README.htm           Instructions for setup and building epics base 
                          (i.e. this document) 
     README.WIN32         Microsoft WIN32 specific instructions 
     README.cxxTemplates  Information about C++ templates in EPICS base 
     README.niCpu030      NI cpu030 specific instructions 
       
     base/startup directory - contains scripts to set environment and path 
     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 path and env variables 
     win32.bat           WIN32 bat file to set path and env variables 
       
     base/configure  directory - contains build definitions and rules 
     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 
     CONFIG                Includes configure files and allows variable overrides 
     RELEASE               Location of external products such as Tornado II 
     RULES                 Includes appropriate rules file 
     RULES.Db              Rules for database and database definition files 
     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 
     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 target 
     CONFIG.<host>.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 
     MakeReleae              Unix shell script to create a release tar file
     convertRelease.pl       Performs consistancy checks on RELEASE files
     cp.pl                   This Perl script copies an existing file 
     installEpics.pl         Installs built files into install directories. 
     makeDependsTargets.pl   Creates targets of include dependency files
     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.

Building EPICS base (Unix and Win32)

     Unpack file 

         Unzip and untar the distribution file. Use WinZip on
         Windows systems.

     Set environment variable 

         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.

         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 touch, cpp, cp, rm,
         mv, and mkdir in your search path and /bin/chmod must
         exist. On some Unix systems you may also need ar and ranlib
         in your path, and the c compiler may require ld in your path. 

         Unix LD_LIBRARY_PATH
         If you plan to build EPICS base shared libraries instead of
         archive libraries, on Unix systems you will need to add 
         fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to
         your LD_LIBRARY_PATH environment variable. 

         Win32 PATH
         On WIN32 systems, building shared libraries is the default
         setting and you will need to add  fullpathname to
         $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH) to your path.
         Building shared libraries is determined by the value of the
         macro SHARED_LIBRARIES in CONFIG_SITE (either YES or NO).


     Do site-specific build configuration 

         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         TORNADO 2 full path location

         Host configuration 
         To configure each host system, you may override the default
         definitions by adding a new file with override definitions into
         the configure/os directory. The new file should have the
         same name as the distribution file to be overridden except
         with CONFIG in the name changed to CONFIG_SITE. 

              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 with override
         definitions into the configure/os directory. The new file
         should have the same name as the distribution file to be
         overridden except with CONFIG in the name replaced by
         CONFIG_SITE. 

              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.

     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) 

              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.

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.

     Instructions for building and executing the 3.14 example application
     can be found in the section "Example Application" of Chapter 2, "New
     Features for 3.14", in the  "IOC Application Developer's Guide
     R3.14.0beta1". The "Example Application" section briefly explains
     how to create and build an example application in a user created <top>
     directory. It also explains how to run the example application on a
     vxWorks ioc or a host system and run an example channel access client
     on the host system.


Languages
C++ 81.9%
C 8.6%
HTML 7.9%
Makefile 1.1%
DIGITAL Command Language 0.5%