From 0916b78be95e3194cdfc0ab5a4e5087ffe1058b6 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Wed, 17 Jul 2002 01:46:47 +0000 Subject: [PATCH] Moved to documentation subdirectory. --- KnownProblems.html | 135 ----- README.WIN32 | 218 ------- README.htm | 538 ------------------ README.niCpu030 | 34 -- READMEbuildingR3.13AppsWithR3.14.html | 298 ---------- READMEbuildingR3.13ExtensionsWithR3.14.html | 132 ----- READMEconvertingR3.13AppsToR3.14.html | 302 ---------- READMEconvertingR3.14.0alpha2AppsTobeta1.html | 145 ----- RELEASE_NOTES.html | 359 ------------ 9 files changed, 2161 deletions(-) delete mode 100644 KnownProblems.html delete mode 100644 README.WIN32 delete mode 100644 README.htm delete mode 100644 README.niCpu030 delete mode 100644 READMEbuildingR3.13AppsWithR3.14.html delete mode 100644 READMEbuildingR3.13ExtensionsWithR3.14.html delete mode 100644 READMEconvertingR3.13AppsToR3.14.html delete mode 100644 READMEconvertingR3.14.0alpha2AppsTobeta1.html delete mode 100644 RELEASE_NOTES.html diff --git a/KnownProblems.html b/KnownProblems.html deleted file mode 100644 index e4e49dbbb..000000000 --- a/KnownProblems.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - No title - - - - -

EPICS base R3.13.0beta1: Known Problems

- -

Device Support, which does not implement special_linconv, is broken

-

In release beta1 changes were made to allow ESLO EOFF to be -database design fields. Because of changes that were made to aiRecord and -aoRecord device support that does not implement special_linconv -may no longer work.

-

To fix aiRecord.c, in init_record replace

