First do a "gnumake clean uninstall" to remove all files and directories created by earlier builds.
Next make a copy of your existing R3.13.2 application and make all R3.14 changes to the copy. Once the application is changed to build with base R3.14, it will not build with earlier base releases.
Change any target arch specification in config/CONFIG to new base R3.14 target arch specification. Look in the R3.14 base/bin to see the target arch names.
For example, in config/CONFIG changetoCROSS_COMPILER_TARGET_ARCHS = mv167In the iocBoot/*/Makefile files, changeCROSS_COMPILER_TARGET_ARCHS = vxWorks-68040toARCH=<old arch name>and do a "gnumake" in the iocBoot directory to update the cdCommands files.ARCH=<new arch name>
snc is no longer in base. If snc is used in your application, you must download and build the seq module with baseR3.14.
Add the lineto your application config/RELEASE file. Also seq has been renamed to seqLibrary.o soSEQ = <full path to seq module directory>
changetoINSTALLS=seqLIBOBJS = $(SEQ_BIN)/seqLibrary.o
in your application src/Makefile.Vx files to link seq into your application library.
Then removelines from the st.cmd files in the iocBoot sub directories.ld < seq
iocCore has been renamed to iocCoreLibrary.o.
ChangetoINSTALLS=iocCorein your application src/Makefile.Vx files to link iocCore into your application library.LIBOBJS = $(EPICS_BASE_BIN)/iocCoreLibrary.o
Also removefrom the st.cmd files in the iocBoot subdirectories.ld < iocCore
The Db library name was changed to dbStaticHost for host builds and dbStaticIoc for ioc builds.
ChangetoPROD_LIBS+=DbandPROD_LIBS+=dbStaticHosttoDb_DIR=$(EPICS_BASE_LIB)in your application src/Makefile.Host files.dbStaticHost_DIR=$(EPICS_BASE_LIB)
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. Change "ld < *Lib" lines to "ld < *Library.munch" in the st.cmd files in iocBoot subdirectories. Also add the suffix ".munch" to the ld lines where object files were previously loaded. For example
changetold < exampleLibin your st.cmd file.ld < exampleLibrary.munch
You may need to add the line "#include "recGbl.h" to any source files that have recGbl* calls so that the file will compile without errors.
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 LIBOBJS definitions. For example
addto config/RELEASE.PID=<full path to modules directory>/pid
Removefrom baseLIBOBJS,LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o
and addto your application src/Makefile.LIBOBJS += $(PID_BIN)/pidRecord.o
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.
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.
All hardware support (dev, drv and dbd files) has been unbundled from base R3.14. This support includes the files symb.dbd, drvHp1404a.o, drvEpvxiMsg.o, and drvEpvxi.o. If they are not used in your application, comment out references to these files in base.dbd and baseLIBOBJS.
Hardware support files now exist as separate modules available for download from the EPICS www home page at ANL. 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 LIBOBJS location definition $(EPICS_BASE_BIN) to the module definition bin directory in your application src directory files.
For example, removefrom baseLIBOBJS and addLIBOBJS+=$(EPICS_BASE_BIN)/symbto your application src/Makefile,LIBOBJS+=$(SYMB_BIN)/symb
and add the lineinto your application config/RELEASE file .SYMB=<full path definition for the built module SYMB>
After a gnumake in the symb module followed by a gnumake in the application config directory, the definitions SYMB_BIN and SYMB_LIB will be created, the directory $(SYMB)/include will be added to the include directories on the compiler command lines (in the INSTALL_INCLUDES definition) and the directory $(SYMB)/dbd will be added to the dbd search directories on the dbExpand command lines (in the INSTALL_DBDFLAGS definition).
The host tool dbLoadTemplate has been replace by a new extension, msi. dbLoadTemplate is still supported on iocs. Build the msi extension with base R3.14 and change definitions the following definitions in your application files.
In config/RULES.Db replace the linewithDBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)and change line:MSI=$(EXTENSIONS_HOST_BIN)/msi$(EXE)to@$(DBLOADTEMPLATE) $< > $@Also add the definition@$(MSI) $< > $@to your application config/RELEASE file.EPICS_EXTENSIONS=<full path name to epics extensions directory>