133 lines
4.6 KiB
HTML
133 lines
4.6 KiB
HTML
<!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>
|