Converting an EPICS R3.14.0alpha2 application to alpha3


This document describes how to convert a R3.14.0alpha2 vxWorks application so that it builds with release R3.14.0alpha3.

Gnumake clean uninstall

First do a "gnumake clean uninstall" in the application's root directory to remove all files created by earlier builds.

Remove baseLIBOBJS

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
-include ../baseLIBOBJS
and, if there are no LIBOBJS definitions in the Makefile, remove
example_OBJS += $(LIBOBJS)

Libraries recIoc and softDevIoc

Add the new record and dev support libraries to <name>App/src/Makefile, i.e. add the lines
example_LIBS += recIoc
example_LIBS += softDevIoc
and remove any references to iocCoreLibrary, e.g. remove the line
example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
The order of references to base librararies is important so place recIoc and softDevIoc  before the the other base library references.

iocrf renamed to iocsh

Change all references to ioccrf in your application src directories to iocsh e.g.

change #include "ioccrf.h"
to  #include "iocsh.h"

change ioccrf(argv[1]);
to  iocsh(argv[1]);

and change  ioccrf(NULL);
to iocsh(NULL);

in <name>App/src/exampleMain.c.

PROD changes

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
change PROD += caExample
to  PROD_HOST += caExample
and
change PROD = sncExample
to PROD_HOST += sncExample
LIBRARY and PROD changes
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,
change LIBRARY_vxWorks = <name>
to PROD_vxWorks = <name>
or
remove the lines LIBRARY_vxWorks = <name>
and PROD_RTEMS = <name>
and change PROD = <name>
to PROD_IOC = <name>.
In the iocBoot/ioc<name>/st.cmd files,
change ld < <name>Library.munch
to ld < <name>.munch

registerRecordDeviceDriver changes

The created file registerRecordDeviceDriver.cpp&nbsp; is now used for all target architectures. Thus in your application src Makefiles
change example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp
to  example_SRCS += example_registerRecordDeviceDriver.cpp