-
    if ((pai->linr == menuConvertLINEAR) && pdset->special_li
-nconv) {
-
-

by

-
    if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
-
-

To fix aoRecord.c, in init_record replace

-
    if ((pao->linr == menuConvertLINEAR) && pdset->special_li
-nconv) {
-
-

by

-
    if ((pao->eslo==1.0) && (pao->eoff==0.0)) {
-
- -

CA puts to disabled record

-

If a CA client issues a put to a disabled record then, when the record is ena -bled, database puts to the record will not make the record process until a CA pu -t is again issued. The fix is:

-
-diff -c -r1.113 dbAccess.c
-*** dbAccess.c	2002/04/08 14:46:13	1.113
---- dbAccess.c	2002/05/02 20:09:18
-***************
-*** 614,619 ****
---- 614,620 ----
-  		if(*ptrace) printf("disabled:  %s\n",precord->name);
-  		/*take care of caching and notifyCompletion*/
-  		precord->rpro = FALSE;
-+ 		precord->putf = FALSE;
-                  callNotifyCompletion = TRUE;
-  		/* raise disable alarm */
-  		if (precord->stat==DISABLE_ALARM) goto all_done;
-
- -

casEventMask

- -

The multiply-defined fatal error of the type

-
ld: fatal: symbol `resTable<casEventMaskEntry,
-    stringId>::tableSize(void) const' is multiply-defined:
-    (file ../../../../../lib/solaris-sparc->gnu//libcas.a(caServerI.o)
-    and file ../../../../../lib/solaris-sparc-> gnu//libcas.a(casEventMask.o));
-
- -

in the build of base can be fixed by removing line 43

-
template class resTable < casEventMaskEntry, stringId >;
-
- -

from base/src/cas/generic/casEventMask.cc.

- -

config - Old build rules

- -

The following files should be added in the base/config directory to allow -builds of R3.13 (Makefile.Host) extensions with beta1.

-
win32-x86-borland builds need:
-File name:   CONFIG.Host.win32-x86-borland
-File contents:   -include $(EPICS_BASE)/config/CONFIG.Host.Borland
-File name:   CONFIG_HOST_ARCH.win32-x86-borland
-File contents:   -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.Borland
-File name:   CONFIG_SITE.Host.win32-x86-borland
-File contents:   -include $(EPICS_BASE)/config/CONFIG_SITE.Host.Borland
-
-hpux-m68k builds need:
-File name:   CONFIG.Host.hpux-m68k
-File contents:   -include $(EPICS_BASE)/config/CONFIG.Host.hp700
-File name:   CONFIG_HOST_ARCH.hpux-m68k
-File contents:   -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.hp700
-File name:   CONFIG_SITE.Host.hpux-m68k
-File contents:   -include $(EPICS_BASE)/config/CONFIG_SITE.Host.hp700
-
-osf-alpha builds need:
-File name:   CONFIG.Host.osf-alpha
-File contents:   -include $(EPICS_BASE)/config/CONFIG.Host.alpha
-File name:   CONFIG_HOST_ARCH.osf-alpha
-File contents:   -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.alpha
-
-sun4-sparc builds need:
-File name:   CONFIG.Host.sun4-sparc
-File contents:   -include $(EPICS_BASE)/config/CONFIG.Host.sun4
-File name:   CONFIG_HOST_ARCH.sun4-sparc
-File contents:   -include $(EPICS_BASE)/config/CONFIG_HOST_ARCH.sun
-
- -

configure - New build rules

- -

The following change is needed for shared library builds on Unix hosts.

-
Index: CONFIG_BASE
-===================================================================
-RCS file: /net/phoebus/epicsmgr/cvsroot/epics/base/configure/CONFIG_BASE,v
-retrieving revision 1.32
-diff -r1.32 CONFIG_BASE
-8a9
-> EPICS_BASE_HOST_LIB = $(EPICS_BASE)/lib/$(EPICS_HOST_ARCH)
- -

vxWorks TIMEZONE pentium

- -

If the name of the timezone has more than a few characters a crash can -occur on pentium vxWorks iocs. See ansiTime in the vxWorks reference manual -for details about TIMEZONE.

- -

epicsReadLine

- -

src/libCom/osi/os/default/epicsReadline.c used a char variable to hold the -return value from getc(), and compared this against EOF. getc() returns int -not char because ANSI C allows char to be unsigned if the architecture finds -that easier, thus EOF can never be stored in a char on a PowerPC CPU. char -should be changed to int or signed char.

- -

RTEMS and NTP

- -

The RTEMS startup routine waits until a time synchronization packet is -received from an NTP server. This causes the RTEMS intialization to loop -endlessly if there is no NTP server on the network. This problem has been -fixed in the CVS version by allowing the initialization to time out after a -minute or so and to set the IOC time to January 1, 2001.

-======= - diff --git a/README.WIN32 b/README.WIN32 deleted file mode 100644 index ad2bd12cd..000000000 --- a/README.WIN32 +++ /dev/null @@ -1,218 +0,0 @@ - -Compiling EPICS and Building IOC Applications on win32-x86 (Windows95/NT) ---------------------------------------------------------------------- - -Original port of EPICS base build system to WIN32 (Windows95/NT) -was done by Kay-Uwe Kasemir 11/96 - -please mail questions, comments, corrections, additional examples, etc - to johill@lanl.gov - -0) what you will get --------------------- - -Right now this port of EPICS to win32-x86 should allow you to - -* compile all of EPICS base using {Tornado, MS Visual C, perl, - GNU make} (only {MS Visual C, perl, GNU make} if you prefer - to compile only the host portions of EPICS base). -* load EPICS on an IOC (486, pentium, 68k, ...), - load databases - (no drivers/devices for real I/O available, yet. - Some Greenspring IP support [Relay, Dig, ADC, DAC] is in progress) -* build and use ca.dll on NT or Win95 to access all IOCs, - as well as the Com-library, gdd-library, cas-library, - and all other EPICS base libraries as DLLs. -* build gdd, cas and a demo of the new portable CA server on win32-x86. - -To build only for win32-x86 and not cross compile for IOC development type -"make win32-x86" or in your configure/CONFIG_SITE file set -"CROSS_COMPILER_HOST_ARCHS=" - -1) see what you have --------------------- - -To compile EPICS on win32-x86, we need - - WindRiver System's Tornado (used: 1.0) (not required if host only build) - Microsoft's Visual C/C++ (used: 6.0) (borland C++ rumored to work also) - -and some tools: - - gnu make - www.gnu.org (we used 3.76) - perl - www.perl.org (we used 5.003) - -The perl interpreter and gnu make are available 'on the net' -as sources which compile with MS Visual C++. -If you cannot/don't want to find them, contact me, please! - -2) set environment variables - -(Setting env. vars. is different: for NT, use Settings/System, -for Win95 use autoexec.bat) - -When setting paths in the EPICS CONFIG files for win32-x86 the following -are hints in case you have trouble. You should not need to worry about -this unless you type a path into one of the EPICS config files that -includes a "\". In most situations gnu make, windows NT, the MS compiler, -and the MS linker will accept "/" and this will result in less trouble. - - ** Note that that each "\" in any path variables you set - must be replaced with a "\\" (this is because GNU make treats - all "\" characters as line continuation) - - ** Note that that each space in any file name or - path name variable you set must be replaced with - a "\ " (this is because GNU make treats all " " separated - input as independent tokens in the input stream. - - ** win32-x86 will generally allow "/" and "\" interchangeably in file paths, - but the DOS shell only accepts "\". - - ** Certain command line utilities such as the MS linker are known to in rare - situations confuse "/" in a path with command line options, and it may - be necessary to replace a "/" in a path that configured with "\\", but - the bulk of our experience indicates that this is not the necessary. - -Your path should include: -- The EPICS-binaries that we are about to build in base/bin/win32-x86 -- The System (for me it's in NT40...) -- The MS Visual C compiler binaries - -Check with e.g.: - ->echo %Path% -C:\WINNT35.0\system32; -C:\WINNT35.0; -c:\msdev\bin; -c:\perl5\bin; -c:\make-3.75\WinRel; -c:\epics\base\bin\win32 (really where INSTALL_LOCATION specifies) - -On NT, "Path" is defined by the operating system, on Win95, it's "PATH" instead. - -MS Visual C and Tornado should be installed properly with -these env. variables set: - -WIND_BASE=c:\Tornado (required for cross development only) -WIND_HOST_TYPE=x86-win32 (required for cross development only) - -This way the EPICS makesystem can locate Tornado -without any changes to the files in base/config. -So for pc486 the settings in CONFIG_SITE where -you specify the location of VxWorks are ignored, -this information is taken from WIND_BASE and _HOST_TYPE!! - -MSDevDir=C:\MSDEV -include=c:\msdev\include;c:\msdev\mfc\include -lib=c:\msdev\lib;c:\msdev\mfc\lib - -Select host arch to build: -EPICS_HOST_ARCH=win32-x86 (used by the make system) - -Set the "TMP" environment variable if you need to specify where -temporary files are created. - -Directory Used For Temporary Files Conditions ----------------------------------- ---------- -Directory specified by TMP TMP environment variable is set, - and directory specified by TMP exists. -dir argument to _tempnam TMP environment variable is not set, or - directory specified by TMP does not exist. -P_tmpdir in STDIO.H dir argument is NULL, or dir is name of - nonexistent directory. -Current working directory P_tmpdir does not exist. - -On my system I see in stdio.h that _P_tmpdir is "/". Here is a common -setting for "TMP" (the C:\TEMP directory must exist). - -TMP=C:\TEMP - -3) building EPICS ------------------ - -Prepare apx. 2 ltr. Tee and type: - - cd /base - make (use gnu make) - -Watch for errors and send them to me. - -Known problems: -* gnumake seems to be faster than win32-x86 sometimes - which results in warnings/errors like - "file has modification date in the future" - for newly created things. - Very seldom this is fatal, so you have to - stop gnumake and restart it. -* This is strange because Windows95/NT doesn't care - about upper/lower case: - WIN32 is WIN32, not win32. Gnumake fails - if e.g. base/src/include/os/WIN32 is ...win32. - -4) Creating EPICS IOC applications under win32-x86 - -o create application development folder - -o start a DOS window and change your working directory to the folder - created above (with the DOS "cd" command) - -o to create an example application type: - "perl c:\epics\bin\win32\makeBaseApp.pl -b c:\\epics -e - - ** Note that that each "\" above in any path arguments to makeBaseApp.pl - must be replaced with a "\\" (this is because GNU make treats - all "\" characters as line continuation) - - ** Note that that each space in any file name or - path name argument to makeBaseApp.pl must be replaced with - a "\ " (this is because GNU make treats all " " separated - input as independent tokens in the input stream. - - ** Note that c:\epics above must be replaced by the path - to your epics source installation (or where INSTALL_LOCATION - specifies) - -o General information on EPICS IOC application development can be found in - the "EPICS IOC Application Developers Guide". To see all of the options - supported by makeBaseApp.pl type "perl c:\epics\bin\win32\makeBaseApp.pl" - -5) EPICS GNU make makefiles can be executed from within a Visual C++ "makefile" -style project. This allows EPICS programs to be developed directly inside of -the visual C++ environment. To do this create a "makefile" project and place your -gnu make command in the build configuration (accessed from the project/settings menu). -You will also need to add GNU make and /bin/win32 into the Visual C++ -executable search path (from the tools/options menu). -In visual C++ it is possible to double click on the compiler -error messages generated within an EPICS "makefile" style project and have visual -C++ immediately position the cursor on the corresponding line in the source. I -have found that this works correctly with Makefile projects if the project is in a -directory just below the source code. The following build command works well -in a visual C++ make file project: "kill caRepeater.exe&make -C ..". Be careful -not to introduce additional spaces around the &. The kill.exe command is in the -NT resource kit. - -6) Issues that you should be aware of if you are building code that -calls EPICS, but you are not using the EPICS build system. - -6a) You will need to include header files from the following paths. - \base\include - \base\include\os\win32 -6b) You will need to link with the following path in effect. - \base\lib\win32-x86. -6c) If the visual C++ /Za option is not used then you will also need to define - __STDC__ to be zero on the command line so that EPICS headers will know that - a ANSI standard C compiler is in use. -6d) If you link with EPICS object libraries then specify /MT or /MTd - depending on whether EPICS base and your code are built for debugging. - This specifies the multithreaded operating environment required by EPICS. - This will also not define _DLL and therefore the EPICS header files will - not specify that sharable libraries are being called. EPICS object library - names follow the convention "xxxObj.lib". -6e) If you link with EPICS shareable libraries (with DLLs) then you must - use /MDd or /MD depending on whether EPICS base and your code are - built for debugging. This specifies the multithreaded operating environment - required by EPICS. This will also define _DLL and therefore the EPICS header - files will specify an optimized calling convention for shareable libraries. - EPICS shareable libraries (DLL) names follow the convention "xxx.lib" - and "xxx.dll". diff --git a/README.htm b/README.htm deleted file mode 100644 index 804c3e53c..000000000 --- a/README.htm +++ /dev/null @@ -1,538 +0,0 @@ - - - - - - - - -README.htm -
-

-Installation Instructions

- -
-

-EPICS base

- -
-

-Release 3.14.0beta1

- -

-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.
- -

-What is new in this release?

- -
This version of EPICS base contains significant changes and -offers major improvements in functionality over previous versions. 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.
- -

-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.
- -
Host platforms (operating system - architecture - <alternate -c++ compiler>) -
solaris-sparc -
solaris-sparc-gnu -
linux-x86 -
win32-x86 -
win32-x86-borland
-
- -
-

-Cross compile target platforms (operating system - architecture)

-
- -
-
vxWorks-486 -
vxWorks-68040 -
vxWorks-68040lc -
vxWorks-68060 -
vxWorks-ppc603 -
vxWorks-ppc604 -
vxWorks-pentium -
RTEMS-gen68360 -
RTEMS-mvme167 -
RTEMS-pc386
-
- -

-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 ACC and CCC in base/configure/os/CONFIG.<host>.<host> -or the definitions for GCC and G++ if ANSI=GCC and CPLUSPLUS=GCC are specified -in CONFIG_SITE.
- -

-Software requirements

- -
GNU make -
You must use GNU make, gnumake, for any EPICS builds.  Set your -path so that a gnumake version 3.70 or later is available. -

Perl -
You must have perl version 5.0 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 distribution -file. -

Tornado 2.0 -
You must have Tornado 2.0 installed if any of your target systems are -vxWorks systems.  Tornado 2.0 provides the cross-compiler and header -files needed to build for these target systems. The full path location -to Tornado 2.0 must 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. -

Optional GNU compiler requirement for solaris-sparc  and win32-x86 -hosts -
If you have state notation language source files (*.st files) which -require c preprocessing before conversion to c source,  gcc must be -in your path.

- -

-Host system storage requirements

- -
The GNU zipped tar file is approximately 1.4 MB in size. The -unzipped untarred distribution source tree is approximately 6 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.htm is in the base distribution file and will be -available on the IOC software R3.14 EPICS WWW page which can be accessed -from the APS EPICS home page.
- -

-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 Lists

- -
There are five EPICS mailing lists provided by APS. See The -EPICS home page for subscription instructions.
-
- -

-Directory Structure

- -
Distribution directory structure:
-     base                         -Root directory of the base istribution -
     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/copyright               -Text files describing software copyrights -
     base/src                     -All epics base source code in subdirectories -
     base/src/as                  -Access security -
     base/src/bpt                 -Break point table -
     base/src/ca                  -Channel access -
     base/src/cas                 -Channel access server -
     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/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/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/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/libCom/ring         -ringPointer: First in first out circular buffers -
     base/src/libCom/cppStd       -epicsList: Lists of pointers to objects -
     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/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: -

     base/bin                     -Installed scripts and executables in subdirs -
     base/lib                     -Installed libraries in arch subdirectories -
     base/dbd                     -Installed data base definitions -
     base/include                 -Installed header files -
     base/include/os              -Installed os specific header files -
     base/templates               -Installed templates -

-Build related components

- -
-
  • -base/README* files
  • - -
    README.htm           -Instructions for setup and building epics base -
                         -(i.e. this document) -
    README.WIN32         Microsoft -WIN32 specific instructions -
    README.cxxTemplates  Information about C++ templates in EPICS -base -
    README.niCpu030      NI cpu030 specific -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 path and env variables -
    win32.bat           -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           -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 -
    CONFIG                -Includes configure files and allows variable overrides -
    RELEASE               -Location of external products such as Tornado II -
    RULES                 -Includes appropriate rules file -
    RULES.Db              -Rules for database and database definition files -
    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 target -
    CONFIG.<host>.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/configure/tools directory - contains Perl scripts used for the build
  • - -
    MakeReleae              -Unix shell script to create a release tar file -
    convertRelease.pl       Performs -consistancy checks on RELEASE files -
    cp.pl                   -This Perl script copies an existing file -
    installEpics.pl         -Installs built files into install directories. -
    makeDependsTargets.pl   Creates targets of include dependency -files -
    makeMakefile.pl         -Creates a Makefile in O.<arch> 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.
    - -

    -Building EPICS base (Unix and Win32)

    - -
    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 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 <perl directory location>.

    - -
    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 -touch, 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 ld in your path. -

    LD_LIBRARY_PATH -
    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. -

    PATH -
    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 (either YES or NO). -
     

    -Do site-specific build configuration -
    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        TORNADO -2 full path location
    -Host configuration -
    To configure each host system, you may override the default definitions -by adding a new file with override definitions into the configure/os directory. -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 settings -
    configure/os/CONFIG.<host>.Common        -- Host cross build settings
    -Target configuration -
    To configure each target system, you may override the default definitions -by adding a new file with override definitions into the configure/os directory. -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>   -- Target cross 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

    - -
    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
    -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/<arch> -directories. Libraries are installed into $(INSTALL_LOCATION)/lib/<arch>. -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.<arch> 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.
    - -

    -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/<hostarch> 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, "New Features -for 3.14", in the  "IOC Application Developer's Guide R3.14.0beta1". -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 a host system and -run an example channel access client on the host system.
    - - - diff --git a/README.niCpu030 b/README.niCpu030 deleted file mode 100644 index 0bd292bd8..000000000 --- a/README.niCpu030 +++ /dev/null @@ -1,34 +0,0 @@ - -The CPU030 may need to have the nivxi path set correctly: - From the vxWorks shell type "vxitedit" (you may need to - loading the NI vxitedit package first) - take option 2 - take option 3 - type list - type modify 0 - type in the correct path when promped - (the path should end in nivxi - and should traverse the niCpu030 - directories shipped with the 030 - ie something of the form "???/config/niCPU030/nivxi" - type save - type exit - . - . - . - - see "Getting Started with Your VXIcpu-030" from NI - -You may may need to setup front panel to backplane trigger -routing: - -To take a TTL input and map it to VXI backplane ECL trigger 0 -type in (to the vxWorks shell): - -epvxiRouteTriggerECL(, 1, 0) - -where specifies the card with the -front panel trigger connection. - -johill@lanl.gov - diff --git a/READMEbuildingR3.13AppsWithR3.14.html b/READMEbuildingR3.13AppsWithR3.14.html deleted file mode 100644 index 4c9f19362..000000000 --- a/READMEbuildingR3.13AppsWithR3.14.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - Instruction on building existing R3 - - - - - - - -
    -

    -Building EPICS R3.13 applications with R3.14.0beta1 base

    - -


    This document describes how to modify a R3.13 vxWorks application -so that it builds with release R3.14.0beta1.  It describes an easy -way to modify applications subject to the following restrictions: -

      -
    • -The application still uses config rules rather than the configure rules -which are new to release 3.14.
    • - -
    • -The OSI (Operating System Independent) features of R3.14 are not available, -i.e. iocCore products can only be build for vxWorks.
    • - -
    • -Once the application is changed to build with base R3.14, it will not build -with earlier base releases.
    • -
    -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: -
    "gnumake clean uninstall"
    -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. 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 -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 = mv167
    -to -
    CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040
    -In the iocBoot/*/Makefile files, change -
    ARCH=<old arch name>
    -to -
    ARCH=<new arch name>
    -and do a "gnumake" in the iocBoot directory to update the cdCommands -files.
    - -

    -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.0beta1. 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,. -
    Also add -

    SEQ=<full path to seq module directory>
    -to config/RELEASE. -
    Also remove -
    ld < seq
    -from the st.cmd files in the iocBoot subdirectories.
    - -

    -iocCore changes

    - -
    iocCore has been renamed to iocCoreLibrary.o. -
    Change -
    INSTALLS=iocCore
    -to -
    LIBOBJS += $(EPICS_BASE_BIN)/iocCoreLibrary.o
    -in your application src/Makefile.Vx files . -
    Also remove -
    ld < iocCore
    -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. -
    Change -
    PROD_LIBS+=Db
    -to -
    PROD_LIBS+=dbStaticHost
    -and -
    Db_DIR=$(EPICS_BASE_LIB)
    -to -
    dbStaticHost_DIR=$(EPICS_BASE_LIB)
    -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 -
    ld < exampleLib
    -to -
    ld < 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.
    - -

    -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 -fileand change the LIBOBJS definitions. For example -
    add -
    PID=<full path to modules directory>/pid
    -to config/RELEASE. -
    Remove -
    LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o
    -from baseLIBOBJS, -
    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 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.
    - -

    -Hardware support changes

    - -
    All hardware support (dev, drv and dbd files) has been unbundled -from base R3.14. This support includes the files symb, symb.dbd, drvHp1404a.o, -drvEpvxiMsg.o, and drvEpvxi.o.  If they are not used in your -application, comment out references to these files in base.dbd and baseLIBOBJS. -

    Hardware support files now exist as separate modules available for download -from the EPICS www home page at -ANL. You must now download all the hardware support modules needed -for your application, build the modules with R3.14 base,  add the -appropriate module full path definitions to your application config/RELEASE -file, and change LIBOBJS location definition $(EPICS_BASE_BIN) -to the module definition bin directory in your application src directory -files. -

    For example, remove -

    LIBOBJS+=$(EPICS_BASE_BIN)/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 . -

    After a gnumake in the symb module followed by a gnumake in the application -config directory, the definitions SYMB_BIN and SYMB_LIB -will be created,  the directory $(SYMB)/include will be added to the -include directories on the compiler command lines  (in the INSTALL_INCLUDES -definition)  and the directory $(SYMB)/dbd will be added to the dbd -search directories on the dbExpand command lines (in the INSTALL_DBDFLAGS -definition).

    - -

    -dbLoadtemplate tool changes

    - -
    The host tool dbLoadTemplate has been replaced by a new extension, -msi. dbLoadTemplate is still supported on iocs. Build the msi extension -with base R3.14 and change the following definitions in your application -files. -

    In config/RULES.Db replace the line -

    DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)
    -with -
    MSI = $(firstword $(wildcard $(EPICS_EXTENSIONS_HOST_BIN)/msi$(HOSTEXE) \
    -   (EPICS_EXTENSIONS)/bin/$(HOST_OS_CLASS)/msi$(HOSTEXE)) msi$(HOSTEXE))
    -and change line: -
    @$(DBLOADTEMPLATE) $< > $@
    -to -
    @$(MSI) $< > $@
    -Also, if dbLoadTemplate was used by your application,  add the definition -
    -
    EPICS_EXTENSIONS=<full path name to epics extensions directory>
    -
    -to your application config/RELEASE file.
    -depends changes -

         Remove any SRCS.c and SRCS.cc definitions in -your application src/Makefile..*files. The depends rule no longer uses -these definitions. - - diff --git a/READMEbuildingR3.13ExtensionsWithR3.14.html b/READMEbuildingR3.13ExtensionsWithR3.14.html deleted file mode 100644 index 0ff0d73a4..000000000 --- a/READMEbuildingR3.13ExtensionsWithR3.14.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - -

    -

    -Building EPICS R3.13 extensions with R3.14 base

    - -


    EPICS R3.13 extensions have both a Makefile and a Makefile.Host -in the build directories and the EPICS R3.13 extension tree has an extensions/config -directory. -

    -Preliminary steps for all extensions

    - -
    -
  • -Download the latest version (10/25/00) of the extensions/config files, -extensionsConfig.tar.gz,  from the APS EPICS www page.
  • - -
  • -Make certain that you have set the HOST_ARCH environment variable.
  • - -
  • -Set EPICS_BASE in extensions/config/RELEASE to the full path location of -a built R3.14 base.
  • - -
  • -BASE_3_14 is now defined in the base/config/CONFIG_BASE_VERSION.  -The commented BASE_3_14 definition can be removed from extensions/config/RELEASE.
  • -
    - -

    -Building downloaded APS distribution extensions with base R3.14

    - -
    -
  • -Download the latest version (10/25/00) of extensions distributed from the -APS EPICS www page. The latest versions of the extensions should build -with both R3.13 and R3.14. Note that the order of building extensions is -important, i.e. some extensions depend on other extensions being built -first. The extensions/config/CONFIG_EXTENSIONS file contains notes on extension -dependancies and contains a definition of DIRS (used by extensions/src/Makefile) -with the proper order for building the APS distributed extensions.
  • - -
  • -Executing gnumake at the root level of the extensions tree or in the src -directory should build the APS extensions in the proper order.
  • -
    - -

    -Building your extensions with base R3.14

    - -
    -
  • -Library Db renamed
  • - -
    Library Db has been renamed to dbStaticHost in EPICS base R3.14. In -some extensions lib Db is not used and Db can be removed from the USR_LIBS -(or PROD_LIBS) line. If the library is needed ( you get unresolved items -after removing Db), the following lines should be added to Makefile.Host. -
    ifdef BASE_3_14 -
    USR_LIBS += dbStaticHost -
    dbStaticHost_DIR = $(EPICS_BASE_LIB) -
    else -
    USR_LIBS += Db -
    Db_DIR = $(EPICS_BASE_LIB) -
    endif
    - -
  • -Target architecture specifications changed
  • - -
    Since target architecture specifications have been changed (solaris -to solaris-sparc, win32 to win32-x86, ...) Makefile.Host references to -and tests on T_A have to be changed.  In most cases T_A can be replaced -by OS_CLASS.  Since HOST_ARCH will eventually be phased out, it would -be a good idea to change any Makefile.Host references to HOST_ARCH to OS_CLASS -if possible. -
    For example change -
    ifeq ($(T_A),solaris) -
    RPCFLAGS = -K -1 -
    endif
    -to -
    ifeq ($(OS_CLASS),solaris) -
    RPCFLAGS = -K -1 -
    endif
    - -
  • -New ca_set_puser
  • - -
    Statements of the form: ca_puser(chid) = xyz; should to be -changed to:  ca_set_puser(chid,xyz); -
      -
  • -Extern C around includes
  • - -
    Remove any extern "C" braces around #includes of EPICS base header -files. -
    For example change -
    extern "C" { -
    #include "cadefs.h" -
    } /* end extern C */
    -to -
    #include "cadefs.h"
    - -
  • -Infrequently used R3.13 timestamp functions unbundled from base
  • - -
    Some infrequently used R3.13 timestamp functions and macro definitions -have been removed from EPICS base and now exist in a library, ts, created -and installed in the ar extension.  The only ANL distributed extension -that uses these unbundled functions and macros  is cau. The two R3.13 -functions tsStampToText and tsLocalTime along with the definitions TS_TEXT_MONDDYYYY -and TS_TEXT_MMDDYY have been retained in R3.14 for extension compatibility -purposes. -
    If your extension gets undefines for TS_* usage and ts* function calls -when built with R3.14, you must obtain and build the ar extension. Add -an #include for tsSubr.h to your extension source code and add library -ts to PROD_LIBS or USR_LIBS in your Makefile.Host as follows: -
    #include "tsSubr.h" -

    ifdef BASE_3_14 -
    PROD_LIBS += ts -
    ts_DIR = $(EPICS_EXTENSIONS_LIB) -
    endif

    -
    - - - diff --git a/READMEconvertingR3.13AppsToR3.14.html b/READMEconvertingR3.13AppsToR3.14.html deleted file mode 100644 index 1be3ef120..000000000 --- a/READMEconvertingR3.13AppsToR3.14.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - - - -
    -

    -Converting an EPICS R3.13 application to R3.14.0.beta1

    - -


    This document describes how to convert a R3.13 vxWorks application -so that it builds with release R3.14.0beta1.  It describes procedures -such that: -

      -
    • -The application uses the configure rules which are new to R3.14.
    • -
    - -
      -
    • -The OSI (Operating System Independent) features of R3.14 are available, -i.e. iocCore products can be build for vxWorks as well as other platforms, -e.g. solaris and linux.
    • -
    - -

    -Gnumake clean uninstall

    - -
    First do a gnumake clean uninstall in the application's root -directory to remove all files created by earlier builds.
    - -

    -Create a new R3.14 application

    - -
    mkdir <top> -
    cd <top> -
    <full path to R3.14.0beta1 base>/bin/<host_arch>/makeBaseApp.pl --t example example
    - -

    -Copy all *App and iocBoot directories and files to the new <top> directory

    - -
    cd <oldtop> -
    find *App iocBoot -print | cpio -pvmd <fullpath name to new -top>
    - -

    -Modify <top>/configure/RELEASE

    - -
    Copy definitions of external modules excluding EPICS_BASE and -TEMPLATES_TOP from old application RELEASE file. -
    If sequence programs (*.st or *.stt files) exist in your application, -add the SNCSEQ location definition for the R3.14 seq external module -
    SNCSEQ =<full path to seq module top>
    -The R3.14 seq module must exist and be built with EPICS base R3.14.0beta1.
    - -

    -Modify the Makefiles in <top>/*App directories.

    - -
    Change     include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES_DIRS -
    to     include $(TOP)/configure/RULES_DIRS

    - -

    -Modify the Makefiles in <top>/*App/*Db directories.

    - -
    Remove existing Makefile -
    Rename Makefile.Host to Makefile -
    Modify Makefile as follows: -

    Change     TOP=../../.. -
    to     TOP=../.. -

    Change    include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES.Db -
    to include $(TOP)/configure/RULES -

    Place all definitions between the include lines. -

    Place any rules after the last include line.

    - -

    -Modify the Makefiles in <top>/*App/src directories.

    - -
    Remove existing Makefile -
    Rename Makefile.Host to Makefile -
    Modify Makefile as follows: -

    Change TOP=../../.. -
    to     TOP=../.. -

    Change     include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change     include $(TOP)/config/RULES.Host -
    to     include $(TOP)/configure/RULES -

    Change     PROD_LIBS = <name> -
    to     <prod name>_LIBS = dbStaticHost -
    where  <prod name> is a specifified product to be -built. -

    Change  library name Db to dbStaticHost. -
    Change PROD_LIBS = Db -
    to  <prodname>_LIBS += dbStaticHost -
    and Db_DIR = $(EPICS_BASE_LIB) -
    to     dbStaticHost_DIR = $(EPICS_BASE_LIB) -

    Change     USER_DBDFLAGS -
    to     USR_DBDFLAGS -

    Change     RECTYPES +=  xxxRecord.h -
    to     DBDINC += xxxRecord -

    Change     DBDNAME = <name>App.dbd -
    to     DBD += <name>.dbd -

    Remove all DBDEXPAND  lines. -

    Change  PROD = <prodname> -
    to PROD_HOST = <prodname> -

    Change  SRCS.c += <name> -
    to <prodname>_SRCS += <name> -
    or <libname>_SRCS += <name> -

    Add the contents of Makefile.Vx to Makefile removing the include lines -and the TOP definition.

    - -
    Change     LIBNAME = <libname>Lib -
    to     PROD_vxWorks = <libname> -

    Remove line  -include ../baseLIBOBJS -

    Remove  line    INSTALLS = iocCore seq -

    Change all SRCS.c += ../<name>.c lines -
    to   <prodname>_SRCS += <name>.c -
    if the source files exist in the current directory. -

    Change all *OBJS += <name>.o      -lines -
    to   <prodname>_SRCS += <name>.c -
    or  <prodname>_SRCS += <name>.cc -
    if the c/c++ source files exist in the current directory. -

    Change    LIBOBJS += <seq_program_name>.o      -lines -
    to   <prodname>_SRCS += <seq_program_name>.stt -
    or  <prodname>_SRCS += <seq_program_name>.st -

    Add the lines -

    #<name>_LIBS += seq -
    #<name>_LIBS += pv -
    #seq_DIR    = $(SNCSEQ_LIB) -
    #pv_DIR     = $(SNCSEQ_LIB) -

    <name>_LIBS += recIoc -
    <name>_LIBS += softDevIoc -
    <name>_LIBS += testDevIoc -
    <name>_LIBS += iocsh -
    <name>_LIBS += miscIoc -
    <name>_LIBS += rsrvIoc -
    <name>_LIBS += dbtoolsIoc -
    <name>_LIBS += asIoc -
    <name>_LIBS += dbIoc -
    <name>_LIBS += registryIoc -
    <name>_LIBS += dbStaticIoc -
    <name>_LIBS += ca -
    <name>_LIBS += Com

    -where <name> is the  name in the PROD_vxWorks -definition, and uncomment the first four lines if you have sequence programs -(.st or .stt files) in the current directory. -

    Place all macro definitions between the include lines. -

    Place any rules after the last include line.

    - -

    -Modify the Makefiles in <top>/iocBoot directory.

    - -
    Change include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Remove the line DIRS += $(wildcard *ioc*) -

    Change include $(TOP)/config/RULES.iocBoot -
    to     include $(TOP)/configure/RULES.iocBoot

    - -

    -Modify the Makefiles in <top>/iocBoot/ioc* directories.

    - -
    Change include $(TOP)/config/CONFIG_APP -
    to     include $(TOP)/configure/CONFIG -

    Change include ARCH = <old arch specification e.g. mv167> -
    to     include ARCH = <new arch specificatio -e.g. vxWorks-68040> -

    Change include $(TOP)/config/RULES.ioc -
    to     include $(TOP)/configure/RULES.ioc -

    Add the following rule at the end of the Makefile. -

    buildInstall: cdCommands
    -
    - -

    -Modify st.cmd in <top>/iocBoot/ioc* directories.

    - -
    Remove the lines
    - -
    -
    -
    ld < seq
    - -
    ld < iocCore
    -
    -Change       ld < <libname>Lib -
    to      ld < <libname>.munch -

    Change  load statements  for db and dbd files from -

    cd startup -
    dbLoadDatabase("../../dbd/exampleApp.dbd") -
    dbLoadRecords("../../db/dbExample1.db","user=jba") -
    dbLoadRecords("../../db/dbExample2.db")
    -to -
    cd top -
    dbLoadDatabase("dbd/example.dbd") -
    registerRecordDeviceDriver(pdbbase) -
    dbLoadRecords("db/dbExample1.db","user=jba") -
    dbLoadRecords("db/dbExample2.db")
    -
    - -

    -Record support changes

    - -
    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 change the LIBOBJS definitions. -

    For example add

    - -
             PID=<full -path to modules directory>/pid -

    to config/RELEASE. -
    Remove

    - -
             LIBOBJS -+= $(EPICS_BASE_BIN)/pidRecord.o -

    from baseLIBOBJS, 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 changes

    - -
    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.
    - -

    -Hardware support changes

    - -
    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 .
    - -

    -dbLoadtemplate tool changes

    - -
    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 -

             EPICS_EXTENSIONS=<full -path name to epics extensions directory> -

    to your application config/RELEASE file.

    - -
    -
     
    - -
    -
    
    -
    -
    - -
      - - diff --git a/READMEconvertingR3.14.0alpha2AppsTobeta1.html b/READMEconvertingR3.14.0alpha2AppsTobeta1.html deleted file mode 100644 index a1178a312..000000000 --- a/READMEconvertingR3.14.0alpha2AppsTobeta1.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - -
    -

    -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)/configureRULES.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 -
    example_LIBS += softDevIoc -
    example_LIBS += testDevIoc
    -and remove any references to iocLibrary, e.g. remove the line -
    example_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. -

    If you are building on a WIN32 host add the following lines instead: -

    # 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. -

    change #include "ioccrf.h" -
    to  #include "iocsh.h" -

    change ioccrf(argv[1]); -
    to  iocsh(argv[1]); -

    and change  ioccrf(NULL); -
    to iocsh(NULL); -

    in <name>App/src/exampleMain.c.

    - -

    -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 -
    change PROD += caExample -
    to  PROD_HOST += caExample -
    and -
    change PROD = sncExample -
    to PROD_HOST += sncExample
    -
    -LIBRARY and PROD changes -
    The 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> -
    to PROD_vxWorks = <name> -
    or -
    remove the lines LIBRARY_vxWorks = <name> -
    and PROD_RTEMS = <name> -
    and change PROD = <name> -
    to PROD_IOC = <name>.
    -In the iocBoot/ioc<name>/st.cmd files, -
    change ld < <name>Library.munch -
    to ld < <name>.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 -
     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") -

    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. -
    All paths passed to chdir (or to the IOC shell `cd' command) must end -in a `/' -
    character.

    - -
    -
     
    -
    - - - diff --git a/RELEASE_NOTES.html b/RELEASE_NOTES.html deleted file mode 100644 index 360142b40..000000000 --- a/RELEASE_NOTES.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - EPICS Release baseR3.14 - - - - -
    -

    EPICS Release base 3.14.0beta2

    - -

    MMM DD 2002

    -
    - -

    Changes since beta1

    - -

    recGblGetTimeStamp

    - -

    If TSE is -1 then recGblGetTimeStamp does not retrieve time. This allows device/driver support to set the time.

    - -

    aiRecord and aoRecord: Setting eoff=egul

    - -

    Instead of init_record executing code like

    -
        if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) {
    -        pai->eoff = pai->egul;
    -    }
    -
    - -

    It now executes:

    -
        if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
    -        pai->eoff = pai->egul;
    -    }
    -
    -

    aoRecord has a similar change

    - -

    CA puts to disabled record

    - -

    If a CA client issues a put to a disabled record then, when the record is ena -bled, database puts to the record will not make the record process until a CA pu -t is again issued. This is fixed.

    - -

    TPRO - trace processing

    - -

    If dbProcess is called recursively by different tasks, it did not properly -handle TPRO. Consider the following database:

    -
    record(ao,"mrkao") {
    -    field(OUT,"mrkai CA")
    -    field(TPRO,"1")
    -}
    -record(ai,"mrkai") {
    -    field(TPRO,"1")
    -}
    - -

    If a channel access put is sent to mrkao, no message is issued when mrkai -is processed.

    - -

    This is now fixed.

    - -

    TSconfigure

    - -

    If in your st.cmd file you issue the command.

    - -

    TSconfigure(0,0,0,0,0,0,1)

    - -

    And set the TSE field of any record to a non zero value, then a crash will -occur when recGblGetTimeStamp is called.

    - -

    This is now fixed.

    - -

    calcoutRecord

    - -

    nsev not sevr must be checked to decide if dbPutLink should be called.

    - -

    dbCa

    - -

    Whenever a connection is made, a request to retrieve the control, display, -and alarm linits and the precision and units is automatically issued. -Previously this was only done if dbCaGetAttributes was called. This it is no -longer necessary to call dbCaGetAttributes.

    - -

    calcPerform

    - -

    This now returns a non zero value if the result is nan (not a number).

    - -

    Record Name Length

    - -

    The size of the name field has been expanded from 29 to 61, i.e. record -names can now have 60 characters.

    - -

    iocInit

    - -

    initialProcess is now called before interruptAccept. This means that -initial processing will be done before periodically scanned and I/O Inter -scanned records start processing.

    - -

    ellLib

    - -

    Casts have been removed that suppressed valuable error messages

    - -

    mbbiRecord

    - -

    All existing manipulations of UDF in process() are removed and udf is set -FALSE when the raw value is successfully read.

    - -

    selRecord

    - -

    In do_sel udf is not set false at the beginning. If selm has an invalid -value recGblSetSevr(psel,SOFT_ALARM,MAJOR_ALARM) is called.

    - -

    cdCommands file

    - -

    Fixed a bug and revised the use of the IOCS_APPL_TOP setting in an -application's /configure/CONFIG file (which specifies the path to -as seen by the IOC) to apply the same modifications to all paths output -in the cdCommands file.

    - -

    Changes since alpha2

    -All changes for release 3.13.5 that also apply to 3.14 have been made. - -

    devAiSoftRaw and devAoSoftRaw

    - -

    A new state is defined for the LINR field. The name is "SLOPE", which -allows any device type to be used with manual settings of the EOFF and ESLO -fields. With this setting, the device support's special_linconv() routine is -only called when LINR=LINEAR.

    - -

    The RTEMS TFTP remote filesystem driver now supports a limited form of the -chdir() system call. One restriction is that all pathnames passed to chdir() -must end in a / character, so IOC shell commands to change directories must -be given as

    - -

    cd ../db/

    - -
    -

    EPICS Release base 3.14.0alpha2

    -
    -Since the alpha1 release some major changes were made to the build system, to -some of the libCom facilities, and to the iocsh facilities. - -

    The unbundled version of the sequencer has been build and tested with this -release. You must obtain a version of the sequencer that has been built -against alpha2.

    - -

    A verion of the HPlanGpib support has been built and tested with this -release. Again you must obtain a version that builds with alpha2.

    - -

    A new update to the Application Developer's Guide is available for this -release.

    - -

    Build changes

    -
      -
    • Operating system independant builds are now done in an O.Common - subdirectory and then installed instead of being performed directly in an - install directory.
    • -
    • Build definition names (e.g. RECTYPES, MENUS, DBDNAME, and BPTS) have - been changed to specify the name of the file to be created and installed - instead of the source file name.
    • -
    • All db and dbd related definitions and rules have been moved into - base/configure/RULES.Db file. The rules now allow multiple dbd files and - registerRecordDeviceDriver files to be created in a single Makefile.
    • -
    • "gnumake depends" no longer depends on a complete buildInstall.
    • -
    - -

    Converting alpha1 applications to alpha2

    -Build modifications in alpha2 require the following changes to existing R3.14 -applications. -
      -
    •  Remove the now unused RULES files
    • -
      • - ./configure/RULES.Db
        - ./configure/RULES.registerRecordDeviceDriver
        -  
      -
    • -
    • Delete the following line in ./configure/RULES -
        -  
        - include $(TOP)/configure/RULES.registerRecordDeviceDriver
      -
    • -
    -
      -
    •   In <top>/configure/Makefile change -
        -  
        - @$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)
      -
    • - to -
        - @$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@ - $(TOP)
        -  
      - and add the line -
        -  
        - depends: install
        -  
      - to the bottom of the Makefile. -
        -  
      -
    -
      -
    • In all *App/*Db/Makefileschange -
        -  
        - include $(TOP)/configure/RULES.Db
      -
    • - to -
        - include $(TOP)/configure/RULES
      -
    • In all *App/src/Makefile files -
        -  
      -
    • - change    DBDNAME = <name>App    to    DBD += <name> -
        -  
      - and remove the line
      -   -
        - DBDEXPAND = <name>Include.dbd
        -  
      - NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you - should make these same changes in that *Db dirctory.
      -   -
        -
      • In all *App/src/Makefile Makefiles
      • -
      -
        -  
      - change    RECTYPES=<name>.h    to    DBDINC+=<name> -
        -  
      - change    MENUS=<name>.h    to        DBDINC+=<name>
    -
      - change    BPTS     to     DBD - -

      change     INSTALLDB     to    DB

      - -

      change    DBDINSTALL    to     DBD
      -  

      -
    • In all example *App/src/Makefile files change -
        -  
        - example_SRCS_DEFAULT += registerRecordDeviceDriver.c
      -
    • - to -
        - example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cpp
        -  
      - where <name> is the base name of a <name>.dbd file which was - created from a <name>Include.dbd file and which will be loaded in a - st.cmd or stcmd.host script (e.g. example).
      -   -
        -
      • In ./iocBoot/ioc<name>/st.cmd files change
      • -
      -
      -   -
        - dbLoadDatabase("dbd/exampleApp.dbd")
      - to -
        - dbLoadDatabase("dbd/example.dbd")
        -  
      -
    • In <top>/iocBoot/ioc<name>/stcmd.host files change -
        -  
        - dbLoadDatabase("../../dbd/exampleApp.dbd",0,0)
      -
    • - to -
        - dbLoadDatabase("../../dbd/example.dbd",0,0)
      -
    - -

    EPICS_HOST_ARCH changes

    -GNU compiler builds are now determined by the value of EPICS_HOST_ARCH and -are no longer specified in CONFIG_SITE.  All references to the ANSI (ACC/GCC) -and CPLUSPLUS (CCC/G++) macros have been removed.
    -  - -

    libCom

    -Most of the library routines and files starting with the prefix osi have been -changed to start with epics. Several also had major changes to their user -interface. See the latest version of the Application Developer's Guide for -details.
    -  - -
    -

    EPICS Release base 3.14.0alpha1 Notes

    -
    - -


    -

    - -

    This is the first release of 3.14. This is the first release that supports -iocCore on platforms besides vxWorks.

    - -

    iocCore is now supported on the following platforms:

    -
      -
    • vxWorks
    • -
      - Tornado II is required. -
        -
      • RTEMS
      • -
      -
      - An open source real time operating system. It has been tested on MVME167 - and MC68360 processors. RTEMS also supports powerPC. -
        -
      • solaris
      • -
      -
      - Has been tested on solaris 2.6 and solaris 8 with Sun workshop 6.0 (C++ - 5.2). Sun workshop 5.0 (C++ 5.0) will not compile this version of EPICS. -
        -
      • Linux
      • -
      -
      - Has been tested on Redhat x86 platforms. -
        -
      • winNT
      • -
      -
      - Testing has been done with visual C++ 6.0.
    -A new version of the Application Developers Guide is available. The following -gives links to the new Application Developer's Guide and to RTEMS information. - -

    http://www.aps.anl.gov/epics/modules/base/R3-14.php

    - -

    Most of the Application Developer's Guide has only minor changes. The -following are new.

    -
      -
    • Chapter 2 describes the new features for 3.14.
    • -
    • Chapter 4 describes the build facility for 3.14
    • -
    • Chapters 19 and 20 describe libCom, which was not previously - documented.
    • -
    - -


    -It must be emphasized that this is an alpha release.

    -
      -
    • Please don't use it for existing operational systems
    • -
    • Don't build your operational CA clients with it.
    • -
    • The APIs for new components in libCom are still evolving so if you use - them be prepared for changes.
    • -
    • HPUX - No support currently because we could not find good support for - multithreading.
    • -
    -Building Applications -
      -
    • For new applications see Chapters 2 (New Features) and Chapter 4 (Build - Facility) of the Application Developer's Guide.
    • -
    • For existing applications the old config rules are still supported. - Some changes, however, are needed. Documentation is being prepared and - will appear in these release notes sooon.
    • -
    - -