Updated documentation for alpha3 release.
This commit is contained in:
79
README.htm
79
README.htm
@@ -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> base
|
||||
Root directory of the base distribution</tt>
|
||||
Root directory of the base istribution</tt>
|
||||
<br><tt> base/config
|
||||
R3.13 compatibility build configuration files</tt>
|
||||
<br><tt> base/config/tools
|
||||
Perl and shell scripts used in the R3.13 build</tt>
|
||||
<br><tt> base/configure
|
||||
Operating system independent build config files</tt>
|
||||
<br><tt> base/configure/os
|
||||
Operating system dependent build config files</tt>
|
||||
<br><tt> base/configure/tools
|
||||
Perl and shell scripts used in the build</tt>
|
||||
<br><tt> base/config
|
||||
R3.13 compatibility build configuration files</tt>
|
||||
<br><tt> base/copyright
|
||||
Text files describing software copyrights</tt>
|
||||
<br><tt> base/src
|
||||
All epics base source code in subdirectories</tt>
|
||||
<br><tt> base/src/as
|
||||
@@ -187,12 +191,14 @@ Channel access</tt>
|
||||
Channel access server</tt>
|
||||
<br><tt> base/src/db
|
||||
Database access</tt>
|
||||
<br><tt> base/src/db/test
|
||||
Database access tests</tt>
|
||||
<br><tt> base/src/dbStatic
|
||||
Static database access</tt>
|
||||
<br><tt> base/src/dbtools
|
||||
Database dbLoadTemplate tools</tt>
|
||||
<br><tt> base/src/dev
|
||||
Device support</tt>
|
||||
Device support (softDev and testDev)</tt>
|
||||
<br><tt> base/src/gdd
|
||||
General data descriptor</tt>
|
||||
<br><tt> base/src/iocsh
|
||||
@@ -205,7 +211,8 @@ Hash bucket</tt>
|
||||
Algebraic expression interpreter</tt>
|
||||
<br><tt> base/src/libCom/cvtFast
|
||||
Fast number to string conversion</tt>
|
||||
<br><tt> base/src/libCom/cxxTemplates C++ templates</tt>
|
||||
<br><tt> base/src/libCom/cxxTemplates C++ templates
|
||||
and templates tests</tt>
|
||||
<br><tt> base/src/libCom/dbmf
|
||||
Memory management for frequent alloc/free</tt>
|
||||
<br><tt> base/src/libCom/ellLib
|
||||
@@ -230,16 +237,20 @@ Miscellaneous utilities</tt>
|
||||
Operating system independent code</tt>
|
||||
<br><tt> base/src/libCom/osi/os
|
||||
Operating system dependant code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/taskwd
|
||||
Task watchdog</tt>
|
||||
<br><tt> base/src/libCom/test
|
||||
Test tools (timer, semBinary, semMutex,fdmgr, ?)</tt>
|
||||
<br><tt> base/src/libCom/timer
|
||||
Timer</tt>
|
||||
<br><tt> base/src/libCom/taskwd
|
||||
Task watchdog</tt>
|
||||
<br><tt> base/src/libCompat
|
||||
EPICS base R3.13 compatibility code</tt>
|
||||
<br><tt> base/src/libCom/tsDefs
|
||||
R3.13 time stamp definitions and routines</tt>
|
||||
<br><tt> base/src/libCom/ring
|
||||
ringPointer: First in first out circular buffers</tt>
|
||||
<br><tt> base/src/libCom/cppStd
|
||||
epicsList: Lists of pointers to objects</tt>
|
||||
<br><tt> base/src/makeBaseApp
|
||||
Perl tool+templates to create app dvl tree</tt>
|
||||
Perl tool+templates to create ioc app dvl tree</tt>
|
||||
<br><tt> base/src/makeBaseExt
|
||||
Perl tool+templates to create extension dvl tree</tt>
|
||||
<br><tt> base/src/misc
|
||||
@@ -258,8 +269,9 @@ Utilities (ca_test, iocLogServer, startCArepeater)</tt>
|
||||
R3.13 compatibility code specific to vxWorks</tt>
|
||||
<br><tt> base/startup
|
||||
Scripts for setting up path and environment</tt>
|
||||
<p><tt> Install directories created by the build</tt>
|
||||
<br><tt> base/bin
|
||||
<p><tt> </tt>Install directories created by the
|
||||
build:
|
||||
<p><tt> base/bin
|
||||
Installed scripts and executables in subdirs</tt>
|
||||
<br><tt> base/lib
|
||||
Installed libraries in arch subdirectories</tt>
|
||||
@@ -309,6 +321,8 @@ WIN32 bat file to set path and env variables</tt>
|
||||
base/configure directory - contains build definitions and rules</li>
|
||||
|
||||
<br><tt>CONFIG.CrossCommon Cross build definitions</tt>
|
||||
<br><tt>CONFIG.gnuCommon Gnu compiler build
|
||||
definitions for all archs</tt>
|
||||
<br><tt>CONFIG_ADDONS Definitions
|
||||
for <osclass> and DEFAULT options</tt>
|
||||
<br><tt>CONFIG_BASE
|
||||
@@ -341,7 +355,9 @@ Definitions and rules for building subdirectories</tt>
|
||||
Definitions and rules for java jars and classes</tt>
|
||||
<br><tt>RULES_TOP
|
||||
Rules specific to a <top> dir (uninstall and tar)</tt>
|
||||
<br>
|
||||
<br><tt>Sample.Makefile Sample makefile
|
||||
with comments</tt>
|
||||
<br><tt></tt>
|
||||
<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
|
||||
R3.13 arch compatibility definitions</tt>
|
||||
<br><tt>CONFIG_SITE.<host>.<target> Site specific host-target definitions</tt>
|
||||
<br><tt>CONFIG_SITE.Common.<target> Site specific target defs for all
|
||||
hosts</tt>
|
||||
<br><tt>CONFIG_SITE.<host>.Common Site specific host defs
|
||||
for all targets</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/configure/tools directory - contains Perl scripts used for the build</li>
|
||||
@@ -403,25 +424,24 @@ PERLLIB be set to <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 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).</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 </tt>-
|
||||
Build choices. Specify your target archs.
|
||||
<br><tt>configure/CONFIG_SITE_ENV </tt>- Set your environment variable
|
||||
definitions
|
||||
<br><tt>configure/RELEASE </tt>-
|
||||
TORNADO 2 full path location</blockquote>
|
||||
<blockquote><tt>configure/CONFIG_SITE </tt>Build
|
||||
choices. Specify target archs.
|
||||
<br><tt>configure/CONFIG_SITE_ENV </tt>Environment variable defaults
|
||||
<br><tt>configure/RELEASE
|
||||
</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*
|
||||
applications , you must modify the default definitions in the base/config/CONFIG_SITE*
|
||||
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/<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 "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
|
||||
|
||||
@@ -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. 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. 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 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.
|
||||
|
||||
<blockquote>Change 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 <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=<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=<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 < 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 < exampleLib</pre>
|
||||
to
|
||||
<pre>ld < exampleLibrary.munch</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
recGbl calls</h3>
|
||||
You may need to add the line "<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 "<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=<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 <a href="http://www.aps.anl.gov/upd/people/sluiter/epics/modules/mechanism/motor/index.html">motor
|
||||
record</a> 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. 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>. 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=<full path definition for the built module SYMB></pre>
|
||||
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, 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 <tt>INSTALL_INCLUDES</tt>
|
||||
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 <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) $< > $@</pre>
|
||||
Also add the definition
|
||||
<blockquote>
|
||||
<pre>EPICS_EXTENSIONS=<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> Remove any SRCS.c and SRCS.cc definitions.
|
||||
Depends no longer uses these definitions.
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -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.
|
||||
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.</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>
|
||||
|
||||
@@ -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. 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 <top>
|
||||
<br>cd <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 <top> directory</h3>
|
||||
|
||||
<blockquote>cd <oldtop>
|
||||
<br>find *App iocBoot -print | cpio -pvmd <fullpath name to new top></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify <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 =<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 <top>/*App directories.</h3>
|
||||
|
||||
<blockquote>Change include $(TOP)/config/CONFIG_APP
|
||||
<br>to include $(TOP)/configure/CONFIG
|
||||
<p>Change include $(TOP)/config/RULES_DIRS
|
||||
<br>to include $(TOP)/configure/RULES_DIRS</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/*App/*Db directories.</h3>
|
||||
|
||||
<blockquote>Remove existing Makefile
|
||||
<br>Rename Makefile.Host to Makefile
|
||||
<br>Modify Makefile as follows:
|
||||
<p>Change TOP=../../..
|
||||
<br>to TOP=../..
|
||||
<p>Change include $(TOP)/config/CONFIG_APP
|
||||
<br>to include $(TOP)/configure/CONFIG
|
||||
<p>Change include $(TOP)/config/RULES.Db
|
||||
<br>to 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 <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 TOP=../..
|
||||
<p>Change include $(TOP)/config/CONFIG_APP
|
||||
<br>to include $(TOP)/configure/CONFIG
|
||||
<p>Change include $(TOP)/config/RULES.Host
|
||||
<br>to include $(TOP)/configure/RULES
|
||||
<p>Change PROD_LIBS = Db
|
||||
<br>to PROD_LIBS = dbStaticHost
|
||||
<p>Change Db_DIR = $(EPICS_BASE_LIB)
|
||||
<br>to dbStaticHost_DIR = $(EPICS_BASE_LIB)
|
||||
<p>Change USER_DBDFLAGS
|
||||
<br>to USR_DBDFLAGS
|
||||
<p>Change RECTYPES += xxxRecord.h
|
||||
<br>to DBDINC += xxxRecord
|
||||
<p>Change DBDNAME = <name>.dbd
|
||||
<br>to DBD += <name>.dbd
|
||||
<p>Remove all DBDEXPAND lines.
|
||||
<p>Add the contents of Makefile.Vx to Makefile removing the include lines
|
||||
and the TOP definition.</blockquote>
|
||||
|
||||
<blockquote>Change LIBNAME = <libname>
|
||||
<br>to LIBRARY_vxWorks = <libname>
|
||||
<p>Add the line <libname>_OBJS = $(LIBOBJS)
|
||||
<p>Change INSTALLS = iocCore seq
|
||||
<br>to
|
||||
<blockquote><libname>_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
|
||||
<br><libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/seqLibrary
|
||||
<br><libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvLibrary
|
||||
<br><libname>_OBJS_vxWorks += $(SNCSEQ_BIN)/pvCaLibrary</blockquote>
|
||||
Change include ../baseLIBOBJS
|
||||
<br>to -include ../baseLIBOBJS
|
||||
<p>Change SRCS += <srcname>.c
|
||||
<br>to <libname>_SRCS += <srcname>.c
|
||||
<p>Rename your sequence programs from <name>.st to <name>.stt
|
||||
if they do not need c preprocessing before conversion.
|
||||
<p>Change LIBOBJS += <seq_program_name>.o
|
||||
lines
|
||||
<br>to <libname>_SRCS += <seq_program_name>.stt
|
||||
<br>or <libname>_SRCS += <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 <top>/iocBoot directory.</h3>
|
||||
|
||||
<blockquote>Change include $(TOP)/config/CONFIG_APP
|
||||
<br>to include $(TOP)/configure/CONFIG
|
||||
<p>Remove the line DIRS += $(wildcard *ioc*)
|
||||
<p>Change include $(TOP)/config/RULES.iocBoot
|
||||
<br>to include $(TOP)/configure/RULES.iocBoot</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Change include $(TOP)/config/CONFIG_APP
|
||||
<br>to include $(TOP)/configure/CONFIG
|
||||
<p>Change include ARCH = <old arch specification e.g. mv167>
|
||||
<br>to include ARCH = <new arch specificatio
|
||||
e.g. vxWorks-68040>
|
||||
<p>Change include $(TOP)/config/RULES.ioc
|
||||
<br>to include $(TOP)/configure/RULES.ioc</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify st.cmd in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Remove the lines</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<pre>ld < seq</pre>
|
||||
|
||||
<pre>ld < iocCore</pre>
|
||||
</blockquote>
|
||||
Change ld < <libname>
|
||||
<br>to ld < <libname>Library.munch
|
||||
<p>Change load statements 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 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.
|
||||
<p>For example add</blockquote>
|
||||
|
||||
<blockquote> PID=<full
|
||||
path to modules directory>/pid
|
||||
<p>to config/RELEASE.
|
||||
<br>Remove</blockquote>
|
||||
|
||||
<blockquote> LIBOBJS +=
|
||||
$(EPICS_BASE_BIN)/pidRecord.o
|
||||
<br>from baseLIBOBJS,
|
||||
<br>and add</blockquote>
|
||||
|
||||
<blockquote> 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 motor record 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. 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 bin directory
|
||||
in your application src directory files.
|
||||
<p>For example, remove</blockquote>
|
||||
|
||||
<blockquote> LIBOBJS+=$(EPICS_BASE_BIN)/symb</blockquote>
|
||||
|
||||
<blockquote>from baseLIBOBJS and add</blockquote>
|
||||
|
||||
<blockquote> LIBOBJS+=$(SYMB_BIN)/symb</blockquote>
|
||||
|
||||
<blockquote>to your application src/Makefile,
|
||||
<br>and add the line</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote>SYMB=<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.
|
||||
If, in your application, db files are created from template and substitution
|
||||
files you should add the definition
|
||||
<p> EPICS_EXTENSIONS=<full
|
||||
path name to epics extensions directory>
|
||||
<p>to your application config/RELEASE file.</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
|
||||
<blockquote>
|
||||
<pre></pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
302
READMEconvertingR3.13AppsToR3.14.html
Normal file
302
READMEconvertingR3.13AppsToR3.14.html
Normal 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. 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 <top></tt>
|
||||
<br><tt>cd <top></tt>
|
||||
<br><tt><full path to R3.14.0alpha3 base>/bin/<host_arch>/makeBaseApp.pl
|
||||
-t example example</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Copy all *App and iocBoot directories and files to the new <top> directory</h3>
|
||||
|
||||
<blockquote><tt>cd <oldtop></tt>
|
||||
<br><tt>find *App iocBoot -print | cpio -pvmd <fullpath name to new
|
||||
top></tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify <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 =<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 <top>/*App directories.</h3>
|
||||
|
||||
<blockquote>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/RULES_DIRS</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES_DIRS</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/*App/*Db directories.</h3>
|
||||
|
||||
<blockquote>Remove existing Makefile
|
||||
<br>Rename Makefile.Host to Makefile
|
||||
<br>Modify Makefile as follows:
|
||||
<p>Change <tt>TOP=../../..</tt>
|
||||
<br>to <tt>TOP=../..</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change <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 <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 <tt>TOP=../..</tt>
|
||||
<p>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/RULES.Host</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES</tt>
|
||||
<p>Change <tt>PROD_LIBS = <name></tt>
|
||||
<br>to <tt> <prod name>_LIBS = dbStaticHost</tt>
|
||||
<br>where <tt><prod name></tt> is a specifified product to be
|
||||
built.
|
||||
<p>Change library name <tt>Db</tt> to <tt>dbStaticHost.</tt>
|
||||
<br>Change<tt> PROD_LIBS = Db</tt>
|
||||
<br>to <tt> <prodname>_LIBS += dbStaticHost</tt>
|
||||
<br>and <tt>Db_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br>to <tt>dbStaticHost_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<p>Change <tt>USER_DBDFLAGS</tt>
|
||||
<br>to <tt>USR_DBDFLAGS</tt>
|
||||
<p>Change <tt>RECTYPES += xxxRecord.h</tt>
|
||||
<br>to <tt>DBDINC += xxxRecord</tt>
|
||||
<p>Change <tt>DBDNAME = <name>App.dbd</tt>
|
||||
<br>to <tt>DBD += <name>.dbd</tt>
|
||||
<p>Remove all <tt>DBDEXPAND</tt> lines.
|
||||
<p>Change <tt>PROD = <prodname></tt>
|
||||
<br>to <tt>PROD_HOST = <prodname></tt>
|
||||
<p>Change <tt>SRCS.c += <name></tt>
|
||||
<br>to <tt><prodname>_SRCS += <name></tt>
|
||||
<br>or<tt> <libname>_SRCS += <name></tt>
|
||||
<p>Add the contents of Makefile.Vx to Makefile removing the include lines
|
||||
and the TOP definition.</blockquote>
|
||||
|
||||
<blockquote>Change <tt>LIBNAME = <libname>Lib</tt>
|
||||
<br>to <tt>PROD_vxWorks = <libname></tt><tt></tt>
|
||||
<p>Remove line <tt> -include ../baseLIBOBJS</tt>
|
||||
<p>Remove line <tt>INSTALLS = iocCore seq</tt><tt></tt>
|
||||
<p>Change all <tt>SRCS.c += ../<name>.c </tt>lines
|
||||
<br>to <font face="Arial,Helvetica"><prodname>_SRCS += <name>.c</font>
|
||||
<br>if the source files exist in the current directory.<tt></tt>
|
||||
<p>Change all <tt>*OBJS += <name>.o</tt>
|
||||
lines
|
||||
<br>to <font face="Arial,Helvetica"><prodname>_SRCS += <name>.c</font>
|
||||
<br>or <font face="Arial,Helvetica"> <prodname>_SRCS += <name>.cc</font>
|
||||
<br>if the c/c++ source files exist in the current directory.
|
||||
<p>Change <tt>LIBOBJS += <seq_program_name>.o</tt>
|
||||
lines
|
||||
<br>to <tt><prodname>_SRCS += <seq_program_name>.stt</tt>
|
||||
<br>or <tt><prodname>_SRCS += <seq_program_name>.st</tt><tt></tt>
|
||||
<p>Add the lines
|
||||
<blockquote><tt>#<name>_LIBS += seq</tt>
|
||||
<br><tt>#<name>_LIBS += pv</tt>
|
||||
<br><tt>#seq_DIR = $(SNCSEQ_LIB)</tt>
|
||||
<br><tt>#pv_DIR = $(SNCSEQ_LIB)</tt><tt></tt>
|
||||
<p><tt><name>_LIBS += recIoc</tt>
|
||||
<br><tt><name>_LIBS += softDevIoc</tt>
|
||||
<br><tt><name>_LIBS += testDevIoc</tt>
|
||||
<br><tt><name>_LIBS += iocsh</tt>
|
||||
<br><tt><name>_LIBS += miscIoc</tt>
|
||||
<br><tt><name>_LIBS += rsrvIoc</tt>
|
||||
<br><tt><name>_LIBS += dbtoolsIoc</tt>
|
||||
<br><tt><name>_LIBS += asIoc</tt>
|
||||
<br><tt><name>_LIBS += dbIoc</tt>
|
||||
<br><tt><name>_LIBS += registryIoc</tt>
|
||||
<br><tt><name>_LIBS += dbStaticIoc</tt>
|
||||
<br><tt><name>_LIBS += ca</tt>
|
||||
<br><tt><name>_LIBS += Com</tt></blockquote>
|
||||
where <tt><name></tt> is the 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 <top>/iocBoot directory.</h3>
|
||||
|
||||
<blockquote>Change i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <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 i<tt>nclude $(TOP)/configure/RULES.iocBoot</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change <tt>include ARCH = <old arch specification e.g. mv167></tt>
|
||||
<br>to <tt>include ARCH = <new arch specificatio
|
||||
e.g. vxWorks-68040></tt><tt></tt>
|
||||
<p>Change <tt>include $(TOP)/config/RULES.ioc</tt>
|
||||
<br>to <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 <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Remove the lines</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<pre>ld < seq</pre>
|
||||
|
||||
<pre>ld < iocCore</pre>
|
||||
</blockquote>
|
||||
Change <tt>ld < <libname>Lib</tt>
|
||||
<br>to <tt>ld < <libname>.munch</tt>
|
||||
<p>Change load statements 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.
|
||||
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 <tt>LIBOBJS</tt> definitions.
|
||||
<p>For example add</blockquote>
|
||||
|
||||
<blockquote> <tt>PID=<full
|
||||
path to modules directory>/pid</tt>
|
||||
<p>to config/RELEASE.
|
||||
<br>Remove</blockquote>
|
||||
|
||||
<blockquote> <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 motor record 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. 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 bin directory
|
||||
in your application src directory files.
|
||||
<p>For example, remove</blockquote>
|
||||
|
||||
<blockquote> <tt>LIBOBJS+=$(EPICS_BASE_BIN)/symb</tt></blockquote>
|
||||
|
||||
<blockquote>from baseLIBOBJS and add</blockquote>
|
||||
|
||||
<blockquote> <tt>LIBOBJS+=$(SYMB_BIN)/symb</tt></blockquote>
|
||||
|
||||
<blockquote>to your application src/Makefile,
|
||||
<br>and add the line</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote><tt>SYMB=<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.
|
||||
If, in your application, db files are created from template and substitution
|
||||
files you should add the definition
|
||||
<p> <tt>EPICS_EXTENSIONS=<full
|
||||
path name to epics extensions directory></tt>
|
||||
<p>to your application config/RELEASE file.</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
|
||||
<blockquote>
|
||||
<pre></pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
103
READMEconvertingR3.14.0alpha2AppsToalpha3.html
Normal file
103
READMEconvertingR3.14.0alpha2AppsToalpha3.html
Normal 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 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 <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 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 <tt>#include "iocsh.h"</tt>
|
||||
<p>change<tt> ioccrf(argv[1]);</tt>
|
||||
<br>to <tt> iocsh(argv[1]);</tt>
|
||||
<p>and change <tt> ioccrf(NULL);</tt>
|
||||
<br>to <tt>iocsh(NULL)</tt>;
|
||||
<p>in <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. in your application src Makefiles
|
||||
<blockquote>change <tt>PROD += caExample</tt>
|
||||
<br>to <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 = <name></tt>
|
||||
<br>to <tt>PROD_vxWorks = <name></tt>
|
||||
<br>or
|
||||
<br>remove the lines <tt>LIBRARY_vxWorks = <name></tt>
|
||||
<br>and <tt>PROD_RTEMS = <name></tt>
|
||||
<br>and change <tt>PROD = <name></tt>
|
||||
<br>to <tt>PROD_IOC = <name></tt>.</blockquote>
|
||||
In the iocBoot/ioc<name>/st.cmd files,
|
||||
<blockquote>change <tt>ld <name>Library.munch</tt>
|
||||
<br>to <tt>ld < <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. in your application src Makefiles
|
||||
<blockquote>change <tt>example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp</tt>
|
||||
<br>to <tt>example_SRCS += example_registerRecordDeviceDriver.cpp</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user