From 41b9b9cb070df41809c77d5e209368c8f9fcd996 Mon Sep 17 00:00:00 2001
From: Andrew Johnson If you are building on a WIN32 host add the following lines instead:
- change #include "ioccrf.h"
- change ioccrf(argv[1]);
- and change ioccrf(NULL);
- in <name>App/src/exampleMain.c. The makeBaseApp.pl script distributed with R3.14-beta1 creates st.cmd
-scripts with the proper path names.
- 2. The RTEMS TFTP remote filesystem supports a limited set of chdir
-operations.
- This document describes how to convert a R3.14.1 application so that it
-builds with release R3.14.2. MAJOR CHANGE since 3.14.1 The base supplied record and device support are now build as regular
-libraries rather than as just object files. This allows simplified build
-ruiles. The changes do require changes to: Please read the new chapter "Getting Started" of the Application
-Developer's Guide for more information about building support and ioc
-applications. Remove any 1) Include the registration support header files: This document describes how to convert a R3.14.2 application
-so that it builds and runs properly with release R3.14.3. All application iocBoot/iocxxx/st.cmd files must be modified for R3.14.3 as
-the generated routine that registers record device and driver support has been
-renamed to incorporate the name of the dbd file it came from. The change to
-the startup script is straightforward; any pair of lines like this: must have the second line changed so the result looks like this: There may be other pathname components in the dbLoadDatabase line which
-should remain exactly as before. This document describes how to convert a R3.14.3 application
-so that it builds and runs properly with release R3.14.4.
-Converting an EPICS R3.14.0 alpha2 application to beta1
This document describes how to convert a R3.14.0alpha2 application
-so that it builds with release R3.14.0beta1.
-
-Gnumake clean uninstall
-
-First do a "gnumake clean uninstall" in the application's
-root directory to remove all files created by earlier builds.
-
-
-Replace configure/RULES.ioc and configure/Makefile
-
-The rules defined in RULES.ioc have changed slightly, and new
-applications are now given a wrapper version which just includes $(EPICS_BASE)/configure/RULES.ioc.
-The new configure/Makefile contains an additional macro that causes the
-contents of the configure/RELEASE file to be checked at build time for
-consistency with all the support applications that it references. These
-files should be replaced with copies of the new versions from <base>/templates/makeBaseApp/top/configure
-
-
-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 the file baseLIBOBJS. If there are no LIBOBJS definitions in the Makefile,
-also remove
-example_OBJS += $(LIBOBJS)
-
-Libraries recIoc, softDevIoc, and testDevIoc
-
-Add the new record and dev support libraries to <name>App/src/Makefile,
-i.e. add the lines
-
-
-example_LIBS += recIoc
-
-and remove any references to iocLibrary, e.g. remove the line
-
example_LIBS += softDevIoc
-
example_LIBS += testDevIocexample_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary
-The order of references to base libraries is important so place recIoc
-and softDevIoc before the the other base library references.
-# Use win32 object libs for registered support
-
-
example_LIBS_win32 += recIocObj
-
example_LIBS_win32 += softDevIocObj
-
example_LIBS_win32 += testDevIocObj
-
example_LIBS_DEFAULT += recIoc
-
example_LIBS_DEFAULT += softDevIoc
-
example_LIBS_DEFAULT += testDevIoc
-iocrf renamed to iocsh
-
-Change all references to ioccrf in your application src directories
-to iocsh e.g.
-
-
-
to #include "iocsh.h"
-
to iocsh(argv[1]);
-
to iocsh(NULL);
-
-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
-
-LIBRARY and PROD changes
-change PROD += caExample
-
-
to PROD_HOST += caExample
-
and
-
change PROD = sncExample
-
to PROD_HOST += sncExampleThe 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 compatibility) 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>
-
-In the iocBoot/ioc<name>/st.cmd files,
-
to PROD_vxWorks = <name>
-
or
-
remove the lines LIBRARY_vxWorks = <name>
-
and PROD_RTEMS = <name>
-
and change PROD = <name>
-
to PROD_IOC = <name>.change ld < <name>Library.munch
-
-A SRCS definition is now required for every PROD and LIBRARY source
-file to determine correct header file dependancies. This is true even if
-there is only one source file for the PROD or LIBRARY . Thus, for the PROD
-caExample in your src Makefile, add the line
-
to ld < <name>.munch caExample_SRCS += caExample.c
-
-registerRecordDeviceDriver changes
-
-The created file registerRecordDeviceDriver.cpp 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
-
-RTEMS-specific pathname changes
-
-1. The RTEMS TFTP remote filesystem no longer ignores leading
-`../' components in path names. All st.cmd file lines with path names
-of the form dbLoadRecords("../../db/dbExample1.db","user=norume")
-
-
-
must be changed to
-
dbLoadRecords("db/dbExample1.db","user=norume")
-
All paths passed to chdir (or to the IOC shell `cd' command) must end
-in a `/'
-
character.
-
-
-
-
diff --git a/documentation/ConvertingR3.14.0beta1AppsTobeta2.html b/documentation/ConvertingR3.14.0beta1AppsTobeta2.html
deleted file mode 100644
index ba30e4594..000000000
--- a/documentation/ConvertingR3.14.0beta1AppsTobeta2.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Converting an EPICS R3.14.0 beta1 application to beta2
This document describes how to convert a R3.14.0beta1 application
-so that it builds with release R3.14.0beta2.
-
-Update Unix LD_LIBRARY_PATH
-
-If you build EPICS base shared libraries instead of archive
-libraries on Unix systems you will need to update your
-LD_LIBRARY_PATH environment variable to include fullpathname
-to the NEW base $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH).
-
-Update Win32 PATH
-
-On WIN32 systems, building shared libraries is the default
-setting so, unless SHARED_LIBRARIES was changed to NO, you will
-need to update your path to include fullpathname to the NEW
-base $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH).
-
-
diff --git a/documentation/ConvertingR3.14.0beta2AppsToR3.14.1.html b/documentation/ConvertingR3.14.0beta2AppsToR3.14.1.html
deleted file mode 100644
index 8fd95a667..000000000
--- a/documentation/ConvertingR3.14.0beta2AppsToR3.14.1.html
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
-
-
- Converting an EPICS R3.14.0 beta2 application to R3.14.1
This document describes how to convert a R3.14.0beta2 application
-so that it builds with release R3.14.1.
-
-No changes required.
-
diff --git a/documentation/ConvertingR3.14.1AppsToR3.14.2.html b/documentation/ConvertingR3.14.1AppsToR3.14.2.html
deleted file mode 100644
index 0f34c8059..000000000
--- a/documentation/ConvertingR3.14.1AppsToR3.14.2.html
+++ /dev/null
@@ -1,243 +0,0 @@
-
-
-
- Converting an EPICS R3.14.1 application to R3.14.2
-
-
-
-Gnumake clean uninstall
-
-
- First do a "gnumake clean uninstall" in the application's root
- directory to remove all files created by earlier builds.
-
-INSTALL_LOCATION_APP
-
-
- If your application is NOT being installed into $(TOP), move your
- INSTALL_LOCATION_APP definition to the configure/RELEASE file.
-
-Building db files from templates changed
-
-
- Now if the template needed to build <name>.db is not named
- <name>*.template add the line
-
-
-
-
-
- to the *Db/Makefile.
-
- <name>_template = <templatename>
-
-
- definitions from your <name>App/*Db/Makefile files; these definitions
- are no longer used.USES_TEMPLATE =
- File base.dbd no longer needed
-
-
- You now can add the line include "base.dbd" to your
- <appname>Include.dbd file and remove the file
- <name>App/src/base.dbd from your src directory. The base.dbd from
- R3.14.2 base/dbd will be included. However, if you only want a subset of
- record definitions from base you should keep your base.dbd
-file.
-
-Record support
-
-
- Add the following line after all existing #includes
-
-
-
-
-
- The structure rset is now a typedef so change
-
- #include "epicsExport.h"
-
-
- to
-
- struct rset
-
-
- and add the following line after the "rset <recordname>RSET="
- definition.
-
- rset
-
-
-epicsExportAddress(rset,xxxRSET);
- Device support
-
-
- Add the following line after all existing #includes
-
-
-
-
-
- and add the following line after the dset dev<devname> definition
-
- #include "epicsExport.h"
-
-
-epicsExportAddress(dset,dev<devname>);
- Driver support
-
-
- Add the following line after all existing #includes
-
-
-
-
-
- and add the following line after the drvet dev<devname> definition
-
- #include "epicsExport.h"
-
-
-epicsExportAddress(drvet,drv<devname>);
- Registration code changed
-
-
- Registration code for application specific functions, e.g. subroutine
- record init and process functions, has been changed as follows
-
-
-
-
-
- 2) Include the export definitions header file after including all other
- header files:
-
- #include "dbDefs.h"
-#include "registryFunction.h"
-
-
- 3) Make the application specific functions static functions, e.g.
-
- #include "epicsExport.h"
-
-
- 4) Define a registryFunctionRef array of the application specific functions
- to be registered, e.g.
-
- static long mySubInit(subRecord *precord,processMethod process)
-static long mySubProcess(subRecord *precord)
-
-
- 5) Add a new function to do the registration of the registryFunctionRef
- array elements, e.g.
-
- static registryFunctionRef mySubRef[] = {
- {"mySubInit",(REGISTRYFUNCTION)mySubInit},
- {"mySubProcess",(REGISTRYFUNCTION)mySubProcess}
-};
-
-
- 6) Call the epicsExportRegistrar with the new registration function: e.g.
-
- void mySub(void)
-{
- registryFunctionRefAdd(mySubRef,NELEMENTS(mySubRef));
-}
-
-
- 7) Remove the existing function lines in <appname>Include.dbd: e.g.
- remove
-
- epicsExportRegistrar(mySub);
-
-
- 8) Add a registrar statement to <name>Include.dbd with the new
- registration function as parameter: e.g. add
-
- function("mySubInit")
-function("mySubProcess")
-
-
-registrar("mySub")
- <name>App/src/Makefile changed and simplified
-
-
- 1) Libraries from support modules defined in configure/RELEASE no longer
- need the <libname>_DIR definitions. You can remove lines like the
- following from your src/Makefile
-
-
-
-
diff --git a/documentation/ConvertingR3.14.2AppsToR3.14.3.html b/documentation/ConvertingR3.14.2AppsToR3.14.3.html
deleted file mode 100644
index afd8204cc..000000000
--- a/documentation/ConvertingR3.14.2AppsToR3.14.3.html
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
- 2) Libraries from EPICS_BASE do not have to be specified individually. For
- HOST products and libraries specify the following
-
- ca_DIR = $(EPICS_BASE_LIB)
-Com_DIR = $(EPICS_BASE_LIB)
-
-
- For IOC products and libraries specify the following
-
- <myhostprodorlib>_LIBS += $(EPICS_BASE_HOST_LIBS)
-
-
- 3) All record, device, and driver support must now exist in shared
- libraries. You will need to create an IOC library containing your
- application specific support.
-
- <myiocprodorlib>_LIBS += $(EPICS_BASE_IOC_LIBS)
-
-
- 4) Add your new record, device, and driver support library to your ioc
- product's libraries: e.g.
- LIBRARY_IOC += exampleIoc
-
-exampleIoc_SRCS += xxxRecord.c
-exampleIoc_SRCS += devXxxSoft.c
-exampleIoc_SRCS += dbSubExample.c
-exampleIoc_LIBS += $(EPICS_BASE_IOC_LIBS)
-
-
-
-
- PROD_IOC = example
-
- example_LIBS += exampleIoc
- example_LIBS += $(EPICS_BASE_IOC_LIBS)
-
-
- Converting an EPICS R3.14.2 application to R3.14.3
registerRecordDeviceDriver Name Change
-
-
-
-
-dbLoadDatabase("dbd/something.dbd",0,0)
-registerRecordDeviceDriver(pdbbase)
-
-
-
-dbLoadDatabase("dbd/something.dbd",0,0)
-something_registerRecordDeviceDriver(pdbbase)
-Converting an EPICS R3.14.3 application to R3.14.4
This document describes how to convert a R3.14.4 application -so that it builds and runs properly with release R3.14.5.
- -This document describes how to convert a R3.14.5 application so that it -builds with release R3.14.6.
- - -Change " include $(TOP)/config/CONFIG_APP" to "include -$(TOP)/configure/CONFIG"
- -If they do not already exist, add the lines -
-- -DIRS += $(wildcard *ioc*)
-DIRS += $(wildcard as*)
-
Change "include $(TOP)/config/RULES.iocBoot" to "include -$(TOP)/configure/RULES_DIRS"
- -Change "include $(TOP)/config/CONFIG_APP" to "include -$(TOP)/configure/CONFIG"
- -Change
- -ARCH = <old arch specification e.g. mv167>
- -to
- -ARCH = <new arch specification e.g. -vxWorks-68040>
- -Change "include $(TOP)/config/RULES.ioc" to "include -$(TOP)/configure/RULES.ioc"
- -If it exists remove the line
- -buildInstall: cdCommands
- -Add the line
-TARGETS = cdCommands
-before the include for RULES.ioc line.
- -Remove the lines
-ld < seq -ld < iocCore- -
Change "ld < <libname>Lib" to "ld < -<libname>.munch"
- -Change "cd appbin" to "cd topbin"
- -Change the statement:
- -dbLoadDatabase("../../dbd/<name>App.dbd")
-
dbLoadDatabase("../../dbd/<name>.dbd")
-<name>_registerRecordDeviceDriver(pdbbase)
-
-where <name> is replaced with the name of your dbd file.
- -If any source file makes calls to recGbl routines make sure it has "#include "recGbl.h". If it doesn't the -compiler will issue warning messages and the ioc may issue the message: -"undefined symbol: _recGblSetSevr".
- -The steppermotor, scan, and pid records are no longer in base. If these -records are not used in your application, comment out references to them in -base.dbd. If these record types are used at your site, they should be -downloaded and built with base R3.14 by your EPICS administrator. To update -the R3.14 location of these record types in your application you must add -appropriate module definitions to your application's config/RELEASE file and -add LIBOBJS definitions to the src Makefile.
- -For example add
- -PID=<full path to modules directory>/pid -- -
to config/RELEASE and add
-
-
LIBOBJS += $(PID_BIN)/pidRecord.o --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.
- -recDynLink.o and devPtSoft.o are no longer in EPICS base and now exist as -separate EPICS modules.You must now 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. See -"Hardware support changes" below for instructions.
- -All hardware support (dev, drv and dbd files) except soft support has been -unbundled from base R3.14. This support includes the files symb.dbd, -drvHp1404a.o, drvEpvxiMsg.o, and drvEpvxi.o. If these are not used by your -application, comment out references to them in base.dbd.
- -Hardware support now exists as separate EPICS modules. The hardware -support for your site should be downloaded and built with base R3.14 by your -EPICS administrator. You must now add the appropriate module full path -definitions to your application config/RELEASE file, and change -LIBOBJS location from $(EPICS_BASE_BIN) to the module bin -directory in your application src directory files.
- -For example, remove
- -LIBOBJS+=$(EPICS_BASE_BIN)/symb -- -
from baseLIBOBJS and add
- -LIBOBJS+=$(SYMB_BIN)/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 .
- -The host tool dbLoadTemplate has been replace by a new EPICS extension, -msi, which should be downloaded and built with base R3.14 by your EPICS -administrator. dbLoadTemplate is still supported on iocs. If, in your -application, db files are created from template and substitution files you -should add the definition
- -MSI=<full path name to msi executable>
- -to your application config/RELEASE file.
- - diff --git a/documentation/ConvertingR3.14.6AppsToR3.14.7.html b/documentation/ConvertingR3.14.6AppsToR3.14.7.html deleted file mode 100644 index cc845c11e..000000000 --- a/documentation/ConvertingR3.14.6AppsToR3.14.7.html +++ /dev/null @@ -1,45 +0,0 @@ - - - -This document describes how to convert a R3.14.6 application so that it -builds with release R3.14.7.
- - --To make the run-time code reentrant, thus allowing more than one -instance of the state program to run on an IOC add the line -- -<name>_SNCFLAGS += +r"to the Makefile, replacing <name> with the -state notation language code file name. -
-Code that calls exit or atexit should change these calls to epicsExit -and epicsAtExit. epicsAtExit was created because of problems on -vxWorks and windows with the implementation of atexit, -i.e. neither of these systems implements exit and atexit according to the POSIX standard. --
- Add the following lines -- diff --git a/documentation/ConvertingR3.14.7AppsToR3.14.8.html b/documentation/ConvertingR3.14.7AppsToR3.14.8.html deleted file mode 100644 index 207d7525e..000000000 --- a/documentation/ConvertingR3.14.7AppsToR3.14.8.html +++ /dev/null @@ -1,23 +0,0 @@ - - - ----#include "epicsExit.h" -epicsExit(0); --
This document describes how to convert a R3.14.7 application -so that it builds and runs properly with release R3.14.8.
- -Please review the COPYRIGHT* files included in the ++Please review the LICENSE file included in the distribution for legal terms of usage.Supported platforms
-Currently this version of EPICS base has been built on the - following hosts for the following targets. If you are trying to build - EPICS base on a different host or for a different target machine you - must get the proper host/target cross compiler and header files, and + +The list of platforms supported by this version of EPICS base + is given in the configure/CONFIG_SITE file. If you are trying to build + EPICS Base on an unlisted host or for a different target machine you + must have the proper host/target cross compiler and header files, and you will have to create and add the appropriate new configure files to the base/configure/os/directory. You can start by copying existing configuration files in the configure/os directory and then make changes - for your new platforms.- -+ for your new platforms.Host platforms (operating system - architecture [- alternate - toolset])
--- -cygwin-x86 (unix style API, uses cygwin1.dll compatability library) -darwin-ppc -darwin-x86 -darwin-ppcx86 -freebsd-x86 -freebsd-x86_64 -linux-ppc -linux-x86 -linux-x86_64 -linux-x86-borland -solaris-sparc -solaris-sparc-gnu -solaris-sparc64 -solaris-sparc64-gnu -solaris-x86 -solaris-x86-gnu -win32-x86 -win32-x86-mingw (WIN32 API, uses MS dlls) -win32-x86-cygwin (WIN32 API, uses MS dlls) --Cross compile target platforms (operating system - architecture)
---linux-386 -linux-486 -linux-586 -linux-686 -linux-arm -linux-arm_eb -linux-arm_el -linux-athlon -linux-cris -linux-cris_v10 -linux-cris_v32 -linux-xscale_be -vxWorks-486 -vxWorks-68040 -vxWorks-68040lc -vxWorks-68060 -vxWorks-pentium -vxWorks-ppc603 -vxWorks-ppc603_long -vxWorks-ppc604 -vxWorks-ppc604_long -vxWorks-ppc604_altivec -vxWorks-mpc8540 -RTEMS-at91rm9200ek -RTEMS-beatnik -RTEMS-gen68360 -RTEMS-mcp750 -RTEMS-mvme167 -RTEMS-mvme2100 -RTEMS-mvme3100 -RTEMS-mvme5500 -RTEMS-pc386 -RTEMS-psim -RTEMS-uC5282 --Supported compilers
-This version of EPICS base has been built and tested using - the host vendor's C and C++ compilers as well as the GNU gcc and g++ - compilers. The GNU cross-compilers have been used for all - cross-compiled targets. You may need the host vendor's C++ compiler in - your search path to do EPICS builds. Check definitions of CC and CCC in - base/configure/os/CONFIG.<host>.<host>.+ +This version of EPICS base has been built and tested using the host + vendor's C and C++ compilers, as well as the GNU gcc and g++ compilers. The GNU + cross-compilers work for all cross-compiled targets. You may need the C and C++ + compilers to be in your search path to do EPICS builds; check the definitions + of CC and CCC in base/configure/os/CONFIG.<host>.<host> if you have + problems.Software requirements
-GNU make -+
You must use GNU make, gnumake, for any EPICS builds. Set your path +GNU make+
+ You must use GNU make, gnumake, for any EPICS builds. Set your path so that a gnumake version 3.81 or later is available. -gcc -
+
For most cases, you must have gcc version 3.4.2 or later. - Appropriate versions of vendor C and C++ compilers may be used for - native compilation.Perl
-
+ You must have Perl version 5.8.1 or later installed. The EPICS configuration + files do not specify the perl full pathname, so the perl executable must + be found through your normal search path.Perl -
- -
You must have perl version 5.8.1 or later installed. The configure - files do not specify the perl full pathname. You need the perl - executable in your search path.Unzip and tar (Winzip on WIN32 systems) -
You must have tools available to unzip and untar the EPICS base +Unzip and tar (Winzip on WIN32 systems)
-
+ You must have tools available to unzip and untar the EPICS base distribution file.Target systems -
EPICS supports IOCs running on embedded platforms such as VxWorks - and RTEMS via cross-compilers. EPICS also supports ?soft? IOCs running +Target systems
-
+ EPICS supports IOCs running on embedded platforms such as VxWorks + and RTEMS built using a cross-compiler, and also supports soft IOCs running as processes on the host platform.Tornado 2 -
+
You must have Tornado 2 installed if any of your target systems are - vxWorks systems. Tornado 2 provides the cross-compiler and header files - needed to build for these target systems. The full path location to - Tornado 2 should be specified in the base/configure/RELEASE or - base/configure/RELEASE.<hostarch> file. You will also need one or more - board support packages. Consult the vxWorks documentation for details.vxWorks
-
+ You must have vxWorks installed if any of your target systems are + vxWorks systems. This provides the cross-compiler and header files + needed to build for these target systems. The absolute path to and version + number of the vxWorks installation is normally specified in the + base/configure/os/CONFIG_SITE.Common.vxWorksCommon file. Consult the EPICS web + pages about vxWorks + 5.x and vxWorks + 6.x and the vxWorks documentation for information about configuring your + vxWorks operating system for use with EPICS.RTEMS -
-
For RTEMS targets, you need RTEMS core and toolset version 4.9.2 or later.GNU readline or Tecla library -
GNU readline and Tecla librararies can be used by the IOC shell to +RTEMS
+ +
+ For RTEMS targets, you need RTEMS core and toolset version 4.9.2 or later.GNU readline or Tecla library
+ supplied by the os. On vxWorks the ledLib command-line input library is + used instead.
+ GNU readline and Tecla librararies can be used by the IOC shell to provide command line editing and command line history recall and edit. GNU readline (or Tecla library) must be installed on your target system when COMMANDLINE_LIBRARY is set to READLINE (or TECLA) for that target. @@ -173,287 +111,207 @@ RTEMS-uC5282 Comment out COMMANDLINE_LIBRARY=READLINE in configure/os/CONFIG_SITE.Common.linux-x86 if readline is not installed on linux-x86. Command-line editing and history will then be those - supplied by the os. On vxWorks the ledLib command-line input libraries - are used.Host system storage requirements
The GNU zipped tar file is approximately 1.5 MB in size. The - unzipped untarred distribution source tree is approximately 7.4 MB. The + unzipped untarred distribution source tree is approximately 9.0 MB. The build created files for each host take approximately 37 MB and the build created files for each cross target take approximately 15 MB.+Documentation
-EPICS documentation is available on the WWW via the EPICS - home page at APS: URL - http://www.aps.anl.gov/epics by selection IOC software/ Base - R3.14/-. - Release specific documenataion can be found in the base/documentation -directory of the distribution. --WWW pages
--+EPICS home page at APS
--http://www.aps.anl.gov/epics-Other WWW sites
-Additional information on EPICS can be found at the various - other WWW links on the EPICS home page at APS.-Mailing List
-There is an EPICS mailing list called tech-talk which is - hosted at APS with a list repeater at BESSY. See the EPICS home page - for subscription instructions.EPICS documentation is available through the + EPICS website at Argonne. ++Release specific documenataion can also be found in the base/documentation + directory of the distribution.
Directory Structure
+Distribution directory structure:
-- base Root directory of the base distribution -+ +
base/config R3.13 compatibility build - configuration files -
base/config/tools Perl and shell scripts used - in the R3.13 build -
base/configure Operating system independent - build config files -
base/configure/os Operating system dependent - build config files -
base/configure/tools Perl and shell scripts used - in the build -
base/documentation Distributation documentation -
base/src All epics base source code in - subdirectories -
base/src/RTEMS Code to configure RTEMS for - EPICS -
base/src/as Access security -
base/src/bpt Break point table -
base/src/ca Channel access -
base/src/cap5 Channel Access client - interface for Perl 5 -
base/src/cas Channel access server library - and examples -
base/src/catools Channel access tools caget, - cainfo, camonitor, caput -
base/src/db Database access -
base/src/db/test Database access tests -
base/src/dbStatic Static database access -
base/src/dbtools Database dbLoadTemplate tools -
base/src/dev Device support (camacDev, - softDev, and testDev) -
base/src/excas Example channel access server -
base/src/gdd General data descriptor -
base/src/libCom General purpose library code - in subdirectories -
base/src/libCom/bucketLib Hash bucket -
base/src/libCom/calc Algebraic expression - interpreter -
base/src/libCom/cppStd Support for C++ standard - template library -
base/src/libCom/cvtFast Fast number to string - conversion -
base/src/libCom/cxxTemplates C++ templates and templates - tests -
base/src/libCom/dbmf Memory management for - frequent alloc/free -
base/src/libCom/ellLib EPICS double linked list -
base/src/libCom/env Default EPICS environment - settings -
base/src/libCom/error Error handling definitions - and routines -
base/src/libCom/fdmgr File descriptor manager -
base/src/libCom/freeList Memory management using free - lists -
base/src/libCom/gpHash General purpose hash table -
base/src/libCom/logClient Logging client -
base/src/libCom/macLib Macro substitution handler -
base/src/libCom/misc Miscellaneous utilities -
base/src/libCom/osi Operating system independent - code -
base/src/libCom/osi/os Operating system dependant - code in subdirectories -
base/src/libCom/ring Methods for creating and - using ring buffers -
base/src/libCom/taskwd Task watchdog -
base/src/libCom/test Test tools (timer, semBinary, - semMutex,fdmgr, ...) -
base/src/libCom/timer Timer -
base/src/libCom/tsDefs R3.13 time stamp definitions - and routines -
base/src/makeBaseApp Perl tool+templates to create - ioc app dvl tree -
base/src/makeBaseExt Perl tool+templates to create - extension dvl tree -
base/src/misc Miscellaneous (coreRelease, - iocInit, asSub*) -
base/src/rec Record support -
base/src/registry EPICS support function - registry -
base/src/rsrv Channel access ioc resource - server library -
base/src/softIoc Example softIoc -
base/src/tools Perl scripts used during the - builds -
base/src/toolsComm Code for the build tools - antelope and e_flex -
base/src/util Utilities (ca_test, - iocLogServer, startCArepeater) -
base/src/vxWorks R3.13 compatibility code - specific to vxWorks -
base/startup Scripts for setting up path - and environment -+ base Root directory of the base distribution + base/config R3.13 compatibility build configuration files + base/config/tools Perl and shell scripts used in the R3.13 build + base/configure Operating system independent build config files + base/configure/os Operating system dependent build config files + base/configure/tools Perl and shell scripts used in the build + base/documentation Distributation documentation + base/src All epics base source code in subdirectories + base/src/RTEMS Code to configure RTEMS for EPICS + base/src/as Access security + base/src/bpt Break point table + base/src/ca Channel access + base/src/cap5 Channel Access client interface for Perl 5 + base/src/cas Channel access server library and examples + base/src/catools Channel access tools caget, cainfo, camonitor, caput + base/src/db Database access + base/src/db/test Database access tests + base/src/dbStatic Static database access + base/src/dbtools Database dbLoadTemplate tools + base/src/dev Device support (camacDev, softDev, and testDev) + base/src/excas Example channel access server + base/src/gdd General data descriptor + base/src/libCom General purpose library code in subdirectories + base/src/libCom/bucketLib Hash bucket + base/src/libCom/calc Algebraic expression interpreter + base/src/libCom/cppStd Support for C++ standard template library + base/src/libCom/cvtFast Fast number to string conversion + base/src/libCom/cxxTemplates C++ templates and templates tests + base/src/libCom/dbmf Memory management for frequent alloc/free + base/src/libCom/ellLib EPICS double linked list + base/src/libCom/env Default EPICS environment settings + base/src/libCom/error Error handling definitions and routines + base/src/libCom/fdmgr File descriptor manager + base/src/libCom/freeList Memory management using free lists + base/src/libCom/gpHash General purpose hash table + base/src/libCom/logClient Logging client + base/src/libCom/macLib Macro substitution handler + base/src/libCom/misc Miscellaneous utilities + base/src/libCom/osi Operating system independent API + base/src/libCom/osi/os Operating system dependant code in subdirectories + base/src/libCom/ring Methods for creating and using ring buffers + base/src/libCom/taskwd Task watchdog + base/src/libCom/test Test tools (timer, semBinary, semMutex,fdmgr, ...) + base/src/libCom/timer Timer + base/src/libCom/tsDefs R3.13 time stamp definitions and routines + base/src/makeBaseApp Perl tool+templates to create ioc app dvl tree + base/src/makeBaseExt Perl tool+templates to create extension dvl tree + base/src/misc Miscellaneous (coreRelease, iocInit, asSub*) + base/src/rec Record support + base/src/registry EPICS support function registry + base/src/rsrv Channel access ioc resource server library + base/src/softIoc Example softIoc + base/src/tools Perl scripts used during the builds + base/src/toolsComm Code for the build tools antelope and e_flex + base/src/util Utilities (ca_test, iocLogServer, startCArepeater) + base/src/vxWorks R3.13 compatibility code specific to vxWorks + base/startup Scripts for setting up path and environment ++Install directories created by the build:
--+bin Installed scripts and executables in - subdirs -
-
cfg Installed build configuration - files -
db Installed data bases -
dbd Installed data base definitions -
doc Installed documentation files -
html Installed html documentation -
include Installed header files -
include/os Installed os specific header files - in subdirs -
javalib Installed java class and jar files -
lib Installed libraries in arch - subdirectories -
lib/perl Installed perl modules -
templates Installed templates+ bin Installed scripts and executables in subdirs + cfg Installed build configuration files + db Installed data bases + dbd Installed data base definitions + doc Installed documentation files + html Installed html documentation + include Installed header files + include/os Installed os specific header files in subdirs + javalib Installed java class and jar files + lib Installed libraries in arch subdirectories + lib/perl Installed perl modules + templates Installed templates +Build related components
-+base/documentation/README* files
-- README.1st Instructions for setup and building epics - base --
README.html html version of README.1st -
README.WIN32 Microsoft WIN32 specific instructions -
README.cxxTemplates Information about C++ templates in EPICS - base -
README.niCpu030 NI cpu030 specific instructions -
README.darwin Installation notes for Mac OS X (Darwin) -
RELEASE_NOTES.html Notes on release changes -
KnownProblems.html List of known problems and workarounds -
Converting*To*.html Release specific conversion instructions -
Building*With*.html Release specific build instructions -base/startup directory - contains scripts to set environment and path
-- EpicsHostArch c shell script to set EPICS_HOST_ARCH env - variable --
EpicsHostArch.pl perl script to set EPICS_HOST_ARCH env - variable -
Site.profile bourne shell script to set path and env - variables -
Site.cshrc c shell script to set path and env - variables -
borland.bat WIN32 bat file to set borland path and env - variables -
cygwin.bat WIN32 bat file to set cygwin path and env - variables -
win32.bat WIN32 bat file to set path and env - variables -
win32-debug.bat WIN32 debug bat file to set debug path and - env variables -base/configure directory - contains build definitions and rules
--CONFIG Includes configure files and allows - variable overrides --
CONFIG.CrossCommon Cross build definitions -
CONFIG.gnuCommon Gnu compiler build definitions for all - archs -
CONFIG_ADDONS Definitions for <osclass> and DEFAULT - options -
CONFIG_BASE EPICS base tool and location definitions -
CONFIG_BASE_VERSION Definitions for EPICS base version number -
CONFIG_COMMON Definitions common to all builds -
CONFIG_ENV Definitions of EPICS environment - variables -
CONFIG_SITE Site specific make defintions -
CONFIG_SITE_ENV Site defaults for EPICS environment - variables -
MAKEFILE Installs CONFIG* RULES* creates - CONFIG_APP_INCLUDE -
RELEASE Location of external products such as - Tornado II -
RULES Includes appropriate rules file -
RULES.Db Rules for database and database - definition files -
RULES.ioc Rules for application iocBoot/ioc* - directory -
RULES_ARCHS Definitions and rules for building - architectures -
RULES_BUILD Build and install rules and definitions -
RULES_DIRS Definitions and rules for building - subdirectories -
RULES_JAVA 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 -
-base/configure/os directory - contains os-arch specific definitions
-- CONFIG.<host>.<target> Specific host-target build - definitions --
CONFIG.Common.<target> Specific target definitions for all - hosts -
CONFIG.<host>.Common Specific host definitions for all - targets -
CONFIG.UnixCommon.Common Definitions for Unix hosts and all - targets -
CONFIG.Common.UnixCommon Definitions for Unix targets and - all hosts -
CONFIG.Common.vxWorksCommon Specific host definitions for all - vx targets -
CONFIG_COMPAT R3.13 arch compatibility - definitions -
CONFIG_SITE.<host>.<target> Site specific host-target - definitions -
CONFIG_SITE.Common.<target> Site specific target defs for all - hosts -
CONFIG_SITE.<host>.Common Site specific host defs for all - targets -
-base/src/tools directory - contains Perl scripts used for the build
-- Makefile Makefile for installing the scripts into cfg dir+ +
- convertRelease.pl Performs consistancy checks on RELEASE - files -
cvsclean.pl Remove all .#* files in directory tree -
dos2unix.pl Converts text file from DOS CR/LF to unix ISO -
expandvars.pl Tool to expand @VAR@ variables while copying a file -
filterWarnings.pl Filters warning messages during HP - builds -
fullpathName.pl Returns fullpath name of directory arg -
installEpics.pl Installs built files into install - directories -
makeIncludeDbd.pl Creates *Include.dbd file from filename - args files -
makeMakefile.pl Creates a Makefile in O.<arch> dirs -
makeTestfile.pl Generates a test harness $target.t file -
mkmf.pl Generates dependencies from include - stmnts -
munch.pl Creates a ctdt.c file for vxWorks - targets -
replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation -
useManifestTool.pl Use MS VC++ version to set usage of Manifest Tool -base/documentation/README* files
++ README.1st Instructions for setup and building epics base + README.html html version of README.1st + README.WIN32 Microsoft WIN32 specific instructions + README.cxxTemplates Information about C++ templates in EPICS base + README.niCpu030 NI cpu030 specific instructions + README.darwin Installation notes for Mac OS X (Darwin) + RELEASE_NOTES.html Notes on release changes + KnownProblems.html List of known problems and workarounds + Converting*To*.html Release specific conversion instructions + Building*With*.html Release specific build instructions ++ +base/startup directory - contains scripts to set environment and path
++ EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable + EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable + Site.profile bourne shell script to set path and env variables + Site.cshrc c shell script to set path and env variables + borland.bat WIN32 bat file to set borland path and env variables + cygwin.bat WIN32 bat file to set cygwin path and env variables + win32.bat WIN32 bat file to set path and env variables + win32-debug.bat WIN32 debug bat file to set debug path and env variables ++ +base/configure directory - contains build definitions and rules
++ CONFIG Includes configure files and allows variable overrides + CONFIG.CrossCommon Cross build definitions + CONFIG.gnuCommon Gnu compiler build definitions for all archs + CONFIG_ADDONS Definitions for <osclass> and DEFAULT options + CONFIG_BASE EPICS base tool and location definitions + CONFIG_BASE_VERSION Definitions for EPICS base version number + CONFIG_COMMON Definitions common to all builds + CONFIG_ENV Definitions of EPICS environment variables + CONFIG_SITE Site specific make defintions + CONFIG_SITE_ENV Site defaults for EPICS environment variables + MAKEFILE Installs CONFIG* RULES* creates + CONFIG_APP_INCLUDE + RELEASE Location of external products + RULES Includes appropriate rules file + RULES.Db Rules for database and database definition files + RULES.ioc Rules for application iocBoot/ioc* directory + RULES_ARCHS Definitions and rules for building architectures + RULES_BUILD Build and install rules and definitions + RULES_DIRS Definitions and rules for building subdirectories + RULES_JAVA 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 ++ +base/configure/os directory - contains os-arch specific definitions
++ CONFIG.<host>.<target> Specific host-target build definitions + CONFIG.Common.<target> Specific target definitions for all hosts + CONFIG.<host>.Common Specific host definitions for all targets + CONFIG.UnixCommon.Common Definitions for Unix hosts and all targets + CONFIG.Common.UnixCommon Definitions for Unix targets and all hosts + CONFIG.Common.vxWorksCommon Specific host definitions for all vx targets + CONFIG_COMPAT R3.13 arch compatibility definitions + CONFIG_SITE.<host>.<target> Site specific host-target definitions + CONFIG_SITE.Common.<target> Site specific target defs for all hosts + CONFIG_SITE.<host>.Common Site specific host defs for all targets ++ +base/src/tools directory - contains Perl scripts used for the build
++ Makefile Makefile for installing the scripts into cfg dir + convertRelease.pl Performs consistancy checks on RELEASE files + cvsclean.pl Remove all .#* files in directory tree + dos2unix.pl Converts text file from DOS CR/LF to unix ISO + expandvars.pl Tool to expand @VAR@ variables while copying a file + filterWarnings.pl Filters warning messages during HP builds + fullpathName.pl Returns fullpath name of directory arg + installEpics.pl Installs built files into install directories + makeIncludeDbd.pl Creates *Include.dbd file from filename args files + makeMakefile.pl Creates a Makefile in O.<arch> dirs + makeTestfile.pl Generates a test harness $target.t file + mkmf.pl Generates dependencies from include stmnts + munch.pl Creates a ctdt.c file for vxWorks targets + replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation + useManifestTool.pl Use MS VC++ version to set usage of Manifest Tool +Building EPICS base (Unix and Win32)
++ rebuild to ensure that all components will be rebuilt.Unpack file
Unzip and untar the distribution file. Use WinZip on Windows systems.+Set environment variables
Files in the base/startup directory have been provided to - help set required path and other environment variables . -+EPICS_HOST_ARCH -
Before you can build or use EPICS R3.14, the environment variable + help set required path and other environment variables. + +EPICS_HOST_ARCH
-
+ Before you can build or use EPICS R3.14, the environment variable EPICS_HOST_ARCH must be defined. A perl script EpicsHostArch.pl in the base/startup directory has been provided to help set EPICS_HOST_ARCH. You should have EPICS_HOST_ARCH set to your host operating system @@ -463,19 +321,22 @@ Files in the base/startup directory have been provided to (e.g. "-gnu" for GNU c/c++ compilers on a solaris host or "-borland" for Borland c/c++ compilers on a WIN32 host). See configure/CONFIG_SITE for a list of supported EPICS_HOST_ARCH values.PERLLIB -
On WIN32, some versions of Perl require that the environment + +PERLLIB
-
+ On WIN32, some versions of Perl require that the environment variable PERLLIB be set to <perl directory location>.PATH -
As already mentioned, you must have the perl executable and you may + +PATH
-
+ As already mentioned, you must have the perl executable and you may need C and C++ compilers in your search path. For building base you also must have echo in your search path. For Unix host builds you also need ln, cpp, cp, rm, mv, and mkdir in your search path and /bin/chmod must exist. On some Unix systems you may also need ar and ranlib in - your path, and the c compiler may require as and ld in your path. On + your path, and the C compiler may require as and ld in your path. On solaris systems you need uname in your path.LD_LIBRARY_PATH -
It is no longer necessary to have LD_LIBRARY_PATH include EPICS + +LD_LIBRARY_PATH
-
+ It is no longer necessary to have LD_LIBRARY_PATH include EPICS directories on a Unix type system. R3.14 shared libraries and executables will contain the full path name to libraries they require. However, if you move the EPICS directories from their build-time @@ -486,72 +347,83 @@ Files in the base/startup directory have been provided to hosts. NOTE: You will still need LD_LIBRARY_PATH for R3.13 extension shared libraries even if the R3.13 extensions are built with R3.14 base.Win32 PATH -
On WIN32 systems, for R3.14.7 and later, it is no longer necessary + +Win32 PATH
+ On WIN32 systems, for R3.14.7 and later, it is no longer necessary to add fullpathname to $(INSTALL_LOCATION)/bin/$(EPICS_HOST_ARCH) to your path for finding dlls during EPICS builds. The win32 configure files in base now add this directory to the path definition.Do site-specific build configuration
-Site configuration --
To configure EPICS, you may want to modify the default definitions + +Site configuration
+ To configure EPICS, you may want to modify the default definitions in the following files: -- configure/CONFIG_SITE -Build choices. Specify target archs.Host configuration -
- configure/CONFIG_SITE_ENV - Environment variable defaults
- configure/RELEASE - TORNADO2 full path location -
To configure each host system, you may override the default ++ configure/CONFIG_SITE Build choices. Specify target archs. + configure/CONFIG_SITE_ENV Environment variable defaults + configure/RELEASE TORNADO2 full path location ++ + Host configuration
+ To configure each host system, you may override the default definitions by adding a new file in the configure/os directory with override definitions. The new file should have the same name as the distribution file to be overridden except with CONFIG in the name - changed to CONFIG_SITE.- configure/os/CONFIG.<host>.<host> - - Host build settingsTarget configuration -
- configure/os/CONFIG.<host>.Common - - Host common build settings -
To configure each target system, you may override the default + changed to CONFIG_SITE. + ++ configure/os/CONFIG.<host>.<host> Host build settings + configure/os/CONFIG.<host>.Common Host common build settings ++ +Target configuration
+ To configure each target system, you may override the default definitions by adding a new file in the configure/os directory with override definitions. The new file should have the same name as the distribution file to be overridden except with CONFIG in the name replaced by CONFIG_SITE. This step is necessary even if the host system - is the only target system.- configure/os/CONFIG.Common.<target> - Target common settings- R3.13 compatibility configuration -
- configure/os/CONFIG.<host>.<target> - Host-target settings -
To configure EPICS base for building with R3.13 extensions and ioc + is the only target system. ++ configure/os/CONFIG.Common.<target> Target common settings + configure/os/CONFIG.<host>.<target> Host-target settings ++ +R3.13 compatibility configuration
+ To configure EPICS base for building with R3.13 extensions and ioc applications , you must modify the default definitions in the base/config/CONFIG_SITE* files to agree with definitions you made in base/configure and base/configure/os files.Build EPICS base
+ +Build EPICS base
After configuring the build you should be able to build EPICS base by issuing the following commands in the distribution's root - directory (base)gnumake clean uninstall -The command "gnumake clean uninstall" + directory (base): +
gnumake+ gnumake clean uninstall + gnumake ++ + The command "gnumake clean uninstall" will remove all files and directories generated by a previous build. The command "gnumake" will build and install everything for the configured host and targets. -
It is recommended that you do a "gnumake clean uninstall" at the + +It is recommended that you do a "gnumake clean uninstall" at the root directory of an EPICS directory structure before each complete - rebuild to ensure that all components will be rebuilt.
A perl tool, makeBaseApp.pl is included in the distribution file. This script will create a sample application that can be built and then executed to try out this release of base. -
+-Instructions for building and executing the 3.14 example application can be found in the section "Example Application" of Chapter 2, "Getting Started", in the "IOC Application Developer's Guide" for this @@ -562,14 +434,15 @@ Build choices. Specify target archs.
By running the example application as a host-based IOC, you will be able to quickly implement a complete EPICS system and be able to run channel access clients on the host system. -
+ ++A perl script, makeBaseExt.pl, is included in the distribution file. This script will 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.
You can build using a single EPICS directory structure on multiple host systems and for multiple cross target systems. The @@ -584,7 +457,8 @@ Build choices. Specify target archs.- + host/target C/C++ cross compiler and target header files and the + base/configure/os directory must have the appropriate configure files. + + diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index 00a4f730e..ecbcff338 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -13,6 +13,12 @@
subdirectories, This allows objects for multiple cross target architectures to be maintained at the same time. To build EPICS base for a specific host/target combination you must have the proper - host/target c/c++ cross compiler and target header files and the - base/configure/os directory must have the appropriate configure files.
64-bit binaries for Microsoft Windows platforms can now be built using the +target architecture windows-x64, which is also a valid cross-build target for a +win32-x86 host. We do not currently support 64-bit MinGW or Cygwin builds.
+Kazuro Furukawa has been unable to compile EPICS Base on this target for the