diff --git a/README.htm b/README.htm index 99566a590..05cdf4a81 100644 --- a/README.htm +++ b/README.htm @@ -1,1155 +1,505 @@ - - + + - - - - - -EPICS base README file - - + + + + +README.htm +
+

+Installation Instructions

- +
+

+EPICS base

-
+
+

+Release 3.14.0alpha2

-

README.htm

+

+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.
-

Installation Instructions

+

+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.
-

EPICS base

+

+Copyright

-

Release 3.14.0alpha1

+
Please review the COPYRIGHT* files included in the distribution +for legal terms of usage.
-

 

+

+Supported 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.

- -

 

- -

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 and targets. If you are trying to build EPICS base on a +

Currently this version of EPICS base has been built on the +following hosts and targets. If you are trying to build EPICS base on a different host or for a different target machine you must have the proper host/target cross compiler and header files and you will have to add the -appropriate 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 target platforms (operating system – -architecture - <alternate c++ compiler>)

- -

          solaris-sparc

- -

            linux-x86

- -

            win32-x86

- -

            win32-x86-borland

- -

 

- -

Cross compile target platforms (operating system - -architecture)

- -

vxWorks-486

- -

            vxWorks-68040

- -

            vxWorks-68040lc

- -

            vxWorks-68060

- -

            vxWorks-ppc604

- -

            vxWorks-pentium

- -

            RTEMS-gen68360

- -

            RTEMS-mvme167

- -

 

- -

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 the 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 -file. You will -also need one or more board support packages. Consult the vxWorks documentation -for details.

- -

 

- -

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.html 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 distribution

- -

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/config                              R3.13 -compatibility build configuration files
-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/dbStatic                     Static -database access

- -

base/src/dbtools                      Database -dbLoadTemplate tools
-base/src/dev                            Device -support
-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/cvtFast         Fast -number to string conversion
-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/test               Test -tools (timer, semBinary, semMutex,fdmgr, …)
-base/src/libCom/timer            Timer
-base/src/libCom/taskwd         Task -watchdog
-base/src/libCom/cxxTemplatesC++ templates
-base/src/libCompat                 EPICS -base R3.13 compatibility code
-base/src/makeBaseApp           Perl tool -and templates to create application dvl tree
-base/src/makeBaseExt            Perl tool -and 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/src/iocsh                         Ioc -shell command interpreter

- -

base/startup                             Scripts -for setting up path and environment

- -

 

- -

Install directories created by the build

- -

base/bin                                   Installed -scripts and executables in subdirectories
-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 (this section needs work)

- -

 

- -

base/README* files

- -

base/startup files

- -

          .cshrc

- -

          EpicsHostArch

- -

          epics.bat

- -

          .bashrc

- -

         

- -

base/configure

- -

base/config

- -

         

- -

 

- -

Building -EPICS base (Unix and Win32)

- -

 

- -

          Unpack file

- -

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

- -

Set environment variable

- -

Before you can build or use EPICS R3.14, the environment variable +appropriate 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 target 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-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. +

