Moved from $(TOP)
This commit is contained in:
298
documentation/BuildingR3.13AppsWithR3.14.html
Normal file
298
documentation/BuildingR3.13AppsWithR3.14.html
Normal file
@@ -0,0 +1,298 @@
|
||||
<!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="ProgId" content="Word.Document">
|
||||
<meta name="Generator" content="Microsoft Word 9">
|
||||
<meta name="Originator" content="Microsoft Word 9">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [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>
|
||||
</head>
|
||||
<body lang="EN-US" style="tab-interval:.5in">
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Building EPICS R3.13 applications with R3.14.0beta1 base</h2></center>
|
||||
|
||||
<p><br>This document describes how to modify a R3.13 vxWorks application
|
||||
so that it builds with release R3.14.0beta1. It describes an easy
|
||||
way to modify applications subject to the following restrictions:
|
||||
<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>
|
||||
</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>
|
||||
|
||||
<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.</blockquote>
|
||||
|
||||
<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>
|
||||
|
||||
<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
|
||||
<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>
|
||||
to
|
||||
<pre>ARCH=<new arch name></pre>
|
||||
and do a "<tt>gnumake"</tt> in the iocBoot directory to update the cdCommands
|
||||
files.</blockquote>
|
||||
|
||||
<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.0beta1. 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,.
|
||||
<br>Also add
|
||||
<pre>SEQ=<full path to seq module directory></pre>
|
||||
to config/RELEASE.
|
||||
<br>Also remove
|
||||
<pre>ld < seq</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
|
||||
<h3>
|
||||
iocCore changes</h3>
|
||||
|
||||
<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 .
|
||||
<br>Also remove
|
||||
<pre>ld < iocCore</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
|
||||
<h3>
|
||||
Library db changes</h3>
|
||||
|
||||
<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
|
||||
<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>
|
||||
|
||||
<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
|
||||
<pre>ld < exampleLib</pre>
|
||||
to
|
||||
<pre>ld < exampleLibrary.munch</pre>
|
||||
</blockquote>
|
||||
|
||||
<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>
|
||||
|
||||
<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
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o</pre>
|
||||
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>
|
||||
|
||||
<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>
|
||||
|
||||
<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
|
||||
<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>
|
||||
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>
|
||||
|
||||
<blockquote>The host tool dbLoadTemplate has been replaced by a new extension,
|
||||
msi. dbLoadTemplate is still supported on iocs. Build the msi extension
|
||||
with base R3.14 and change 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
|
||||
<pre>MSI = $(firstword $(wildcard $(EPICS_EXTENSIONS_HOST_BIN)/msi$(HOSTEXE) \
|
||||
(EPICS_EXTENSIONS)/bin/$(HOST_OS_CLASS)/msi$(HOSTEXE)) msi$(HOSTEXE))</pre>
|
||||
and change line:
|
||||
<pre>@$(DBLOADTEMPLATE) $< > $@</pre>
|
||||
to
|
||||
<pre>@$(MSI) $< > $@</pre>
|
||||
Also, if dbLoadTemplate was used by your application, add the definition
|
||||
<blockquote>
|
||||
<pre>EPICS_EXTENSIONS=<full path name to epics extensions directory></pre>
|
||||
</blockquote>
|
||||
to your application config/RELEASE file.</blockquote>
|
||||
depends changes
|
||||
<p> Remove any SRCS.c and SRCS.cc definitions in
|
||||
your application src/Makefile..*files. The depends rule no longer uses
|
||||
these definitions.
|
||||
</body>
|
||||
</html>
|
||||
132
documentation/BuildingR3.13ExtensionsWithR3.14.html
Normal file
132
documentation/BuildingR3.13ExtensionsWithR3.14.html
Normal file
@@ -0,0 +1,132 @@
|
||||
<!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>
|
||||
Building EPICS R3.13 extensions with R3.14 base</h2></center>
|
||||
|
||||
<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.
|
||||
<h3>
|
||||
Preliminary steps for all extensions</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
Download the latest version (10/25/00) of the extensions/config files,
|
||||
extensionsConfig.tar.gz, from the APS EPICS www page.</li>
|
||||
|
||||
<li>
|
||||
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 base.</li>
|
||||
|
||||
<li>
|
||||
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</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
Download the latest version (10/25/00) of extensions distributed from the
|
||||
APS EPICS www page. The latest versions of the extensions should build
|
||||
with both R3.13 and R3.14. Note that the order of building extensions is
|
||||
important, i.e. some extensions depend on other extensions being built
|
||||
first. The extensions/config/CONFIG_EXTENSIONS file contains notes on extension
|
||||
dependancies and contains a definition of DIRS (used by extensions/src/Makefile)
|
||||
with the proper order for building the APS distributed extensions.</li>
|
||||
|
||||
<li>
|
||||
Executing gnumake at the root level of the extensions tree or in the src
|
||||
directory should build the APS extensions in the proper order.</li>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Building your extensions with base R3.14</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
<b>Library Db renamed</b></li>
|
||||
|
||||
<br>Library Db has been renamed to dbStaticHost in EPICS base R3.14. In
|
||||
some extensions lib Db is not used and Db can be removed from the USR_LIBS
|
||||
(or PROD_LIBS) line. If the library is needed ( you get unresolved items
|
||||
after removing Db), the following lines should be added to Makefile.Host.
|
||||
<blockquote><tt>ifdef BASE_3_14</tt>
|
||||
<br><tt>USR_LIBS += dbStaticHost</tt>
|
||||
<br><tt>dbStaticHost_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br><tt>else</tt>
|
||||
<br><tt>USR_LIBS += Db</tt>
|
||||
<br><tt>Db_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>Target architecture specifications changed</b></li>
|
||||
|
||||
<br>Since target architecture specifications have been changed (solaris
|
||||
to solaris-sparc, win32 to win32-x86, ...) Makefile.Host references to
|
||||
and tests on T_A have to be changed. In most cases T_A can be replaced
|
||||
by OS_CLASS. Since HOST_ARCH will eventually be phased out, it would
|
||||
be a good idea to change any Makefile.Host references to HOST_ARCH to OS_CLASS
|
||||
if possible.
|
||||
<br>For example change
|
||||
<blockquote><tt>ifeq ($(T_A),solaris)</tt>
|
||||
<br><tt>RPCFLAGS = -K -1</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
to
|
||||
<blockquote><tt>ifeq ($(OS_CLASS),solaris)</tt>
|
||||
<br><tt>RPCFLAGS = -K -1</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>New ca_set_puser</b></li>
|
||||
|
||||
<br>Statements of the form: <tt>ca_puser(chid) = xyz</tt>; should to be
|
||||
changed to: <tt>ca_set_puser(chid,xyz)</tt>;
|
||||
<br>
|
||||
<li>
|
||||
<b>Extern C around includes</b></li>
|
||||
|
||||
<br>Remove any extern "C" braces around #includes of EPICS base header
|
||||
files.
|
||||
<br>For example change
|
||||
<blockquote><tt>extern "C" {</tt>
|
||||
<br><tt>#include "cadefs.h"</tt>
|
||||
<br><tt>} /* end extern C */</tt></blockquote>
|
||||
to
|
||||
<blockquote><tt>#include "cadefs.h"</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>Infrequently used R3.13 timestamp functions unbundled from base</b></li>
|
||||
|
||||
<br>Some infrequently used R3.13 timestamp functions and macro definitions
|
||||
have been removed from EPICS base and now exist in a library, ts, created
|
||||
and installed in the ar extension. The only ANL distributed extension
|
||||
that uses these unbundled functions and macros is cau. The two R3.13
|
||||
functions tsStampToText and tsLocalTime along with the definitions TS_TEXT_MONDDYYYY
|
||||
and TS_TEXT_MMDDYY have been retained in R3.14 for extension compatibility
|
||||
purposes.
|
||||
<br>If your extension gets undefines for TS_* usage and ts* function calls
|
||||
when built with R3.14, you must obtain and build the ar extension. Add
|
||||
an #include for tsSubr.h to your extension source code and add library
|
||||
ts to PROD_LIBS or USR_LIBS in your Makefile.Host as follows:
|
||||
<blockquote><tt>#include "tsSubr.h"</tt>
|
||||
<p><tt>ifdef BASE_3_14</tt>
|
||||
<br><tt>PROD_LIBS += ts</tt>
|
||||
<br><tt>ts_DIR = $(EPICS_EXTENSIONS_LIB)</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
302
documentation/ConvertingR3.13AppsToR3.14.html
Normal file
302
documentation/ConvertingR3.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.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Converting an EPICS R3.13 application to R3.14.0.beta1</h2></center>
|
||||
|
||||
<p><br>This document describes how to convert a R3.13 vxWorks application
|
||||
so that it builds with release R3.14.0beta1. 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.0beta1 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.0beta1.</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>
|
||||
<p>Remove line <tt> -include ../baseLIBOBJS</tt>
|
||||
<p>Remove line <tt>INSTALLS = iocCore seq</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.
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
145
documentation/ConvertingR3.14.0alpha2AppsTobeta1.html
Normal file
145
documentation/ConvertingR3.14.0alpha2AppsTobeta1.html
Normal file
@@ -0,0 +1,145 @@
|
||||
<!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.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Converting an EPICS R3.14.0 alpha2 application to beta1</h2></center>
|
||||
|
||||
<p><br>This document describes how to convert a R3.14.0alpha2 application
|
||||
so that it builds with release R3.14.0beta1.
|
||||
<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>
|
||||
Replace configure/RULES.ioc and configure/Makefile</h3>
|
||||
|
||||
<blockquote>The rules defined in RULES.ioc have changed slightly, and new
|
||||
applications are now given a wrapper version which just includes $(EPICS_BASE)/configure/RULES.ioc.
|
||||
The new configure/Makefile contains an additional macro that causes the
|
||||
contents of the configure/RELEASE file to be checked at build time for
|
||||
consistency with all the support applications that it references. These
|
||||
files should be replaced with copies of the new versions from <base>/templates/makeBaseApp/top/configure</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 the file baseLIBOBJS. If there are no LIBOBJS definitions in the Makefile,
|
||||
also remove
|
||||
<blockquote><tt>example_OBJS += $(LIBOBJS)</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Libraries recIoc, softDevIoc, and testDevIoc</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>
|
||||
<br><tt>example_LIBS += testDevIoc</tt></blockquote>
|
||||
and remove any references to iocLibrary, e.g. remove the line
|
||||
<blockquote><tt>example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary</tt></blockquote>
|
||||
The order of references to base libraries is important so place recIoc
|
||||
and softDevIoc before the the other base library references.
|
||||
<p>If you are building on a WIN32 host add the following lines instead:
|
||||
<blockquote><tt># Use win32 object libs for registered support</tt>
|
||||
<br><tt>example_LIBS_win32 += recIocObj</tt>
|
||||
<br><tt>example_LIBS_win32 += softDevIocObj</tt>
|
||||
<br><tt>example_LIBS_win32 += testDevIocObj</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += recIoc</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += softDevIoc</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += testDevIoc</tt></blockquote>
|
||||
</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 compatibility) 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>
|
||||
A SRCS definition is now required for every PROD and LIBRARY source
|
||||
file to determine correct header file dependancies. This is true even if
|
||||
there is only one source file for the PROD or LIBRARY . Thus, for the PROD
|
||||
caExample in your src Makefile, add the line
|
||||
<blockquote> caExample_SRCS += caExample.c</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
registerRecordDeviceDriver changes</h3>
|
||||
|
||||
<blockquote>The created file registerRecordDeviceDriver.cpp is now used
|
||||
for all target architectures. Thus in your application src Makefiles
|
||||
<blockquote>change <tt>example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp</tt>
|
||||
<br>to <tt>example_SRCS += example_registerRecordDeviceDriver.cpp</tt>
|
||||
<br><tt></tt> </blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
RTEMS-specific pathname changes</h3>
|
||||
|
||||
<blockquote>1. The RTEMS TFTP remote filesystem no longer ignores leading
|
||||
`../' components in path names. All st.cmd file lines with path names
|
||||
of the form <tt>dbLoadRecords("../../db/dbExample1.db","user=norume")</tt>
|
||||
<br>must be changed to
|
||||
<br><tt>dbLoadRecords("db/dbExample1.db","user=norume")</tt><tt></tt>
|
||||
<p>The makeBaseApp.pl script distributed with R3.14-beta1 creates st.cmd
|
||||
scripts with the proper path names.
|
||||
<p>2. The RTEMS TFTP remote filesystem supports a limited set of chdir
|
||||
operations.
|
||||
<br>All paths passed to chdir (or to the IOC shell `cd' command) must end
|
||||
in a `/'
|
||||
<br>character.</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
135
documentation/KnownProblems.html
Normal file
135
documentation/KnownProblems.html
Normal file
@@ -0,0 +1,135 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title>No title</title>
|
||||
<meta name="GENERATOR" content="amaya 5.3, see http://www.w3.org/Amaya/" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS base R3.13.0beta1: Known Problems</h1>
|
||||
|
||||
<h2>Device Support, which does not implement special_linconv, is broken</h2>
|
||||
<p>In release beta1 changes were made to allow ESLO EOFF to be
|
||||
database design fields. Because of changes that were made to aiRecord and
|
||||
aoRecord device support that does not implement special_linconv
|
||||
may no longer work.<p>
|
||||
<p>To fix aiRecord.c, in init_record replace</p>
|
||||
<pre> if ((pai->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
|
||||
</pre>
|
||||
<p>To fix aoRecord.c, in init_record replace</p>
|
||||
<pre> if ((pao->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pao->eslo==1.0) && (pao->eoff==0.0)) {
|
||||
</pre>
|
||||
|
||||
<h2>CA puts to disabled record</h2>
|
||||
<p>If a CA client issues a put to a disabled record then, when the record is ena
|
||||
bled, database puts to the record will not make the record process until a CA pu
|
||||
t is again issued. The fix is:</p>
|
||||
<pre>
|
||||
diff -c -r1.113 dbAccess.c
|
||||
*** dbAccess.c 2002/04/08 14:46:13 1.113
|
||||
--- dbAccess.c 2002/05/02 20:09:18
|
||||
***************
|
||||
*** 614,619 ****
|
||||
--- 614,620 ----
|
||||
if(*ptrace) printf("disabled: %s\n",precord->name);
|
||||
/*take care of caching and notifyCompletion*/
|
||||
precord->rpro = FALSE;
|
||||
+ precord->putf = FALSE;
|
||||
callNotifyCompletion = TRUE;
|
||||
/* raise disable alarm */
|
||||
if (precord->stat==DISABLE_ALARM) goto all_done;
|
||||
</pre>
|
||||
|
||||
<h2>casEventMask</h2>
|
||||
|
||||
<p>The multiply-defined fatal error of the type</p>
|
||||
<pre>ld: fatal: symbol `resTable<casEventMaskEntry,
|
||||
stringId>::tableSize(void) const' is multiply-defined:
|
||||
(file ../../../../../lib/solaris-sparc->gnu//libcas.a(caServerI.o)
|
||||
and file ../../../../../lib/solaris-sparc-> gnu//libcas.a(casEventMask.o));
|
||||
</pre>
|
||||
|
||||
<p>in the build of base can be fixed by removing line 43</p>
|
||||
<pre>template class resTable < casEventMaskEntry, stringId >;
|
||||
</pre>
|
||||
|
||||
<p>from base/src/cas/generic/casEventMask.cc.</p>
|
||||
|
||||
<h2>config - Old build rules</h2>
|
||||
|
||||
<p>The following files should be added in the base/config directory to allow
|
||||
builds of R3.13 (Makefile.Host) extensions with beta1.</p>
|
||||
<pre>win32-x86-borland builds need:
|
||||
File name: CONFIG.Host.win32-x86-borland
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG.Host.Borland
|
||||
File name: CONFIG_HOST_ARCH.win32-x86-borland
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Borland
|
||||
File name: CONFIG_SITE.Host.win32-x86-borland
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_SITE.Host.Borland
|
||||
|
||||
hpux-m68k builds need:
|
||||
File name: CONFIG.Host.hpux-m68k
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG.Host.hp700
|
||||
File name: CONFIG_HOST_ARCH.hpux-m68k
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.hp700
|
||||
File name: CONFIG_SITE.Host.hpux-m68k
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_SITE.Host.hp700
|
||||
|
||||
osf-alpha builds need:
|
||||
File name: CONFIG.Host.osf-alpha
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG.Host.alpha
|
||||
File name: CONFIG_HOST_ARCH.osf-alpha
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.alpha
|
||||
|
||||
sun4-sparc builds need:
|
||||
File name: CONFIG.Host.sun4-sparc
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG.Host.sun4
|
||||
File name: CONFIG_HOST_ARCH.sun4-sparc
|
||||
File contents: -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.sun
|
||||
</pre>
|
||||
|
||||
<h2>configure - New build rules</h2>
|
||||
|
||||
<p>The following change is needed for shared library builds on Unix hosts.</p>
|
||||
<pre>Index: CONFIG_BASE
|
||||
===================================================================
|
||||
RCS file: /net/phoebus/epicsmgr/cvsroot/epics/base/configure/CONFIG_BASE,v
|
||||
retrieving revision 1.32
|
||||
diff -r1.32 CONFIG_BASE
|
||||
8a9
|
||||
> EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)</pre>
|
||||
|
||||
<h2>vxWorks TIMEZONE pentium</h2>
|
||||
|
||||
<p>If the name of the timezone has more than a few characters a crash can
|
||||
occur on pentium vxWorks iocs. See ansiTime in the vxWorks reference manual
|
||||
for details about TIMEZONE.</p>
|
||||
|
||||
<h2>epicsReadLine</h2>
|
||||
|
||||
<p>src/libCom/osi/os/default/epicsReadline.c used a char variable to hold the
|
||||
return value from getc(), and compared this against EOF. getc() returns int
|
||||
not char because ANSI C allows char to be unsigned if the architecture finds
|
||||
that easier, thus EOF can never be stored in a char on a PowerPC CPU. char
|
||||
should be changed to int or signed char.</p>
|
||||
|
||||
<h2>RTEMS and NTP</h2>
|
||||
|
||||
<p>The RTEMS startup routine waits until a time synchronization packet is
|
||||
received from an NTP server. This causes the RTEMS intialization to loop
|
||||
endlessly if there is no NTP server on the network. This problem has been
|
||||
fixed in the CVS version by allowing the initialization to time out after a
|
||||
minute or so and to set the IOC time to January 1, 2001.</p>
|
||||
=======</body>
|
||||
</html>
|
||||
414
documentation/README.1st
Normal file
414
documentation/README.1st
Normal file
@@ -0,0 +1,414 @@
|
||||
README
|
||||
|
||||
Installation Instructions
|
||||
|
||||
EPICS base
|
||||
|
||||
Release 3.14.0beta1
|
||||
|
||||
What is EPICS base?
|
||||
|
||||
The Experimental Physics and Industrial Control Systems (EPICS) is
|
||||
an extensible set of software components and tools with which
|
||||
application developers can create a control system. This control system
|
||||
can be used to control accelerators, detectors, telescopes, or other
|
||||
scientific experimental equipment. EPICS base is the set of core
|
||||
software, i.e. the components of EPICS without which EPICS would not
|
||||
function. EPICS base allows an arbitrary number of target systems,
|
||||
IOCs (input/output controllers), and host systems, OPIs (operator
|
||||
interfaces) of various types.
|
||||
|
||||
What is new in this release?
|
||||
|
||||
This version of EPICS base contains significant changes and offers
|
||||
major improvements in functionality over previous versions. Please
|
||||
check the RELEASE_NOTES file in the distribution for description of
|
||||
changes and release migration details.
|
||||
|
||||
Copyright
|
||||
|
||||
Please review the COPYRIGHT* files included in the distribution for
|
||||
legal terms of usage.
|
||||
|
||||
Supported platforms
|
||||
|
||||
Currently this version of EPICS base has been built on the following
|
||||
hosts for the following targets. If you are trying to build EPICS base on a
|
||||
different host or for a different target machine you must get the proper
|
||||
host/target cross compiler and header files and you will have to create
|
||||
and add the appropriate new configure files to the
|
||||
base/configure/os/directory. You can start by copying existing
|
||||
configuration files in the configure/os directory and then make changes
|
||||
for your new platforms.
|
||||
|
||||
Host platforms (operating system - architecture - <alternate c++
|
||||
compiler>)
|
||||
|
||||
solaris-sparc
|
||||
solaris-sparc-gnu
|
||||
linux-x86
|
||||
win32-x86
|
||||
win32-x86-borland
|
||||
|
||||
Cross compile target platforms (operating system - architecture)
|
||||
|
||||
vxWorks-486
|
||||
vxWorks-68040
|
||||
vxWorks-68040lc
|
||||
vxWorks-68060
|
||||
vxWorks-ppc603
|
||||
vxWorks-ppc604
|
||||
vxWorks-pentium
|
||||
RTEMS-gen68360
|
||||
RTEMS-mvme167
|
||||
RTEMS-pc386
|
||||
|
||||
Supported compilers
|
||||
|
||||
This version of EPICS base has been built and tested using the host
|
||||
vendor's C and C++ compilers as well as the GNU gcc and g++
|
||||
compilers. The GNU cross-compilers have been used for all
|
||||
cross-compiled targets. You may need the host vendor's C++ compiler
|
||||
in your search path to do EPICS builds. Check definitions of ACC and
|
||||
CCC in base/configure/os/CONFIG.<host>.<host> or the definitions
|
||||
for GCC and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified
|
||||
in CONFIG_SITE.
|
||||
|
||||
Software requirements
|
||||
|
||||
GNU make
|
||||
You must use GNU make, gnumake, for any EPICS builds. Set your
|
||||
path so that a gnumake version 3.70 or later is available.
|
||||
|
||||
Perl
|
||||
You must have perl version 5.0 or later installed. The configure files do
|
||||
not specify the perl full pathname. You need the perl executable in
|
||||
your search path.
|
||||
|
||||
Unzip and tar (Winzip on WIN32 systems)
|
||||
You must have tools available to unzip and untar the EPICS base
|
||||
distribution file.
|
||||
|
||||
Tornado 2.0
|
||||
You must have Tornado 2.0 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2.0 provides the cross-compiler and header
|
||||
files needed to build for these target systems. The full path location to
|
||||
Tornado 2.0 must be specified in the base/configure/RELEASE or
|
||||
base/configure/RELEASE.<hostarch> file. You will also need one or
|
||||
more board support packages. Consult the vxWorks documentation for
|
||||
details.
|
||||
|
||||
Optional GNU compiler requirement for solaris-sparc and
|
||||
win32-x86 hosts
|
||||
If you have state notation language source files (*.st files) which require
|
||||
c preprocessing before conversion to c source, gcc must be in your path.
|
||||
|
||||
Host system storage requirements
|
||||
|
||||
The GNU zipped tar file is approximately 1.4 MB in size. The unzipped
|
||||
untarred distribution source tree is approximately 6 MB. The build
|
||||
created files for each host take approximately 40 MB and the build
|
||||
created files for each target take approximately 10 MB.
|
||||
|
||||
Documentation
|
||||
|
||||
EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL http://www.aps.anl.gov/Epics
|
||||
|
||||
This README.htm is in the base distribution file and will be available
|
||||
on the IOC software R3.14 EPICS WWW page which can be accessed
|
||||
from the APS EPICS home page.
|
||||
|
||||
WWW pages
|
||||
|
||||
EPICS home page at APS
|
||||
|
||||
http://www.aps.anl.gov/epics
|
||||
|
||||
Other WWW sites
|
||||
|
||||
Additional information on EPICS can be found at the
|
||||
various other WWW links on the EPICS home page at APS.
|
||||
|
||||
Mailing Lists
|
||||
|
||||
There are five EPICS mailing lists provided by APS. See The
|
||||
EPICS home page for subscription instructions.
|
||||
|
||||
Directory Structure
|
||||
|
||||
Distribution directory structure:
|
||||
|
||||
base Root directory of the base istribution
|
||||
base/config R3.13 compatibility build configuration files
|
||||
base/config/tools Perl and shell scripts used in the R3.13 build
|
||||
base/configure Operating system independent build config files
|
||||
base/configure/os Operating system dependent build config files
|
||||
base/configure/tools Perl and shell scripts used in the build
|
||||
base/copyright Text files describing software copyrights
|
||||
base/src All epics base source code in subdirectories
|
||||
base/src/as Access security
|
||||
base/src/bpt Break point table
|
||||
base/src/ca Channel access
|
||||
base/src/cas Channel access server
|
||||
base/src/db Database access
|
||||
base/src/db/test Database access tests
|
||||
base/src/dbStatic Static database access
|
||||
base/src/dbtools Database dbLoadTemplate tools
|
||||
base/src/dev Device support (softDev and testDev)
|
||||
base/src/gdd General data descriptor
|
||||
base/src/iocsh Ioc shell command interpreter
|
||||
base/src/libCom General purpose library code in subdirectories
|
||||
base/src/libCom/bucketLib Hash bucket
|
||||
base/src/libCom/calc Algebraic expression interpreter
|
||||
base/src/libCom/cvtFast Fast number to string conversion
|
||||
base/src/libCom/cxxTemplates C++ templates and templates tests
|
||||
base/src/libCom/dbmf Memory management for frequent alloc/free
|
||||
base/src/libCom/ellLib EPICS double linked list
|
||||
base/src/libCom/env Default EPICS environment settings
|
||||
base/src/libCom/error Error handling definitions and routines
|
||||
base/src/libCom/fdmgr File descriptor manager
|
||||
base/src/libCom/freeList Memory management using free lists
|
||||
base/src/libCom/gpHash General purpose hash table
|
||||
base/src/libCom/logClient Logging client
|
||||
base/src/libCom/macLib Macro substitution handler
|
||||
base/src/libCom/misc Miscellaneous utilities
|
||||
base/src/libCom/osi Operating system independent code
|
||||
base/src/libCom/osi/os Operating system dependant code in subdirectories
|
||||
base/src/libCom/taskwd Task watchdog
|
||||
base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ?)
|
||||
base/src/libCom/timer Timer
|
||||
base/src/libCom/tsDefs R3.13 time stamp definitions and routines
|
||||
base/src/libCom/ring ringPointer: First in first out circular buffers
|
||||
base/src/libCom/cppStd epicsList: Lists of pointers to objects
|
||||
base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree
|
||||
base/src/makeBaseExt Perl tool+templates to create extension dvl tree
|
||||
base/src/misc Miscellaneous (coreRelease, iocInit, asSub*)
|
||||
base/src/rec Record support
|
||||
base/src/registry EPICS support function registry
|
||||
base/src/rsrv Channel access ioc resource server library
|
||||
base/src/toolsComm Code for the build tools antelope and e_flex
|
||||
base/src/util Utilities (ca_test, iocLogServer, startCArepeater)
|
||||
base/src/vxWorks R3.13 compatibility code specific to vxWorks
|
||||
base/startup Scripts for setting up path and environment
|
||||
|
||||
Install directories created by the build:
|
||||
|
||||
base/bin Installed scripts and executables in subdirs
|
||||
base/lib Installed libraries in arch subdirectories
|
||||
base/dbd Installed data base definitions
|
||||
base/include Installed header files
|
||||
base/include/os Installed os specific header files
|
||||
base/templates Installed templates
|
||||
|
||||
Build related components
|
||||
|
||||
base/README* files
|
||||
README.htm Instructions for setup and building epics base
|
||||
(i.e. this document)
|
||||
README.WIN32 Microsoft WIN32 specific instructions
|
||||
README.cxxTemplates Information about C++ templates in EPICS base
|
||||
README.niCpu030 NI cpu030 specific instructions
|
||||
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
EpicsHostArch c shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
borland.bat WIN32 bat file to set path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
|
||||
base/configure directory - contains build definitions and rules
|
||||
CONFIG.CrossCommon Cross build definitions
|
||||
CONFIG.gnuCommon Gnu compiler build definitions for all archs
|
||||
CONFIG_ADDONS Definitions for <osclass> and DEFAULT options
|
||||
CONFIG_BASE EPICS base tool and location definitions
|
||||
CONFIG_BASE_VERSION Definitions for EPICS base version number
|
||||
CONFIG_COMMON Definitions common to all builds
|
||||
CONFIG_ENV Definitions of EPICS environment variables
|
||||
CONFIG_SITE Site specific make defintions
|
||||
CONFIG_SITE_ENV Site defaults for EPICS environment variables
|
||||
CONFIG Includes configure files and allows variable overrides
|
||||
RELEASE Location of external products such as Tornado II
|
||||
RULES Includes appropriate rules file
|
||||
RULES.Db Rules for database and database definition files
|
||||
RULES_ARCHS Definitions and rules for building architectures
|
||||
RULES_BUILD Build and install rules and definitions
|
||||
RULES_DIRS Definitions and rules for building subdirectories
|
||||
RULES_JAVA Definitions and rules for java jars and classes
|
||||
RULES_TOP Rules specific to a <top> dir (uninstall and tar)
|
||||
Sample.Makefile Sample makefile with comments
|
||||
|
||||
base/configure/os directory - contains os-arch specific definitions
|
||||
CONFIG.<host>.<target> Specific host-target build definitions
|
||||
CONFIG.Common.<target> Specific target definitions for all hosts
|
||||
CONFIG.<host>.Common Specific host definitions for all targets
|
||||
CONFIG.UnixCommon.Common Definitions for Unix hosts and all target
|
||||
CONFIG.<host>.vxWorksCommon Specific host definitions for all vx targets
|
||||
CONFIG_COMPAT R3.13 arch compatibility definitions
|
||||
CONFIG_SITE.<host>.<target> Site specific host-target definitions
|
||||
CONFIG_SITE.Common.<target> Site specific target defs for all hosts
|
||||
CONFIG_SITE.<host>.Common Site specific host defs for all targets
|
||||
|
||||
base/configure/tools directory - contains Perl scripts used for the build
|
||||
MakeReleae Unix shell script to create a release tar file
|
||||
convertRelease.pl Performs consistancy checks on RELEASE files
|
||||
cp.pl This Perl script copies an existing file
|
||||
installEpics.pl Installs built files into install directories.
|
||||
makeDependsTargets.pl Creates targets of include dependency files
|
||||
makeMakefile.pl Creates a Makefile in O.<arch> dirs
|
||||
makeMakefileInclude.pl Creates file to be included by Makefile
|
||||
mkdir.pl Creates a directory (like Unix mkdir)
|
||||
mkmf.pl Generates dependencies from include stmnts
|
||||
munch.pl Creates a ctdt.c file for vxWorks targets
|
||||
mv.pl Renames an existing file.
|
||||
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation
|
||||
rm.pl Quietly removes an existing file.
|
||||
|
||||
Building EPICS base (Unix and Win32)
|
||||
|
||||
Unpack file
|
||||
|
||||
Unzip and untar the distribution file. Use WinZip on
|
||||
Windows systems.
|
||||
|
||||
Set environment variable
|
||||
|
||||
Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
|
||||
EPICS_HOST_ARCH
|
||||
Before you can build or use EPICS R3.14, the environment
|
||||
variable EPICS_HOST_ARCH must be defined. A perl
|
||||
script EpicsHostArch.pl in the base/startup directory has
|
||||
been provided to help set EPICS_HOST_ARCH. You should
|
||||
have EPICS_HOST_ARCH set to your host operating
|
||||
system followed by a dash and then your host architecture,
|
||||
e.g. solaris-sparc. If you are not using the OS vendor's
|
||||
c/c++ compiler for host builds, you will need another dash
|
||||
followed by the alternate compiler name (e.g. "-gnu" for GNU
|
||||
c/c++ compilers on a solaris host or "-borland" for Borland
|
||||
c/c++ compilers on a WIN32 host) . See configure/CONFIG_SITE
|
||||
for a list of supported EPICS_HOST_ARCH values.
|
||||
|
||||
PERLLIB
|
||||
On WIN32, some versions of Perl require that the
|
||||
environment variable PERLLIB be set to <perl directory
|
||||
location>.
|
||||
|
||||
PATH
|
||||
As already mentioned, you must have the perl executable
|
||||
and 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 your path, and the c compiler may require ld in your path.
|
||||
|
||||
Unix LD_LIBRARY_PATH
|
||||
If you plan to build EPICS base shared libraries instead of
|
||||
archive libraries, on Unix systems you will need to add
|
||||
fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to
|
||||
your LD_LIBRARY_PATH environment variable.
|
||||
|
||||
Win32 PATH
|
||||
On WIN32 systems, building shared libraries is the default
|
||||
setting and you will need to add fullpathname to
|
||||
$(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH) to your path.
|
||||
Building shared libraries is determined by the value of the
|
||||
macro SHARED_LIBRARIES in CONFIG_SITE (either YES or NO).
|
||||
|
||||
|
||||
Do site-specific build configuration
|
||||
|
||||
Site configuration
|
||||
To configure EPICS, you may want to modify the default
|
||||
definitions in the following files:
|
||||
|
||||
configure/CONFIG_SITE Build choices. Specify target archs.
|
||||
configure/CONFIG_SITE_ENV Environment variable defaults
|
||||
configure/RELEASE TORNADO 2 full path location
|
||||
|
||||
Host configuration
|
||||
To configure each host system, you may override the default
|
||||
definitions by adding a new file with override definitions into
|
||||
the configure/os directory. The new file should have the
|
||||
same name as the distribution file to be overridden except
|
||||
with CONFIG in the name changed to CONFIG_SITE.
|
||||
|
||||
configure/os/CONFIG.<host>.<host> - Host build settings
|
||||
configure/os/CONFIG.<host>.Common - Host cross build settings
|
||||
|
||||
Target configuration
|
||||
To configure each target system, you may override the
|
||||
default definitions by adding a new file with override
|
||||
definitions into the configure/os directory. The new file
|
||||
should have the same name as the distribution file to be
|
||||
overridden except with CONFIG in the name replaced by
|
||||
CONFIG_SITE.
|
||||
|
||||
configure/os/CONFIG.Common.<target> - Target cross settings
|
||||
configure/os/CONFIG.<host>.<target> - Host-target settings
|
||||
|
||||
R3.13 compatibility configuration
|
||||
To configure EPICS base for building with R3.13 extensions
|
||||
and ioc applications, you must modify the default definitions
|
||||
in the base/config/CONFIG_SITE* files to agree with definitions
|
||||
you made in base/configure and base/configure/os files.
|
||||
|
||||
Build EPICS base
|
||||
|
||||
After configuring the build you should be able to build
|
||||
EPICS base by issuing the following commands in the
|
||||
distribution's root directory (base)
|
||||
|
||||
gnumake clean uninstall
|
||||
gnumake
|
||||
|
||||
The command "gnumake clean uninstall" will remove all
|
||||
files and directories generated by a previous build. The
|
||||
command "gnumake" will build and install everything for
|
||||
the configured host and targets.
|
||||
It is recommended that you do a "gnumake clean uninstall"
|
||||
at the root directory of an EPICS directory structure before
|
||||
each complete rebuild to ensure that all components will be
|
||||
rebuilt.
|
||||
|
||||
Multiple host platforms
|
||||
|
||||
You can build using a single EPICS directory structure on multiple host
|
||||
systems and for multiple cross target systems. The intermediate and
|
||||
binary files generated by the build will be created in separate
|
||||
subdirectories and installed into the appropriate separate host/target
|
||||
install directories. EPICS executables and perl scripts are installed
|
||||
into the $(INSTALL_LOCATION)/bin/<arch> directories. Libraries are
|
||||
installed into $(INSTALL_LOCATION)/lib/<arch>. The default
|
||||
definition for $(INSTALL_LOCATION) is $(TOP) which is the root
|
||||
directory in the distribution directory structure, base. Created object
|
||||
files are stored in O.<arch> source subdirectories, This allows objects
|
||||
for multiple cross target architectures to be maintained at the same
|
||||
time. To build EPICS base for a specific host/target combination you
|
||||
must have the proper host/target c/c++ cross compiler and target header
|
||||
files and the base/configure/os directory must have the appropriate
|
||||
configure files.
|
||||
|
||||
Example application and extension
|
||||
|
||||
A perl tool, makeBaseApp.pl is included in the distribution file. This
|
||||
script will create a sample application that can be built and then
|
||||
executed to try out this release of base. Also, a perl script,
|
||||
makeBaseExt.pl, is included in the distribution file. This script will
|
||||
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.
|
||||
|
||||
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.0beta1". 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 a host system and run an example channel access client
|
||||
on the host system.
|
||||
|
||||
|
||||
538
documentation/README.html
Normal file
538
documentation/README.html
Normal file
@@ -0,0 +1,538 @@
|
||||
<!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.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
README.htm
|
||||
<center>
|
||||
<h1>
|
||||
Installation Instructions</h1></center>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
EPICS base</h2></center>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Release 3.14.0beta1</h2></center>
|
||||
|
||||
<h3>
|
||||
What is EPICS base?</h3>
|
||||
|
||||
<blockquote>The Experimental Physics and Industrial Control Systems (EPICS)
|
||||
is an extensible set of software components and tools with which application
|
||||
developers can create a control system. This control system can be used
|
||||
to control accelerators, detectors, telescopes, or other scientific experimental
|
||||
equipment. EPICS base is the set of core software, i.e. the components
|
||||
of EPICS without which EPICS would not function. EPICS base allows an arbitrary
|
||||
number of target systems, IOCs (input/output controllers), and host systems,
|
||||
OPIs (operator interfaces) of various types.</blockquote>
|
||||
|
||||
<h3>
|
||||
What is new in this release?</h3>
|
||||
|
||||
<blockquote>This version of EPICS base contains significant changes and
|
||||
offers major improvements in functionality over previous versions. Please
|
||||
check the RELEASE_NOTES file in the distribution for description of changes
|
||||
and release migration details.</blockquote>
|
||||
|
||||
<h3>
|
||||
Copyright</h3>
|
||||
|
||||
<blockquote>Please review the COPYRIGHT* files included in the distribution
|
||||
for legal terms of usage.</blockquote>
|
||||
|
||||
<h3>
|
||||
Supported platforms</h3>
|
||||
|
||||
<blockquote>Currently this version of EPICS base has been built on the
|
||||
following hosts for the following targets. If you are trying to build EPICS
|
||||
base on a different host or for a different target machine you must get
|
||||
the proper host/target cross compiler and header files and you will have
|
||||
to create and add the appropriate new configure files to the base/configure/os/directory.
|
||||
You can start by copying existing configuration files in the configure/os
|
||||
directory and then make changes for your new platforms.</blockquote>
|
||||
|
||||
<blockquote><b>Host platforms (operating system - architecture - <alternate
|
||||
c++ compiler>)</b>
|
||||
<blockquote><tt>solaris-sparc</tt>
|
||||
<br><tt>solaris-sparc-gnu</tt>
|
||||
<br><tt>linux-x86</tt>
|
||||
<br><tt>win32-x86</tt>
|
||||
<br><tt>win32-x86-borland</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<h4>
|
||||
Cross compile target platforms (operating system - architecture)</h4>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote><tt>vxWorks-486</tt>
|
||||
<br><tt>vxWorks-68040</tt>
|
||||
<br><tt>vxWorks-68040lc</tt>
|
||||
<br><tt>vxWorks-68060</tt>
|
||||
<br><tt>vxWorks-ppc603</tt>
|
||||
<br><tt>vxWorks-ppc604</tt>
|
||||
<br><tt>vxWorks-pentium</tt>
|
||||
<br><tt>RTEMS-gen68360</tt>
|
||||
<br><tt>RTEMS-mvme167</tt>
|
||||
<br><tt>RTEMS-pc386</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Supported compilers</h3>
|
||||
|
||||
<blockquote>This version of EPICS base has been built and tested using
|
||||
the host vendor's C and C++ compilers as well as the GNU gcc and g++ compilers.
|
||||
The GNU cross-compilers have been used for all cross-compiled targets.
|
||||
You may need the host vendor's C++ compiler in your search path to do EPICS
|
||||
builds. Check definitions of ACC and CCC in base/configure/os/CONFIG.<host>.<host>
|
||||
or the definitions for GCC and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified
|
||||
in CONFIG_SITE.</blockquote>
|
||||
|
||||
<h3>
|
||||
Software requirements</h3>
|
||||
|
||||
<blockquote><b>GNU make</b>
|
||||
<br>You must use GNU make, gnumake, for any EPICS builds. Set your
|
||||
path so that a gnumake version 3.70 or later is available.
|
||||
<p><b>Perl</b>
|
||||
<br>You must have perl version 5.0 or later installed. The configure files
|
||||
do not specify the perl full pathname. You need the perl executable
|
||||
in your search path.
|
||||
<p><b>Unzip and tar (Winzip on WIN32 systems)</b>
|
||||
<br>You must have tools available to unzip and untar the EPICS base distribution
|
||||
file.
|
||||
<p><b>Tornado 2.0</b>
|
||||
<br>You must have Tornado 2.0 installed if any of your target systems are
|
||||
vxWorks systems. Tornado 2.0 provides the cross-compiler and header
|
||||
files needed to build for these target systems. The full path location
|
||||
to Tornado 2.0 must be specified in the base/configure/RELEASE or base/configure/RELEASE.<hostarch>
|
||||
file. You will also need one or more board support packages. Consult the
|
||||
vxWorks documentation for details.
|
||||
<p><b>Optional GNU compiler requirement for solaris-sparc and win32-x86
|
||||
hosts</b>
|
||||
<br>If you have state notation language source files (*.st files) which
|
||||
require c preprocessing before conversion to c source, gcc must be
|
||||
in your path.</blockquote>
|
||||
|
||||
<h3>
|
||||
Host system storage requirements</h3>
|
||||
|
||||
<blockquote>The GNU zipped tar file is approximately 1.4 MB in size. The
|
||||
unzipped untarred distribution source tree is approximately 6 MB. The build
|
||||
created files for each host take approximately 40 MB and the build created
|
||||
files for each target take approximately 10 MB.</blockquote>
|
||||
|
||||
<h3>
|
||||
Documentation</h3>
|
||||
|
||||
<blockquote>EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL <a href="http://www.aps.anl.gov/epics">http://www.aps.anl.gov/epics</a></blockquote>
|
||||
|
||||
<blockquote>This README.htm is in the base distribution file and will be
|
||||
available on the IOC software R3.14 EPICS WWW page which can be accessed
|
||||
from the APS EPICS home page.</blockquote>
|
||||
|
||||
<h3>
|
||||
WWW pages</h3>
|
||||
|
||||
<blockquote>
|
||||
<h4>
|
||||
EPICS home page at APS</h4>
|
||||
|
||||
<blockquote><a href="http://www.aps.anl.gov/epics">http://www.aps.anl.gov/epics</a></blockquote>
|
||||
|
||||
<h4>
|
||||
Other WWW sites</h4>
|
||||
|
||||
<blockquote>Additional information on EPICS can be found at the various
|
||||
other WWW links on the EPICS home page at APS.</blockquote>
|
||||
|
||||
<h4>
|
||||
Mailing Lists</h4>
|
||||
|
||||
<blockquote>There are five EPICS mailing lists provided by APS. See The
|
||||
EPICS home page for subscription instructions.</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Directory Structure</h3>
|
||||
|
||||
<blockquote>Distribution directory structure:</blockquote>
|
||||
<tt> base
|
||||
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/copyright
|
||||
Text files describing software copyrights</tt>
|
||||
<br><tt> base/src
|
||||
All epics base source code in subdirectories</tt>
|
||||
<br><tt> base/src/as
|
||||
Access security</tt>
|
||||
<br><tt> base/src/bpt
|
||||
Break point table</tt>
|
||||
<br><tt> base/src/ca
|
||||
Channel access</tt>
|
||||
<br><tt> base/src/cas
|
||||
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 (softDev and testDev)</tt>
|
||||
<br><tt> base/src/gdd
|
||||
General data descriptor</tt>
|
||||
<br><tt> base/src/iocsh
|
||||
Ioc shell command interpreter</tt>
|
||||
<br><tt> base/src/libCom
|
||||
General purpose library code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/bucketLib
|
||||
Hash bucket</tt>
|
||||
<br><tt> base/src/libCom/calc
|
||||
Algebraic expression interpreter</tt>
|
||||
<br><tt> base/src/libCom/cvtFast
|
||||
Fast number to string conversion</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
|
||||
EPICS double linked list</tt>
|
||||
<br><tt> base/src/libCom/env
|
||||
Default EPICS environment settings</tt>
|
||||
<br><tt> base/src/libCom/error
|
||||
Error handling definitions and routines</tt>
|
||||
<br><tt> base/src/libCom/fdmgr
|
||||
File descriptor manager</tt>
|
||||
<br><tt> base/src/libCom/freeList
|
||||
Memory management using free lists</tt>
|
||||
<br><tt> base/src/libCom/gpHash
|
||||
General purpose hash table</tt>
|
||||
<br><tt> base/src/libCom/logClient
|
||||
Logging client</tt>
|
||||
<br><tt> base/src/libCom/macLib
|
||||
Macro substitution handler</tt>
|
||||
<br><tt> base/src/libCom/misc
|
||||
Miscellaneous utilities</tt>
|
||||
<br><tt> base/src/libCom/osi
|
||||
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/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 ioc app dvl tree</tt>
|
||||
<br><tt> base/src/makeBaseExt
|
||||
Perl tool+templates to create extension dvl tree</tt>
|
||||
<br><tt> base/src/misc
|
||||
Miscellaneous (coreRelease, iocInit, asSub*)</tt>
|
||||
<br><tt> base/src/rec
|
||||
Record support</tt>
|
||||
<br><tt> base/src/registry
|
||||
EPICS support function registry</tt>
|
||||
<br><tt> base/src/rsrv
|
||||
Channel access ioc resource server library</tt>
|
||||
<br><tt> base/src/toolsComm
|
||||
Code for the build tools antelope and e_flex</tt>
|
||||
<br><tt> base/src/util
|
||||
Utilities (ca_test, iocLogServer, startCArepeater)</tt>
|
||||
<br><tt> base/src/vxWorks
|
||||
R3.13 compatibility code specific to vxWorks</tt>
|
||||
<br><tt> base/startup
|
||||
Scripts for setting up path and environment</tt>
|
||||
<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>
|
||||
<br><tt> base/dbd
|
||||
Installed data base definitions</tt>
|
||||
<br><tt> base/include
|
||||
Installed header files</tt>
|
||||
<br><tt> base/include/os
|
||||
Installed os specific header files</tt>
|
||||
<br><tt> base/templates
|
||||
Installed templates</tt>
|
||||
<h3>
|
||||
Build related components</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
base/README* files</li>
|
||||
|
||||
<br><tt>README.htm
|
||||
Instructions for setup and building epics base</tt>
|
||||
<br><tt>
|
||||
(i.e. this document)</tt>
|
||||
<br><tt>README.WIN32 Microsoft
|
||||
WIN32 specific instructions</tt>
|
||||
<br><tt>README.cxxTemplates Information about C++ templates in EPICS
|
||||
base</tt>
|
||||
<br><tt>README.niCpu030 NI cpu030 specific
|
||||
instructions</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/startup directory - contains scripts to set environment and path</li>
|
||||
|
||||
<br><tt>EpicsHostArch c shell script
|
||||
to set EPICS_HOST_ARCH env variable</tt>
|
||||
<br><tt>EpicsHostArch.pl perl script to set EPICS_HOST_ARCH
|
||||
env variable</tt>
|
||||
<br><tt>Site.profile bourne shell
|
||||
script to set path and env variables</tt>
|
||||
<br><tt>Site.cshrc
|
||||
c shell script to set path and env variables</tt>
|
||||
<br><tt>borland.bat WIN32
|
||||
bat file to set path and env variables</tt>
|
||||
<br><tt>win32.bat
|
||||
WIN32 bat file to set path and env variables</tt>
|
||||
<br>
|
||||
<li>
|
||||
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
|
||||
EPICS base tool and location definitions</tt>
|
||||
<br><tt>CONFIG_BASE_VERSION Definitions for EPICS base version
|
||||
number</tt>
|
||||
<br><tt>CONFIG_COMMON Definitions
|
||||
common to all builds</tt>
|
||||
<br><tt>CONFIG_ENV
|
||||
Definitions of EPICS environment variables</tt>
|
||||
<br><tt>CONFIG_SITE
|
||||
Site specific make defintions</tt>
|
||||
<br><tt>CONFIG_SITE_ENV Site defaults
|
||||
for EPICS environment variables</tt>
|
||||
<br><tt>CONFIG
|
||||
Includes configure files and allows variable overrides</tt>
|
||||
<br><tt>RELEASE
|
||||
Location of external products such as Tornado II</tt>
|
||||
<br><tt>RULES
|
||||
Includes appropriate rules file</tt>
|
||||
<br><tt>RULES.Db
|
||||
Rules for database and database definition files</tt>
|
||||
<br><tt>RULES_ARCHS
|
||||
Definitions and rules for building architectures</tt>
|
||||
<br><tt>RULES_BUILD
|
||||
Build and install rules and definitions</tt>
|
||||
<br><tt>RULES_DIRS
|
||||
Definitions and rules for building subdirectories</tt>
|
||||
<br><tt>RULES_JAVA
|
||||
Definitions and rules for java jars and classes</tt>
|
||||
<br><tt>RULES_TOP
|
||||
Rules specific to a <top> dir (uninstall and tar)</tt>
|
||||
<br><tt>Sample.Makefile Sample makefile
|
||||
with comments</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/configure/os directory - contains os-arch specific definitions</li>
|
||||
|
||||
<br><tt>CONFIG.<host>.<target> Specific
|
||||
host-target build definitions</tt>
|
||||
<br><tt>CONFIG.Common.<target> Specific
|
||||
target definitions for all hosts</tt>
|
||||
<br><tt>CONFIG.<host>.Common
|
||||
Specific host definitions for all targets</tt>
|
||||
<br><tt>CONFIG.UnixCommon.Common Definitions for Unix
|
||||
hosts and all target</tt>
|
||||
<br><tt>CONFIG.<host>.vxWorksCommon Specific host definitions for all
|
||||
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>
|
||||
|
||||
<br><tt>MakeReleae
|
||||
Unix shell script to create a release tar file</tt>
|
||||
<br><tt>convertRelease.pl Performs
|
||||
consistancy checks on RELEASE files</tt>
|
||||
<br><tt>cp.pl
|
||||
This Perl script copies an existing file</tt>
|
||||
<br><tt>installEpics.pl
|
||||
Installs built files into install directories.</tt>
|
||||
<br><tt>makeDependsTargets.pl Creates targets of include dependency
|
||||
files</tt>
|
||||
<br><tt>makeMakefile.pl
|
||||
Creates a Makefile in O.<arch> dirs</tt>
|
||||
<br><tt>makeMakefileInclude.pl Creates file to be included by Makefile</tt>
|
||||
<br><tt>mkdir.pl
|
||||
Creates a directory (like Unix mkdir)</tt>
|
||||
<br><tt>mkmf.pl
|
||||
Generates dependencies from include stmnts</tt>
|
||||
<br><tt>munch.pl
|
||||
Creates a ctdt.c file for vxWorks targets</tt>
|
||||
<br><tt>mv.pl
|
||||
Renames an existing file.</tt>
|
||||
<br><tt>replaceVAR.pl
|
||||
Changes CapFast VAR(xxx) to $(xxx) notation</tt>
|
||||
<br><tt>rm.pl
|
||||
Quietly removes an existing file.</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Building EPICS base (Unix and Win32)</h3>
|
||||
|
||||
<blockquote><b>Unpack file</b>
|
||||
<blockquote>Unzip and untar the distribution file. Use WinZip on Windows
|
||||
systems.</blockquote>
|
||||
S<b>et environment variables</b>
|
||||
<blockquote>Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
<p><b>EPICS_HOST_ARCH</b>
|
||||
<br>Before you can build or use EPICS R3.14, the environment variable EPICS_HOST_ARCH
|
||||
must be defined. A perl script EpicsHostArch.pl in the base/startup directory
|
||||
has been provided to help set EPICS_HOST_ARCH. You should have EPICS_HOST_ARCH
|
||||
set to your host operating system followed by a dash and then your host
|
||||
architecture, e.g. solaris-sparc. If you are not using the OS vendor's
|
||||
c/c++ compiler for host
|
||||
<br>builds, you will need another dash followed by the alternate compiler
|
||||
name (e.g. "-gnu" for GNU c/c++ compilers on a solaris host or "-borland"
|
||||
for Borland c/c++ compilers on a WIN32 host) . See configure/CONFIG_SITE
|
||||
for a list of supported EPICS_HOST_ARCH values.
|
||||
<p><b>PERLLIB</b>
|
||||
<br>On WIN32, some versions of Perl require that the environment
|
||||
variable PERLLIB be set to <perl directory location>.</blockquote>
|
||||
|
||||
<blockquote><b>PATH</b>
|
||||
<br>As already mentioned, you must have the perl executable and 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 your path,
|
||||
and the c compiler may require ld in your path.
|
||||
<p><b>LD_LIBRARY_PATH</b>
|
||||
<br>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.
|
||||
<p><b>PATH</b>
|
||||
<br>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 (either YES or NO).
|
||||
<br> </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 target archs.
|
||||
<br><tt>configure/CONFIG_SITE_ENV </tt>Environment variable defaults
|
||||
<br><tt>configure/RELEASE </tt>TORNADO
|
||||
2 full path location</blockquote>
|
||||
<b>Host configuration</b>
|
||||
<br>To configure each host system, you may override the default definitions
|
||||
by adding a new file with override definitions into the configure/os directory.
|
||||
The new file should have the same name as the distribution file to be overridden
|
||||
except with CONFIG in the name changed to CONFIG_SITE.
|
||||
<blockquote><tt>configure/os/CONFIG.<host>.<host></tt>
|
||||
- Host build settings
|
||||
<br><tt>configure/os/CONFIG.<host>.Common</tt>
|
||||
- Host cross build settings</blockquote>
|
||||
<b>Target configuration</b>
|
||||
<br>To configure each target system, you may override the default definitions
|
||||
by adding a new file with override definitions into the configure/os directory.
|
||||
The new file should have the same name as the distribution file to be overridden
|
||||
except with CONFIG in the name replaced by CONFIG_SITE.
|
||||
<blockquote><tt>configure/os/CONFIG.Common.<target></tt>
|
||||
- Target cross settings
|
||||
<br><tt>configure/os/CONFIG.<host>.<target> </tt> - Host-target
|
||||
settings</blockquote>
|
||||
<b>R3.13 compatibility configuration</b>
|
||||
<br>To configure EPICS base for building with R3.13 extensions and ioc
|
||||
applications , you must modify the default definitions in the base/config/CONFIG_SITE*
|
||||
files to agree with definitions you made in base/configure and base/configure/os
|
||||
files.</blockquote>
|
||||
|
||||
<h4>
|
||||
<b>Build EPICS base</b></h4>
|
||||
|
||||
<blockquote>After configuring the build you should be able to build EPICS
|
||||
base by issuing the following commands in the distribution's root directory
|
||||
(base)
|
||||
<blockquote><tt>gnumake clean uninstall</tt>
|
||||
<br><tt>gnumake</tt></blockquote>
|
||||
The command "gnumake clean uninstall" will remove all files and directories
|
||||
generated by a previous build. The command "gnumake" will build and install
|
||||
everything for the configured host and targets.
|
||||
<br>It is recommended that you do a "gnumake clean uninstall" at the root
|
||||
directory of an EPICS directory structure before each complete rebuild
|
||||
to ensure that all components will be rebuilt.</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Multiple host platforms</h3>
|
||||
|
||||
<blockquote>You can build using a single EPICS directory structure on multiple
|
||||
host systems and for multiple cross target systems. The intermediate and
|
||||
binary files generated by the build will be created in separate subdirectories
|
||||
and installed into the appropriate separate host/target install directories.
|
||||
EPICS executables and perl scripts are installed into the <tt>$(INSTALL_LOCATION)/bin/<arch></tt>
|
||||
directories. Libraries are installed into $<tt><font size=+1>(INSTALL_LOCATION)/lib/<arch></font></tt>.
|
||||
The default definition for <tt>$(INSTALL_LOCATION)</tt> is <tt>$(TOP)</tt>
|
||||
which is the root directory in the distribution directory structure, base.
|
||||
Created object files are stored in O.<arch> source subdirectories, This
|
||||
allows objects for multiple cross target architectures to be maintained
|
||||
at the same time. To build EPICS base for a specific host/target combination
|
||||
you must have the proper host/target c/c++ cross compiler and target header
|
||||
files and the base/configure/os directory must have the appropriate configure
|
||||
files.</blockquote>
|
||||
|
||||
<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 can be built and
|
||||
then executed to try out this release of base. Also, a perl script, makeBaseExt.pl,
|
||||
is included in the distribution file. This script will 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>
|
||||
|
||||
<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.0beta1".
|
||||
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 a host system and
|
||||
run an example channel access client on the host system.</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
34
documentation/README.niCpu030
Normal file
34
documentation/README.niCpu030
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
The CPU030 may need to have the nivxi path set correctly:
|
||||
From the vxWorks shell type "vxitedit" (you may need to
|
||||
loading the NI vxitedit package first)
|
||||
take option 2
|
||||
take option 3
|
||||
type list
|
||||
type modify 0
|
||||
type in the correct path when promped
|
||||
(the path should end in nivxi
|
||||
and should traverse the niCpu030
|
||||
directories shipped with the 030
|
||||
ie something of the form "???/config/niCPU030/nivxi"
|
||||
type save
|
||||
type exit
|
||||
.
|
||||
.
|
||||
.
|
||||
|
||||
see "Getting Started with Your VXIcpu-030" from NI
|
||||
|
||||
You may may need to setup front panel to backplane trigger
|
||||
routing:
|
||||
|
||||
To take a TTL input and map it to VXI backplane ECL trigger 0
|
||||
type in (to the vxWorks shell):
|
||||
|
||||
epvxiRouteTriggerECL(<logical address>, 1, 0)
|
||||
|
||||
where <logical address> specifies the card with the
|
||||
front panel trigger connection.
|
||||
|
||||
johill@lanl.gov
|
||||
|
||||
Reference in New Issue
Block a user