diff --git a/documentation/BuildingR3.13AppsWithR3.14.html b/documentation/BuildingR3.13AppsWithR3.14.html index 72ff6c757..59695819e 100644 --- a/documentation/BuildingR3.13AppsWithR3.14.html +++ b/documentation/BuildingR3.13AppsWithR3.14.html @@ -1,304 +1,225 @@ - +
- - - - - -
This document describes how to modify a R3.13 vxWorks application
-so that it builds with release R3.14.0beta2. It describes an easy
-way to modify applications subject to the following restrictions:
+
+This document describes how to modify a R3.13 vxWorks application so that it
+builds with release R3.14.0beta2. It describes an easy way to modify
+applications subject to the following restrictions:
At the top of the application execute: ++to remove all files and directories created by earlier builds. -Gnumake clean uninstall
+ +At the top of the application execute:
"gnumake clean uninstall"-to remove all files and directories created by earlier builds.
Change the EPICS_BASE 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.+
Change the EPICS_BASE 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. For +example if you are using the sequencer add the line:
+SNCSEQ=<full path to sequencer build for 3.14>-
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. -+files. -For example, in config/CONFIG change +
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.
+ +For example, in config/CONFIG change
CROSS_COMPILER_TARGET_ARCHS = mv167toCROSS_COMPILER_TARGET_ARCHS = vxWorks-68040In the iocBoot/*/Makefile files, change -ARCH=<old arch name>+ARCH=<old arch name>to -ARCH=<new arch name>+ARCH=<new arch name>and do a "gnumake" in the iocBoot directory to update the cdCommands -files.
snc is no longer in base. If snc is used in your application, -you must download and build the seq module with baseR3.14.0beta2. See the -Application Developer's Guide to see how to build sequence programs.+
NOTE: You must have a version of the sequencer that is build for R3.14. +This version uses configure rules rather than config rules. It still, +however, has a config directory. Makesure that config/RELEASE has the same +location for base as configure/RELEASE.
-Change -+from the st.cmd files in the iocBoot subdirectories. -INSTALLS=seq-to -LIBOBJS += $(SEQ_BIN)/seqLibrary.o+snc is no longer in base. If snc is used in your application, you must +download and build the seq module with baseR3.14.0beta2. See the Application +Developer's Guide to see how to build sequence programs.
-
in application src/Makefile.Vx files to link seq library into your -application library,. -
Also add -SEQ=<full path to seq module directory>-to config/RELEASE. -
Also remove +If you build sequencer programs add the lines
+SNC = ${SNCSEQ}/bin/$(HOST_ARCH)/snc$(EXE) +LIBOBJS += $(SNCSEQ_BIN)/seqLibrary.o +LIBOBJS += $(SNCSEQ_BIN)/pvLibrary.o+ +remove
+INSTALLS = seq+ ++Also remove
+in application src/Makefile.Vx files to link seq library into your +application library,.
+ld < seq-from the st.cmd files in the iocBoot subdirectories.
iocCore has been renamed to iocCoreLibrary.o. -+from the st.cmd files in the iocBoot subdirectories. -
Change +iocCore has been renamed to iocCoreLibrary.o.
+ChangeINSTALLS=iocCoretoLIBOBJS += $(EPICS_BASE_BIN)/iocCoreLibrary.o-in your application src/Makefile.Vx files . -
Also remove +in your application src/Makefile.Vx files .
+Also removeld < iocCore-from the st.cmd files in the iocBoot subdirectories.
The Db library name was changed to dbStaticHost for host builds -and dbStaticIoc for ioc builds. -+in your application src/Makefile.Host files. -
Change +The Db library name was changed to dbStaticHost for host builds and +dbStaticIoc for ioc builds.
+ChangePROD_LIBS+=Dbto -PROD_LIBS+=dk+PROD_LIBS+=dbStaticHostandDb_DIR=$(EPICS_BASE_LIB)todbStaticHost_DIR=$(EPICS_BASE_LIB)-in your application src/Makefile.Host files.
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 ".munch" -to the ld lines where object files were previously loaded. For example -change ++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 ".munch" to the ld lines +where object files were previously loaded. For example change
ld < exampleLibto -ld < exampleLibrary.munch-
ld < exampleLib.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.+
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 --
add -PID=<full path to modules directory>/pid-to config/RELEASE. -
Remove +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
+
+addPID=<full path to modules directory>/pid+to config/RELEASE.
+RemoveLIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o-from baseLIBOBJS, -
and add +from baseLIBOBJS,
+and addLIBOBJS += $(PID_BIN)/pidRecord.oto your application src/Makefile. -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.
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.+
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, 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, remove +
Hardware support changes
+ +All hardware support (dev, drv and dbd files) has been unbundled from base +R3.14. This support includes the files symb, 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, remove
LIBOBJS+=$(EPICS_BASE_BIN)/symbfrom baseLIBOBJS and addLIBOBJS+=$(SYMB_BIN)/symb-to your application src/Makefile, -
and add the line -SYMB=<full path definition for the built module SYMB>+to your application src/Makefile,
+and add the line +SYMB=<full path definition for the built module SYMB>into your application config/RELEASE file . -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).
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 replaced by a new extension, -msi. dbLoadTemplate is still supported on iocs. Build the new msi extension -with a R3.13 or R3.14 base and verify that the msi executable is in your -path. -+Change the following definitions in your application files. -
In config/RULES.Db replace the line +
dbLoadtemplate tool changes
+ +The host tool dbLoadTemplate has been replaced by a new extension, msi. +dbLoadTemplate is still supported on iocs. Build the new msi extension with a +R3.13 or R3.14 base and verify that the msi executable is in your path.
+ +Change the following definitions in your application files.
+ +In config/RULES.Db replace the line
DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)withMSI = msiand change the DBLOADTEMPLATE rule in RULES.Db from -%.t.db.raw: %.substitutions -
@echo "Inflating database from $<" -
@$(RM) $@ -
@$(DBLOADTEMPLATE) $< > $@ -to -
%.t.db.raw: %.substitutions %.template -
@echo "Inflating database from $<" -
@$(RM) $@ -
@$(MSI) -S $^ > $@ -
%.t.db.raw: %.substitutions + @echo "Inflating database from $<" + (RM) $@ + @$(DBLOADTEMPLATE) $< > $@-
to
+%.t.db.raw: %.substitutions %.template + @echo "Inflating database from $<" + @$(RM) $@ + @$(MSI) -S $^ > $@-
Remove any SRCS.c and SRCS.cc definitions
-in your application src/Makefile..*files. The depends rule no longer uses
-these definitions.
+
Remove any SRCS.c and SRCS.cc definitions in your application +src/Makefile..*files. The depends rule no longer uses these definitions.