GNU compiler for solaris-sparc  and win32-x86 hosts +
The host architecture build requires that g++ be in your path if you +wish to run "gnumake depends" (not required) to create header dependancy +include files for c/c++ source code. Also, if you have state notation language +source files which require c preprocessing to generate solaris-sparc object +files (*.st files),  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 distribution +
     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/config                  +R3.13 compatibility build configuration files +
     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/dbStatic            +Static database access +
     base/src/dbtools             +Database dbLoadTemplate tools +
     base/src/dev                 +Device support +
     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 +
     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/test         +Test tools (timer, semBinary, semMutex,fdmgr, ?) +
     base/src/libCom/timer        +Timer +
     base/src/libCom/taskwd       +Task watchdog +
     base/src/libCompat           +EPICS base R3.13 compatibility code +
     base/src/makeBaseApp         +Perl tool+templates to create 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_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) +
      +

  • +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 +
      +

  • +base/configure/tools directory - contains Perl scripts used for the build
  • + +


    cp.pl                   +This Perl script copies an existing file +
    installEpics.pl         +Installs built files into install directories. +
    makeConfigAppInclude.pl Generates include,bin, lib dir definitions +
    makeDbDepends.pl        Generates +dependencies from substitution files +
    makeIocCdCommands.pl    Generates cdCommands file +for use in IOCs +
    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) +
    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 +
    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.

    +should have EPICS_HOST_ARCH set to your host operating system followed +by a dash and then your host architecture, e.g. solaris-sparc.
    +Check path requirements +
    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 you +path, and the c compiler may require ld in your path..
    +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 your target archs. +
    configure/CONFIG_SITE_ENV  - Set your environment variable +definitions +
    configure/RELEASE        - +TORNADO 2 full path location
    -

    Check path requirements

    +


    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 will want to modify the default definitions in the base/config/CONFIG_SITE*  +files to agree with the definitions in your configure/base files.
    -

    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 you path.

    +

    +Build EPICS base

    -

     Do -site-specific build configuration

    +
    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.
    +
    -

    Site configuration

    +

    +Multiple host platforms

    -

    To configure EPICS, you may want to modify the default definitions -in the following files:

    - -

    configure/CONFIG_SITE               - Build choices. Specify your -targets architectures.

    - -

    configure/CONFIG_SITE_ENV     - -Set your environment variable definitions

    - -

    configure/RELEASE                      - -TORNADO 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 build settings

    - -

    configure/os/CONFIG.<host>.<target>      - Host-target build settings

    - -

    R3.13 compatibility -configuration

    - -

    To configure EPICS base for building with R3.13 extensions and ioc -applications , you will want to modify the default definitions in the -base/config/CONFIG_SITE*  files to agree -with the definitions in your configure/base 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 “make 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 system subdirectories +

    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 rootdirectory in the directory structure, base. -Temporary objects 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++ cross compiler and target header files and the -base/configure/os directory must have the appropriate configure files.

    +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++ cross compiler and target header +files and the base/configure/os directory must have the appropriate configure +files.
    -

     

    +

    +Examples

    -

    Examples

    - -

     

    - -

    A perl tool, makeBaseApp.pl is included in the -distribution file. This script will create a sample application that then can -be built and then executed to try out this release of base. Also, a perl -script, makeBaseExt.pl, is included in the distribution file. This script will +

    A perl tool, makeBaseApp.pl is included in the distribution +file. This script will create a sample application that then can be built +and then executed to try out this release of base. Also, a perl script, +makeBaseExt.pl, is included in the distribution file. This script will create a sample extension that can be built and executed. The makeBaseApp.pl -and makeBaseExt.pl scripts are installed into the install location -bin/<hostarch> directory during the base build.

    - -

     

    - -

    Example -base application (Unix and Windows)

    - -

     

    - -

    This section briefly explains how to create an -example IOC application in a directory <top>, naming the application -firstApp and the ioc directory ioctarget.

    - -

     

    - -

    Check Environment variable

    - -

     

    - -

    Execute the command:             echo $EPICS_HOST_ARCH              (Unix)              or

    - -

                                                    set EPICS_HOST_ARCH                   (Windows)

    - -

     

    - -

    This should display -your workstation architecture, for example solaris-sparc -or win32-x86. If you get an "Undefined variable" error, you should set EPICS_HOST_ARCH to your -host operating system followed by a dash and then your host architecture, e.g. -solaris-sparc. The perl -script EpicsHostArch.pl in the base/startup directory has been provided to help -set EPICS_HOST_ARCH.

    - -

     

    - -

    Create example Application

    - -

     

    - -

    Execute the commands:

    - -

     

    - -

                                        mkdir -<top>

    - -

                                        cd -<top>

    - -

                                        <base>/bin/<hostarch>/makeBaseApp.pl --t example first

    - -

     

    - -

                                        <base>/bin/<hostarch>/makeBaseApp.pl --i -t example target

    - -

     

    - -

    When prompted for architecture, give one of the -CROSS_COMPILER_TARGET_ARCHS values specified in base/configure/CONFIG_SITE.

    - -

     

    - -

                                        <base>/bin/<hostarch>/makeBaseApp.pl --i -t example host

    - -

     

    - -

    When prompted for architecture, give the host -architecture, EPICS_HOST_ARCH, value.

    - -

    where:

    - -

    <top> is any directory -name you chose,

    - -

    <base> is the full -path name to EPICS base, and

    - -

    <hostarch> is your -host architecture (i.e. the output of the echo command above).

    - -

     

    - -

    Windows Users Note:  -Perl scripts are invoked with the command perl <scriptname> on -win95/NT. Perl script names are case sensitive. For example to create an -application on WIN95/NT:

    - -

     

    - -

                                        perl -C:\epics\base\bin\win32\makeBaseApp.pl -t example first

    - -

     

    - -

    Inspect Files

    - -

     

    - -

    Spend some time looking at the files that appear -under <top>. Do this BEFORE building.

    - -

     

    - -

    Build

    - -

    In directory <top> -execute the command:  gnumake

    - -

     

    - -

    Inspect Files

    - -

     

    - -

    Again look at all the files that appear under -<top>.

    - -

     

    - -

    Execute the host application

    - -

     

    - -

    In directory <top>/iocBoot/iochost execute the -command:  -../../bin/<hostarch>/example stcmd.hos

    - -

     

    - -

    Try some of the shell commands (e.g. dbl or dbpr -<recordname>) described in the "IOC Test Facilities" chapter of -the Application Developer's Guide.

    - -

     

    - -

    Execute the channel access application

    - -

     

    - -

    While the host application -is running, execute the command:

    - -

     

    - -

    <mytop>/bin/<hostarch>/caExample -<user>:calcExample

    - -

     

    - -

    where <mytop> is the full path name to your application -top directory.

    - -

     

    - -

    Execute a vxWorks target application

    - -

     

    - -

    First kill the host application so there will be no -channel access record name conflicts because you will be loading the same -database onto the target system.

    - -

     

    - -

    Set boot parameters

    - -

    The next step is to set the IOC boot parameters via -the console serial port on your IOC. Life is much easier if you find out how to -connect the serial port to a window on your workstation.

    - -

     

    - -

    The vxWorks boot parameters -look something like the following:

    - -

     

    - -

    boot device                 : -xxx

    - -

                                        processor -number        : 0

    - -

    host name                    : xxx

    - -

    file name                     : <full path to board -support>/vxWorks

    - -

    inet on ethernet (e)      : xxx.xxx.xxx.xxx:<netmask>

    - -

    inet on backplane (b)   :

    - -

    host inet (h)                 : xxx.xxx.xxx.xxx

    - -

    gateway inet (g)           :

    - -

    user (u)                                    : xxx

    - -

    ftp password (pw) (blank = -use rsh): xxx

    - -

    flags (f)                                   : 0x0

    - -

    target name (tn)           : <hostname for this inet -address>

    - -

    startup script (s)          : <top>/iocBoot/ioctarget/st.cmd

    - -

    other (o)                      :

    - -

     

    - -

    The actual values for each field are site and IOC dependent. -Two fields that you can change at will are the vxWorks boot image and the -location of the startup script.

    - -

     

    - -

    Note that the full path name for the correct board -support boot image must be specified. If bootp is used the same information -will need to be placed in the bootp host's configuration database instead.

    - -

     

    - -

    Boot

    - -

    You are now ready to boot your IOC. When your boot -parameters are set properly, just press the reset button on your IOC, or use -the @ command to commence booting. You will find it VERY convenient to have the -console port of the IOC attached to a scrolling window on your workstation.

    - -

     

    - -

    Test

    - -

    Try some of the shell commands (e.g. dbl or dbpr -<recordname>) described in the "IOC Test Facilities" chapter of -the Application Developer's Guide.

    - -

     

    - -

    Execute the channel access application

    - -

     

    - -

    While the target application is running, on a -workstation in the same subnet at the target system, execute the command: 

    - -

    <mytop>/bin/<hostarch>/caExample -<recordname>

    - -

     

    - -

    where <mytop> is the full path name to your -application top directory.

    - -

     

    - -

     

    - -
    +and makeBaseExt.pl scripts are installed into the install location bin/<hostarch> +directory during the base build. + +

    +Example base application

    + +
    Instructions for building and executing a 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.0alpha2" +. 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.
    -