Updated documentation for alpha3 release.

This commit is contained in:
Janet B. Anderson
2001-06-27 18:30:07 +00:00
parent e76c4287ac
commit b5e9036e79
6 changed files with 557 additions and 357 deletions

View File

@@ -17,7 +17,7 @@ EPICS base</h2></center>
<center>
<h2>
Release 3.14.0alpha2</h2></center>
Release 3.14.0alpha3</h2></center>
<h3>
What is EPICS base?</h3>
@@ -166,15 +166,19 @@ Directory Structure</h3>
<blockquote>Distribution directory structure:</blockquote>
<tt>&nbsp;&nbsp;&nbsp;&nbsp; base&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Root directory of the base distribution</tt>
Root directory of the base istribution</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 compatibility build configuration files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/config/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl and shell scripts used in the R3.13 build</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system independent build config files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure/os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system dependent build config files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/configure/tools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl and shell scripts used in the build</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/config&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 compatibility build configuration files</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/copyright&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Text files describing software copyrights</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
All epics base source code in subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/as&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -187,12 +191,14 @@ Channel access</tt>
Channel access server</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/db&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database access</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/db/test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database access tests</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dbStatic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Static database access</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dbtools&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Database dbLoadTemplate tools</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/dev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Device support</tt>
Device support (softDev and testDev)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/gdd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
General data descriptor</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/iocsh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -205,7 +211,8 @@ Hash bucket</tt>
Algebraic expression interpreter</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cvtFast&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Fast number to string conversion</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cxxTemplates C++ templates</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cxxTemplates C++ templates
and templates tests</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/dbmf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Memory management for frequent alloc/free</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/ellLib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -230,16 +237,20 @@ Miscellaneous utilities</tt>
Operating system independent code</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/osi/os&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Operating system dependant code in subdirectories</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/taskwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Task watchdog</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Test tools (timer, semBinary, semMutex,fdmgr, ?)</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/timer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Timer</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/taskwd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Task watchdog</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCompat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
EPICS base R3.13 compatibility code</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/tsDefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 time stamp definitions and routines</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/ring&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ringPointer: First in first out circular buffers</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/libCom/cppStd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
epicsList: Lists of pointers to objects</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/makeBaseApp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl tool+templates to create app dvl tree</tt>
Perl tool+templates to create ioc app dvl tree</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/makeBaseExt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perl tool+templates to create extension dvl tree</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/src/misc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -258,8 +269,9 @@ Utilities (ca_test, iocLogServer, startCArepeater)</tt>
R3.13 compatibility code specific to vxWorks</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/startup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Scripts for setting up path and environment</tt>
<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; Install directories created by the build</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; </tt>Install directories created by the
build:
<p><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed scripts and executables in subdirs</tt>
<br><tt>&nbsp;&nbsp;&nbsp;&nbsp; base/lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Installed libraries in arch subdirectories</tt>
@@ -309,6 +321,8 @@ WIN32 bat file to set path and env variables</tt>
base/configure&nbsp; directory - contains build definitions and rules</li>
<br><tt>CONFIG.CrossCommon&nbsp;&nbsp;&nbsp; Cross build definitions</tt>
<br><tt>CONFIG.gnuCommon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Gnu compiler build
definitions for all archs</tt>
<br><tt>CONFIG_ADDONS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Definitions
for &lt;osclass> and DEFAULT options</tt>
<br><tt>CONFIG_BASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
@@ -341,7 +355,9 @@ Definitions and rules for building subdirectories</tt>
Definitions and rules for java jars and classes</tt>
<br><tt>RULES_TOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Rules specific to a &lt;top> dir (uninstall and tar)</tt>
<br>&nbsp;
<br><tt>Sample.Makefile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sample makefile
with comments</tt>
<br><tt></tt>&nbsp;
<li>
base/configure/os directory - contains os-arch specific definitions</li>
@@ -357,6 +373,11 @@ hosts and all target</tt>
vx targets</tt>
<br><tt>CONFIG_COMPAT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
R3.13 arch compatibility definitions</tt>
<br><tt>CONFIG_SITE.&lt;host>.&lt;target> Site specific host-target definitions</tt>
<br><tt>CONFIG_SITE.Common.&lt;target> Site specific target defs for all
hosts</tt>
<br><tt>CONFIG_SITE.&lt;host>.Common&nbsp;&nbsp; Site specific host defs
for all targets</tt>
<br>&nbsp;
<li>
base/configure/tools directory - contains Perl scripts used for the build</li>
@@ -403,25 +424,24 @@ PERLLIB be set to &lt;perl directory location>.</blockquote>
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.
<p>If you plan to build EPICS base shared libraries instead of archive
libraries, on Unix systems you will need to add&nbsp; fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
to your LD_LIBRARY_PATH&nbsp;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&nbsp;
fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to your path.
Building shared libraries is determined by the value of the macro SHARED_LIBRARIES&nbsp;in
CONFIG_SITE (YES or NO).</blockquote>
Building shared libraries is determined by the value of the macro SHARED_LIBRARIES
in CONFIG_SITE (either YES or NO).</blockquote>
<b>Do site-specific build configuration</b>
<blockquote><b>Site configuration</b>
<br>To configure EPICS, you may want to modify the default definitions
in the following files:
<blockquote><tt>configure/CONFIG_SITE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </tt>-
Build choices. Specify your target archs.
<br><tt>configure/CONFIG_SITE_ENV&nbsp; </tt>- Set your environment variable
definitions
<br><tt>configure/RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </tt>-
TORNADO 2 full path location</blockquote>
<blockquote><tt>configure/CONFIG_SITE&nbsp;&nbsp;&nbsp;&nbsp; </tt>Build
choices. Specify target archs.
<br><tt>configure/CONFIG_SITE_ENV </tt>Environment variable&nbsp; defaults
<br><tt>configure/RELEASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</tt>TORNADO 2 full path location</blockquote>
<p><br><b>Host configuration</b>
<br>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</blockquote>
<b>R3.13 compatibility configuration</b>
<br>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*&nbsp;
applications , you must modify the default definitions in the base/config/CONFIG_SITE*&nbsp;
files to agree with the definitions in your base/configure files.</blockquote>
<h4>
@@ -481,7 +501,7 @@ files and the base/configure/os directory must have the appropriate configure
files.</blockquote>
<h3>
Examples</h3>
Example application and extension</h3>
<blockquote>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/&lt;hostarch>
directory during the base build.</blockquote>
<h3>
Example base application</h3>
<blockquote>Instructions for building and executing a 3.14 example application
<blockquote>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&nbsp; "IOC Application Developer's Guide R3.14.0alpha2"
for 3.14", in the&nbsp; "IOC Application Developer's Guide R3.14.0alpha3"
. The "Example Application"&nbsp; section briefly explains how to create
and build an example application in a user created &lt;top> directory.
It also explains how to run the example application on a vxWorks ioc or

