Files
epics-base/READMEconvertingR3.14.0alpha2AppsToalpha3.html
2001-06-27 18:30:07 +00:00

104 lines
3.8 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>
Converting an EPICS R3.14.0alpha2 application to alpha3</h2></center>
<p><br>This document describes how to convert a R3.14.0alpha2 vxWorks application
so that it builds with release R3.14.0alpha3.
<h3>
Gnumake clean uninstall</h3>
<blockquote>First do a "<tt>gnumake clean uninstall"</tt> in the application's
root directory to remove all files created by earlier builds.</blockquote>
<h3>
Remove baseLIBOBJS</h3>
<blockquote>Record and device support from base now exists in archive libraries
so baseLIBOBJS is no longer needed and the file and references to it in
the Makefile can be deleted. e.g. remove
<blockquote><tt>-include ../baseLIBOBJS</tt></blockquote>
and, if there are no LIBOBJS&nbsp;definitions in the Makefile, remove
<blockquote><tt>example_OBJS += $(LIBOBJS)</tt></blockquote>
</blockquote>
<h3>
Libraries recIoc and softDevIoc</h3>
<blockquote>Add the new record and dev support libraries to &lt;name>App/src/Makefile,
i.e. add the lines
<blockquote><tt>example_LIBS += recIoc</tt>
<br><tt>example_LIBS += softDevIoc</tt></blockquote>
and remove any references to iocCoreLibrary, e.g. remove the line
<blockquote><tt>example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary</tt></blockquote>
The order of references to base librararies is important so recIoc and
softDevIoc&nbsp; before the the other base library references.</blockquote>
<h3>
iocrf renamed to iocsh</h3>
<blockquote>Change all references to ioccrf in your application src directories
to iocsh e.g.
<p>change <tt>#include "ioccrf.h"</tt>
<br>to&nbsp; <tt>#include "iocsh.h"</tt>
<p>change<tt> ioccrf(argv[1]);</tt>
<br>to&nbsp;<tt> iocsh(argv[1]);</tt>
<p>and change&nbsp;<tt> ioccrf(NULL);</tt>
<br>to <tt>iocsh(NULL)</tt>;
<p>in &lt;name>App/src/exampleMain.c.</blockquote>
<h3>
PROD changes</h3>
<blockquote>PROD targets will now be built for all target architectures.
If a product should be built only for host architectures change PROD to
PROD_HOST .e.g.&nbsp; in your application src Makefiles
<blockquote>change <tt>PROD += caExample</tt>
<br>to&nbsp; <tt>PROD_HOST += caExample</tt>
<br>and
<br>change <tt>PROD = sncExample</tt>
<br>to <tt>PROD_HOST += sncExample</tt></blockquote>
</blockquote>
<b>LIBRARY and PROD changes</b>
<blockquote>The meaning of LIBRARY and PROD have now changed. For vxWorks,
LIBRARY now means an archive library, OBJLIB is now a combined object file
(only needed for R3.13 compatability) and PROD is now a combined object
file with library references resolved and will have a corresponding .munch
file created. Thus, in your application src Makefiles,
<blockquote>change <tt>LIBRARY_vxWorks = &lt;name></tt>
<br>to <tt>PROD_vxWorks = &lt;name></tt>
<br>or
<br>remove the lines <tt>LIBRARY_vxWorks = &lt;name></tt>
<br>and <tt>PROD_RTEMS = &lt;name></tt>
<br>and change <tt>PROD = &lt;name></tt>
<br>to <tt>PROD_IOC = &lt;name></tt>.</blockquote>
In the iocBoot/ioc&lt;name>/st.cmd files,
<blockquote>change <tt>ld &lt;name>Library.munch</tt>
<br>to <tt>ld &lt; &lt;name>.munch</tt></blockquote>
</blockquote>
<h3>
registerRecordDeviceDriver changes</h3>
<blockquote>PROD targets will now be built for all target architectures.
If a product should be built only for host architectures change PROD to
PROD_HOST .e.g.&nbsp; in your application src Makefiles
<blockquote>change <tt>example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp</tt>
<br>to&nbsp; <tt>example_SRCS += example_registerRecordDeviceDriver.cpp</tt></blockquote>
</blockquote>
<blockquote>
<blockquote>&nbsp;</blockquote>
</blockquote>
</body>
</html>