diff --git a/README.htm b/README.htm index 5f8ffc15b..99281570e 100644 --- a/README.htm +++ b/README.htm @@ -17,7 +17,7 @@ EPICS base
Distribution directory structure:base -Root directory of the base distribution +Root directory of the base istribution +
Install directories created by the build
-
base/bin
+
Install directories created by the +build: +
base/bin
Installed scripts and executables in subdirs
base/lib
Installed libraries in arch subdirectories
@@ -309,6 +321,8 @@ WIN32 bat file to set path and env variables
base/configure directory - contains build definitions and rules
CONFIG.CrossCommon Cross build definitions
+
CONFIG.gnuCommon Gnu compiler build
+definitions for all archs
CONFIG_ADDONS Definitions
for <osclass> and DEFAULT options
CONFIG_BASE
@@ -341,7 +355,9 @@ Definitions and rules for building subdirectories
Definitions and rules for java jars and classes
RULES_TOP
Rules specific to a <top> dir (uninstall and tar)
-
+
Sample.Makefile Sample makefile
+with comments
+
If you plan to build EPICS base shared libraries instead of archive libraries, on Unix systems you will need to add fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) -to your LD_LIBRARY_PATH environment variable. On WIN32 systems, building +to your LD_LIBRARY_PATH environment variable. On WIN32 systems, building shared libraries is the default setting and you will need to add fullpathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) to your path. -Building shared libraries is determined by the value of the macro SHARED_LIBRARIES in -CONFIG_SITE (YES or NO). +Building shared libraries is determined by the value of the macro SHARED_LIBRARIES +in CONFIG_SITE (either YES or NO). Do site-specific build configuration
Site configurationR3.13 compatibility configuration
To configure EPICS, you may want to modify the default definitions in the following files: -configure/CONFIG_SITE - -Build choices. Specify your target archs. -+
configure/CONFIG_SITE_ENV - Set your environment variable -definitions -
configure/RELEASE - -TORNADO 2 full path locationconfigure/CONFIG_SITE Build +choices. Specify target archs. +
configure/CONFIG_SITE_ENV Environment variable defaults +
configure/RELEASE +TORNADO 2 full path location
Host configuration
To configure each host system, you may override the default definitions @@ -443,7 +463,7 @@ except with CONFIG in the name replaced by CONFIG_SITE. settings
A perl tool, makeBaseApp.pl is included in the distribution file. This script will create a sample application that then can be built @@ -491,12 +511,9 @@ create a sample extension that can be built and executed. The makeBaseApp.pl and makeBaseExt.pl scripts are installed into the install location bin/<hostarch> directory during the base build.-
Instructions for building and executing a 3.14 example application +Instructions for building and executing the 3.14 example application can be found in the section "Example Application" of Chapter 2, "New Features -for 3.14", in the "IOC Application Developer's Guide R3.14.0alpha2" +for 3.14", in the "IOC Application Developer's Guide R3.14.0alpha3" . The "Example Application" section briefly explains how to create and build an example application in a user created <top> directory. It also explains how to run the example application on a vxWorks ioc or diff --git a/READMEbuildingR3.13AppsWithR3.14.html b/READMEbuildingR3.13AppsWithR3.14.html index e0b167d7e..5c512f68e 100644 --- a/READMEbuildingR3.13AppsWithR3.14.html +++ b/READMEbuildingR3.13AppsWithR3.14.html @@ -83,11 +83,13 @@ div.Section1 ++ + -Building EPICS R3.13 applications with R3.14.0alpha2 base
-This document describes how to convert a R3.13 vxWorks application so that -it builds with release R3.14.0alpha2. It describes an easy way to -convert applications subject to the following restrictions: +Building EPICS R3.13 applications with R3.14.0alpha3 base
This document describes how to convert a R3.13 vxWorks application +so that it builds with release R3.14.0alpha3. It describes an easy +way to convert applications subject to the following restrictions:
- The application still uses config rules rather than the configure rules @@ -105,21 +107,26 @@ Ultimately applications should be converted to use the new configure rules so that the OSI features are available.
Gnumake clean uninstall
-At the top of the application execute: + +At the top of the application execute:+"gnumake clean uninstall"-to remove all files and directories created by earlier builds. +to remove all files and directories created by earlier builds.Update RELEASE
-Change the EPICS_BASE definition to point to the R3.14 base release. -In addition 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 described 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.+Update target arch definitions
-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. + +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 = mv167to @@ -129,28 +136,43 @@ In the iocBoot/*/Makefile files, change toARCH=<new arch name>and do a "gnumake" in the iocBoot directory to update the cdCommands -files. +files.-SNC changes
-snc is no longer in base. If snc is used in your application, you must -download and build the seq module with baseR3.14.0alpha2 or later. See -the Application Developer's Guide to see how to build sequence programs. +State Notation Language changes + +snc is no longer in base. If snc is used in your application, +you must download and build the seq module with baseR3.14.0alpha3. See +the Application Developer's Guide to see how to build sequence programs.+ +Change ++INSTALLS=seq+to +LIBOBJS = $(SEQ_BIN)/seqLibrary.o+ +
in application src/Makefile.Vx files to link seq library into your +application library, and add +SEQ=<full path to seq module directory>+to config/RELEASE.iocCore changes
-iocCore has been renamed to iocCoreLibrary.o. + +iocCore has been renamed to iocCoreLibrary.o.+
ChangeINSTALLS=iocCoretoLIBOBJS = $(EPICS_BASE_BIN)/iocCoreLibrary.o-in your application src/Makefile.Vx files to link iocCore into your application -library. +in your application src/Makefile.Vx files .
Also removeld < iocCore-from the st.cmd files in the iocBoot subdirectories. +from the st.cmd files in the iocBoot subdirectories.Library db changes
-The Db library name was changed to dbStaticHost for host builds and dbStaticIoc -for ioc builds. + +The Db library name was changed to dbStaticHost for host builds +and dbStaticIoc for ioc builds.+
ChangePROD_LIBS+=Dbto @@ -159,30 +181,37 @@ andDb_DIR=$(EPICS_BASE_LIB)todbStaticHost_DIR=$(EPICS_BASE_LIB)-in your application src/Makefile.Host files. +in your application src/Makefile.Host files.VxWorks C++ munched libraries and object 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 +changeld < exampleLibtold < exampleLibrary.munch+recGbl calls
-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.+Record support changes
-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 + +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@@ -196,17 +225,22 @@ to 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. +at APS.
RecDynLink.o and devPtSoft changes
-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.+Hardware support changes
-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. + +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 @@ -222,20 +256,22 @@ from baseLIBOBJS and add to your application src/Makefile,
and add the lineSYMB=<full path definition for the built module SYMB>- into your application config/RELEASE file . +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 +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). +search directories on the dbExpand command lines (in the INSTALL_DBDFLAGS +definition).
dbLoadtemplate tool changes
-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. + +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.+depends changes +In config/RULES.Db replace the line
DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)with @@ -246,7 +282,12 @@ and change line: to@$(MSI) $< > $@Also add the definition ++to your application config/RELEASE file.EPICS_EXTENSIONS=<full path name to epics extensions directory>-to your application config/RELEASE file. +Remove any SRCS.c and SRCS.cc definitions. +Depends no longer uses these definitions.