From b5e9036e795275057656b857a1bc3a3d2fcbc71e Mon Sep 17 00:00:00 2001 From: "Janet B. Anderson" Date: Wed, 27 Jun 2001 18:30:07 +0000 Subject: [PATCH] Updated documentation for alpha3 release. --- README.htm | 79 +++-- READMEbuildingR3.13AppsWithR3.14.html | 151 +++++---- READMEbuildingR3.13ExtensionsWithR3.14.html | 16 +- READMEconvertingR3.13AppsToR3.14.0alpha2.html | 263 --------------- READMEconvertingR3.13AppsToR3.14.html | 302 ++++++++++++++++++ ...MEconvertingR3.14.0alpha2AppsToalpha3.html | 103 ++++++ 6 files changed, 557 insertions(+), 357 deletions(-) delete mode 100644 READMEconvertingR3.13AppsToR3.14.0alpha2.html create mode 100644 READMEconvertingR3.13AppsToR3.14.html create mode 100644 READMEconvertingR3.14.0alpha2AppsToalpha3.html diff --git a/README.htm b/README.htm index 5f8ffc15b..99281570e 100644 --- a/README.htm +++ b/README.htm @@ -17,7 +17,7 @@ EPICS base

-Release 3.14.0alpha2

+Release 3.14.0alpha3

What is EPICS base?

