diff --git a/documentation/README.1st b/documentation/README.1st index e8b4bb002..fa001e9a7 100644 --- a/documentation/README.1st +++ b/documentation/README.1st @@ -1,488 +1,504 @@ README.1st + Installation Instructions - Installation Instructions + EPICS base - EPICS base + Release 3.14.* - Release 3.14.* +Table of Contents + + * What is EPICS base? + * What is new in this release? + * Copyright + * Supported platforms + * Supported compilers + * Software requirements + * Host system storage requirements + * Documentation + * WWW pages + * Directory Structure + * Build related components + * Building EPICS base (Unix and Win32) + * Example application and extension + * Multiple host platforms What is EPICS base? - The Experimental Physics and Industrial Control Systems (EPICS) is - an extensible set of software components and tools with which - application developers can create a control system. This control system - can be used to control accelerators, detectors, telescopes, or other - scientific experimental equipment. EPICS base is the set of core - software, i.e. the components of EPICS without which EPICS would not - function. EPICS base allows an arbitrary number of target systems, - IOCs (input/output controllers), and host systems, OPIs (operator - interfaces) of various types. + The Experimental Physics and Industrial Control Systems (EPICS) is an + extensible set of software components and tools with which application + developers can create a control system. This control system can be used to + control accelerators, detectors, telescopes, or other scientific + experimental equipment. EPICS base is the set of core software, i.e. the + components of EPICS without which EPICS would not function. EPICS base + allows an arbitrary number of target systems, IOCs (input/output + controllers), and host systems, OPIs (operator interfaces) of various types. What is new in this release? - Please check the RELEASE_NOTES file in the distribution for description - of changes and release migration details. + Please check the RELEASE_NOTES file in the distribution for description of + changes and release migration details. Copyright - Please review the COPYRIGHT* files included in the distribution for - legal terms of usage. + Please review the COPYRIGHT* files 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 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. + 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 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. - Host platforms (operating system - architecture [- alternate toolset]) + Host platforms (operating system - architecture [- alternate toolset]) - cygwin-x86 - 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-x86-cygwin + 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) + 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 + 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... + 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... Software requirements - 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. + 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. - Perl - You must have perl version 5.8 or later installed. The configure files do - not specify the perl full pathname. You need the perl executable in - your search path. + 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. - Unzip and tar (Winzip on WIN32 systems) - You must have tools available to unzip and untar the EPICS base - distribution file. + Perl + You must have perl version 5.8 or later installed. The configure files do + not specify the perl full pathname. You need the perl executable in your + search path. - 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. file. You will also need one or - more board support packages. Consult the vxWorks documentation for - details. + Unzip and tar (Winzip on WIN32 systems) + You must have tools available to unzip and untar the EPICS base distribution + file. - GNU readline or Tecla library - 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. - EPICS (EPICS shell) is the default specified in CONFIG_COMMON. A READLINE - override is defined for linux-x86 in the EPICS distribution. 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. + Target systems + EPICS supports IOCs running on embedded platforms such as VxWorks and RTEMS + via cross-compilers. EPICS 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. file. You will also need one or more board + support packages. Consult the vxWorks documentation for details. + + RTEMS + For RTEMS targets, you must use RTEMS version 4.9.2 or later. + + GNU readline or Tecla library + 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. EPICS + (EPICS shell) is the default specified in CONFIG_COMMON. A READLINE override + is defined for linux-x86 in the EPICS distribution. 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.4 MB in size. The unzipped - untarred distribution source tree is approximately 7.5 MB. The build - created files for each host take approximately 40 MB and the build - created files for each target take approximately 10 MB. + The GNU zipped tar file is approximately 1.4 MB in size. The unzipped + untarred distribution source tree is approximately 7.3 MB. The build created + files for each host take approximately 40 MB and the build created files for + each target take approximately 10 MB. Documentation - EPICS documentation is available on the WWW via the EPICS home - page at APS: URL http://www.aps.anl.gov/epics - - This README.1st file is in the base distribution and available on the - IOC software, Base R3.14, release number, web page which can be accessed - from the APS EPICS home page. + EPICS documentation is available on the WWW via the EPICS home page at APS: + URL http://www.aps.anl.gov/epics available on the IOC software, Base R3.14, + release number, web page which can be accessed from the APS EPICS home page. WWW pages - EPICS home page at APS + EPICS home page at APS - http://www.aps.anl.gov/epics + http://www.aps.anl.gov/epics - Other WWW sites + Other WWW sites - Additional information on EPICS can be found at the - various other WWW links on the EPICS home page at APS. + Additional information on EPICS can be found at the various other WWW + links on the EPICS home page at APS. - Mailing List + 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. + 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. Directory Structure - 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 build 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/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 (softDev and testDev) - base/src/excas Example channel access server - base/src/gdd General data descriptor - base/src/iocsh Ioc shell command interpreter - 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/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/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/iocsh ioc shell call registered functions + 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 - Install directories created by the build: + Install directories created by the build: - base/bin Installed scripts and executables in subdirs - base/db Installed data bases - base/dbd Installed data base definitions - base/html Installed html documentation - base/include Installed header files - base/include/os Installed os specific header files - base/javalib Installed java class files - base/lib Installed libraries in arch subdirectories - base/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 + base/documentation 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 + 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 - 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 bat file to set debug path and env variables - - base/configure directory - contains build definitions and rules + base/startup directory - contains scripts to set environment and path - 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 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 dir (uninstall and tar) - Sample.Makefile Sample makefile with comments - - base/configure/os directory - contains os-arch specific definitions + 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 - CONFIG.. Specific host-target build definitions - CONFIG.Common. Specific target definitions for all hosts - CONFIG..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.. Site specific host-target definitions - CONFIG_SITE.Common. Site specific target defs for all hosts - CONFIG_SITE..Common Site specific host defs for all targets - - base/configure/tools directory - contains Perl scripts used for the build + base/configure directory - contains build definitions and rules - convertRelease.pl Performs consistancy checks on RELEASE files - cp.pl This Perl script copies an existing file - cvsclean.pl Remove all .#* files in directory tree - dos2unix.pl Converts text file from DOS CR/LF to unix ISO - 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 - makeMakefile.pl Creates a Makefile in O. dirs - makeMakefileInclude.pl Creates file to be included by Makefile - mkdir.pl Creates a directory (like Unix mkdir) - mkmf.pl Generates dependencies from include stmnts - munch.pl Creates a ctdt.c file for vxWorks targets - mv.pl Renames an existing file - replaceVAR.pl Changes CapFast VAR(xxx) to $(xxx) notation - rm.pl Quietly removes an existing file + 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 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_FILE_TYPE Definitions for file types adl,alh,cfg,perlmod,edl + 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_EXPAND Devinitions and rules for expanding vars in a file + RULES_FILE_TYPE Definitions and rules for user defined file types + RULES_JAVA Definitions and rules for java jars and classes + RULES_TARGET Definitions and rules for prod and lib named targets + RULES_TOP Rules specific to a dir (uninstall and tar) + Sample.Makefile Sample makefile with comments + + + base/configure/os directory - contains os-arch specific definitions + + CONFIG.. Specific host-target build definitions + CONFIG.Common. Specific target definitions for all hosts + CONFIG..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 Definitions for all vx targets for all hosts + CONFIG_COMPAT R3.13 arch compatibility definitions + CONFIG_SITE.. Site specific host-target definitions + CONFIG_SITE.Common. Site specific target defs for all hosts + CONFIG_SITE..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 + makeDbDepends.pl Gets dependencies from .substitution/.template files + makeIncludeDbd.pl Creates *Include.dbd file from filename args files + makeMakefile.pl Creates a Makefile in O. 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) - Unpack file + Unpack file - Unzip and untar the distribution file. Use WinZip on - Windows systems. + Unzip and untar the distribution file. Use WinZip on Windows systems. - Set environment variable + Set environment variables - Files in the base/startup directory have been provided to help - set required path and other 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 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 followed by a dash and then your host architecture, - e.g. solaris-sparc. If you are not using the OS vendor's - c/c++ compiler for host builds, you will need another dash - followed by the alternate compiler name (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. + 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 + followed by a dash and then your host architecture, e.g. solaris-sparc. + If you are not using the OS vendor's c/c++ compiler for host builds, you + will need another dash followed by the alternate compiler name (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 variable PERLLIB be set to . + PERLLIB + On WIN32, some versions of Perl require that the environment variable + PERLLIB be set to . - 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 solaris systems you need uname in your path. + 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 solaris + systems you need uname in your path. - Unix 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 location then in order for libraries - to be found at runtime LD_LIBRARY_PATH must include the full - pathname to $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when - invoking executables. Building shared libraries is now the - default setting for all Unix type 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. + 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 + location then in order for libraries to be found at runtime + LD_LIBRARY_PATH must include the full pathname to + $(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH) when invoking executables. + Building shared libraries is now the default setting for all Unix type + 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 - 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. + 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 - Do site-specific build configuration + Site configuration + To configure EPICS, you may want to modify the default definitions in + the following files: - 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. + configure/CONFIG_SITE_ENV Environment variable defaults + configure/RELEASE TORNADO2 full path location - configure/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 + 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. - 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 build settings + configure/os/CONFIG..Common Host common build settings - configure/os/CONFIG.. Host build settings - configure/os/CONFIG..Common Host cross 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. - Target configuration - To configure each target system, you may override the - default definitions by adding a new file into 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. + configure/os/CONFIG.Common. Target common settings + configure/os/CONFIG.. Host-target settings - configure/os/CONFIG.Common. Target cross settings - configure/os/CONFIG.. 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. - 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) - 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 + 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 root directory of an EPICS directory structure before - each complete rebuild to ensure that all components will be - rebuilt. - -Multiple host platforms - - You can build using a single EPICS directory structure on multiple host - systems and for multiple cross target systems. The intermediate and - binary files generated by the build will be created in separate - subdirectories and installed into the appropriate separate host/target - install directories. EPICS executables and perl scripts are installed - into the $(INSTALL_LOCATION)/bin/ directories. Libraries are - installed into $(INSTALL_LOCATION)/lib/. The default - definition for $(INSTALL_LOCATION) is $(TOP) which is the root - directory in the distribution directory structure, base. Created object - files are stored in O. source 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. + 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 root + directory of an EPICS directory structure before each complete rebuild + to ensure that all components will be rebuilt. Example application and extension - 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. Also, 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/ directory during the base build. + 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. Also, 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/ directory during the base build. - 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 - release. The "Example IOC Application" section briefly explains how to - create and build an example application in a user created - directory. It also explains how to run the example application on a - vxWorks ioc or a host system and run an example channel access client - on the host system. + 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 release. The "Example + IOC Application" section briefly explains how to create and build an example + application in a user created directory. It also explains how to run + the example application on a vxWorks ioc or a host system and run an example + channel access client on the host system. +Multiple host platforms + You can build using a single EPICS directory structure on multiple host + systems and for multiple cross target systems. The intermediate and binary + files generated by the build will be created in separate subdirectories and + installed into the appropriate separate host/target install directories. + EPICS executables and perl scripts are installed into the + $(INSTALL_LOCATION)/bin/ directories. Libraries are installed into + $(INSTALL_LOCATION)/lib/. The default definition for + $(INSTALL_LOCATION) is $(TOP) which is the root directory in the + distribution directory structure, base. Created object files are stored in + O. source 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. diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index df629a9d5..98d817c35 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -383,6 +383,11 @@ tools to allow specifying the CA priority.

Changes between 3.14.9 and 3.14.10

+

GCC_EXEC_PREFIX references removed from configuration files + +

Definition of GCC_EXEC_PREFIX removed from CONFIG.CrossCommon and +unexport of GCC_EXEC_PREFIX removed from vxWorks and RTEMS builds.

+

RTEMS Release

RTEMS release 4.9 or newer is required. If you are using the RTEMS NFS