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