Changes for 3.14.0beta2
This commit is contained in:
@@ -1,304 +1,225 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="ProgId" content="Word.Document">
|
||||
<meta name="Generator" content="Microsoft Word 9">
|
||||
<meta name="Originator" content="Microsoft Word 9">
|
||||
<meta name="GENERATOR" content="Mozilla/4.78 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
<title>Instruction on building existing R3</title>
|
||||
<link rel=File-List href="./READMEbuildingR3.13AppsWithR3.14_files/filelist.xml">
|
||||
<!--[if gte mso 9]><xml>
|
||||
<o:DocumentProperties>
|
||||
<o:LastAuthor>Jba</o:LastAuthor>
|
||||
<o:Revision>3</o:Revision>
|
||||
<o:TotalTime>4</o:TotalTime>
|
||||
<o:Created>2000-10-25T19:43:00Z</o:Created>
|
||||
<o:LastSaved>2000-10-25T19:47:00Z</o:LastSaved>
|
||||
<o:Pages>1</o:Pages>
|
||||
<o:Company>Argonne National Laboratory</o:Company>
|
||||
<o:Lines>1</o:Lines>
|
||||
<o:Paragraphs>1</o:Paragraphs>
|
||||
<o:Version>9.2720</o:Version>
|
||||
</o:DocumentProperties>
|
||||
</xml><![endif]-->
|
||||
<!--[if gte mso 9]><xml>
|
||||
<w:WordDocument>
|
||||
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
|
||||
<w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
|
||||
<w:UseMarginsForDrawingGridOrigin/>
|
||||
<w:Compatibility>
|
||||
<w:FootnoteLayoutLikeWW8/>
|
||||
<w:ShapeLayoutLikeWW8/>
|
||||
<w:AlignTablesRowByRow/>
|
||||
<w:ForgetLastTabAlignment/>
|
||||
<w:LayoutRawTableWidth/>
|
||||
<w:LayoutTableRowsApart/>
|
||||
</w:Compatibility>
|
||||
</w:WordDocument>
|
||||
</xml><![endif]-->
|
||||
<style>
|
||||
<!--
|
||||
/* Font Definitions */
|
||||
@font-face
|
||||
{font-family:"MS Mincho";
|
||||
panose-1:2 2 6 9 4 2 5 8 3 4;
|
||||
mso-font-alt:"\FF2D\FF33 \660E\671D";
|
||||
mso-font-charset:128;
|
||||
mso-generic-font-family:roman;
|
||||
mso-font-pitch:fixed;
|
||||
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
|
||||
@font-face
|
||||
{font-family:"\@MS Mincho";
|
||||
mso-font-charset:128;
|
||||
mso-generic-font-family:roman;
|
||||
mso-font-pitch:fixed;
|
||||
mso-font-signature:1 134676480 16 0 131072 0;}
|
||||
/* Style Definitions */
|
||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||
{mso-style-parent:"";
|
||||
margin:0in;
|
||||
margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Times New Roman";
|
||||
mso-fareast-font-family:"Times New Roman";}
|
||||
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
|
||||
{margin:0in;
|
||||
margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Courier New";
|
||||
mso-fareast-font-family:"Times New Roman";}
|
||||
@page Section1
|
||||
{size:8.5in 11.0in;
|
||||
margin:1.0in 66.0pt 1.0in 66.0pt;
|
||||
mso-header-margin:.5in;
|
||||
mso-footer-margin:.5in;
|
||||
mso-paper-source:0;}
|
||||
div.Section1
|
||||
{page:Section1;}
|
||||
-->
|
||||
</style>
|
||||
<title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
</head>
|
||||
<body lang="EN-US" style="tab-interval:.5in">
|
||||
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Building EPICS R3.13 applications with R3.14.0beta2 base</h2></center>
|
||||
<h2>Building EPICS R3.13 applications with R3.14.0beta2 base</h2>
|
||||
</center>
|
||||
|
||||
<p><br>This document describes how to modify a R3.13 vxWorks application
|
||||
so that it builds with release R3.14.0beta2. It describes an easy
|
||||
way to modify applications subject to the following restrictions:
|
||||
<p><br>
|
||||
This document describes how to modify a R3.13 vxWorks application so that it
|
||||
builds with release R3.14.0beta2. It describes an easy way to modify
|
||||
applications subject to the following restrictions:</p>
|
||||
<ul>
|
||||
<li>
|
||||
The application still uses config rules rather than the configure rules
|
||||
which are new to release 3.14.</li>
|
||||
|
||||
<li>
|
||||
The OSI (Operating System Independent) features of R3.14 are not available,
|
||||
i.e. iocCore products can only be build for vxWorks.</li>
|
||||
|
||||
<li>
|
||||
Once the application is changed to build with base R3.14, it will not build
|
||||
with earlier base releases.</li>
|
||||
<li>The application still uses config rules rather than the configure rules
|
||||
which are new to release 3.14.</li>
|
||||
<li>The OSI (Operating System Independent) features of R3.14 are not
|
||||
available, i.e. iocCore products can only be build for vxWorks.</li>
|
||||
<li>Once the application is changed to build with base R3.14, it will not
|
||||
build with earlier base releases.</li>
|
||||
</ul>
|
||||
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>
|
||||
Ultimately applications should be converted to use the new configure rules so
|
||||
that the OSI features are available.
|
||||
|
||||
<blockquote>At the top of the application execute:
|
||||
<h3><b>Gnumake clean uninstall</b></h3>
|
||||
|
||||
<p>At the top of the application execute:</p>
|
||||
<pre>"<tt>gnumake clean uninstall</tt>"</pre>
|
||||
to remove all files and directories created by earlier builds.</blockquote>
|
||||
to remove all files and directories created by earlier builds.
|
||||
|
||||
<h3>
|
||||
Update RELEASE</h3>
|
||||
<h3>Update RELEASE</h3>
|
||||
|
||||
<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>
|
||||
<p>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. For
|
||||
example if you are using the sequencer add the line:</p>
|
||||
<pre>SNCSEQ=<full path to sequencer build for 3.14></pre>
|
||||
|
||||
<h3>
|
||||
Update target arch definitions</h3>
|
||||
<h3>Update target arch definitions</h3>
|
||||
|
||||
<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
|
||||
<p>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>
|
||||
|
||||
<p>For example, in config/CONFIG change</p>
|
||||
<pre>CROSS_COMPILER_TARGET_ARCHS = mv167</pre>
|
||||
to
|
||||
<pre>CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040</pre>
|
||||
In the iocBoot/*/Makefile files, change
|
||||
<pre>ARCH=<old arch name></pre>
|
||||
<pre>ARCH=<old arch name></pre>
|
||||
to
|
||||
<pre>ARCH=<new arch name></pre>
|
||||
<pre>ARCH=<new arch name></pre>
|
||||
and do a "<tt>gnumake"</tt> in the iocBoot directory to update the cdCommands
|
||||
files.</blockquote>
|
||||
files.
|
||||
|
||||
<h3>
|
||||
State Notation Language changes</h3>
|
||||
<h3>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.0beta2. See the
|
||||
Application Developer's Guide to see how to build sequence programs.</blockquote>
|
||||
<p>NOTE: You must have a version of the sequencer that is build for R3.14.
|
||||
This version uses configure rules rather than config rules. It still,
|
||||
however, has a config directory. Makesure that config/RELEASE has the same
|
||||
location for base as configure/RELEASE.</p>
|
||||
|
||||
<blockquote>Change
|
||||
<pre>INSTALLS=seq</pre>
|
||||
to
|
||||
<pre>LIBOBJS += $(SEQ_BIN)/seqLibrary.o</pre>
|
||||
<p>snc is no longer in base. If snc is used in your application, you must
|
||||
download and build the seq module with baseR3.14.0beta2. See the Application
|
||||
Developer's Guide to see how to build sequence programs.</p>
|
||||
|
||||
<p><br>in application src/Makefile.Vx files to link seq library into your
|
||||
application library,.
|
||||
<br>Also add
|
||||
<pre>SEQ=<full path to seq module directory></pre>
|
||||
to config/RELEASE.
|
||||
<br>Also remove
|
||||
<p>If you build sequencer programs add the lines</p>
|
||||
<pre>SNC = ${SNCSEQ}/bin/$(HOST_ARCH)/snc$(EXE)
|
||||
LIBOBJS += $(SNCSEQ_BIN)/seqLibrary.o
|
||||
LIBOBJS += $(SNCSEQ_BIN)/pvLibrary.o</pre>
|
||||
|
||||
<p>remove</p>
|
||||
<pre>INSTALLS = seq</pre>
|
||||
|
||||
<p><br>
|
||||
in application src/Makefile.Vx files to link seq library into your
|
||||
application library,. <br>
|
||||
</p>
|
||||
Also remove
|
||||
<pre>ld < seq</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
from the st.cmd files in the iocBoot subdirectories.
|
||||
|
||||
<h3>
|
||||
iocCore changes</h3>
|
||||
<h3>iocCore changes</h3>
|
||||
|
||||
<blockquote>iocCore has been renamed to iocCoreLibrary.o.
|
||||
<br>Change
|
||||
<p>iocCore has been renamed to iocCoreLibrary.o. <br>
|
||||
Change</p>
|
||||
<pre>INSTALLS=iocCore</pre>
|
||||
to
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/iocCoreLibrary.o</pre>
|
||||
in your application src/Makefile.Vx files .
|
||||
<br>Also remove
|
||||
in your application src/Makefile.Vx files . <br>
|
||||
Also remove
|
||||
<pre>ld < iocCore</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
from the st.cmd files in the iocBoot subdirectories.
|
||||
|
||||
<h3>
|
||||
Library db changes</h3>
|
||||
<h3>Library db changes</h3>
|
||||
|
||||
<blockquote>The Db library name was changed to dbStaticHost for host builds
|
||||
and dbStaticIoc for ioc builds.
|
||||
<br>Change
|
||||
<p>The Db library name was changed to dbStaticHost for host builds and
|
||||
dbStaticIoc for ioc builds. <br>
|
||||
Change</p>
|
||||
<pre>PROD_LIBS+=Db</pre>
|
||||
to
|
||||
<pre>PROD_LIBS+=dk</pre>
|
||||
<pre>PROD_LIBS+=dbStaticHost</pre>
|
||||
and
|
||||
<pre>Db_DIR=$(EPICS_BASE_LIB)</pre>
|
||||
to
|
||||
<pre>dbStaticHost_DIR=$(EPICS_BASE_LIB)</pre>
|
||||
in your application src/Makefile.Host files.</blockquote>
|
||||
in your application src/Makefile.Host files.
|
||||
|
||||
<h3>
|
||||
VxWorks C++ munched libraries and object files</h3>
|
||||
<h3>VxWorks C++ munched libraries and object files</h3>
|
||||
|
||||
<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
|
||||
<p>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</p>
|
||||
<pre>ld < exampleLib</pre>
|
||||
to
|
||||
<pre>ld < exampleLibrary.munch</pre>
|
||||
</blockquote>
|
||||
<pre>ld < exampleLib.munch</pre>
|
||||
|
||||
<h3>
|
||||
recGbl calls</h3>
|
||||
<h3>recGbl calls</h3>
|
||||
|
||||
<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>
|
||||
<p>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.</p>
|
||||
|
||||
<h3>
|
||||
Record support changes</h3>
|
||||
<h3>Record support changes</h3>
|
||||
|
||||
<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>
|
||||
to config/RELEASE.
|
||||
<br>Remove
|
||||
<p>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</p>
|
||||
<pre>PID=<full path to modules directory>/pid</pre>
|
||||
to config/RELEASE. <br>
|
||||
Remove
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o</pre>
|
||||
from baseLIBOBJS,
|
||||
<br>and add
|
||||
from baseLIBOBJS, <br>
|
||||
and add
|
||||
<pre>LIBOBJS += $(PID_BIN)/pidRecord.o</pre>
|
||||
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.</blockquote>
|
||||
|
||||
<h3>
|
||||
RecDynLink.o and devPtSoft changes</h3>
|
||||
<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.</p>
|
||||
|
||||
<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>RecDynLink.o and devPtSoft changes</h3>
|
||||
|
||||
<h3>
|
||||
Hardware support changes</h3>
|
||||
<p>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.</p>
|
||||
|
||||
<blockquote>All hardware support (dev, drv and dbd files) has been unbundled
|
||||
from base R3.14. This support includes the files <tt>symb, 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
|
||||
for your application, build the modules with R3.14 base, 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.
|
||||
<p>For example, remove
|
||||
<h3>Hardware support changes</h3>
|
||||
|
||||
<p>All hardware support (dev, drv and dbd files) has been unbundled from base
|
||||
R3.14. This support includes the files <tt>symb, 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>
|
||||
|
||||
<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 for
|
||||
your application, build the modules with R3.14 base, 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.</p>
|
||||
|
||||
<p>For example, remove</p>
|
||||
<pre>LIBOBJS+=$(EPICS_BASE_BIN)/symb</pre>
|
||||
from baseLIBOBJS and add
|
||||
<pre>LIBOBJS+=$(SYMB_BIN)/symb</pre>
|
||||
to your application src/Makefile,
|
||||
<br>and add the line
|
||||
<pre>SYMB=<full path definition for the built module SYMB></pre>
|
||||
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 .
|
||||
<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 <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 <tt>INSTALL_DBDFLAGS</tt>
|
||||
definition).</blockquote>
|
||||
|
||||
<h3>
|
||||
dbLoadtemplate tool changes</h3>
|
||||
<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
|
||||
<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
|
||||
<tt>INSTALL_DBDFLAGS</tt> definition).</p>
|
||||
|
||||
<blockquote>The host tool dbLoadTemplate has been replaced by a new extension,
|
||||
msi. dbLoadTemplate is still supported on iocs. Build the new msi extension
|
||||
with a R3.13 or R3.14 base and verify that the msi executable is in your
|
||||
path.
|
||||
<p>Change the following definitions in your application files.
|
||||
<p>In config/RULES.Db replace the line
|
||||
<h3>dbLoadtemplate tool changes</h3>
|
||||
|
||||
<p>The host tool dbLoadTemplate has been replaced by a new extension, msi.
|
||||
dbLoadTemplate is still supported on iocs. Build the new msi extension with a
|
||||
R3.13 or R3.14 base and verify that the msi executable is in your path.</p>
|
||||
|
||||
<p>Change the following definitions in your application files.</p>
|
||||
|
||||
<p>In config/RULES.Db replace the line</p>
|
||||
<pre>DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)</pre>
|
||||
with
|
||||
<pre>MSI = msi</pre>
|
||||
and change the DBLOADTEMPLATE rule in RULES.Db from
|
||||
<p>%.t.db.raw: %.substitutions
|
||||
<br> @echo "Inflating database from $<"
|
||||
<br> @$(RM) $@
|
||||
<br> @$(DBLOADTEMPLATE) $< > $@
|
||||
<p>to
|
||||
<p>%.t.db.raw: %.substitutions %.template
|
||||
<br> @echo "Inflating database from $<"
|
||||
<br> @$(RM) $@
|
||||
<br> @$(MSI) -S $^ > $@
|
||||
<br> </blockquote>
|
||||
<pre>%.t.db.raw: %.substitutions
|
||||
@echo "Inflating database from $<"
|
||||
(RM) $@
|
||||
@$(DBLOADTEMPLATE) $< > $@</pre>
|
||||
|
||||
<h3>
|
||||
depends changes</h3>
|
||||
<p>to</p>
|
||||
<pre>%.t.db.raw: %.substitutions %.template
|
||||
@echo "Inflating database from $<"
|
||||
@$(RM) $@
|
||||
@$(MSI) -S $^ > $@</pre>
|
||||
|
||||
<p><br> Remove any SRCS.c and SRCS.cc definitions
|
||||
in your application src/Makefile..*files. The depends rule no longer uses
|
||||
these definitions.
|
||||
<h3>depends changes</h3>
|
||||
|
||||
<p>Remove any SRCS.c and SRCS.cc definitions in your application
|
||||
src/Makefile..*files. The depends rule no longer uses these definitions.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user