@@ -166,15 +166,19 @@ Directory Structure
Distribution directory structure:
     base                         -Root directory of the base distribution +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/config                  -R3.13 compatibility build configuration files +
     base/copyright               +Text files describing software copyrights
     base/src                     All epics base source code in subdirectories
     base/src/as                  @@ -187,12 +191,14 @@ Channel access 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 +Device support (softDev and testDev)
     base/src/gdd                 General data descriptor
     base/src/iocsh               @@ -205,7 +211,8 @@ Hash bucket Algebraic expression interpreter
     base/src/libCom/cvtFast      Fast number to string conversion -
     base/src/libCom/cxxTemplates C++ templates +
     base/src/libCom/cxxTemplates C++ templates +and templates tests
     base/src/libCom/dbmf         Memory management for frequent alloc/free
     base/src/libCom/ellLib       @@ -230,16 +237,20 @@ Miscellaneous utilities 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/taskwd       -Task watchdog -
     base/src/libCompat           -EPICS base R3.13 compatibility code +
     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 app dvl tree +Perl tool+templates to create ioc app dvl tree
     base/src/makeBaseExt         Perl tool+templates to create extension dvl tree
     base/src/misc                @@ -258,8 +269,9 @@ Utilities (ca_test, iocLogServer, startCArepeater) R3.13 compatibility code specific to vxWorks
     base/startup                 Scripts for setting up path and environment -

     Install directories created by the build -
     base/bin                     +

     Install directories created by the +build: +

     base/bin                     Installed scripts and executables in subdirs
     base/lib                     Installed libraries in arch subdirectories @@ -309,6 +321,8 @@ 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           @@ -341,7 +355,9 @@ Definitions and rules for building subdirectories 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
  • @@ -357,6 +373,11 @@ hosts and all target 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
  • @@ -403,25 +424,24 @@ PERLLIB be set to <perl directory location>. 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 +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.

    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. On WIN32 systems, building +to your LD_LIBRARY_PATH environment variable. On WIN32 systems, building shared libraries is the default setting and you will need to add  fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to your path. -Building shared libraries is determined by the value of the macro SHARED_LIBRARIES in -CONFIG_SITE (YES or NO). +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 your target archs. -
    configure/CONFIG_SITE_ENV  - Set your environment variable -definitions -
    configure/RELEASE        - -TORNADO 2 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 @@ -443,7 +463,7 @@ except with CONFIG in the name replaced by CONFIG_SITE. 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*  +applications , you must modify the default definitions in the base/config/CONFIG_SITE*  files to agree with the definitions in your base/configure files.

    @@ -481,7 +501,7 @@ files and the base/configure/os directory must have the appropriate configure files.

    -Examples

    +Example application and extension
    A perl tool, makeBaseApp.pl is included in the distribution file. This script will create a sample application that then can be built @@ -491,12 +511,9 @@ 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

    - -
    Instructions for building and executing a 3.14 example application +
    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.0alpha2" +for 3.14", in the  "IOC Application Developer's Guide R3.14.0alpha3" . 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 diff --git a/READMEbuildingR3.13AppsWithR3.14.html b/READMEbuildingR3.13AppsWithR3.14.html index e0b167d7e..5c512f68e 100644 --- a/READMEbuildingR3.13AppsWithR3.14.html +++ b/READMEbuildingR3.13AppsWithR3.14.html @@ -83,11 +83,13 @@ div.Section1 +

    -Building EPICS R3.13 applications with R3.14.0alpha2 base

    -This document describes how to convert a R3.13 vxWorks application so that -it builds with release R3.14.0alpha2.  It describes an easy way to -convert applications subject to the following restrictions: +Building EPICS R3.13 applications with R3.14.0alpha3 base
    + +


    This document describes how to convert a R3.13 vxWorks application +so that it builds with release R3.14.0alpha3.  It describes an easy +way to convert applications subject to the following restrictions:

    • The application still uses config rules rather than the configure rules @@ -105,21 +107,26 @@ Ultimately applications should be converted to use the new configure rules so that the OSI features are available.

      Gnumake clean uninstall

      -At the top of the application execute: + +
      At the top of the application execute:
      "gnumake clean uninstall"
      -to remove all files and directories created by earlier builds. +to remove all files and directories created by earlier builds.
      +

      Update RELEASE

      -Change  the EPICS_BASE definition to point to the R3.14 base release. -In addition all hardware support and some soft support is now unbundled. -For example the sequencer is unbundled. You must obtain and build all required -unbundled products before you can build the application. The location of -each unbundled product must be described in <top>/config/RELEASE. + +
      Change  the EPICS_BASE definition to point to +the R3.14 base release. All hardware support and some soft support is now +unbundled. For example the sequencer is unbundled. You must obtain and +build all required unbundled products before you can build the application. +The location of each unbundled product must be specified in <top>/config/RELEASE.
      +

      Update target arch definitions

      -Change any target arch specification in config/CONFIG to new base R3.14 -target arch specification. Look in the R3.14 base/bin to see the target -arch names. + +
      Change any target arch specification in config/CONFIG to new +R3.14 target arch specification. Look in the R3.14 base/bin directory to +see the target arch names.

      For example, in config/CONFIG change

      CROSS_COMPILER_TARGET_ARCHS = mv167
      to @@ -129,28 +136,43 @@ In the iocBoot/*/Makefile files, change to
      ARCH=<new arch name>
      and do a "gnumake" in the iocBoot directory to update the cdCommands -files. +files.
      +

      -SNC changes

      -snc is no longer in base. If snc is used in your application, you must -download and build the seq module with baseR3.14.0alpha2 or later. See -the Application Developer's Guide to see how to build sequence programs. +State Notation Language changes + +
      snc is no longer in base. If snc is used in your application, +you must download and build the seq module with baseR3.14.0alpha3. See +the Application Developer's Guide to see how to build sequence programs.
      + +
      Change +
      INSTALLS=seq
      +to +
      LIBOBJS = $(SEQ_BIN)/seqLibrary.o
      + +


      in application src/Makefile.Vx files to link seq library into your +application library, and add +

      SEQ=<full path to seq module directory>
      +to config/RELEASE.
      +

      iocCore changes

      -iocCore has been renamed to iocCoreLibrary.o. + +
      iocCore has been renamed to iocCoreLibrary.o.
      Change
      INSTALLS=iocCore
      to
      LIBOBJS = $(EPICS_BASE_BIN)/iocCoreLibrary.o
      -in your application src/Makefile.Vx files to link iocCore into your application -library. +in your application src/Makefile.Vx files .
      Also remove
      ld < iocCore
      -from the st.cmd files in the iocBoot subdirectories. +from the st.cmd files in the iocBoot subdirectories.
      +

      Library db changes

      -The Db library name was changed to dbStaticHost for host builds and dbStaticIoc -for ioc builds. + +
      The Db library name was changed to dbStaticHost for host builds +and dbStaticIoc for ioc builds.
      Change
      PROD_LIBS+=Db
      to @@ -159,30 +181,37 @@ and
      Db_DIR=$(EPICS_BASE_LIB)
      to
      dbStaticHost_DIR=$(EPICS_BASE_LIB)
      -in your application src/Makefile.Host files. +in your application src/Makefile.Host files.
      +

      VxWorks C++ munched libraries and object files

      -Since R3.14 contains C++ code, the build rules were changed to create a -corresponding munched file for every vx object file built. The objects -files can be combined to form libraries but the munched files must be loaded -into vxWorks. In all st.cmd files add the suffix ".munch" to the ld lines -where object files were previously loaded. For example change + +
      Since R3.14 contains C++ code, the build rules were changed +to create a corresponding munched file for every vx object file built. +The objects files can be combined to form libraries but the munched files +must be loaded into vxWorks. In all st.cmd files add the suffix ".munch" +to the ld lines where object files were previously loaded. For example +change
      ld < exampleLib
      to
      ld < exampleLibrary.munch
      +

      recGbl calls

      -You may need to add the line  "#include "recGbl.h" to any -source files that have recGbl* calls so that the file will compile without -errors. + +
      You may need to add the line  "#include "recGbl.h" +to any source files that have recGbl* calls so that the file will compile +without errors.
      +

      Record support changes

      -The steppermotor, scan, and pid records are no longer in base. If your -application does not use these record types, comment out or remove references -to them in base.dbd and baseLIBOBJS. If these record types are used by -your application you must download and build the modules with R3.14 base, -add appropriate module definitions to your application's config/RELEASE + +
      The steppermotor, scan, and pid records are no longer in base. +If your application does not use these record types, comment out or remove +references to them in base.dbd and baseLIBOBJS. If these record types are +used by your application you must download and build the modules with R3.14 +base, add appropriate module definitions to your application's config/RELEASE fileand change the LIBOBJS definitions. For example
      add
      PID=<full path to modules directory>/pid
      @@ -196,17 +225,22 @@ to your application src/Makefile.

      You should consider changing any existing old steppermotor records to the new EPICS  motor record  module supported by Beamline Controls and Data Acquisition -at APS. +at APS.

      +

      RecDynLink.o and devPtSoft changes

      -recDynLink.o and devPtSoft.o are no longer in base. Remove references to -them in base.dbd and baseLIBOBJS if they are not used in application. + +
      recDynLink.o and devPtSoft.o are no longer in base. Remove +references to them in base.dbd and baseLIBOBJS if they are not used in +application.
      +

      Hardware support changes

      -All hardware support (dev, drv and dbd files) has been unbundled from base -R3.14. This support includes the files symb.dbd, drvHp1404a.o, drvEpvxiMsg.o, -and drvEpvxi.o.  If they are not used in your application, comment -out references to these files in base.dbd and baseLIBOBJS. + +
      All hardware support (dev, drv and dbd files) has been unbundled +from base R3.14. This support includes the files symb.dbd, drvHp1404a.o, +drvEpvxiMsg.o, and drvEpvxi.o.  If they are not used in your +application, comment out references to these files in base.dbd and baseLIBOBJS.

      Hardware support files now exist as separate modules available for download from the EPICS www home page at ANL. You must now download all the hardware support modules needed @@ -222,20 +256,22 @@ from baseLIBOBJS and add to your application src/Makefile,
      and add the line

      SYMB=<full path definition for the built module SYMB>
      - into your application config/RELEASE file . +into your application config/RELEASE file .

      After a gnumake in the symb module followed by a gnumake in the application config directory, the definitions SYMB_BIN and SYMB_LIB will be created,  the directory $(SYMB)/include will be added to the -include directories on the compiler command lines  (in the INSTALL_INCLUDES +include directories on the compiler command lines  (in the INSTALL_INCLUDES definition)  and the directory $(SYMB)/dbd will be added to the dbd -search directories on the dbExpand command lines (in the INSTALL_DBDFLAGS -definition). +search directories on the dbExpand command lines (in the INSTALL_DBDFLAGS +definition).

      +

      dbLoadtemplate tool changes

      -The host tool dbLoadTemplate has been replace by a new extension, msi. -dbLoadTemplate is still supported on iocs. Build the msi extension with -base R3.14 and change definitions the following definitions in your application -files. + +
      The host tool dbLoadTemplate has been replace by a new extension, +msi. dbLoadTemplate is still supported on iocs. Build the msi extension +with base R3.14 and change definitions the following definitions in your +application files.

      In config/RULES.Db replace the line

      DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)
      with @@ -246,7 +282,12 @@ and change line: to
      @$(MSI) $< > $@
      Also add the definition +
      EPICS_EXTENSIONS=<full path name to epics extensions directory>
      -to your application config/RELEASE file. +
      +to your application config/RELEASE file.
      +depends changes +

           Remove any SRCS.c and SRCS.cc definitions. +Depends no longer uses these definitions. diff --git a/READMEbuildingR3.13ExtensionsWithR3.14.html b/READMEbuildingR3.13ExtensionsWithR3.14.html index e1d07ce60..0ff0d73a4 100644 --- a/READMEbuildingR3.13ExtensionsWithR3.14.html +++ b/READMEbuildingR3.13ExtensionsWithR3.14.html @@ -7,13 +7,13 @@ +

      -Building EPICS R3.13 extensions with R3.14.0alpha2 base

      +Building EPICS R3.13 extensions with R3.14 base
      -
      EPICS R3.13 extensions have both a Makefile and a Makefile.Host +


      EPICS R3.13 extensions have both a Makefile and a Makefile.Host in the build directories and the EPICS R3.13 extension tree has an extensions/config -directory.

      - +directory.

      Preliminary steps for all extensions

      @@ -27,15 +27,15 @@ Make certain that you have set the HOST_ARCH environment variable.
    • Set EPICS_BASE in extensions/config/RELEASE to the full path location of -a built R3.14.0alpha2 base.
    • +a built R3.14 base.
    • -BASE_3_14 is now defined in the alpha2 file, base/config/CONFIG_BASE_VERSION.  +BASE_3_14 is now defined in the base/config/CONFIG_BASE_VERSION.  The commented BASE_3_14 definition can be removed from extensions/config/RELEASE.

    -Building downloaded APS distribution extensions with base R3.14.0alpha2

    +Building downloaded APS distribution extensions with base R3.14
  • @@ -53,7 +53,7 @@ directory should build the APS extensions in the proper order.
  • -Building your extensions with base R3.14.0alpha2

    +Building your extensions with base R3.14
  • diff --git a/READMEconvertingR3.13AppsToR3.14.0alpha2.html b/READMEconvertingR3.13AppsToR3.14.0alpha2.html deleted file mode 100644 index 5b832b593..000000000 --- a/READMEconvertingR3.13AppsToR3.14.0alpha2.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - - -

    -Converting an EPICS R3.13 application to R3.14.0alpha2

    -This document describes how to convert a R3.13 vxWorks application so that -it builds with release R3.14.0alpha2.  It describes procedures such -that: -
      -
    • -The application uses the configure rules which are new to R3.14.
    • -
    - -
      -
    • -The OSI (Operating System Independent) features of R3.14 are available, -i.e. iocCore products can be build for vxWorks as well as other platforms, -e.g. solaris and linux.
    • -
    - -

    -Gnumake clean uninstall

    -First do a gnumake clean uninstall in the application's root directory -to remove all files created by earlier builds. -

    -Create a new R3.14 application

    - -
    mkdir <top> -
    cd <top> -
    /home/phoebus/JBA/epics/base/bin/solaris-sparc/makeBaseApp.pl -t example -example
    - -

    -Copy all *App and iocBoot directories and files to the new <top> directory

    - -
    cd <oldtop> -
    find *App iocBoot -print | cpio -pvmd <fullpath name to new top>
    - -

    -Modify <top>/configure/RELEASE

    - -
    Copy definitions of external modules excluding EPICS_BASE and -TEMPLATES_TOP from old application release file. -
    If sequence programs (*.st or *.stt files) exist in your application, -add the SNCSEQ location definition for the R3.14 seq external module -
    SNCSEQ =<full path to seq top>
    -The R3.14 seq module must exist and be built with EPICS base R3.14.0alpha2.
    - -

    -Modify the Makefiles in <top>/*App directories.

    - -
    Change     include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES_DIRS -
    to     include $(TOP)/configure/RULES_DIRS

    - -

    -Modify the Makefiles in <top>/*App/*Db directories.

    - -
    Remove existing Makefile -
    Rename Makefile.Host to Makefile -
    Modify Makefile as follows: -

    Change     TOP=../../.. -
    to     TOP=../.. -

    Change    include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES.Db -
    to     include $(TOP)/configure/RULES -

    Place all definitions between the include lines. -

    Place any rules after the last include line.

    - -

    -Modify the Makefiles in <top>/*App/src directories.

    - -
    Remove existing Makefile -
    Rename Makefile.Host to Makefile -
    Modify Makefile as follows: -

    Change TOP=../../.. -
    to     TOP=../.. -

    Change     include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES.Host -
    to     include $(TOP)/configure/RULES -

    Change     PROD_LIBS = Db -
    to     PROD_LIBS = dbStaticHost -

    Change     Db_DIR = $(EPICS_BASE_LIB) -
    to     dbStaticHost_DIR = $(EPICS_BASE_LIB) -

    Change     USER_DBDFLAGS -
    to     USR_DBDFLAGS -

    Change     RECTYPES +=  xxxRecord.h -
    to     DBDINC += xxxRecord -

    Change     DBDNAME = <name>.dbd -
    to     DBD += <name>.dbd -

    Remove all DBDEXPAND  lines. -

    Add the contents of Makefile.Vx to Makefile removing the include lines -and the TOP definition.

    - -
    Change     LIBNAME = <libname> -
    to     LIBRARY_vxWorks = <libname> -

    Add the line   <libname>_OBJS = $(LIBOBJS) -

    Change     INSTALLS = iocCore seq -
    to -

    <libname>_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary -
    <libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/seqLibrary -
    <libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvLibrary -
    <libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvCaLibrary
    -Change     include ../baseLIBOBJS -
    to     -include ../baseLIBOBJS -

    Change    SRCS +=  <srcname>.c -
    to     <libname>_SRCS += <srcname>.c -

    Rename your sequence programs from <name>.st to <name>.stt  -if they do not need  c preprocessing before conversion. -

    Change    LIBOBJS += <seq_program_name>.o      -lines -
    to   <libname>_SRCS += <seq_program_name>.stt -
    or  <libname>_SRCS += <seq_program_name>.st -

    Place all macro definitions between the include lines. -

    Place any rules after the last include line.

    - -

    -Modify the Makefiles in <top>/iocBoot directory.

    - -
    Change include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Remove the line DIRS += $(wildcard *ioc*) -

    Change include $(TOP)/config/RULES.iocBoot -
    to     include $(TOP)/configure/RULES.iocBoot

    - -

    -Modify the Makefiles in <top>/iocBoot/ioc* directories.

    - -
    Change include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change include ARCH = <old arch specification e.g. mv167> -
    to     include ARCH = <new arch specificatio -e.g. vxWorks-68040> -

    Change include $(TOP)/config/RULES.ioc -
    to     include $(TOP)/configure/RULES.ioc

    - -

    -Modify st.cmd in <top>/iocBoot/ioc* directories.

    - -
    Remove the lines
    - -
    -
    -
    ld < seq
    - -
    ld < iocCore
    -
    -Change       ld < <libname> -
    to      ld < <libname>Library.munch -

    Change  load statements  for db and dbd files from -

    cd startup -
    dbLoadDatabase("../../dbd/exampleApp.dbd") -
    dbLoadRecords("../../db/dbExample1.db","user=jba") -
    dbLoadRecords("../../db/dbExample2.db")
    -to -
    cd top -
    dbLoadDatabase("dbd/example.dbd") -
    registerRecordDeviceDriver(pdbbase) -
    dbLoadRecords("db/dbExample1.db","user=jba") -
    dbLoadRecords("db/dbExample2.db")
    -
    - -

    -Record support changes

    - -
    The steppermotor, scan, and pid records are no longer in base. -If these record types are used at your site, they  should be downloaded -and built with base R3.14 by your EPICS administrator. To update the R3.14 -location of these record types in your application you must  add appropriate -module definitions to your application's config/RELEASE file and change -the LIBOBJS definitions. -

    For example add

    - -
             PID=<full -path to modules directory>/pid -

    to config/RELEASE. -
    Remove

    - -
             LIBOBJS += -$(EPICS_BASE_BIN)/pidRecord.o -
    from baseLIBOBJS, -
    and add
    - -
             LIBOBJS += -$(PID_BIN)/pidRecord.o -
    to your application src/Makefile.
    - -
    You should consider changing any existing old steppermotor -records to the new EPICS  motor record  module supported by Beamline -Controls and Data Acquisition at APS.
    - -

    -RecDynLink.o and devPtSoft changes

    - -
    recDynLink.o and devPtSoft.o are no longer in EPICS base and -now exist as separate EPICS modules.You must now add the appropriate module -full path definitions to your application config/RELEASE file, and change -LIBOBJS location definition $(EPICS_BASE_BIN) to the module definition -bin directory in your application src directory files.  See "Hardware -support changes" below for instructions.
    - -

    -Hardware support changes

    - -
    All hardware support (dev, drv and dbd files) except soft support -has been unbundled from base R3.14. This support includes the files symb.dbd, -drvHp1404a.o, drvEpvxiMsg.o, and drvEpvxi.o.
    - -
    Hardware support now exists as separate EPICS modules. The -hardware support for your site should be downloaded and built with base -R3.14 by your EPICS administrator. You must now add the appropriate module -full path definitions to your application config/RELEASE file, and change -LIBOBJS location from $(EPICS_BASE_BIN) to the module  bin directory -in your application src directory files. -

    For example, remove

    - -
             LIBOBJS+=$(EPICS_BASE_BIN)/symb
    - -
    from baseLIBOBJS and add
    - -
             LIBOBJS+=$(SYMB_BIN)/symb
    - -
    to your application src/Makefile, -
    and add the line
    - -
    -
    SYMB=<full path definition for the built module SYMB>
    -
    - -
    into your application config/RELEASE file .
    - -

    -dbLoadtemplate tool changes

    - -
    The host tool dbLoadTemplate has been replace by a new EPICS -extension, msi, which should be downloaded and built with base R3.14 by -your EPICS administrator. dbLoadTemplate is still supported on iocs.  -If, in your application, db files are created from template and substitution -files you should  add the definition -

             EPICS_EXTENSIONS=<full -path name to epics extensions directory> -

    to your application config/RELEASE file.

    - -
    -
     
    - -
    -
    
    -
    -
    - -
      - - diff --git a/READMEconvertingR3.13AppsToR3.14.html b/READMEconvertingR3.13AppsToR3.14.html new file mode 100644 index 000000000..a3ccb94e9 --- /dev/null +++ b/READMEconvertingR3.13AppsToR3.14.html @@ -0,0 +1,302 @@ + + + + + + + + + +
    +

    +Converting an EPICS R3.13 application to R3.14.0alpha3

    + +


    This document describes how to convert a R3.13 vxWorks application +so that it builds with release R3.14.0alpha3.  It describes procedures +such that: +

      +
    • +The application uses the configure rules which are new to R3.14.
    • +
    + +
      +
    • +The OSI (Operating System Independent) features of R3.14 are available, +i.e. iocCore products can be build for vxWorks as well as other platforms, +e.g. solaris and linux.
    • +
    + +

    +Gnumake clean uninstall

    + +
    First do a gnumake clean uninstall in the application's root +directory to remove all files created by earlier builds.
    + +

    +Create a new R3.14 application

    + +
    mkdir <top> +
    cd <top> +
    <full path to R3.14.0alpha3 base>/bin/<host_arch>/makeBaseApp.pl +-t example example
    + +

    +Copy all *App and iocBoot directories and files to the new <top> directory

    + +
    cd <oldtop> +
    find *App iocBoot -print | cpio -pvmd <fullpath name to new +top>
    + +

    +Modify <top>/configure/RELEASE

    + +
    Copy definitions of external modules excluding EPICS_BASE and +TEMPLATES_TOP from old application RELEASE file. +
    If sequence programs (*.st or *.stt files) exist in your application, +add the SNCSEQ location definition for the R3.14 seq external module +
    SNCSEQ =<full path to seq module top>
    +The R3.14 seq module must exist and be built with EPICS base R3.14.0alpha3.
    + +

    +Modify the Makefiles in <top>/*App directories.

    + +
    Change     include $(TOP)/config/CONFIG_APP +
    to     include $(TOP)/configure/CONFIG +

    Change     include $(TOP)/config/RULES_DIRS +
    to     include $(TOP)/configure/RULES_DIRS

    + +

    +Modify the Makefiles in <top>/*App/*Db directories.

    + +
    Remove existing Makefile +
    Rename Makefile.Host to Makefile +
    Modify Makefile as follows: +

    Change     TOP=../../.. +
    to     TOP=../.. +

    Change    include $(TOP)/config/CONFIG_APP +
    to     include $(TOP)/configure/CONFIG +

    Change     include $(TOP)/config/RULES.Db +
    to include $(TOP)/configure/RULES +

    Place all definitions between the include lines. +

    Place any rules after the last include line.

    + +

    +Modify the Makefiles in <top>/*App/src directories.

    + +
    Remove existing Makefile +
    Rename Makefile.Host to Makefile +
    Modify Makefile as follows: +

    Change TOP=../../.. +
    to     TOP=../.. +

    Change     include $(TOP)/config/CONFIG_APP +
    to     include $(TOP)/configure/CONFIG +

    Change     include $(TOP)/config/RULES.Host +
    to     include $(TOP)/configure/RULES +

    Change     PROD_LIBS = <name> +
    to     <prod name>_LIBS = dbStaticHost +
    where  <prod name> is a specifified product to be +built. +

    Change  library name Db to dbStaticHost. +
    Change PROD_LIBS = Db +
    to  <prodname>_LIBS += dbStaticHost +
    and Db_DIR = $(EPICS_BASE_LIB) +
    to     dbStaticHost_DIR = $(EPICS_BASE_LIB) +

    Change     USER_DBDFLAGS +
    to     USR_DBDFLAGS +

    Change     RECTYPES +=  xxxRecord.h +
    to     DBDINC += xxxRecord +

    Change     DBDNAME = <name>App.dbd +
    to     DBD += <name>.dbd +

    Remove all DBDEXPAND  lines. +

    Change  PROD = <prodname> +
    to PROD_HOST = <prodname> +

    Change  SRCS.c += <name> +
    to <prodname>_SRCS += <name> +
    or <libname>_SRCS += <name> +

    Add the contents of Makefile.Vx to Makefile removing the include lines +and the TOP definition.

    + +
    Change     LIBNAME = <libname>Lib +
    to     PROD_vxWorks = <libname> +

    Remove line  -include ../baseLIBOBJS +

    Remove  line    INSTALLS = iocCore seq +

    Change all SRCS.c += ../<name>.c lines +
    to   <prodname>_SRCS += <name>.c +
    if the source files exist in the current directory. +

    Change all *OBJS += <name>.o      +lines +
    to   <prodname>_SRCS += <name>.c +
    or  <prodname>_SRCS += <name>.cc +
    if the c/c++ source files exist in the current directory. +

    Change    LIBOBJS += <seq_program_name>.o      +lines +
    to   <prodname>_SRCS += <seq_program_name>.stt +
    or  <prodname>_SRCS += <seq_program_name>.st +

    Add the lines +

    #<name>_LIBS += seq +
    #<name>_LIBS += pv +
    #seq_DIR    = $(SNCSEQ_LIB) +
    #pv_DIR     = $(SNCSEQ_LIB) +

    <name>_LIBS += recIoc +
    <name>_LIBS += softDevIoc +
    <name>_LIBS += testDevIoc +
    <name>_LIBS += iocsh +
    <name>_LIBS += miscIoc +
    <name>_LIBS += rsrvIoc +
    <name>_LIBS += dbtoolsIoc +
    <name>_LIBS += asIoc +
    <name>_LIBS += dbIoc +
    <name>_LIBS += registryIoc +
    <name>_LIBS += dbStaticIoc +
    <name>_LIBS += ca +
    <name>_LIBS += Com

    +where <name> is the  name in the PROD_vxWorks +definition, and uncomment the first four lines if you have sequence programs +(.st or .stt files) in the current directory. +

    Place all macro definitions between the include lines. +

    Place any rules after the last include line.

    + +

    +Modify the Makefiles in <top>/iocBoot directory.

    + +
    Change include $(TOP)/config/CONFIG_APP +
    to     include $(TOP)/configure/CONFIG +

    Remove the line DIRS += $(wildcard *ioc*) +

    Change include $(TOP)/config/RULES.iocBoot +
    to     include $(TOP)/configure/RULES.iocBoot

    + +

    +Modify the Makefiles in <top>/iocBoot/ioc* directories.

    + +
    Change include $(TOP)/config/CONFIG_APP +
    to     include $(TOP)/configure/CONFIG +

    Change include ARCH = <old arch specification e.g. mv167> +
    to     include ARCH = <new arch specificatio +e.g. vxWorks-68040> +

    Change include $(TOP)/config/RULES.ioc +
    to     include $(TOP)/configure/RULES.ioc +

    Add the following rule at the end of the Makefile. +

    buildInstall: cdCommands
    +
    + +

    +Modify st.cmd in <top>/iocBoot/ioc* directories.

    + +
    Remove the lines
    + +
    +
    +
    ld < seq
    + +
    ld < iocCore
    +
    +Change       ld < <libname>Lib +
    to      ld < <libname>.munch +

    Change  load statements  for db and dbd files from +

    cd startup +
    dbLoadDatabase("../../dbd/exampleApp.dbd") +
    dbLoadRecords("../../db/dbExample1.db","user=jba") +
    dbLoadRecords("../../db/dbExample2.db")
    +to +
    cd top +
    dbLoadDatabase("dbd/example.dbd") +
    registerRecordDeviceDriver(pdbbase) +
    dbLoadRecords("db/dbExample1.db","user=jba") +
    dbLoadRecords("db/dbExample2.db")
    +
    + +

    +Record support changes

    + +
    The steppermotor, scan, and pid records are no longer in base.  +If these records are not used in your application, comment out references +to them in base.dbd. If these record types are used at your site, they  +should be downloaded and built with base R3.14 by your EPICS administrator. +To update the R3.14 location of these record types in your application +you must  add appropriate module definitions to your application's +config/RELEASE file and change the LIBOBJS definitions. +

    For example add

    + +
             PID=<full +path to modules directory>/pid +

    to config/RELEASE. +
    Remove

    + +
             LIBOBJS ++= $(EPICS_BASE_BIN)/pidRecord.o +

    from baseLIBOBJS, and add

    + +
    +
    LIBOBJS += $(PID_BIN)/pidRecord.o
    +to your application src/Makefile.
    + +
    You should consider changing any existing old steppermotor +records to the new EPICS  motor record  module supported by Beamline +Controls and Data Acquisition at APS.
    + +

    +RecDynLink.o and devPtSoft changes

    + +
    recDynLink.o and devPtSoft.o are no longer in EPICS base and +now exist as separate EPICS modules.You must now add the appropriate module +full path definitions to your application config/RELEASE file, and change +LIBOBJS +location definition $(EPICS_BASE_BIN) to the module definition +bin directory in your application src directory files.  See "Hardware +support changes" below for instructions.
    + +

    +Hardware support changes

    + +
    All hardware support (dev, drv and dbd files) except soft support +has been unbundled from base R3.14. This support includes the files symb.dbd, +drvHp1404a.o, drvEpvxiMsg.o, and drvEpvxi.o. If these are not used by your +application, comment out references to them in base.dbd.
    + +
    Hardware support now exists as separate EPICS modules. The +hardware support for your site should be downloaded and built with base +R3.14 by your EPICS administrator. You must now add the appropriate module +full path definitions to your application config/RELEASE file, and change +LIBOBJS +location from $(EPICS_BASE_BIN) to the module  bin directory +in your application src directory files. +

    For example, remove

    + +
             LIBOBJS+=$(EPICS_BASE_BIN)/symb
    + +
    from baseLIBOBJS and add
    + +
             LIBOBJS+=$(SYMB_BIN)/symb
    + +
    to your application src/Makefile, +
    and add the line
    + +
    +
    SYMB=<full path definition for the built module SYMB>
    +
    + +
    into your application config/RELEASE file .
    + +

    +dbLoadtemplate tool changes

    + +
    The host tool dbLoadTemplate has been replace by a new EPICS +extension, msi, which should be downloaded and built with base R3.14 by +your EPICS administrator. dbLoadTemplate is still supported on iocs.  +If, in your application, db files are created from template and substitution +files you should  add the definition +

             EPICS_EXTENSIONS=<full +path name to epics extensions directory> +

    to your application config/RELEASE file.

    + +
    +
     
    + +
    +
    
    +
    +
    + +
      + + diff --git a/READMEconvertingR3.14.0alpha2AppsToalpha3.html b/READMEconvertingR3.14.0alpha2AppsToalpha3.html new file mode 100644 index 000000000..562f49068 --- /dev/null +++ b/READMEconvertingR3.14.0alpha2AppsToalpha3.html @@ -0,0 +1,103 @@ + + + + + + + + + +
    +

    +Converting an EPICS R3.14.0alpha2 application to alpha3

    + +


    This document describes how to convert a R3.14.0alpha2 vxWorks application +so that it builds with release R3.14.0alpha3. +

    +Gnumake clean uninstall

    + +
    First do a "gnumake clean uninstall" in the application's +root directory to remove all files created by earlier builds.
    + +

    +Remove baseLIBOBJS

    + +
    Record and device support from base now exists in archive libraries +so baseLIBOBJS is no longer needed and the file and references to it in +the Makefile can be deleted. e.g. remove +
    -include ../baseLIBOBJS
    +and, if there are no LIBOBJS definitions in the Makefile, remove +
    example_OBJS += $(LIBOBJS)
    +
    + +

    +Libraries recIoc and softDevIoc

    + +
    Add the new record and dev support libraries to <name>App/src/Makefile, +i.e. add the lines +
    example_LIBS += recIoc +
    example_LIBS += softDevIoc
    +and remove any references to iocCoreLibrary, e.g. remove the line +
    example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
    +The order of references to base librararies is important so recIoc and +softDevIoc  before the the other base library references.
    + +

    +iocrf renamed to iocsh

    + +
    Change all references to ioccrf in your application src directories +to iocsh e.g. +

    change #include "ioccrf.h" +
    to  #include "iocsh.h" +

    change ioccrf(argv[1]); +
    to  iocsh(argv[1]); +

    and change  ioccrf(NULL); +
    to iocsh(NULL); +

    in <name>App/src/exampleMain.c.

    + +

    +PROD changes

    + +
    PROD targets will now be built for all target architectures. +If a product should be built only for host architectures change PROD to +PROD_HOST .e.g.  in your application src Makefiles +
    change PROD += caExample +
    to  PROD_HOST += caExample +
    and +
    change PROD = sncExample +
    to PROD_HOST += sncExample
    +
    +LIBRARY and PROD changes +
    The meaning of LIBRARY and PROD have now changed. For vxWorks, +LIBRARY now means an archive library, OBJLIB is now a combined object file +(only needed for R3.13 compatability) and PROD is now a combined object +file with library references resolved and will have a corresponding .munch +file created. Thus, in your application src Makefiles, +
    change LIBRARY_vxWorks = <name> +
    to PROD_vxWorks = <name> +
    or +
    remove the lines LIBRARY_vxWorks = <name> +
    and PROD_RTEMS = <name> +
    and change PROD = <name> +
    to PROD_IOC = <name>.
    +In the iocBoot/ioc<name>/st.cmd files, +
    change ld <name>Library.munch +
    to ld < <name>.munch
    +
    + +

    +registerRecordDeviceDriver changes

    + +
    PROD targets will now be built for all target architectures. +If a product should be built only for host architectures change PROD to +PROD_HOST .e.g.  in your application src Makefiles +
    change example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp +
    to  example_SRCS += example_registerRecordDeviceDriver.cpp
    +
    + +
    +
     
    +
    + + +