From 0a0302daad41ec2407e0863299d2970c6f42b140 Mon Sep 17 00:00:00 2001
From: Andrew Johnson
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 sncseq external module
Copy definitions of external modules excluding EPICS_BASE and +TEMPLATE_TOP from your old application config/RELEASE file. In many +cases the modules you actually use under R3.14 will be different to the R3.13 +modules, but the old module names here give you a starting-point for what there +replacements will be.
+ +If any sequence programs (*.st or *.stt files) exist in your application, add +the SNCSEQ location definition for the R3.14 sncseq external module.
SNCSEQ = /path/to/sncseq@@ -107,7 +111,7 @@ still to convert):
This new Makefile has comments explaining how to build the various host -and ioc products. Lets consider some examples
+and IOC products. Lets consider some examplesMakefile.Host contains definitions like:
@@ -149,7 +153,7 @@ DBDNAME = exampleApp.dbdNOTES: Change exampleApp.dbd to example.dbd in all st.cmd files. Also this definition assumes that file exampleInclude.dbd exists.
Makefile.Vx contains statements like:
SRCS.c += ../xxxRecord.c @@ -198,21 +202,22 @@ baseLIBOBJS, Makefile.Host, and Makefile.Vx
to your appnameInclude.dbd file and remove the file -nameApp/src/base.dbd from your src directory. The base.dbd from base/dbd -will be used instead. If you only want to load a subset of the record -definitions from base you can keep your own copy of base.dbd, but you should -copy the one from your R3.14 base and edit that rather than trying to re-use the -R3.13 version from your old application.
+nameApp/src/base.dbd from your src directory. The base.dbd file from +$(EPICS_BASE)/dbd will be used instead. If you only want to load a subset of the +record definitions from base you can keep a local edited copy of the base.dbd +file but you should copy it from $(EPICS_BASE)/dbd and edit that rather than +trying to re-use the R3.13 version from your old application area.Add the following line after all existing #includes
+Add the following header file inclusion after all other #include + statements:
-#include "epicsExport.h"
The structure rset is now a typedef so change
+The struct rset is now available as a typedef so change
-struct rset recordnameRSET = { ... };@@ -224,65 +229,68 @@ R3.13 version from your old application.rset recordnameRSET = { ... };
and add the following line after the rset recordnameRSET = { ...
-};
definition.
and add the following line immediately after that definition:
-epicsExportAddress(rset,recordnameRSET);+epicsExportAddress(rset, recordnameRSET);
Add the following line after all existing #includes
+Add the following header file inclusion after all other #include + statements:
-#include "epicsExport.h"
and add the following line after the dset definition struct { ... }
-devname = { ... };
and add the following line after every dset definition struct { ... } + devname = { ... }; in the file.
-epicsExportAddress(dset,devname);+epicsExportAddress(dset, devname);
Add the following line after all existing #includes
+Add the following header file inclusion after all other #include + statements:
-#include "epicsExport.h"
and add the following line after the drvet drvname definition
+and add the following line after the drvet drvname + definition:
-epicsExportAddress(drvet,drvname);+epicsExportAddress(drvet, drvname);
Registration code for application specific functions, e.g. subroutine record -init and process functions, must be changed as follows
+ init and process functions, must be changed as follows#include "registryFunction.h" #include "epicsExport.h"
static long mySubInit(subRecord *precord) static long mySubProcess(subRecord *precord)
-epicsExportFunction(mySubInit); -epicsExportFunction(mySubProcess);+epicsRegisterFunction(mySubInit); +epicsRegisterFunction(mySubProcess);
It may be necessary to add one or more of the following header file + inclusions to any C source file if you get warnings or errors from the + compilation process. The most likely file missing is errlog.h.
+ +Change include $(TOP)/config/CONFIG_APP
to include
@@ -351,14 +374,13 @@ $(TOP)/configure/RULES.ioc
Change ld < nameLib
to
+
The ld command in vxWorks 5.5.2 doesn't clean up its standard input
+stream properly, so we now recommend passing the filename to it as an argument
+instead. Change ld < nameLib
to
+ld 0,0, "name.munch"- -(The ld command in vxWorks 5.5.2 doesn't clean up its standard - input properly, so we now recommend passing the filename to it directly - instead.)
Change cd appbin
to cd topbin
If any source file makes calls to recGbl routines make sure it includes
recGbl.h. If it doesn't the compiler will issue warning messages and
-the ioc may issue the message: undefined symbol: _recGblSetSevr
.
undefined symbol: _recGblSetSevr.
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 -add LIBOBJS definitions to the src Makefile.
+The steppermotor, scan, and pid records are no longer in base. If these +record types are used at your site, their unbundled modules should be downloaded +from the EPICS website and built with base R3.14 by your EPICS administrator. To +use these record types in your application you must add them to the application +just like any other external support module. Most modules provide instructions +on how to use them in an IOC application.
-For example add
- --- -PID = /path/to/modules/pid-
to config/RELEASE 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.
+Consider changing any existing old steppermotor records to the EPICS motor +record module supported by the Beamline Controls and Data Acquisition group at +APS.
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.
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.
+application, remove any references to them from your dbd files. -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.
+Hardware support now exists as separate EPICS modules. The hardware support +modules used at your site should be downloaded and built with base R3.14 by your +EPICS administrator. To use them, add the appropriate module full path +definitions to your application configure/RELEASE file, and make the documented +changes to your Makefile to link their binaries into the your IOC +executable.
For example, remove
@@ -440,7 +446,7 @@ directory in your application src directory files.LIBOBJS += $(EPICS_BASE_BIN)/symb-
from baseLIBOBJS and add
+from baseLIBOBJS and add
-LIBOBJS += $(SYMB_BIN)/symb@@ -452,25 +458,25 @@ directory in your application src directory files.SYMB = <full path definition for the built module SYMB>
into your application config/RELEASE file.
+into your application configure/RELEASE file.
The host tool dbLoadTemplate has been replace by a new EPICS extension, +
The host tool dbLoadTemplate has been replace by a new EPICS extension called 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
+administrator. dbLoadTemplate is still supported on IOCs. If the msi executable +is not in your default search path and in your application db files are created +from template and substitution files, you should add the definition-MSI = <full path name to msi executable>
to your application config/RELEASE file.
-