Moved to documentation subdirectory.
This commit is contained in:
@@ -1,135 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<title>No title</title>
|
||||
<meta name="GENERATOR" content="amaya 5.3, see http://www.w3.org/Amaya/" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1 style="text-align: center">EPICS base R3.13.0beta1: Known Problems</h1>
|
||||
|
||||
<h2>Device Support, which does not implement special_linconv, is broken</h2>
|
||||
<p>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.<p>
|
||||
<p>To fix aiRecord.c, in init_record replace</p>
|
||||
<pre> if ((pai->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
|
||||
</pre>
|
||||
<p>To fix aoRecord.c, in init_record replace</p>
|
||||
<pre> if ((pao->linr == menuConvertLINEAR) && pdset->special_li
|
||||
nconv) {
|
||||
</pre>
|
||||
<p>by</p>
|
||||
<pre> if ((pao->eslo==1.0) && (pao->eoff==0.0)) {
|
||||
</pre>
|
||||
|
||||
<h2>CA puts to disabled record</h2>
|
||||
<p>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:</p>
|
||||
<pre>
|
||||
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;
|
||||
</pre>
|
||||
|
||||
<h2>casEventMask</h2>
|
||||
|
||||
<p>The multiply-defined fatal error of the type</p>
|
||||
<pre>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));
|
||||
</pre>
|
||||
|
||||
<p>in the build of base can be fixed by removing line 43</p>
|
||||
<pre>template class resTable < casEventMaskEntry, stringId >;
|
||||
</pre>
|
||||
|
||||
<p>from base/src/cas/generic/casEventMask.cc.</p>
|
||||
|
||||
<h2>config - Old build rules</h2>
|
||||
|
||||
<p>The following files should be added in the base/config directory to allow
|
||||
builds of R3.13 (Makefile.Host) extensions with beta1.</p>
|
||||
<pre>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
|
||||
</pre>
|
||||
|
||||
<h2>configure - New build rules</h2>
|
||||
|
||||
<p>The following change is needed for shared library builds on Unix hosts.</p>
|
||||
<pre>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)</pre>
|
||||
|
||||
<h2>vxWorks TIMEZONE pentium</h2>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>epicsReadLine</h2>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<h2>RTEMS and NTP</h2>
|
||||
|
||||
<p>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.</p>
|
||||
=======</body>
|
||||
</html>
|
||||
218
README.WIN32
218
README.WIN32
@@ -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 <EPICS>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 <epics>/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 <EPICS>/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.
|
||||
<epics>\base\include
|
||||
<epics>\base\include\os\win32
|
||||
6b) You will need to link with the following path in effect.
|
||||
<epics>\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".
|
||||
538
README.htm
538
README.htm
@@ -1,538 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
README.htm
|
||||
<center>
|
||||
<h1>
|
||||
Installation Instructions</h1></center>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
EPICS base</h2></center>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Release 3.14.0beta1</h2></center>
|
||||
|
||||
<h3>
|
||||
What is EPICS base?</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
What is new in this release?</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Copyright</h3>
|
||||
|
||||
<blockquote>Please review the COPYRIGHT* files included in the distribution
|
||||
for legal terms of usage.</blockquote>
|
||||
|
||||
<h3>
|
||||
Supported platforms</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<blockquote><b>Host platforms (operating system - architecture - <alternate
|
||||
c++ compiler>)</b>
|
||||
<blockquote><tt>solaris-sparc</tt>
|
||||
<br><tt>solaris-sparc-gnu</tt>
|
||||
<br><tt>linux-x86</tt>
|
||||
<br><tt>win32-x86</tt>
|
||||
<br><tt>win32-x86-borland</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<h4>
|
||||
Cross compile target platforms (operating system - architecture)</h4>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote><tt>vxWorks-486</tt>
|
||||
<br><tt>vxWorks-68040</tt>
|
||||
<br><tt>vxWorks-68040lc</tt>
|
||||
<br><tt>vxWorks-68060</tt>
|
||||
<br><tt>vxWorks-ppc603</tt>
|
||||
<br><tt>vxWorks-ppc604</tt>
|
||||
<br><tt>vxWorks-pentium</tt>
|
||||
<br><tt>RTEMS-gen68360</tt>
|
||||
<br><tt>RTEMS-mvme167</tt>
|
||||
<br><tt>RTEMS-pc386</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Supported compilers</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Software requirements</h3>
|
||||
|
||||
<blockquote><b>GNU make</b>
|
||||
<br>You must use GNU make, gnumake, for any EPICS builds. Set your
|
||||
path so that a gnumake version 3.70 or later is available.
|
||||
<p><b>Perl</b>
|
||||
<br>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.
|
||||
<p><b>Unzip and tar (Winzip on WIN32 systems)</b>
|
||||
<br>You must have tools available to unzip and untar the EPICS base distribution
|
||||
file.
|
||||
<p><b>Tornado 2.0</b>
|
||||
<br>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.
|
||||
<p><b>Optional GNU compiler requirement for solaris-sparc and win32-x86
|
||||
hosts</b>
|
||||
<br>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Host system storage requirements</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Documentation</h3>
|
||||
|
||||
<blockquote>EPICS documentation is available on the WWW via the EPICS home
|
||||
page at APS: URL <a href="http://www.aps.anl.gov/epics">http://www.aps.anl.gov/epics</a></blockquote>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
WWW pages</h3>
|
||||
|
||||
<blockquote>
|
||||
<h4>
|
||||
EPICS home page at APS</h4>
|
||||
|
||||
<blockquote><a href="http://www.aps.anl.gov/epics">http://www.aps.anl.gov/epics</a></blockquote>
|
||||
|
||||
<h4>
|
||||
Other WWW sites</h4>
|
||||
|
||||
<blockquote>Additional information on EPICS can be found at the various
|
||||
other WWW links on the EPICS home page at APS.</blockquote>
|
||||
|
||||
<h4>
|
||||
Mailing Lists</h4>
|
||||
|
||||
<blockquote>There are five EPICS mailing lists provided by APS. See The
|
||||
EPICS home page for subscription instructions.</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Directory Structure</h3>
|
||||
|
||||
<blockquote>Distribution directory structure:</blockquote>
|
||||
<tt> base
|
||||
Root directory of the base istribution</tt>
|
||||
<br><tt> base/config
|
||||
R3.13 compatibility build configuration files</tt>
|
||||
<br><tt> base/config/tools
|
||||
Perl and shell scripts used in the R3.13 build</tt>
|
||||
<br><tt> base/configure
|
||||
Operating system independent build config files</tt>
|
||||
<br><tt> base/configure/os
|
||||
Operating system dependent build config files</tt>
|
||||
<br><tt> base/configure/tools
|
||||
Perl and shell scripts used in the build</tt>
|
||||
<br><tt> base/copyright
|
||||
Text files describing software copyrights</tt>
|
||||
<br><tt> base/src
|
||||
All epics base source code in subdirectories</tt>
|
||||
<br><tt> base/src/as
|
||||
Access security</tt>
|
||||
<br><tt> base/src/bpt
|
||||
Break point table</tt>
|
||||
<br><tt> base/src/ca
|
||||
Channel access</tt>
|
||||
<br><tt> base/src/cas
|
||||
Channel access server</tt>
|
||||
<br><tt> base/src/db
|
||||
Database access</tt>
|
||||
<br><tt> base/src/db/test
|
||||
Database access tests</tt>
|
||||
<br><tt> base/src/dbStatic
|
||||
Static database access</tt>
|
||||
<br><tt> base/src/dbtools
|
||||
Database dbLoadTemplate tools</tt>
|
||||
<br><tt> base/src/dev
|
||||
Device support (softDev and testDev)</tt>
|
||||
<br><tt> base/src/gdd
|
||||
General data descriptor</tt>
|
||||
<br><tt> base/src/iocsh
|
||||
Ioc shell command interpreter</tt>
|
||||
<br><tt> base/src/libCom
|
||||
General purpose library code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/bucketLib
|
||||
Hash bucket</tt>
|
||||
<br><tt> base/src/libCom/calc
|
||||
Algebraic expression interpreter</tt>
|
||||
<br><tt> base/src/libCom/cvtFast
|
||||
Fast number to string conversion</tt>
|
||||
<br><tt> base/src/libCom/cxxTemplates C++ templates
|
||||
and templates tests</tt>
|
||||
<br><tt> base/src/libCom/dbmf
|
||||
Memory management for frequent alloc/free</tt>
|
||||
<br><tt> base/src/libCom/ellLib
|
||||
EPICS double linked list</tt>
|
||||
<br><tt> base/src/libCom/env
|
||||
Default EPICS environment settings</tt>
|
||||
<br><tt> base/src/libCom/error
|
||||
Error handling definitions and routines</tt>
|
||||
<br><tt> base/src/libCom/fdmgr
|
||||
File descriptor manager</tt>
|
||||
<br><tt> base/src/libCom/freeList
|
||||
Memory management using free lists</tt>
|
||||
<br><tt> base/src/libCom/gpHash
|
||||
General purpose hash table</tt>
|
||||
<br><tt> base/src/libCom/logClient
|
||||
Logging client</tt>
|
||||
<br><tt> base/src/libCom/macLib
|
||||
Macro substitution handler</tt>
|
||||
<br><tt> base/src/libCom/misc
|
||||
Miscellaneous utilities</tt>
|
||||
<br><tt> base/src/libCom/osi
|
||||
Operating system independent code</tt>
|
||||
<br><tt> base/src/libCom/osi/os
|
||||
Operating system dependant code in subdirectories</tt>
|
||||
<br><tt> base/src/libCom/taskwd
|
||||
Task watchdog</tt>
|
||||
<br><tt> base/src/libCom/test
|
||||
Test tools (timer, semBinary, semMutex,fdmgr, ?)</tt>
|
||||
<br><tt> base/src/libCom/timer
|
||||
Timer</tt>
|
||||
<br><tt> base/src/libCom/tsDefs
|
||||
R3.13 time stamp definitions and routines</tt>
|
||||
<br><tt> base/src/libCom/ring
|
||||
ringPointer: First in first out circular buffers</tt>
|
||||
<br><tt> base/src/libCom/cppStd
|
||||
epicsList: Lists of pointers to objects</tt>
|
||||
<br><tt> base/src/makeBaseApp
|
||||
Perl tool+templates to create ioc app dvl tree</tt>
|
||||
<br><tt> base/src/makeBaseExt
|
||||
Perl tool+templates to create extension dvl tree</tt>
|
||||
<br><tt> base/src/misc
|
||||
Miscellaneous (coreRelease, iocInit, asSub*)</tt>
|
||||
<br><tt> base/src/rec
|
||||
Record support</tt>
|
||||
<br><tt> base/src/registry
|
||||
EPICS support function registry</tt>
|
||||
<br><tt> base/src/rsrv
|
||||
Channel access ioc resource server library</tt>
|
||||
<br><tt> base/src/toolsComm
|
||||
Code for the build tools antelope and e_flex</tt>
|
||||
<br><tt> base/src/util
|
||||
Utilities (ca_test, iocLogServer, startCArepeater)</tt>
|
||||
<br><tt> base/src/vxWorks
|
||||
R3.13 compatibility code specific to vxWorks</tt>
|
||||
<br><tt> base/startup
|
||||
Scripts for setting up path and environment</tt>
|
||||
<p><tt> </tt>Install directories created by the
|
||||
build:
|
||||
<p><tt> base/bin
|
||||
Installed scripts and executables in subdirs</tt>
|
||||
<br><tt> base/lib
|
||||
Installed libraries in arch subdirectories</tt>
|
||||
<br><tt> base/dbd
|
||||
Installed data base definitions</tt>
|
||||
<br><tt> base/include
|
||||
Installed header files</tt>
|
||||
<br><tt> base/include/os
|
||||
Installed os specific header files</tt>
|
||||
<br><tt> base/templates
|
||||
Installed templates</tt>
|
||||
<h3>
|
||||
Build related components</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
base/README* files</li>
|
||||
|
||||
<br><tt>README.htm
|
||||
Instructions for setup and building epics base</tt>
|
||||
<br><tt>
|
||||
(i.e. this document)</tt>
|
||||
<br><tt>README.WIN32 Microsoft
|
||||
WIN32 specific instructions</tt>
|
||||
<br><tt>README.cxxTemplates Information about C++ templates in EPICS
|
||||
base</tt>
|
||||
<br><tt>README.niCpu030 NI cpu030 specific
|
||||
instructions</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/startup directory - contains scripts to set environment and path</li>
|
||||
|
||||
<br><tt>EpicsHostArch c shell script
|
||||
to set EPICS_HOST_ARCH env variable</tt>
|
||||
<br><tt>EpicsHostArch.pl perl script to set EPICS_HOST_ARCH
|
||||
env variable</tt>
|
||||
<br><tt>Site.profile bourne shell
|
||||
script to set path and env variables</tt>
|
||||
<br><tt>Site.cshrc
|
||||
c shell script to set path and env variables</tt>
|
||||
<br><tt>borland.bat WIN32
|
||||
bat file to set path and env variables</tt>
|
||||
<br><tt>win32.bat
|
||||
WIN32 bat file to set path and env variables</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/configure directory - contains build definitions and rules</li>
|
||||
|
||||
<br><tt>CONFIG.CrossCommon Cross build definitions</tt>
|
||||
<br><tt>CONFIG.gnuCommon Gnu compiler build
|
||||
definitions for all archs</tt>
|
||||
<br><tt>CONFIG_ADDONS Definitions
|
||||
for <osclass> and DEFAULT options</tt>
|
||||
<br><tt>CONFIG_BASE
|
||||
EPICS base tool and location definitions</tt>
|
||||
<br><tt>CONFIG_BASE_VERSION Definitions for EPICS base version
|
||||
number</tt>
|
||||
<br><tt>CONFIG_COMMON Definitions
|
||||
common to all builds</tt>
|
||||
<br><tt>CONFIG_ENV
|
||||
Definitions of EPICS environment variables</tt>
|
||||
<br><tt>CONFIG_SITE
|
||||
Site specific make defintions</tt>
|
||||
<br><tt>CONFIG_SITE_ENV Site defaults
|
||||
for EPICS environment variables</tt>
|
||||
<br><tt>CONFIG
|
||||
Includes configure files and allows variable overrides</tt>
|
||||
<br><tt>RELEASE
|
||||
Location of external products such as Tornado II</tt>
|
||||
<br><tt>RULES
|
||||
Includes appropriate rules file</tt>
|
||||
<br><tt>RULES.Db
|
||||
Rules for database and database definition files</tt>
|
||||
<br><tt>RULES_ARCHS
|
||||
Definitions and rules for building architectures</tt>
|
||||
<br><tt>RULES_BUILD
|
||||
Build and install rules and definitions</tt>
|
||||
<br><tt>RULES_DIRS
|
||||
Definitions and rules for building subdirectories</tt>
|
||||
<br><tt>RULES_JAVA
|
||||
Definitions and rules for java jars and classes</tt>
|
||||
<br><tt>RULES_TOP
|
||||
Rules specific to a <top> dir (uninstall and tar)</tt>
|
||||
<br><tt>Sample.Makefile Sample makefile
|
||||
with comments</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/configure/os directory - contains os-arch specific definitions</li>
|
||||
|
||||
<br><tt>CONFIG.<host>.<target> Specific
|
||||
host-target build definitions</tt>
|
||||
<br><tt>CONFIG.Common.<target> Specific
|
||||
target definitions for all hosts</tt>
|
||||
<br><tt>CONFIG.<host>.Common
|
||||
Specific host definitions for all targets</tt>
|
||||
<br><tt>CONFIG.UnixCommon.Common Definitions for Unix
|
||||
hosts and all target</tt>
|
||||
<br><tt>CONFIG.<host>.vxWorksCommon Specific host definitions for all
|
||||
vx targets</tt>
|
||||
<br><tt>CONFIG_COMPAT
|
||||
R3.13 arch compatibility definitions</tt>
|
||||
<br><tt>CONFIG_SITE.<host>.<target> Site specific host-target definitions</tt>
|
||||
<br><tt>CONFIG_SITE.Common.<target> Site specific target defs for all
|
||||
hosts</tt>
|
||||
<br><tt>CONFIG_SITE.<host>.Common Site specific host defs
|
||||
for all targets</tt>
|
||||
<br>
|
||||
<li>
|
||||
base/configure/tools directory - contains Perl scripts used for the build</li>
|
||||
|
||||
<br><tt>MakeReleae
|
||||
Unix shell script to create a release tar file</tt>
|
||||
<br><tt>convertRelease.pl Performs
|
||||
consistancy checks on RELEASE files</tt>
|
||||
<br><tt>cp.pl
|
||||
This Perl script copies an existing file</tt>
|
||||
<br><tt>installEpics.pl
|
||||
Installs built files into install directories.</tt>
|
||||
<br><tt>makeDependsTargets.pl Creates targets of include dependency
|
||||
files</tt>
|
||||
<br><tt>makeMakefile.pl
|
||||
Creates a Makefile in O.<arch> dirs</tt>
|
||||
<br><tt>makeMakefileInclude.pl Creates file to be included by Makefile</tt>
|
||||
<br><tt>mkdir.pl
|
||||
Creates a directory (like Unix mkdir)</tt>
|
||||
<br><tt>mkmf.pl
|
||||
Generates dependencies from include stmnts</tt>
|
||||
<br><tt>munch.pl
|
||||
Creates a ctdt.c file for vxWorks targets</tt>
|
||||
<br><tt>mv.pl
|
||||
Renames an existing file.</tt>
|
||||
<br><tt>replaceVAR.pl
|
||||
Changes CapFast VAR(xxx) to $(xxx) notation</tt>
|
||||
<br><tt>rm.pl
|
||||
Quietly removes an existing file.</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Building EPICS base (Unix and Win32)</h3>
|
||||
|
||||
<blockquote><b>Unpack file</b>
|
||||
<blockquote>Unzip and untar the distribution file. Use WinZip on Windows
|
||||
systems.</blockquote>
|
||||
S<b>et environment variables</b>
|
||||
<blockquote>Files in the base/startup directory have been provided to help
|
||||
set required path and other environment variables .
|
||||
<p><b>EPICS_HOST_ARCH</b>
|
||||
<br>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
|
||||
<br>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.
|
||||
<p><b>PERLLIB</b>
|
||||
<br>On WIN32, some versions of Perl require that the environment
|
||||
variable PERLLIB be set to <perl directory location>.</blockquote>
|
||||
|
||||
<blockquote><b>PATH</b>
|
||||
<br>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.
|
||||
<p><b>LD_LIBRARY_PATH</b>
|
||||
<br>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.
|
||||
<p><b>PATH</b>
|
||||
<br>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).
|
||||
<br> </blockquote>
|
||||
<b>Do site-specific build configuration</b>
|
||||
<blockquote><b>Site configuration</b>
|
||||
<br>To configure EPICS, you may want to modify the default definitions
|
||||
in the following files:
|
||||
<blockquote><tt>configure/CONFIG_SITE </tt>Build
|
||||
choices. Specify target archs.
|
||||
<br><tt>configure/CONFIG_SITE_ENV </tt>Environment variable defaults
|
||||
<br><tt>configure/RELEASE </tt>TORNADO
|
||||
2 full path location</blockquote>
|
||||
<b>Host configuration</b>
|
||||
<br>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.
|
||||
<blockquote><tt>configure/os/CONFIG.<host>.<host></tt>
|
||||
- Host build settings
|
||||
<br><tt>configure/os/CONFIG.<host>.Common</tt>
|
||||
- Host cross build settings</blockquote>
|
||||
<b>Target configuration</b>
|
||||
<br>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.
|
||||
<blockquote><tt>configure/os/CONFIG.Common.<target></tt>
|
||||
- Target cross settings
|
||||
<br><tt>configure/os/CONFIG.<host>.<target> </tt> - Host-target
|
||||
settings</blockquote>
|
||||
<b>R3.13 compatibility configuration</b>
|
||||
<br>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.</blockquote>
|
||||
|
||||
<h4>
|
||||
<b>Build EPICS base</b></h4>
|
||||
|
||||
<blockquote>After configuring the build you should be able to build EPICS
|
||||
base by issuing the following commands in the distribution's root directory
|
||||
(base)
|
||||
<blockquote><tt>gnumake clean uninstall</tt>
|
||||
<br><tt>gnumake</tt></blockquote>
|
||||
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.
|
||||
<br>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.</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Multiple host platforms</h3>
|
||||
|
||||
<blockquote>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 <tt>$(INSTALL_LOCATION)/bin/<arch></tt>
|
||||
directories. Libraries are installed into $<tt><font size=+1>(INSTALL_LOCATION)/lib/<arch></font></tt>.
|
||||
The default definition for <tt>$(INSTALL_LOCATION)</tt> is <tt>$(TOP)</tt>
|
||||
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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Example application and extension</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -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(<logical address>, 1, 0)
|
||||
|
||||
where <logical address> specifies the card with the
|
||||
front panel trigger connection.
|
||||
|
||||
johill@lanl.gov
|
||||
|
||||
@@ -1,298 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="ProgId" content="Word.Document">
|
||||
<meta name="Generator" content="Microsoft Word 9">
|
||||
<meta name="Originator" content="Microsoft Word 9">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
<title>Instruction on building existing R3</title>
|
||||
<link rel=File-List href="./READMEbuildingR3.13AppsWithR3.14_files/filelist.xml">
|
||||
<!--[if gte mso 9]><xml>
|
||||
<o:DocumentProperties>
|
||||
<o:LastAuthor>Jba</o:LastAuthor>
|
||||
<o:Revision>3</o:Revision>
|
||||
<o:TotalTime>4</o:TotalTime>
|
||||
<o:Created>2000-10-25T19:43:00Z</o:Created>
|
||||
<o:LastSaved>2000-10-25T19:47:00Z</o:LastSaved>
|
||||
<o:Pages>1</o:Pages>
|
||||
<o:Company>Argonne National Laboratory</o:Company>
|
||||
<o:Lines>1</o:Lines>
|
||||
<o:Paragraphs>1</o:Paragraphs>
|
||||
<o:Version>9.2720</o:Version>
|
||||
</o:DocumentProperties>
|
||||
</xml><![endif]-->
|
||||
<!--[if gte mso 9]><xml>
|
||||
<w:WordDocument>
|
||||
<w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery>
|
||||
<w:DisplayVerticalDrawingGridEvery>0</w:DisplayVerticalDrawingGridEvery>
|
||||
<w:UseMarginsForDrawingGridOrigin/>
|
||||
<w:Compatibility>
|
||||
<w:FootnoteLayoutLikeWW8/>
|
||||
<w:ShapeLayoutLikeWW8/>
|
||||
<w:AlignTablesRowByRow/>
|
||||
<w:ForgetLastTabAlignment/>
|
||||
<w:LayoutRawTableWidth/>
|
||||
<w:LayoutTableRowsApart/>
|
||||
</w:Compatibility>
|
||||
</w:WordDocument>
|
||||
</xml><![endif]-->
|
||||
<style>
|
||||
<!--
|
||||
/* Font Definitions */
|
||||
@font-face
|
||||
{font-family:"MS Mincho";
|
||||
panose-1:2 2 6 9 4 2 5 8 3 4;
|
||||
mso-font-alt:"\FF2D\FF33 \660E\671D";
|
||||
mso-font-charset:128;
|
||||
mso-generic-font-family:roman;
|
||||
mso-font-pitch:fixed;
|
||||
mso-font-signature:-1610612033 1757936891 16 0 131231 0;}
|
||||
@font-face
|
||||
{font-family:"\@MS Mincho";
|
||||
mso-font-charset:128;
|
||||
mso-generic-font-family:roman;
|
||||
mso-font-pitch:fixed;
|
||||
mso-font-signature:1 134676480 16 0 131072 0;}
|
||||
/* Style Definitions */
|
||||
p.MsoNormal, li.MsoNormal, div.MsoNormal
|
||||
{mso-style-parent:"";
|
||||
margin:0in;
|
||||
margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Times New Roman";
|
||||
mso-fareast-font-family:"Times New Roman";}
|
||||
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
|
||||
{margin:0in;
|
||||
margin-bottom:.0001pt;
|
||||
mso-pagination:widow-orphan;
|
||||
font-size:10.0pt;
|
||||
font-family:"Courier New";
|
||||
mso-fareast-font-family:"Times New Roman";}
|
||||
@page Section1
|
||||
{size:8.5in 11.0in;
|
||||
margin:1.0in 66.0pt 1.0in 66.0pt;
|
||||
mso-header-margin:.5in;
|
||||
mso-footer-margin:.5in;
|
||||
mso-paper-source:0;}
|
||||
div.Section1
|
||||
{page:Section1;}
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body lang="EN-US" style="tab-interval:.5in">
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Building EPICS R3.13 applications with R3.14.0beta1 base</h2></center>
|
||||
|
||||
<p><br>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:
|
||||
<ul>
|
||||
<li>
|
||||
The application still uses config rules rather than the configure rules
|
||||
which are new to release 3.14.</li>
|
||||
|
||||
<li>
|
||||
The OSI (Operating System Independent) features of R3.14 are not available,
|
||||
i.e. iocCore products can only be build for vxWorks.</li>
|
||||
|
||||
<li>
|
||||
Once the application is changed to build with base R3.14, it will not build
|
||||
with earlier base releases.</li>
|
||||
</ul>
|
||||
Ultimately applications should be converted to use the new configure rules
|
||||
so that the OSI features are available.
|
||||
<h3>
|
||||
<b>Gnumake clean uninstall</b></h3>
|
||||
|
||||
<blockquote>At the top of the application execute:
|
||||
<pre>"<tt>gnumake clean uninstall</tt>"</pre>
|
||||
to remove all files and directories created by earlier builds.</blockquote>
|
||||
|
||||
<h3>
|
||||
Update RELEASE</h3>
|
||||
|
||||
<blockquote>Change the <tt>EPICS_BASE</tt> 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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Update target arch definitions</h3>
|
||||
|
||||
<blockquote>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.
|
||||
<p>For example, in config/CONFIG change
|
||||
<pre>CROSS_COMPILER_TARGET_ARCHS = mv167</pre>
|
||||
to
|
||||
<pre>CROSS_COMPILER_TARGET_ARCHS = vxWorks-68040</pre>
|
||||
In the iocBoot/*/Makefile files, change
|
||||
<pre>ARCH=<old arch name></pre>
|
||||
to
|
||||
<pre>ARCH=<new arch name></pre>
|
||||
and do a "<tt>gnumake"</tt> in the iocBoot directory to update the cdCommands
|
||||
files.</blockquote>
|
||||
|
||||
<h3>
|
||||
State Notation Language changes</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<blockquote>Change
|
||||
<pre>INSTALLS=seq</pre>
|
||||
to
|
||||
<pre>LIBOBJS += $(SEQ_BIN)/seqLibrary.o</pre>
|
||||
|
||||
<p><br>in application src/Makefile.Vx files to link seq library into your
|
||||
application library,.
|
||||
<br>Also add
|
||||
<pre>SEQ=<full path to seq module directory></pre>
|
||||
to config/RELEASE.
|
||||
<br>Also remove
|
||||
<pre>ld < seq</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
|
||||
<h3>
|
||||
iocCore changes</h3>
|
||||
|
||||
<blockquote>iocCore has been renamed to iocCoreLibrary.o.
|
||||
<br>Change
|
||||
<pre>INSTALLS=iocCore</pre>
|
||||
to
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/iocCoreLibrary.o</pre>
|
||||
in your application src/Makefile.Vx files .
|
||||
<br>Also remove
|
||||
<pre>ld < iocCore</pre>
|
||||
from the st.cmd files in the iocBoot subdirectories.</blockquote>
|
||||
|
||||
<h3>
|
||||
Library db changes</h3>
|
||||
|
||||
<blockquote>The Db library name was changed to dbStaticHost for host builds
|
||||
and dbStaticIoc for ioc builds.
|
||||
<br>Change
|
||||
<pre>PROD_LIBS+=Db</pre>
|
||||
to
|
||||
<pre>PROD_LIBS+=dbStaticHost</pre>
|
||||
and
|
||||
<pre>Db_DIR=$(EPICS_BASE_LIB)</pre>
|
||||
to
|
||||
<pre>dbStaticHost_DIR=$(EPICS_BASE_LIB)</pre>
|
||||
in your application src/Makefile.Host files.</blockquote>
|
||||
|
||||
<h3>
|
||||
VxWorks C++ munched libraries and object files</h3>
|
||||
|
||||
<blockquote>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 "<tt>.munch</tt>"
|
||||
to the ld lines where object files were previously loaded. For example
|
||||
change
|
||||
<pre>ld < exampleLib</pre>
|
||||
to
|
||||
<pre>ld < exampleLibrary.munch</pre>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
recGbl calls</h3>
|
||||
|
||||
<blockquote>You may need to add the line "<tt>#include "recGbl.h</tt>"
|
||||
to any source files that have recGbl* calls so that the file will compile
|
||||
without errors.</blockquote>
|
||||
|
||||
<h3>
|
||||
Record support changes</h3>
|
||||
|
||||
<blockquote>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 <tt>LIBOBJS</tt> definitions. For example
|
||||
<br>add
|
||||
<pre>PID=<full path to modules directory>/pid</pre>
|
||||
to config/RELEASE.
|
||||
<br>Remove
|
||||
<pre>LIBOBJS += $(EPICS_BASE_BIN)/pidRecord.o</pre>
|
||||
from baseLIBOBJS,
|
||||
<br>and add
|
||||
<pre>LIBOBJS += $(PID_BIN)/pidRecord.o</pre>
|
||||
to your application src/Makefile.
|
||||
<p>You should consider changing any existing old steppermotor records to
|
||||
the new EPICS <a href="http://www.aps.anl.gov/upd/people/sluiter/epics/modules/mechanism/motor/index.html">motor
|
||||
record</a> module supported by Beamline Controls and Data Acquisition
|
||||
at APS.</blockquote>
|
||||
|
||||
<h3>
|
||||
RecDynLink.o and devPtSoft changes</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
Hardware support changes</h3>
|
||||
|
||||
<blockquote>All hardware support (dev, drv and dbd files) has been unbundled
|
||||
from base R3.14. This support includes the files <tt>symb, symb.dbd, drvHp1404a.o,
|
||||
drvEpvxiMsg.o, and drvEpvxi.o</tt>. If they are not used in your
|
||||
application, comment out references to these files in base.dbd and baseLIBOBJS.
|
||||
<p>Hardware support files now exist as separate modules available for download
|
||||
from the <a href="http://www.aps.anl.gov/epics/">EPICS www home page at
|
||||
ANL</a>. 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 <tt>LIBOBJS</tt> location definition <tt>$(EPICS_BASE_BIN)</tt>
|
||||
to the module definition bin directory in your application src directory
|
||||
files.
|
||||
<p>For example, remove
|
||||
<pre>LIBOBJS+=$(EPICS_BASE_BIN)/symb</pre>
|
||||
from baseLIBOBJS and add
|
||||
<pre>LIBOBJS+=$(SYMB_BIN)/symb</pre>
|
||||
to your application src/Makefile,
|
||||
<br>and add the line
|
||||
<pre>SYMB=<full path definition for the built module SYMB></pre>
|
||||
into your application config/RELEASE file .
|
||||
<p>After a gnumake in the symb module followed by a gnumake in the application
|
||||
config directory, the definitions <tt>SYMB_BIN</tt> and <tt>SYMB_LIB</tt>
|
||||
will be created, the directory $(SYMB)/include will be added to the
|
||||
include directories on the compiler command lines (in the <tt>INSTALL_INCLUDES</tt>
|
||||
definition) and the directory $(SYMB)/dbd will be added to the dbd
|
||||
search directories on the dbExpand command lines (in the <tt>INSTALL_DBDFLAGS</tt>
|
||||
definition).</blockquote>
|
||||
|
||||
<h3>
|
||||
dbLoadtemplate tool changes</h3>
|
||||
|
||||
<blockquote>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.
|
||||
<p>In config/RULES.Db replace the line
|
||||
<pre>DBLOADTEMPLATE=$(EPICS_BASE_HOST_BIN)/dbLoadTemplate$(EXE)</pre>
|
||||
with
|
||||
<pre>MSI = $(firstword $(wildcard $(EPICS_EXTENSIONS_HOST_BIN)/msi$(HOSTEXE) \
|
||||
(EPICS_EXTENSIONS)/bin/$(HOST_OS_CLASS)/msi$(HOSTEXE)) msi$(HOSTEXE))</pre>
|
||||
and change line:
|
||||
<pre>@$(DBLOADTEMPLATE) $< > $@</pre>
|
||||
to
|
||||
<pre>@$(MSI) $< > $@</pre>
|
||||
Also, if dbLoadTemplate was used by your application, add the definition
|
||||
<blockquote>
|
||||
<pre>EPICS_EXTENSIONS=<full path name to epics extensions directory></pre>
|
||||
</blockquote>
|
||||
to your application config/RELEASE file.</blockquote>
|
||||
depends changes
|
||||
<p> Remove any SRCS.c and SRCS.cc definitions in
|
||||
your application src/Makefile..*files. The depends rule no longer uses
|
||||
these definitions.
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,132 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
<meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Building EPICS R3.13 extensions with R3.14 base</h2></center>
|
||||
|
||||
<p><br>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.
|
||||
<h3>
|
||||
Preliminary steps for all extensions</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
Download the latest version (10/25/00) of the extensions/config files,
|
||||
extensionsConfig.tar.gz, from the APS EPICS www page.</li>
|
||||
|
||||
<li>
|
||||
Make certain that you have set the HOST_ARCH environment variable.</li>
|
||||
|
||||
<li>
|
||||
Set EPICS_BASE in extensions/config/RELEASE to the full path location of
|
||||
a built R3.14 base.</li>
|
||||
|
||||
<li>
|
||||
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.</li>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Building downloaded APS distribution extensions with base R3.14</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
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.</li>
|
||||
|
||||
<li>
|
||||
Executing gnumake at the root level of the extensions tree or in the src
|
||||
directory should build the APS extensions in the proper order.</li>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Building your extensions with base R3.14</h3>
|
||||
|
||||
<blockquote>
|
||||
<li>
|
||||
<b>Library Db renamed</b></li>
|
||||
|
||||
<br>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.
|
||||
<blockquote><tt>ifdef BASE_3_14</tt>
|
||||
<br><tt>USR_LIBS += dbStaticHost</tt>
|
||||
<br><tt>dbStaticHost_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br><tt>else</tt>
|
||||
<br><tt>USR_LIBS += Db</tt>
|
||||
<br><tt>Db_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>Target architecture specifications changed</b></li>
|
||||
|
||||
<br>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.
|
||||
<br>For example change
|
||||
<blockquote><tt>ifeq ($(T_A),solaris)</tt>
|
||||
<br><tt>RPCFLAGS = -K -1</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
to
|
||||
<blockquote><tt>ifeq ($(OS_CLASS),solaris)</tt>
|
||||
<br><tt>RPCFLAGS = -K -1</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>New ca_set_puser</b></li>
|
||||
|
||||
<br>Statements of the form: <tt>ca_puser(chid) = xyz</tt>; should to be
|
||||
changed to: <tt>ca_set_puser(chid,xyz)</tt>;
|
||||
<br>
|
||||
<li>
|
||||
<b>Extern C around includes</b></li>
|
||||
|
||||
<br>Remove any extern "C" braces around #includes of EPICS base header
|
||||
files.
|
||||
<br>For example change
|
||||
<blockquote><tt>extern "C" {</tt>
|
||||
<br><tt>#include "cadefs.h"</tt>
|
||||
<br><tt>} /* end extern C */</tt></blockquote>
|
||||
to
|
||||
<blockquote><tt>#include "cadefs.h"</tt></blockquote>
|
||||
|
||||
<li>
|
||||
<b>Infrequently used R3.13 timestamp functions unbundled from base</b></li>
|
||||
|
||||
<br>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.
|
||||
<br>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:
|
||||
<blockquote><tt>#include "tsSubr.h"</tt>
|
||||
<p><tt>ifdef BASE_3_14</tt>
|
||||
<br><tt>PROD_LIBS += ts</tt>
|
||||
<br><tt>ts_DIR = $(EPICS_EXTENSIONS_LIB)</tt>
|
||||
<br><tt>endif</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,302 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Converting an EPICS R3.13 application to R3.14.0.beta1</h2></center>
|
||||
|
||||
<p><br>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:
|
||||
<ul>
|
||||
<li>
|
||||
The application uses the configure rules which are new to R3.14.</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
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.</li>
|
||||
</ul>
|
||||
|
||||
<h3>
|
||||
Gnumake clean uninstall</h3>
|
||||
|
||||
<blockquote>First do a gnumake clean uninstall in the application's root
|
||||
directory to remove all files created by earlier builds.</blockquote>
|
||||
|
||||
<h3>
|
||||
Create a new R3.14 application</h3>
|
||||
|
||||
<blockquote><tt>mkdir <top></tt>
|
||||
<br><tt>cd <top></tt>
|
||||
<br><tt><full path to R3.14.0beta1 base>/bin/<host_arch>/makeBaseApp.pl
|
||||
-t example example</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Copy all *App and iocBoot directories and files to the new <top> directory</h3>
|
||||
|
||||
<blockquote><tt>cd <oldtop></tt>
|
||||
<br><tt>find *App iocBoot -print | cpio -pvmd <fullpath name to new
|
||||
top></tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify <top>/configure/RELEASE</h3>
|
||||
|
||||
<blockquote>Copy definitions of external modules excluding EPICS_BASE and
|
||||
TEMPLATES_TOP from old application RELEASE file.
|
||||
<br>If sequence programs (*.st or *.stt files) exist in your application,
|
||||
add the SNCSEQ location definition for the R3.14 seq external module
|
||||
<blockquote><tt>SNCSEQ =<full path to seq module top></tt></blockquote>
|
||||
The R3.14 seq module must exist and be built with EPICS base R3.14.0beta1.</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/*App directories.</h3>
|
||||
|
||||
<blockquote>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/RULES_DIRS</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES_DIRS</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/*App/*Db directories.</h3>
|
||||
|
||||
<blockquote>Remove existing Makefile
|
||||
<br>Rename Makefile.Host to Makefile
|
||||
<br>Modify Makefile as follows:
|
||||
<p>Change <tt>TOP=../../..</tt>
|
||||
<br>to <tt>TOP=../..</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change <tt>include $(TOP)/config/RULES.Db</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES</tt>
|
||||
<p>Place all definitions between the include lines.
|
||||
<p>Place any rules after the last include line.</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/*App/src directories.</h3>
|
||||
|
||||
<blockquote>Remove existing Makefile
|
||||
<br>Rename Makefile.Host to Makefile
|
||||
<br>Modify Makefile as follows:
|
||||
<p>Change <tt>TOP=../../..</tt>
|
||||
<br>to <tt>TOP=../..</tt>
|
||||
<p>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change i<tt>nclude $(TOP)/config/RULES.Host</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES</tt>
|
||||
<p>Change <tt>PROD_LIBS = <name></tt>
|
||||
<br>to <tt> <prod name>_LIBS = dbStaticHost</tt>
|
||||
<br>where <tt><prod name></tt> is a specifified product to be
|
||||
built.
|
||||
<p>Change library name <tt>Db</tt> to <tt>dbStaticHost.</tt>
|
||||
<br>Change<tt> PROD_LIBS = Db</tt>
|
||||
<br>to <tt> <prodname>_LIBS += dbStaticHost</tt>
|
||||
<br>and <tt>Db_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<br>to <tt>dbStaticHost_DIR = $(EPICS_BASE_LIB)</tt>
|
||||
<p>Change <tt>USER_DBDFLAGS</tt>
|
||||
<br>to <tt>USR_DBDFLAGS</tt>
|
||||
<p>Change <tt>RECTYPES += xxxRecord.h</tt>
|
||||
<br>to <tt>DBDINC += xxxRecord</tt>
|
||||
<p>Change <tt>DBDNAME = <name>App.dbd</tt>
|
||||
<br>to <tt>DBD += <name>.dbd</tt>
|
||||
<p>Remove all <tt>DBDEXPAND</tt> lines.
|
||||
<p>Change <tt>PROD = <prodname></tt>
|
||||
<br>to <tt>PROD_HOST = <prodname></tt>
|
||||
<p>Change <tt>SRCS.c += <name></tt>
|
||||
<br>to <tt><prodname>_SRCS += <name></tt>
|
||||
<br>or<tt> <libname>_SRCS += <name></tt>
|
||||
<p>Add the contents of Makefile.Vx to Makefile removing the include lines
|
||||
and the TOP definition.</blockquote>
|
||||
|
||||
<blockquote>Change <tt>LIBNAME = <libname>Lib</tt>
|
||||
<br>to <tt>PROD_vxWorks = <libname></tt>
|
||||
<p>Remove line <tt> -include ../baseLIBOBJS</tt>
|
||||
<p>Remove line <tt>INSTALLS = iocCore seq</tt>
|
||||
<p>Change all <tt>SRCS.c += ../<name>.c </tt>lines
|
||||
<br>to <font face="Arial,Helvetica"><prodname>_SRCS += <name>.c</font>
|
||||
<br>if the source files exist in the current directory.
|
||||
<p>Change all <tt>*OBJS += <name>.o</tt>
|
||||
lines
|
||||
<br>to <font face="Arial,Helvetica"><prodname>_SRCS += <name>.c</font>
|
||||
<br>or <font face="Arial,Helvetica"> <prodname>_SRCS += <name>.cc</font>
|
||||
<br>if the c/c++ source files exist in the current directory.
|
||||
<p>Change <tt>LIBOBJS += <seq_program_name>.o</tt>
|
||||
lines
|
||||
<br>to <tt><prodname>_SRCS += <seq_program_name>.stt</tt>
|
||||
<br>or <tt><prodname>_SRCS += <seq_program_name>.st</tt>
|
||||
<p>Add the lines
|
||||
<blockquote><tt>#<name>_LIBS += seq</tt>
|
||||
<br><tt>#<name>_LIBS += pv</tt>
|
||||
<br><tt>#seq_DIR = $(SNCSEQ_LIB)</tt>
|
||||
<br><tt>#pv_DIR = $(SNCSEQ_LIB)</tt>
|
||||
<p><tt><name>_LIBS += recIoc</tt>
|
||||
<br><tt><name>_LIBS += softDevIoc</tt>
|
||||
<br><tt><name>_LIBS += testDevIoc</tt>
|
||||
<br><tt><name>_LIBS += iocsh</tt>
|
||||
<br><tt><name>_LIBS += miscIoc</tt>
|
||||
<br><tt><name>_LIBS += rsrvIoc</tt>
|
||||
<br><tt><name>_LIBS += dbtoolsIoc</tt>
|
||||
<br><tt><name>_LIBS += asIoc</tt>
|
||||
<br><tt><name>_LIBS += dbIoc</tt>
|
||||
<br><tt><name>_LIBS += registryIoc</tt>
|
||||
<br><tt><name>_LIBS += dbStaticIoc</tt>
|
||||
<br><tt><name>_LIBS += ca</tt>
|
||||
<br><tt><name>_LIBS += Com</tt></blockquote>
|
||||
where <tt><name></tt> is the name in the <tt>PROD_vxWorks</tt>
|
||||
definition, and uncomment the first four lines if you have sequence programs
|
||||
(.st or .stt files) in the current directory.
|
||||
<p>Place all macro definitions between the include lines.
|
||||
<p>Place any rules after the last include line.</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/iocBoot directory.</h3>
|
||||
|
||||
<blockquote>Change i<tt>nclude $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Remove the line <tt>DIRS += $(wildcard *ioc*)</tt>
|
||||
<p>Change <tt>include $(TOP)/config/RULES.iocBoot</tt>
|
||||
<br>to i<tt>nclude $(TOP)/configure/RULES.iocBoot</tt></blockquote>
|
||||
|
||||
<h3>
|
||||
Modify the Makefiles in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Change <tt>include $(TOP)/config/CONFIG_APP</tt>
|
||||
<br>to <tt>include $(TOP)/configure/CONFIG</tt>
|
||||
<p>Change <tt>include ARCH = <old arch specification e.g. mv167></tt>
|
||||
<br>to <tt>include ARCH = <new arch specificatio
|
||||
e.g. vxWorks-68040></tt>
|
||||
<p>Change <tt>include $(TOP)/config/RULES.ioc</tt>
|
||||
<br>to <tt>include $(TOP)/configure/RULES.ioc</tt>
|
||||
<p>Add the following rule at the end of the Makefile.
|
||||
<blockquote><tt>buildInstall: cdCommands</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Modify st.cmd in <top>/iocBoot/ioc* directories.</h3>
|
||||
|
||||
<blockquote>Remove the lines</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<pre>ld < seq</pre>
|
||||
|
||||
<pre>ld < iocCore</pre>
|
||||
</blockquote>
|
||||
Change <tt>ld < <libname>Lib</tt>
|
||||
<br>to <tt>ld < <libname>.munch</tt>
|
||||
<p>Change load statements for db and dbd files from
|
||||
<blockquote><tt>cd startup</tt>
|
||||
<br><tt>dbLoadDatabase("../../dbd/exampleApp.dbd")</tt>
|
||||
<br><tt>dbLoadRecords("../../db/dbExample1.db","user=jba")</tt>
|
||||
<br><tt>dbLoadRecords("../../db/dbExample2.db")</tt></blockquote>
|
||||
to
|
||||
<blockquote><tt>cd top</tt>
|
||||
<br><tt>dbLoadDatabase("dbd/example.dbd")</tt>
|
||||
<br><tt>registerRecordDeviceDriver(pdbbase)</tt>
|
||||
<br><tt>dbLoadRecords("db/dbExample1.db","user=jba")</tt>
|
||||
<br><tt>dbLoadRecords("db/dbExample2.db")</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Record support changes</h3>
|
||||
|
||||
<blockquote>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 <tt>LIBOBJS</tt> definitions.
|
||||
<p>For example add</blockquote>
|
||||
|
||||
<blockquote> <tt>PID=<full
|
||||
path to modules directory>/pid</tt>
|
||||
<p>to config/RELEASE.
|
||||
<br>Remove</blockquote>
|
||||
|
||||
<blockquote> <tt>LIBOBJS
|
||||
+= $(EPICS_BASE_BIN)/pidRecord.o</tt>
|
||||
<p>from baseLIBOBJS, and add</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote><tt>LIBOBJS += $(PID_BIN)/pidRecord.o</tt></blockquote>
|
||||
to your application src/Makefile.</blockquote>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<h3>
|
||||
RecDynLink.o and devPtSoft changes</h3>
|
||||
|
||||
<blockquote>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
|
||||
<tt>LIBOBJS</tt>
|
||||
location definition <tt>$(EPICS_BASE_BIN)</tt> to the module definition
|
||||
bin directory in your application src directory files. See "Hardware
|
||||
support changes" below for instructions.</blockquote>
|
||||
|
||||
<h3>
|
||||
Hardware support changes</h3>
|
||||
|
||||
<blockquote>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.</blockquote>
|
||||
|
||||
<blockquote>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
|
||||
<tt>LIBOBJS</tt>
|
||||
location from <tt>$(EPICS_BASE_BIN) </tt>to the module bin directory
|
||||
in your application src directory files.
|
||||
<p>For example, remove</blockquote>
|
||||
|
||||
<blockquote> <tt>LIBOBJS+=$(EPICS_BASE_BIN)/symb</tt></blockquote>
|
||||
|
||||
<blockquote>from baseLIBOBJS and add</blockquote>
|
||||
|
||||
<blockquote> <tt>LIBOBJS+=$(SYMB_BIN)/symb</tt></blockquote>
|
||||
|
||||
<blockquote>to your application src/Makefile,
|
||||
<br>and add the line</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote><tt>SYMB=<full path definition for the built module SYMB></tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<blockquote>into your application config/RELEASE file .</blockquote>
|
||||
|
||||
<h3>
|
||||
dbLoadtemplate tool changes</h3>
|
||||
|
||||
<blockquote>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
|
||||
<p> <tt>EPICS_EXTENSIONS=<full
|
||||
path name to epics extensions directory></tt>
|
||||
<p>to your application config/RELEASE file.</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
|
||||
<blockquote>
|
||||
<pre></pre>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,145 +0,0 @@
|
||||
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="Author" content="jba">
|
||||
<meta name="GENERATOR" content="Mozilla/4.77 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<center>
|
||||
<h2>
|
||||
Converting an EPICS R3.14.0 alpha2 application to beta1</h2></center>
|
||||
|
||||
<p><br>This document describes how to convert a R3.14.0alpha2 application
|
||||
so that it builds with release R3.14.0beta1.
|
||||
<h3>
|
||||
Gnumake clean uninstall</h3>
|
||||
|
||||
<blockquote>First do a "<tt>gnumake clean uninstall"</tt> in the application's
|
||||
root directory to remove all files created by earlier builds.</blockquote>
|
||||
|
||||
<h3>
|
||||
Replace configure/RULES.ioc and configure/Makefile</h3>
|
||||
|
||||
<blockquote>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</blockquote>
|
||||
|
||||
<h3>
|
||||
Remove baseLIBOBJS</h3>
|
||||
|
||||
<blockquote>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
|
||||
<blockquote><tt>-include ../baseLIBOBJS</tt></blockquote>
|
||||
and the file baseLIBOBJS. If there are no LIBOBJS definitions in the Makefile,
|
||||
also remove
|
||||
<blockquote><tt>example_OBJS += $(LIBOBJS)</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
Libraries recIoc, softDevIoc, and testDevIoc</h3>
|
||||
|
||||
<blockquote>Add the new record and dev support libraries to <name>App/src/Makefile,
|
||||
i.e. add the lines
|
||||
<blockquote><tt>example_LIBS += recIoc</tt>
|
||||
<br><tt>example_LIBS += softDevIoc</tt>
|
||||
<br><tt>example_LIBS += testDevIoc</tt></blockquote>
|
||||
and remove any references to iocLibrary, e.g. remove the line
|
||||
<blockquote><tt>example_OBJS_vxWorks += $(EPICS_BASE_BIN)/iocCoreLibrary</tt></blockquote>
|
||||
The order of references to base libraries is important so place recIoc
|
||||
and softDevIoc before the the other base library references.
|
||||
<p>If you are building on a WIN32 host add the following lines instead:
|
||||
<blockquote><tt># Use win32 object libs for registered support</tt>
|
||||
<br><tt>example_LIBS_win32 += recIocObj</tt>
|
||||
<br><tt>example_LIBS_win32 += softDevIocObj</tt>
|
||||
<br><tt>example_LIBS_win32 += testDevIocObj</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += recIoc</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += softDevIoc</tt>
|
||||
<br><tt>example_LIBS_DEFAULT += testDevIoc</tt></blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
iocrf renamed to iocsh</h3>
|
||||
|
||||
<blockquote>Change all references to ioccrf in your application src directories
|
||||
to iocsh e.g.
|
||||
<p>change <tt>#include "ioccrf.h"</tt>
|
||||
<br>to <tt>#include "iocsh.h"</tt>
|
||||
<p>change<tt> ioccrf(argv[1]);</tt>
|
||||
<br>to <tt> iocsh(argv[1]);</tt>
|
||||
<p>and change <tt> ioccrf(NULL);</tt>
|
||||
<br>to <tt>iocsh(NULL)</tt>;
|
||||
<p>in <name>App/src/exampleMain.c.</blockquote>
|
||||
|
||||
<h3>
|
||||
PROD changes</h3>
|
||||
|
||||
<blockquote>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
|
||||
<blockquote>change <tt>PROD += caExample</tt>
|
||||
<br>to <tt>PROD_HOST += caExample</tt>
|
||||
<br>and
|
||||
<br>change <tt>PROD = sncExample</tt>
|
||||
<br>to <tt>PROD_HOST += sncExample</tt></blockquote>
|
||||
</blockquote>
|
||||
<b>LIBRARY and PROD changes</b>
|
||||
<blockquote>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,
|
||||
<blockquote>change <tt>LIBRARY_vxWorks = <name></tt>
|
||||
<br>to <tt>PROD_vxWorks = <name></tt>
|
||||
<br>or
|
||||
<br>remove the lines <tt>LIBRARY_vxWorks = <name></tt>
|
||||
<br>and <tt>PROD_RTEMS = <name></tt>
|
||||
<br>and change <tt>PROD = <name></tt>
|
||||
<br>to <tt>PROD_IOC = <name></tt>.</blockquote>
|
||||
In the iocBoot/ioc<name>/st.cmd files,
|
||||
<blockquote>change <tt>ld < <name>Library.munch</tt>
|
||||
<br>to <tt>ld < <name>.munch</tt></blockquote>
|
||||
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
|
||||
<blockquote> caExample_SRCS += caExample.c</blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
registerRecordDeviceDriver changes</h3>
|
||||
|
||||
<blockquote>The created file registerRecordDeviceDriver.cpp is now used
|
||||
for all target architectures. Thus in your application src Makefiles
|
||||
<blockquote>change <tt>example_SRCS_DEFAULT += example_registerRecordDeviceDriver.cpp</tt>
|
||||
<br>to <tt>example_SRCS += example_registerRecordDeviceDriver.cpp</tt>
|
||||
<br><tt></tt> </blockquote>
|
||||
</blockquote>
|
||||
|
||||
<h3>
|
||||
RTEMS-specific pathname changes</h3>
|
||||
|
||||
<blockquote>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 <tt>dbLoadRecords("../../db/dbExample1.db","user=norume")</tt>
|
||||
<br>must be changed to
|
||||
<br><tt>dbLoadRecords("db/dbExample1.db","user=norume")</tt><tt></tt>
|
||||
<p>The makeBaseApp.pl script distributed with R3.14-beta1 creates st.cmd
|
||||
scripts with the proper path names.
|
||||
<p>2. The RTEMS TFTP remote filesystem supports a limited set of chdir
|
||||
operations.
|
||||
<br>All paths passed to chdir (or to the IOC shell `cd' command) must end
|
||||
in a `/'
|
||||
<br>character.</blockquote>
|
||||
|
||||
<blockquote>
|
||||
<blockquote> </blockquote>
|
||||
</blockquote>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,359 +0,0 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<title>EPICS Release baseR3.14 </title>
|
||||
</head>
|
||||
|
||||
<body lang="en">
|
||||
|
||||
<center>
|
||||
<h1>EPICS Release base 3.14.0beta2</h1>
|
||||
|
||||
<h1>MMM DD 2002</h1>
|
||||
</center>
|
||||
|
||||
<h2>Changes since beta1</h2>
|
||||
|
||||
<p><strong>recGblGetTimeStamp</strong></p>
|
||||
|
||||
<p>If TSE is -1 then recGblGetTimeStamp does not retrieve time. This allows device/driver support to set the time.</p>
|
||||
|
||||
<p><strong>aiRecord and aoRecord: Setting eoff=egul</strong></p>
|
||||
|
||||
<p>Instead of init_record executing code like</p>
|
||||
<pre> if ((pai->linr == menuConvertLINEAR) && pdset->special_linconv) {
|
||||
pai->eoff = pai->egul;
|
||||
}
|
||||
</pre>
|
||||
|
||||
<p>It now executes:</p>
|
||||
<pre> if ((pai->eslo==1.0) && (pai->eoff==0.0)) {
|
||||
pai->eoff = pai->egul;
|
||||
}
|
||||
</pre>
|
||||
<p>aoRecord has a similar change</p>
|
||||
|
||||
<p><strong>CA puts to disabled record</strong></p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p><strong>TPRO - trace processing</strong></p>
|
||||
|
||||
<p>If dbProcess is called recursively by different tasks, it did not properly
|
||||
handle TPRO. Consider the following database:</p>
|
||||
<pre>record(ao,"mrkao") {
|
||||
field(OUT,"mrkai CA")
|
||||
field(TPRO,"1")
|
||||
}
|
||||
record(ai,"mrkai") {
|
||||
field(TPRO,"1")
|
||||
}</pre>
|
||||
|
||||
<p>If a channel access put is sent to mrkao, no message is issued when mrkai
|
||||
is processed.</p>
|
||||
|
||||
<p>This is now fixed.</p>
|
||||
|
||||
<p><strong>TSconfigure</strong></p>
|
||||
|
||||
<p>If in your st.cmd file you issue the command.</p>
|
||||
|
||||
<p>TSconfigure(0,0,0,0,0,0,1)</p>
|
||||
|
||||
<p>And set the TSE field of any record to a non zero value, then a crash will
|
||||
occur when recGblGetTimeStamp is called.</p>
|
||||
|
||||
<p>This is now fixed.</p>
|
||||
|
||||
<p><strong>calcoutRecord</strong></p>
|
||||
|
||||
<p>nsev not sevr must be checked to decide if dbPutLink should be called.</p>
|
||||
|
||||
<p><strong>dbCa</strong></p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p><strong>calcPerform</strong></p>
|
||||
|
||||
<p>This now returns a non zero value if the result is nan (not a number).</p>
|
||||
|
||||
<p><b>Record Name Length</b></p>
|
||||
|
||||
<p>The size of the name field has been expanded from 29 to 61, i.e. record
|
||||
names can now have 60 characters.</p>
|
||||
|
||||
<p><b>iocInit</b></p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p><b>ellLib</b></p>
|
||||
|
||||
<p>Casts have been removed that suppressed valuable error messages</p>
|
||||
|
||||
<p><b>mbbiRecord</b></p>
|
||||
|
||||
<p>All existing manipulations of UDF in process() are removed and udf is set
|
||||
FALSE when the raw value is successfully read.</p>
|
||||
|
||||
<p><b>selRecord</b></p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p><b>cdCommands file</b></p>
|
||||
|
||||
<p>Fixed a bug and revised the use of the IOCS_APPL_TOP setting in an
|
||||
application's <top>/configure/CONFIG file (which specifies the path to
|
||||
<top>as seen by the IOC) to apply the same modifications to all paths output
|
||||
in the cdCommands file.</p>
|
||||
|
||||
<h2>Changes since alpha2</h2>
|
||||
All changes for release 3.13.5 that also apply to 3.14 have been made.
|
||||
|
||||
<p><b>devAiSoftRaw and devAoSoftRaw</b></p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>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</p>
|
||||
|
||||
<p>cd ../db/</p>
|
||||
|
||||
<center>
|
||||
<h1>EPICS Release base 3.14.0alpha2</h1>
|
||||
</center>
|
||||
Since the alpha1 release some major changes were made to the build system, to
|
||||
some of the libCom facilities, and to the iocsh facilities.
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<p>A verion of the HPlanGpib support has been built and tested with this
|
||||
release. Again you must obtain a version that builds with alpha2.</p>
|
||||
|
||||
<p>A new update to the Application Developer's Guide is available for this
|
||||
release.</p>
|
||||
|
||||
<h3>Build changes</h3>
|
||||
<ul>
|
||||
<li>Operating system independant builds are now done in an O.Common
|
||||
subdirectory and then installed instead of being performed directly in an
|
||||
install directory.</li>
|
||||
<li>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.</li>
|
||||
<li>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.</li>
|
||||
<li>"gnumake depends" no longer depends on a complete buildInstall.</li>
|
||||
</ul>
|
||||
|
||||
<h3>Converting alpha1 applications to alpha2</h3>
|
||||
Build modifications in alpha2 require the following changes to existing R3.14
|
||||
applications.
|
||||
<ul>
|
||||
<li> Remove the now unused RULES files</li>
|
||||
<li><ul>
|
||||
./configure/RULES.Db <br>
|
||||
./configure/RULES.registerRecordDeviceDriver <br>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Delete the following line in ./configure/RULES
|
||||
<ul>
|
||||
<br>
|
||||
include $(TOP)/configure/RULES.registerRecordDeviceDriver</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li> In <top>/configure/Makefile change
|
||||
<ul>
|
||||
<br>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(T_A) $@ $(TOP)</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
@$(PERL) $(TOOLS)/makeConfigAppInclude.pl $(EPICS_HOST_ARCH) $(T_A) $@
|
||||
$(TOP) <br>
|
||||
</ul>
|
||||
and add the line
|
||||
<ul>
|
||||
<br>
|
||||
depends: install <br>
|
||||
</ul>
|
||||
to the bottom of the Makefile.
|
||||
<ul>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>In all *App/*Db/Makefileschange
|
||||
<ul>
|
||||
<br>
|
||||
include $(TOP)/configure/RULES.Db</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
include $(TOP)/configure/RULES</ul>
|
||||
<li>In all *App/src/Makefile files
|
||||
<ul>
|
||||
</ul>
|
||||
</li>
|
||||
change DBDNAME = <name>App to DBD += <name>
|
||||
<ul>
|
||||
</ul>
|
||||
and remove the line <br>
|
||||
|
||||
<ul>
|
||||
DBDEXPAND = <name>Include.dbd <br>
|
||||
</ul>
|
||||
NOTE: If any of your *App/*Db/Makefiles contain "DBDNAME =" lines you
|
||||
should make these same changes in that *Db dirctory. <br>
|
||||
|
||||
<ul>
|
||||
<li>In all *App/src/Makefile Makefiles</li>
|
||||
</ul>
|
||||
<ul>
|
||||
</ul>
|
||||
change RECTYPES=<name>.h to DBDINC+=<name>
|
||||
<ul>
|
||||
</ul>
|
||||
change MENUS=<name>.h to DBDINC+=<name></ul>
|
||||
<ul>
|
||||
change BPTS to DBD
|
||||
|
||||
<p>change INSTALLDB to DB</p>
|
||||
|
||||
<p>change DBDINSTALL to DBD <br>
|
||||
</p>
|
||||
<li>In all example *App/src/Makefile files change
|
||||
<ul>
|
||||
<br>
|
||||
example_SRCS_DEFAULT += registerRecordDeviceDriver.c</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
example_SRCS_DEFAULT += <name>_registerRecordDeviceDriver.cpp <br>
|
||||
</ul>
|
||||
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). <br>
|
||||
|
||||
<ul>
|
||||
<li>In ./iocBoot/ioc<name>/st.cmd files change</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
<ul>
|
||||
dbLoadDatabase("dbd/exampleApp.dbd")</ul>
|
||||
to
|
||||
<ul>
|
||||
dbLoadDatabase("dbd/example.dbd") <br>
|
||||
</ul>
|
||||
<li>In <top>/iocBoot/ioc<name>/stcmd.host files change
|
||||
<ul>
|
||||
<br>
|
||||
dbLoadDatabase("../../dbd/exampleApp.dbd",0,0)</ul>
|
||||
</li>
|
||||
to
|
||||
<ul>
|
||||
dbLoadDatabase("../../dbd/example.dbd",0,0)</ul>
|
||||
</ul>
|
||||
|
||||
<h3>EPICS_HOST_ARCH changes</h3>
|
||||
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. <br>
|
||||
|
||||
|
||||
<h3>libCom</h3>
|
||||
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. <br>
|
||||
|
||||
|
||||
<center>
|
||||
<h2>EPICS Release base 3.14.0alpha1 Notes</h2>
|
||||
</center>
|
||||
|
||||
<p><br>
|
||||
</p>
|
||||
|
||||
<p>This is the first release of 3.14. This is the first release that supports
|
||||
iocCore on platforms besides vxWorks.</p>
|
||||
|
||||
<p>iocCore is now supported on the following platforms:</p>
|
||||
<ul>
|
||||
<li>vxWorks</li>
|
||||
<br>
|
||||
Tornado II is required.
|
||||
<ul>
|
||||
<li>RTEMS</li>
|
||||
</ul>
|
||||
<br>
|
||||
An open source real time operating system. It has been tested on MVME167
|
||||
and MC68360 processors. RTEMS also supports powerPC.
|
||||
<ul>
|
||||
<li>solaris</li>
|
||||
</ul>
|
||||
<br>
|
||||
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.
|
||||
<ul>
|
||||
<li>Linux</li>
|
||||
</ul>
|
||||
<br>
|
||||
Has been tested on Redhat x86 platforms.
|
||||
<ul>
|
||||
<li>winNT</li>
|
||||
</ul>
|
||||
<br>
|
||||
Testing has been done with visual C++ 6.0.</ul>
|
||||
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.
|
||||
|
||||
<p>http://www.aps.anl.gov/epics/modules/base/R3-14.php</p>
|
||||
|
||||
<p>Most of the Application Developer's Guide has only minor changes. The
|
||||
following are new.</p>
|
||||
<ul>
|
||||
<li>Chapter 2 describes the new features for 3.14.</li>
|
||||
<li>Chapter 4 describes the build facility for 3.14</li>
|
||||
<li>Chapters 19 and 20 describe libCom, which was not previously
|
||||
documented.</li>
|
||||
</ul>
|
||||
|
||||
<p><br>
|
||||
It must be emphasized that this is an alpha release.</p>
|
||||
<ul>
|
||||
<li>Please don't use it for existing operational systems</li>
|
||||
<li>Don't build your operational CA clients with it.</li>
|
||||
<li>The APIs for new components in libCom are still evolving so if you use
|
||||
them be prepared for changes.</li>
|
||||
<li>HPUX - No support currently because we could not find good support for
|
||||
multithreading.</li>
|
||||
</ul>
|
||||
Building Applications
|
||||
<ul>
|
||||
<li>For new applications see Chapters 2 (New Features) and Chapter 4 (Build
|
||||
Facility) of the Application Developer's Guide.</li>
|
||||
<li>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.</li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user