View File

@@ -83,11 +83,13 @@ div.Section1
</head>
<body lang="EN-US" style="tab-interval:.5in">
<center>
<h2>
Building EPICS R3.13 applications with R3.14.0alpha2 base</h2>
This document describes how to convert a R3.13 vxWorks application so that
it builds with release R3.14.0alpha2.&nbsp; It describes an easy way to
convert applications subject to the following restrictions:
Building EPICS R3.13 applications with R3.14.0alpha3 base</h2></center>
<p><br>This document describes how to convert a R3.13 vxWorks application
so that it builds with release R3.14.0alpha3.&nbsp; It describes an easy
way to convert applications subject to the following restrictions:
<ul>
<li>
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.
<h3>
<b>Gnumake clean uninstall</b></h3>
At the top of the application execute:
<blockquote>At the top of the application execute:
<pre>"<tt>gnumake clean uninstall</tt>"</pre>
to remove all files and directories created by earlier builds.
to remove all files and directories created by earlier builds.</blockquote>
<h3>
Update RELEASE</h3>
Change&nbsp; 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 &lt;top>/config/RELEASE.
<blockquote>Change&nbsp; the <tt>EPICS_BASE</tt> 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 &lt;top>/config/RELEASE.</blockquote>
<h3>
Update target arch definitions</h3>
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.
<blockquote>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.
<p>For example, in config/CONFIG change
<pre>CROSS_COMPILER_TARGET_ARCHS = mv167</pre>
to
@@ -129,28 +136,43 @@ In the iocBoot/*/Makefile files, change
to
<pre>ARCH=&lt;new arch name></pre>
and do a "<tt>gnumake"</tt> in the iocBoot directory to update the cdCommands
files.
files.</blockquote>
<h3>
SNC changes</h3>
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</h3>
<blockquote>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.</blockquote>
<blockquote>Change
<pre>INSTALLS=seq</pre>
to
<pre>LIBOBJS = $(SEQ_BIN)/seqLibrary.o</pre>
<p><br>in application src/Makefile.Vx files to link seq library into your
application library, and add
<pre>SEQ=&lt;full path to seq module directory></pre>
to config/RELEASE.</blockquote>
<h3>
iocCore changes</h3>
iocCore has been renamed to iocCoreLibrary.o.
<blockquote>iocCore has been renamed to iocCoreLibrary.o.
<br>Change
<pre>INSTALLS=iocCore</pre>
to
<pre>LIBOBJS = $(EPICS_BASE_BIN)/iocCoreLibrary.o</pre>
in your application src/Makefile.Vx files to link iocCore into your application
library.
in your application src/Makefile.Vx files .
<br>Also remove
<pre>ld &lt; iocCore</pre>
from the st.cmd files in the iocBoot subdirectories.
from the st.cmd files in the iocBoot subdirectories.</blockquote>
<h3>
Library db changes</h3>
The Db library name was changed to dbStaticHost for host builds and dbStaticIoc
for ioc builds.
<blockquote>The Db library name was changed to dbStaticHost for host builds
and dbStaticIoc for ioc builds.
<br>Change
<pre>PROD_LIBS+=Db</pre>
to
@@ -159,30 +181,37 @@ and
<pre>Db_DIR=$(EPICS_BASE_LIB)</pre>
to
<pre>dbStaticHost_DIR=$(EPICS_BASE_LIB)</pre>
in your application src/Makefile.Host files.
in your application src/Makefile.Host files.</blockquote>
<h3>
VxWorks C++ munched libraries and object files</h3>
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
<blockquote>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 "<tt>.munch</tt>"
to the ld lines where object files were previously loaded. For example
change
<pre>ld &lt; exampleLib</pre>
to
<pre>ld &lt; exampleLibrary.munch</pre>
</blockquote>
<h3>
recGbl calls</h3>
You may need to add the line&nbsp; "<tt>#include "recGbl.h</tt>" to any
source files that have recGbl* calls so that the file will compile without
errors.
<blockquote>You may need to add the line&nbsp; "<tt>#include "recGbl.h</tt>"
to any source files that have recGbl* calls so that the file will compile
without errors.</blockquote>
<h3>
Record support changes</h3>
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
<blockquote>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 <tt>LIBOBJS</tt> definitions. For example
<br>add
<pre>PID=&lt;full path to modules directory>/pid</pre>
@@ -196,17 +225,22 @@ to your application src/Makefile.
<p>You should consider changing any existing old steppermotor records to
the new EPICS&nbsp; <a href="http://www.aps.anl.gov/upd/people/sluiter/epics/modules/mechanism/motor/index.html">motor
record</a>&nbsp; module supported by Beamline Controls and Data Acquisition
at APS.
at APS.</blockquote>
<h3>
RecDynLink.o and devPtSoft changes</h3>
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.
<blockquote>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.</blockquote>
<h3>
Hardware support changes</h3>
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.&nbsp; If they are not used in your application, comment
out references to these files in base.dbd and baseLIBOBJS.
<blockquote>All hardware support (dev, drv and dbd files) has been unbundled
from base R3.14. This support includes the files <tt>symb.dbd, drvHp1404a.o,
drvEpvxiMsg.o, and drvEpvxi.o</tt>.&nbsp; If they are not used in your
application, comment out references to these files in base.dbd and baseLIBOBJS.
<p>Hardware support files now exist as separate modules available for download
from the <a href="http://www.aps.anl.gov/epics/">EPICS www home page at
ANL</a>. You must now download all the hardware support modules needed
@@ -222,20 +256,22 @@ from baseLIBOBJS and add
to your application src/Makefile,
<br>and add the line
<pre>SYMB=&lt;full path definition for the built module SYMB></pre>
&nbsp;into your application config/RELEASE file .
into your application config/RELEASE file .
<p>After a gnumake in the symb module followed by a gnumake in the application
config directory, the definitions <tt>SYMB_BIN</tt> and <tt>SYMB_LIB</tt>
will be created,&nbsp; the directory $(SYMB)/include will be added to the
include directories on the compiler command lines&nbsp; (in the INSTALL_INCLUDES
include directories on the compiler command lines&nbsp; (in the <tt>INSTALL_INCLUDES</tt>
definition)&nbsp; 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 <tt>INSTALL_DBDFLAGS</tt>
definition).</blockquote>
<h3>
dbLoadtemplate tool changes</h3>
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.
<blockquote>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.
<p>In config/RULES.Db replace the line
<pre>DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)</pre>
with
@@ -246,7 +282,12 @@ and change line:
to
<pre>@$(MSI) $&lt; > $@</pre>
Also add the definition
<blockquote>
<pre>EPICS_EXTENSIONS=&lt;full path name to epics extensions directory></pre>
to your application config/RELEASE file.
</blockquote>
to your application config/RELEASE file.</blockquote>
depends changes
<p>&nbsp;&nbsp;&nbsp;&nbsp; Remove any SRCS.c and SRCS.cc definitions.
Depends no longer uses these definitions.
</body>
</html>

View File

@@ -7,13 +7,13 @@
</head>
<body>
<center>
<h2>
Building EPICS R3.13 extensions with R3.14.0alpha2 base</h2>
Building EPICS R3.13 extensions with R3.14 base</h2></center>
<blockquote>EPICS R3.13 extensions have both a Makefile and a Makefile.Host
<p><br>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.</blockquote>
directory.
<h3>
Preliminary steps for all extensions</h3>
@@ -27,15 +27,15 @@ Make certain that you have set the HOST_ARCH environment variable.</li>
<li>
Set EPICS_BASE in extensions/config/RELEASE to the full path location of
a built R3.14.0alpha2 base.</li>
a built R3.14 base.</li>
<li>
BASE_3_14 is now defined in the alpha2 file, base/config/CONFIG_BASE_VERSION.&nbsp;
BASE_3_14 is now defined in the base/config/CONFIG_BASE_VERSION.&nbsp;
The commented BASE_3_14 definition can be removed from extensions/config/RELEASE.</li>
</blockquote>
<h3>
Building downloaded APS distribution extensions with base R3.14.0alpha2</h3>
Building downloaded APS distribution extensions with base R3.14</h3>
<blockquote>
<li>
@@ -53,7 +53,7 @@ directory should build the APS extensions in the proper order.</li>
</blockquote>
<h3>
Building your extensions with base R3.14.0alpha2</h3>
Building your extensions with base R3.14</h3>
<blockquote>
<li>

View File

@@ -1,263 +0,0 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="jba">
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
</head>
<body>
<h2>
Converting an EPICS R3.13 application to R3.14.0alpha2</h2>
This document describes how to convert a R3.13 vxWorks application so that
it builds with release R3.14.0alpha2.&nbsp; It describes procedures such
that:
<ul>
<li>
The application uses the configure rules which are new to R3.14.</li>
</ul>
<ul>
<li>
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.</li>
</ul>
<h3>
Gnumake clean uninstall</h3>
First do a gnumake clean uninstall in the application's root directory
to remove all files created by earlier builds.
<h3>
Create a new R3.14 application</h3>
<blockquote>mkdir &lt;top>
<br>cd &lt;top>
<br>/home/phoebus/JBA/epics/base/bin/solaris-sparc/makeBaseApp.pl -t example
example</blockquote>
<h3>
Copy all *App and iocBoot directories and files to the new &lt;top> directory</h3>
<blockquote>cd &lt;oldtop>
<br>find *App iocBoot -print | cpio -pvmd &lt;fullpath name to new top></blockquote>
<h3>
Modify &lt;top>/configure/RELEASE</h3>
<blockquote>Copy definitions of external modules excluding EPICS_BASE and
TEMPLATES_TOP from old application release file.
<br>If sequence programs (*.st or *.stt files) exist in your application,
add the SNCSEQ location definition for the R3.14 seq external module
<blockquote>SNCSEQ =&lt;full path to seq top></blockquote>
The R3.14 seq module must exist and be built with EPICS base R3.14.0alpha2.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App directories.</h3>
<blockquote>Change&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/config/CONFIG_APP
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/CONFIG
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/config/RULES_DIRS
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/RULES_DIRS</blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App/*Db directories.</h3>
<blockquote>Remove existing Makefile
<br>Rename Makefile.Host to Makefile
<br>Modify Makefile as follows:
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; TOP=../../..
<br>to&nbsp;&nbsp;&nbsp;&nbsp; TOP=../..
<p>Change&nbsp;&nbsp;&nbsp; include $(TOP)/config/CONFIG_APP
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/CONFIG
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/config/RULES.Db
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/RULES
<p>Place all definitions between the include lines.
<p>Place any rules after the last include line.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App/src directories.</h3>
<blockquote>Remove existing Makefile
<br>Rename Makefile.Host to Makefile
<br>Modify Makefile as follows:
<p>Change TOP=../../..
<br>to&nbsp;&nbsp;&nbsp;&nbsp; TOP=../..
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/config/CONFIG_APP
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/CONFIG
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/config/RULES.Host
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/RULES
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; PROD_LIBS = Db
<br>to&nbsp;&nbsp;&nbsp;&nbsp; PROD_LIBS = dbStaticHost
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; Db_DIR = $(EPICS_BASE_LIB)
<br>to&nbsp;&nbsp;&nbsp;&nbsp; dbStaticHost_DIR = $(EPICS_BASE_LIB)
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; USER_DBDFLAGS
<br>to&nbsp;&nbsp;&nbsp;&nbsp; USR_DBDFLAGS
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; RECTYPES +=&nbsp; xxxRecord.h
<br>to&nbsp;&nbsp;&nbsp;&nbsp; DBDINC += xxxRecord
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; DBDNAME = &lt;name>.dbd
<br>to&nbsp;&nbsp;&nbsp;&nbsp; DBD += &lt;name>.dbd
<p>Remove all DBDEXPAND&nbsp; lines.
<p>Add the contents of Makefile.Vx to Makefile removing the include lines
and the TOP definition.</blockquote>
<blockquote>Change&nbsp;&nbsp;&nbsp;&nbsp; LIBNAME = &lt;libname>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; LIBRARY_vxWorks = &lt;libname>
<p>Add the line&nbsp;&nbsp; &lt;libname>_OBJS = $(LIBOBJS)
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; INSTALLS = iocCore seq
<br>to
<blockquote>&lt;libname>_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
<br>&lt;libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/seqLibrary
<br>&lt;libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvLibrary
<br>&lt;libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvCaLibrary</blockquote>
Change&nbsp;&nbsp;&nbsp;&nbsp; include ../baseLIBOBJS
<br>to&nbsp;&nbsp;&nbsp;&nbsp; -include ../baseLIBOBJS
<p>Change&nbsp;&nbsp;&nbsp; SRCS +=&nbsp; &lt;srcname>.c
<br>to&nbsp;&nbsp;&nbsp;&nbsp; &lt;libname>_SRCS += &lt;srcname>.c
<p>Rename your sequence programs from &lt;name>.st to &lt;name>.stt&nbsp;
if they do not need&nbsp; c preprocessing before conversion.
<p>Change&nbsp;&nbsp;&nbsp; LIBOBJS += &lt;seq_program_name>.o&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lines
<br>to&nbsp;&nbsp; &lt;libname>_SRCS += &lt;seq_program_name>.stt
<br>or&nbsp; &lt;libname>_SRCS += &lt;seq_program_name>.st
<p>Place all macro definitions between the include lines.
<p>Place any rules after the last include line.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/iocBoot directory.</h3>
<blockquote>Change include $(TOP)/config/CONFIG_APP
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/CONFIG
<p>Remove the line DIRS += $(wildcard *ioc*)
<p>Change include $(TOP)/config/RULES.iocBoot
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/RULES.iocBoot</blockquote>
<h3>
Modify the Makefiles in &lt;top>/iocBoot/ioc* directories.</h3>
<blockquote>Change include $(TOP)/config/CONFIG_APP
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/CONFIG
<p>Change include ARCH = &lt;old arch specification e.g. mv167>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include ARCH = &lt;new arch specificatio
e.g. vxWorks-68040>
<p>Change include $(TOP)/config/RULES.ioc
<br>to&nbsp;&nbsp;&nbsp;&nbsp; include $(TOP)/configure/RULES.ioc</blockquote>
<h3>
Modify st.cmd in &lt;top>/iocBoot/ioc* directories.</h3>
<blockquote>Remove the lines</blockquote>
<blockquote>
<blockquote>
<pre>ld &lt; seq</pre>
<pre>ld &lt; iocCore</pre>
</blockquote>
Change&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ld &lt; &lt;libname>
<br>to&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ld &lt; &lt;libname>Library.munch
<p>Change&nbsp; load statements&nbsp; for db and dbd files from
<blockquote>cd startup
<br>dbLoadDatabase("../../dbd/exampleApp.dbd")
<br>dbLoadRecords("../../db/dbExample1.db","user=jba")
<br>dbLoadRecords("../../db/dbExample2.db")</blockquote>
to
<blockquote>cd top
<br>dbLoadDatabase("dbd/example.dbd")
<br>registerRecordDeviceDriver(pdbbase)
<br>dbLoadRecords("db/dbExample1.db","user=jba")
<br>dbLoadRecords("db/dbExample2.db")</blockquote>
</blockquote>
<h3>
Record support changes</h3>
<blockquote>The steppermotor, scan, and pid records are no longer in base.
If these record types are used at your site, they&nbsp; 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&nbsp; add appropriate
module definitions to your application's config/RELEASE file and change
the LIBOBJS definitions.
<p>For example add</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID=&lt;full
path to modules directory>/pid
<p>to config/RELEASE.
<br>Remove</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBOBJS +=
$(EPICS_BASE_BIN)/pidRecord.o
<br>from baseLIBOBJS,
<br>and add</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBOBJS +=
$(PID_BIN)/pidRecord.o
<br>to your application src/Makefile.</blockquote>
<blockquote>You should consider changing any existing old steppermotor
records to the new EPICS&nbsp; motor record&nbsp; module supported by Beamline
Controls and Data Acquisition at APS.</blockquote>
<h3>
RecDynLink.o and devPtSoft changes</h3>
<blockquote>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.&nbsp; See "Hardware
support changes" below for instructions.</blockquote>
<h3>
Hardware support changes</h3>
<blockquote>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.</blockquote>
<blockquote>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&nbsp; bin directory
in your application src directory files.
<p>For example, remove</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBOBJS+=$(EPICS_BASE_BIN)/symb</blockquote>
<blockquote>from baseLIBOBJS and add</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LIBOBJS+=$(SYMB_BIN)/symb</blockquote>
<blockquote>to your application src/Makefile,
<br>and add the line</blockquote>
<blockquote>
<blockquote>SYMB=&lt;full path definition for the built module SYMB></blockquote>
</blockquote>
<blockquote>into your application config/RELEASE file .</blockquote>
<h3>
dbLoadtemplate tool changes</h3>
<blockquote>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.&nbsp;
If, in your application, db files are created from template and substitution
files you should&nbsp; add the definition
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; EPICS_EXTENSIONS=&lt;full
path name to epics extensions directory>
<p>to your application config/RELEASE file.</blockquote>
<blockquote>
<blockquote>&nbsp;</blockquote>
<blockquote>
<pre></pre>
</blockquote>
</blockquote>
<br>&nbsp;
</body>
</html>

View File

@@ -0,0 +1,302 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="jba">
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
</head>
<body>
<center>
<h2>
Converting an EPICS R3.13 application to R3.14.0alpha3</h2></center>
<p><br>This document describes how to convert a R3.13 vxWorks application
so that it builds with release R3.14.0alpha3.&nbsp; It describes procedures
such that:
<ul>
<li>
The application uses the configure rules which are new to R3.14.</li>
</ul>
<ul>
<li>
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.</li>
</ul>
<h3>
Gnumake clean uninstall</h3>
<blockquote>First do a gnumake clean uninstall in the application's root
directory to remove all files created by earlier builds.</blockquote>
<h3>
Create a new R3.14 application</h3>
<blockquote><tt>mkdir &lt;top></tt>
<br><tt>cd &lt;top></tt>
<br><tt>&lt;full path to R3.14.0alpha3 base>/bin/&lt;host_arch>/makeBaseApp.pl
-t example example</tt></blockquote>
<h3>
Copy all *App and iocBoot directories and files to the new &lt;top> directory</h3>
<blockquote><tt>cd &lt;oldtop></tt>
<br><tt>find *App iocBoot -print | cpio -pvmd &lt;fullpath name to new
top></tt></blockquote>
<h3>
Modify &lt;top>/configure/RELEASE</h3>
<blockquote>Copy definitions of external modules excluding EPICS_BASE and
TEMPLATES_TOP from old application RELEASE file.
<br>If sequence programs (*.st or *.stt files) exist in your application,
add the SNCSEQ location definition for the R3.14 seq external module
<blockquote><tt>SNCSEQ =&lt;full path to seq module top></tt></blockquote>
The R3.14 seq module must exist and be built with EPICS base R3.14.0alpha3.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App directories.</h3>
<blockquote>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/config/CONFIG_APP</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/CONFIG</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; i<tt>nclude $(TOP)/config/RULES_DIRS</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/RULES_DIRS</tt></blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App/*Db directories.</h3>
<blockquote>Remove existing Makefile
<br>Rename Makefile.Host to Makefile
<br>Modify Makefile as follows:
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>TOP=../../..</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>TOP=../..</tt>
<p>Change&nbsp;&nbsp;&nbsp; i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/CONFIG</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/config/RULES.Db</tt>
<br>to <tt>include $(TOP)/configure/RULES</tt>
<p>Place all definitions between the include lines.
<p>Place any rules after the last include line.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/*App/src directories.</h3>
<blockquote>Remove existing Makefile
<br>Rename Makefile.Host to Makefile
<br>Modify Makefile as follows:
<p>Change <tt>TOP=../../..</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>TOP=../..</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/config/CONFIG_APP</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/CONFIG</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; i<tt>nclude $(TOP)/config/RULES.Host</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/RULES</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>PROD_LIBS = &lt;name></tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp;<tt> &lt;prod name>_LIBS = dbStaticHost</tt>
<br>where&nbsp; <tt>&lt;prod name></tt> is a specifified product to be
built.
<p>Change&nbsp; library name <tt>Db</tt> to <tt>dbStaticHost.</tt>
<br>Change<tt> PROD_LIBS = Db</tt>
<br>to&nbsp;<tt> &lt;prodname>_LIBS += dbStaticHost</tt>
<br>and <tt>Db_DIR = $(EPICS_BASE_LIB)</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>dbStaticHost_DIR = $(EPICS_BASE_LIB)</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>USER_DBDFLAGS</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>USR_DBDFLAGS</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>RECTYPES +=&nbsp; xxxRecord.h</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>DBDINC += xxxRecord</tt>
<p>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>DBDNAME = &lt;name>App.dbd</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>DBD += &lt;name>.dbd</tt>
<p>Remove all <tt>DBDEXPAND</tt>&nbsp; lines.
<p>Change&nbsp; <tt>PROD = &lt;prodname></tt>
<br>to <tt>PROD_HOST = &lt;prodname></tt>
<p>Change&nbsp; <tt>SRCS.c += &lt;name></tt>
<br>to <tt>&lt;prodname>_SRCS += &lt;name></tt>
<br>or<tt> &lt;libname>_SRCS += &lt;name></tt>
<p>Add the contents of Makefile.Vx to Makefile removing the include lines
and the TOP definition.</blockquote>
<blockquote>Change&nbsp;&nbsp;&nbsp;&nbsp; <tt>LIBNAME = &lt;libname>Lib</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>PROD_vxWorks = &lt;libname></tt><tt></tt>
<p>Remove line&nbsp;<tt> -include ../baseLIBOBJS</tt>
<p>Remove&nbsp; line&nbsp;&nbsp;&nbsp; <tt>INSTALLS = iocCore seq</tt><tt></tt>
<p>Change all <tt>SRCS.c += ../&lt;name>.c </tt>lines
<br>to&nbsp;&nbsp; <font face="Arial,Helvetica">&lt;prodname>_SRCS += &lt;name>.c</font>
<br>if the source files exist in the current directory.<tt></tt>
<p>Change all <tt>*OBJS += &lt;name>.o</tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lines
<br>to&nbsp;&nbsp; <font face="Arial,Helvetica">&lt;prodname>_SRCS += &lt;name>.c</font>
<br>or&nbsp;<font face="Arial,Helvetica"> &lt;prodname>_SRCS += &lt;name>.cc</font>
<br>if the c/c++ source files exist in the current directory.
<p>Change&nbsp;&nbsp;&nbsp; <tt>LIBOBJS += &lt;seq_program_name>.o</tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lines
<br>to&nbsp;&nbsp; <tt>&lt;prodname>_SRCS += &lt;seq_program_name>.stt</tt>
<br>or&nbsp; <tt>&lt;prodname>_SRCS += &lt;seq_program_name>.st</tt><tt></tt>
<p>Add the lines
<blockquote><tt>#&lt;name>_LIBS += seq</tt>
<br><tt>#&lt;name>_LIBS += pv</tt>
<br><tt>#seq_DIR&nbsp;&nbsp;&nbsp; = $(SNCSEQ_LIB)</tt>
<br><tt>#pv_DIR&nbsp;&nbsp;&nbsp;&nbsp; = $(SNCSEQ_LIB)</tt><tt></tt>
<p><tt>&lt;name>_LIBS += recIoc</tt>
<br><tt>&lt;name>_LIBS += softDevIoc</tt>
<br><tt>&lt;name>_LIBS += testDevIoc</tt>
<br><tt>&lt;name>_LIBS += iocsh</tt>
<br><tt>&lt;name>_LIBS += miscIoc</tt>
<br><tt>&lt;name>_LIBS += rsrvIoc</tt>
<br><tt>&lt;name>_LIBS += dbtoolsIoc</tt>
<br><tt>&lt;name>_LIBS += asIoc</tt>
<br><tt>&lt;name>_LIBS += dbIoc</tt>
<br><tt>&lt;name>_LIBS += registryIoc</tt>
<br><tt>&lt;name>_LIBS += dbStaticIoc</tt>
<br><tt>&lt;name>_LIBS += ca</tt>
<br><tt>&lt;name>_LIBS += Com</tt></blockquote>
where <tt>&lt;name></tt> is the&nbsp; name in the <tt>PROD_vxWorks</tt>
definition, and uncomment the first four lines if you have sequence programs
(.st or .stt files) in the current directory.
<p>Place all macro definitions between the include lines.
<p>Place any rules after the last include line.</blockquote>
<h3>
Modify the Makefiles in &lt;top>/iocBoot directory.</h3>
<blockquote>Change i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/CONFIG</tt>
<p>Remove the line <tt>DIRS += $(wildcard *ioc*)</tt>
<p>Change <tt>include $(TOP)/config/RULES.iocBoot</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; i<tt>nclude $(TOP)/configure/RULES.iocBoot</tt></blockquote>
<h3>
Modify the Makefiles in &lt;top>/iocBoot/ioc* directories.</h3>
<blockquote>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/CONFIG</tt>
<p>Change <tt>include ARCH = &lt;old arch specification e.g. mv167></tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include ARCH = &lt;new arch specificatio
e.g. vxWorks-68040></tt><tt></tt>
<p>Change <tt>include $(TOP)/config/RULES.ioc</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp; <tt>include $(TOP)/configure/RULES.ioc</tt>
<p>Add the following rule at the end of the Makefile.
<blockquote><tt>buildInstall: cdCommands</tt></blockquote>
</blockquote>
<h3>
Modify st.cmd in &lt;top>/iocBoot/ioc* directories.</h3>
<blockquote>Remove the lines</blockquote>
<blockquote>
<blockquote>
<pre>ld &lt; seq</pre>
<pre>ld &lt; iocCore</pre>
</blockquote>
Change&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>ld &lt; &lt;libname>Lib</tt>
<br>to&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>ld &lt; &lt;libname>.munch</tt>
<p>Change&nbsp; load statements&nbsp; for db and dbd files from
<blockquote><tt>cd startup</tt>
<br><tt>dbLoadDatabase("../../dbd/exampleApp.dbd")</tt>
<br><tt>dbLoadRecords("../../db/dbExample1.db","user=jba")</tt>
<br><tt>dbLoadRecords("../../db/dbExample2.db")</tt></blockquote>
to
<blockquote><tt>cd top</tt>
<br><tt>dbLoadDatabase("dbd/example.dbd")</tt>
<br><tt>registerRecordDeviceDriver(pdbbase)</tt>
<br><tt>dbLoadRecords("db/dbExample1.db","user=jba")</tt>
<br><tt>dbLoadRecords("db/dbExample2.db")</tt></blockquote>
</blockquote>
<h3>
Record support changes</h3>
<blockquote>The steppermotor, scan, and pid records are no longer in base.&nbsp;
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&nbsp;
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&nbsp; add appropriate module definitions to your application's
config/RELEASE file and change the <tt>LIBOBJS</tt> definitions.
<p>For example add</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>PID=&lt;full
path to modules directory>/pid</tt>
<p>to config/RELEASE.
<br>Remove</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>LIBOBJS
+= $(EPICS_BASE_BIN)/pidRecord.o</tt>
<p>from baseLIBOBJS, and add</blockquote>
<blockquote>
<blockquote><tt>LIBOBJS += $(PID_BIN)/pidRecord.o</tt></blockquote>
to your application src/Makefile.</blockquote>
<blockquote>You should consider changing any existing old steppermotor
records to the new EPICS&nbsp; motor record&nbsp; module supported by Beamline
Controls and Data Acquisition at APS.</blockquote>
<h3>
RecDynLink.o and devPtSoft changes</h3>
<blockquote>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
<tt>LIBOBJS</tt>
location definition <tt>$(EPICS_BASE_BIN)</tt> to the module definition
bin directory in your application src directory files.&nbsp; See "Hardware
support changes" below for instructions.</blockquote>
<h3>
Hardware support changes</h3>
<blockquote>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.</blockquote>
<blockquote>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
<tt>LIBOBJS</tt>
location from <tt>$(EPICS_BASE_BIN) </tt>to the module&nbsp; bin directory
in your application src directory files.
<p>For example, remove</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>LIBOBJS+=$(EPICS_BASE_BIN)/symb</tt></blockquote>
<blockquote>from baseLIBOBJS and add</blockquote>
<blockquote>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>LIBOBJS+=$(SYMB_BIN)/symb</tt></blockquote>
<blockquote>to your application src/Makefile,
<br>and add the line</blockquote>
<blockquote>
<blockquote><tt>SYMB=&lt;full path definition for the built module SYMB></tt></blockquote>
</blockquote>
<blockquote>into your application config/RELEASE file .</blockquote>
<h3>
dbLoadtemplate tool changes</h3>
<blockquote>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.&nbsp;
If, in your application, db files are created from template and substitution
files you should&nbsp; add the definition
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <tt>EPICS_EXTENSIONS=&lt;full
path name to epics extensions directory></tt>
<p>to your application config/RELEASE file.</blockquote>
<blockquote>
<blockquote>&nbsp;</blockquote>
<blockquote>
<pre></pre>
</blockquote>
</blockquote>
<br>&nbsp;
</body>
</html>

View File

@@ -0,0 +1,103 @@
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Author" content="jba">
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
</head>
<body>
<center>
<h2>
Converting an EPICS R3.14.0alpha2 application to alpha3</h2></center>
<p><br>This document describes how to convert a R3.14.0alpha2 vxWorks application
so that it builds with release R3.14.0alpha3.
<h3>
Gnumake clean uninstall</h3>
<blockquote>First do a "<tt>gnumake clean uninstall"</tt> in the application's
root directory to remove all files created by earlier builds.</blockquote>
<h3>
Remove baseLIBOBJS</h3>
<blockquote>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
<blockquote><tt>-include ../baseLIBOBJS</tt></blockquote>
and, if there are no LIBOBJS&nbsp;definitions in the Makefile, remove
<blockquote><tt>example_OBJS += $(LIBOBJS)</tt></blockquote>
</blockquote>
<h3>
Libraries recIoc and softDevIoc</h3>
<blockquote>Add the new record and dev support libraries to &lt;name>App/src/Makefile,
i.e. add the lines
<blockquote><tt>example_LIBS += recIoc</tt>
<br><tt>example_LIBS += softDevIoc</tt></blockquote>
and remove any references to iocCoreLibrary, e.g. remove the line
<blockquote><tt>example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary</tt></blockquote>
The order of references to base librararies is important so recIoc and
softDevIoc&nbsp; before the the other base library references.</blockquote>
<h3>
iocrf renamed to iocsh</h3>
<blockquote>Change all references to ioccrf in your application src directories
to iocsh e.g.
<p>change <tt>#include "ioccrf.h"</tt>
<br>to&nbsp; <tt>#include "iocsh.h"</tt>
<p>change<tt> ioccrf(argv[1]);</tt>
<br>to&nbsp;<tt> iocsh(argv[1]);</tt>
<p>and change&nbsp;<tt> ioccrf(NULL);</tt>
<br>to <tt>iocsh(NULL)</tt>;
<p>in &lt;name>App/src/exampleMain.c.</blockquote>
<h3>
PROD changes</h3>
<blockquote>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.&nbsp; in your application src Makefiles
<blockquote>change <tt>PROD += caExample</tt>
<br>to&nbsp; <tt>PROD_HOST += caExample</tt>
<br>and
<br>change <tt>PROD = sncExample</tt>
<br>to <tt>PROD_HOST += sncExample</tt></blockquote>
</blockquote>
<b>LIBRARY and PROD changes</b>
<blockquote>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,
<blockquote>change <tt>LIBRARY_vxWorks = &lt;name></tt>
<br>to <tt>PROD_vxWorks = &lt;name></tt>
<br>or
<br>remove the lines <tt>LIBRARY_vxWorks = &lt;name></tt>
<br>and <tt>PROD_RTEMS = &lt;name></tt>
<br>and change <tt>PROD = &lt;name></tt>
<br>to <tt>PROD_IOC = &lt;name></tt>.</blockquote>
In the iocBoot/ioc&lt;name>/st.cmd files,
<blockquote>change <tt>ld &lt;name>Library.munch</tt>
<br>to <tt>ld &lt; &lt;name>.munch</tt></blockquote>
</blockquote>
<h3>
registerRecordDeviceDriver changes</h3>
<blockquote>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.&nbsp; in your application src Makefiles
<blockquote>change <tt>example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp</tt>
<br>to&nbsp; <tt>example_SRCS += example_registerRecordDeviceDriver.cpp</tt></blockquote>
</blockquote>
<blockquote>
<blockquote>&nbsp;</blockquote>
</blockquote>
</body>
</html>