Merge branch '3.15' into epicsEnvUnset
Conflicts: documentation/RELEASE_NOTES.html
This commit is contained in:
@@ -17,7 +17,7 @@ ticker() {
|
||||
|
||||
CACHEKEY=1
|
||||
|
||||
EPICS_HOST_ARCH=`sh startup/EpicsHostArch`
|
||||
EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl`
|
||||
|
||||
[ -e configure/os/CONFIG_SITE.Common.linux-x86 ] || die "Wrong location: $PWD"
|
||||
|
||||
|
||||
@@ -20,11 +20,15 @@ else
|
||||
endif
|
||||
|
||||
# Provide a default if the user hasn't set EPICS_HOST_ARCH
|
||||
ifeq ($(origin EPICS_HOST_ARCH), undefined)
|
||||
# NB: We use a simply expanded variable here for performance:
|
||||
EPICS_HOST_ARCH := $(shell $(CONFIG)/../startup/EpicsHostArch.pl)
|
||||
endif
|
||||
#
|
||||
ifeq ($(origin EPICS_HOST_ARCH), undefined)
|
||||
# Bootstrapping ...
|
||||
EHA := $(firstword $(wildcard $(EPICS_BASE)/lib/perl/EpicsHostArch.pl \
|
||||
$(TOP)/src/tools/EpicsHostArch.pl))
|
||||
# NB: We use a simply expanded variable here for performance:
|
||||
export EPICS_HOST_ARCH := $(shell perl $(EHA))
|
||||
EHA :=
|
||||
endif
|
||||
|
||||
-include $(CONFIG)/RELEASE
|
||||
-include $(CONFIG)/RELEASE.$(EPICS_HOST_ARCH)
|
||||
|
||||
@@ -27,20 +27,20 @@ EPICS_VERSION = 3
|
||||
EPICS_REVISION = 15
|
||||
|
||||
# EPICS_MODIFICATION must be a number >=0 and <256
|
||||
EPICS_MODIFICATION = 5
|
||||
EPICS_MODIFICATION = 6
|
||||
|
||||
# EPICS_PATCH_LEVEL must be a number (win32 resource file requirement)
|
||||
# Not included if zero
|
||||
EPICS_PATCH_LEVEL = 0
|
||||
|
||||
# This will end in -DEV between official releases
|
||||
EPICS_DEV_SNAPSHOT=-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre1
|
||||
#EPICS_DEV_SNAPSHOT=-pre1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-pre2
|
||||
#EPICS_DEV_SNAPSHOT=-pre2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc1
|
||||
#EPICS_DEV_SNAPSHOT=-rc1-DEV
|
||||
EPICS_DEV_SNAPSHOT=-rc1-DEV
|
||||
#EPICS_DEV_SNAPSHOT=-rc2
|
||||
#EPICS_DEV_SNAPSHOT=-rc2-DEV
|
||||
#EPICS_DEV_SNAPSHOT=
|
||||
|
||||
@@ -256,15 +256,13 @@ YACCOPT ?= $($*_YACCOPT)
|
||||
$(MV) $*.tab.c $*.c
|
||||
$(if $(findstring -d, $(YACCOPT)),$(MV) $*.tab.h $*.h,)
|
||||
|
||||
# must be a seperate rule since when not using '-d' the
|
||||
# must be a separate rule since when not using '-d' the
|
||||
# prefix for .h will be different then .c
|
||||
%.h : %.c %.y
|
||||
|
||||
%.c: %.l
|
||||
@$(RM) $*.yy.c
|
||||
$(LEX) $(LEXOPT) -t $< > $*.yy.c
|
||||
@$(RM) $@
|
||||
$(MV) $*.yy.c $@
|
||||
$(LEX) $(LEXOPT) -o$@ $<
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Libraries, shared/DLL and stubs
|
||||
|
||||
@@ -65,14 +65,14 @@ GNU = NO
|
||||
#
|
||||
# Darwin shared libraries
|
||||
#
|
||||
SHRLIB_LDFLAGS = -dynamiclib -flat_namespace -undefined suppress \
|
||||
SHRLIB_LDFLAGS = -dynamiclib -undefined dynamic_lookup \
|
||||
-install_name $(shell $(FULLPATHNAME) $(INSTALL_LIB))/$@ \
|
||||
$(addprefix -compatibility_version , $(SHRLIB_VERSION)) \
|
||||
$(addprefix -current_version , $(SHRLIB_VERSION))
|
||||
SHRLIB_SUFFIX_BASE = .dylib
|
||||
SHRLIB_SUFFIX = $(addprefix ., $(SHRLIB_VERSION))$(SHRLIB_SUFFIX_BASE)
|
||||
|
||||
LOADABLE_SHRLIB_LDFLAGS = -bundle -flat_namespace -undefined suppress
|
||||
LOADABLE_SHRLIB_LDFLAGS = -bundle -undefined dynamic_lookup
|
||||
|
||||
#
|
||||
# Position-independent code is the default on Darwin.
|
||||
|
||||
@@ -15,7 +15,7 @@ base-3.15.6 tree. Download them, then use the GNU Patch program as
|
||||
follows:</p>
|
||||
|
||||
<blockquote><pre>% <b>cd <i>/path/to/</i>base-3.15.6</b>
|
||||
% <b>patch -p0 < <i>/path/to/</i>file.patch</b></pre></blockquote>
|
||||
% <b>patch -p1 < <i>/path/to/</i>file.patch</b></pre></blockquote>
|
||||
|
||||
<p>The following significant problems have been reported with this
|
||||
version of EPICS Base:</p>
|
||||
|
||||
@@ -6,19 +6,19 @@
|
||||
|
||||
Table of Contents
|
||||
|
||||
* What is EPICS base?
|
||||
* What is new in this release?
|
||||
* Copyright
|
||||
* Supported platforms
|
||||
* Supported compilers
|
||||
* Software requirements
|
||||
* Host system storage requirements
|
||||
* Documentation
|
||||
* Directory Structure
|
||||
* Build related components
|
||||
* Building EPICS base (Unix and Win32)
|
||||
* Example application and extension
|
||||
* Multiple host platforms
|
||||
* What is EPICS base?
|
||||
* What is new in this release?
|
||||
* Copyright
|
||||
* Supported platforms
|
||||
* Supported compilers
|
||||
* Software requirements
|
||||
* Host system storage requirements
|
||||
* Documentation
|
||||
* Directory Structure
|
||||
* Build related components
|
||||
* Building EPICS base (Unix and Win32)
|
||||
* Example application and extension
|
||||
* Multiple host platforms
|
||||
|
||||
--------------------------------------------------------------------------
|
||||
|
||||
@@ -166,12 +166,11 @@
|
||||
|
||||
base/startup directory - contains scripts to set environment and path
|
||||
|
||||
EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
|
||||
unix.csh C shell script to set path and env variables
|
||||
unix.sh Bourne shell script to set path and env variables
|
||||
win32.bat Bat file example to configure win32-x86 target
|
||||
windows.bat Bat file example to configure windows-x64 target
|
||||
|
||||
base/configure directory - contains build definitions and rules
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ of my Bash login script (~/.bash_login):
|
||||
#
|
||||
EPICS_BASE="${HOME}/src/EPICS/base"
|
||||
EPICS_EXTENSIONS="${HOME}/src/EPICS/extensions"
|
||||
<strong>.</strong> "${EPICS_BASE}"/startup/Site.profile
|
||||
<strong>.</strong> "${EPICS_BASE}"/startup/unix.sh
|
||||
</pre>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
@@ -177,12 +177,11 @@
|
||||
|
||||
<H4>base/startup directory - contains scripts to set environment and path</H4>
|
||||
<PRE>
|
||||
EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable
|
||||
EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable
|
||||
Site.profile bourne shell script to set path and env variables
|
||||
Site.cshrc c shell script to set path and env variables
|
||||
cygwin.bat WIN32 bat file to set cygwin path and env variables
|
||||
win32.bat WIN32 bat file to set path and env variables
|
||||
EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
|
||||
unix.csh C shell script to set path and env variables
|
||||
unix.sh Bourne shell script to set path and env variables
|
||||
win32.bat Bat file example to configure win32-x86 target
|
||||
windows.bat Bat file example to configure windows-x64 target
|
||||
</PRE>
|
||||
|
||||
<H4>base/configure directory - contains build definitions and rules</H4>
|
||||
|
||||
@@ -20,7 +20,43 @@
|
||||
The new command <code>epicsEnvUnset <i>varname</i></code> can be used to
|
||||
unset an environment variable.
|
||||
|
||||
<h3>Warning indicators in msi (and macLib) output</h3>
|
||||
|
||||
<p>The libCom macro expansion library has been modified so that when the
|
||||
SUPPRESS_WARNINGS flag is set it will no longer include any <tt>,undefined</tt>
|
||||
or <tt>,recursive</tt> indicators in its output when undefined or recursive
|
||||
macros are encountered. These indicators were harmless when the output was fed
|
||||
into an IOC along with a definition for the macro, but when the <tt>msi</tt>
|
||||
tool was used to generate other kinds of files they caused problems. If the
|
||||
<tt>msi -V</tt> flag is used the markers will still be present in the output
|
||||
whenever the appropriate condition is seen.</p>
|
||||
|
||||
<h3>Improvements to msi</h3>
|
||||
|
||||
<p>In addition to fixing its response to discovering parsing errors in its
|
||||
substitution input file (reported as Launchpad
|
||||
<a href="https://bugs.launchpad.net/epics-base/+bug/1503661">bug #1503661</a>)
|
||||
so it now deletes the incomplete output file, the msi program has been cleaned
|
||||
up a little bit internally.</p>
|
||||
|
||||
<h3>All array records now post monitors on their array-length fields</h3>
|
||||
|
||||
<p>The waveform record has been posting monitors on its NORD field since Base
|
||||
3.15.0.1; we finally got around to doing the equivalent in all the other
|
||||
built-in record types, which even required modifying device support in some
|
||||
cases. This fixes <a href="https://bugs.launchpad.net/epics-base/+bug/1730727">
|
||||
Launchpad bug #1730727</a>.</p>
|
||||
|
||||
<h3>HOWTO: Converting Wiki Record Reference to POD</h3>
|
||||
|
||||
<p>Some documentation has been added to the <tt>dbdToHtml.pl</tt> script
|
||||
explaining how Perl POD (Plain Old Documentation) markup can be added to
|
||||
<tt>.dbd</tt> files to generate HTML documentation for the record types. To see
|
||||
these instructions, run <tt>perl bin/<host>/dbdToHtml.pl -H</tt>
|
||||
or <tt>perldoc bin/<host>/dbdToHtml.pl</tt>.</p>
|
||||
|
||||
<h3>Fix problem with numeric soft events</h3>
|
||||
|
||||
<p>Changing from numeric to named soft events introduced an incompatibility
|
||||
when a numeric event 1-255 is converted from a DOUBLE, e.g. from a calc record.
|
||||
The <tt>post_event()</tt> API is not marked deprecated any more.
|
||||
@@ -46,11 +82,82 @@ tells git to ignore all configure/*.local files.</p>
|
||||
|
||||
<!-- Insert inherited items immediately below here ... -->
|
||||
|
||||
<h3>Fix broken <tt>EPICS_IOC_LOG_FILE_LIMIT=0</tt> setting</h3>
|
||||
|
||||
<p>The Application Developers' Guide says this is allowed and disables the
|
||||
limit on the log-file, but it hasn't actually worked for some time (if ever).
|
||||
Note that the iocLogServer will be removed from newer Base release sometime
|
||||
soon as its functionality can be implemented by other dedicated log servers
|
||||
such as logstash or syslog-ng.</p>
|
||||
|
||||
<p>Fixes <a href="https://bugs.launchpad.net/bugs/1786858">lp:1786858</a>
|
||||
and part of <a href="https://bugs.launchpad.net/bugs/1786966">lp:1786966</a>.
|
||||
</p>
|
||||
|
||||
<h3>Cleanup of startup directory</h3>
|
||||
|
||||
<p>The files in the startup directory have not been maintained in recent years
|
||||
and have grown crufty (technical term). This release includes the following
|
||||
updates to these files:</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>The Perl <tt>EpicsHostArch.pl</tt> script has been rewritten, and support
|
||||
for a few previously missing host architectures has been added to it.</li>
|
||||
|
||||
<li>The <tt>EpicsHostArch.pl</tt> script has also been moved into the standard
|
||||
<tt>src/tools</tt> directory, from where it will be installed into
|
||||
<tt>lib/perl</tt>. In this new location it is no longer executable, so it must
|
||||
be run by the <tt>perl</tt> executable.</li>
|
||||
|
||||
<li>The build system has been adjusted to look for <tt>EpicsHostArch.pl</tt> in
|
||||
both places if the <tt>EPICS_HOST_ARCH</tt> environment variable has not been
|
||||
set at build-time.</li>
|
||||
|
||||
<li>Sites that used the original Perl script to set <tt>EPICS_HOST_ARCH</tt> as
|
||||
part of their standard environment will need to adjust their scripts when they
|
||||
upgrade to this release.</li>
|
||||
|
||||
<li>The <tt>EpicsHostArch</tt> shell script has been replaced with a wrapper
|
||||
routine that calls the Perl <tt>EpicsHostArch.pl</tt> script. Sites that rely on
|
||||
this script to set <tt>EPICS_HOST_ARCH</tt> should consider switching to the
|
||||
Perl script instead.</li>
|
||||
|
||||
<li>The <tt>Site.cshrc</tt> and <tt>Site.profile</tt> files have been renamed to
|
||||
<tt>unix.csh</tt> and <tt>unix.sh</tt>, respectively.</li>
|
||||
|
||||
<li>The existing <tt>win32.bat</tt> file has been cleaned up and a new
|
||||
<tt>windows.bat</tt> file added for 64-bit targets. The contents of these files
|
||||
should be seen as examples, don't uncomment or install parts for software that
|
||||
you don't explicitly know that you need.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Recent Apple XCode Build Issues</h3>
|
||||
|
||||
<p>The latest version of XCode will not compile calls to <tt>system()</tt> or
|
||||
<tt>clock_settime()</tt> for iOS targets. There were several places in Base
|
||||
where these were being compiled, although there were probably never called. The
|
||||
code has now been modified to permit iOS builds to complete again.</p>
|
||||
|
||||
<h3>Prevent illegal alarm severities</h3>
|
||||
|
||||
<p>A check has been added to <tt>recGblResetAlarms()</tt> that prevents records
|
||||
from getting an alarm severity higher than INVALID_ALARM. It is still possible
|
||||
for a field like HSV to get set to a value that is not a legal alarm severity,
|
||||
but the core IOC code should never copy such a value into a record's SEVR or
|
||||
ACKS fields. With this fix the record's alarm severity will be limited to
|
||||
INVALID_ALARM.</p>
|
||||
|
||||
<h3>Fixes for Launchpad bugs</h3>
|
||||
|
||||
<p>The following launchpad bugs have fixes included:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://bugs.launchpad.net/epics-base/+bug/1786320">
|
||||
lp: #1786320</a>, dbCa subscribes twice to ENUM</li>
|
||||
<li><a href="https://bugs.launchpad.net/epics-base/+bug/541221">
|
||||
lp: #541221</a>, 'assert (pca->pgetNative)' failed in ../dbCa.c</li>
|
||||
<li><a href="https://bugs.launchpad.net/epics-base/+bug/1747091">
|
||||
lp: #1747091</a>, epicsTimeGetEvent() / generalTime bug</li>
|
||||
<li><a href="https://bugs.launchpad.net/epics-base/+bug/1743076">
|
||||
|
||||
@@ -91,7 +91,7 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Set the Feature Freeze date, by which time all Bazaar commits for
|
||||
<td>Set the Feature Freeze date, by which time all Git commits for
|
||||
enhancements and new functionality should have been completed. After
|
||||
this date, commits should only be made to fix problems that show up
|
||||
during testing.</td>
|
||||
@@ -133,7 +133,7 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Tag the module in Bazaar, using these tag conventions:
|
||||
<td>Tag the module in Git, using these tag conventions:
|
||||
<ul>
|
||||
<li>
|
||||
<tt>R3.15.6-pre1</tt>
|
||||
@@ -145,23 +145,20 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
</li>
|
||||
</ul>
|
||||
<blockquote><tt>
|
||||
cd ~/base/mirror-3.15<br />
|
||||
bzr tag R3.15.6-rc1
|
||||
cd base-3.15<br />
|
||||
git tag -m 'RL: Tagged for 3.15.6-rc1' R3.15.6-rc1
|
||||
</tt></blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Export the tagged version into a tarfile. Note that this command
|
||||
generates a gzipped tarfile directly from the repository:
|
||||
<td>Export the tagged version into a tarfile. The <tt>make-tar.sh</tt>
|
||||
script generates a gzipped tarfile directly from the tag, excluding the
|
||||
files and directories that are only used for continuous integration:
|
||||
<blockquote><tt>
|
||||
cd ~/base<br />
|
||||
bzr export
|
||||
--root=base-3.15.6-rc1
|
||||
-r tag:R3.15.6-rc1
|
||||
base-3.15.6-rc1.tar.gz
|
||||
mirror-3.15
|
||||
cd base-3.15<br />
|
||||
git archive --prefix=base-3.15.6-rc1/ --output=base-3.15.6-rc1.tar.gz R3.15.6-rc1 configure documentation LICENSE Makefile README src startup
|
||||
</tt></blockquote>
|
||||
Create a GPG signature file of the tarfile as follows:
|
||||
<blockquote><tt>
|
||||
@@ -274,10 +271,10 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Tag the module in Bazaar:
|
||||
<td>Tag the module in Git:
|
||||
<blockquote><tt>
|
||||
cd ~/base/mirror-3.15<br />
|
||||
bzr tag R3.15.6</i>
|
||||
cd base-3.15<br />
|
||||
git tag -m 'RL: Tagged for 3.15.6' R3.15.6
|
||||
</tt></blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -287,12 +284,8 @@ relevent roles unless the Release Manager designates otherwise:</p>
|
||||
<td>Export the tagged version into a tarfile. Note that this command
|
||||
generates a gzipped tarfile directly from the repository:
|
||||
<blockquote><tt>
|
||||
cd ~/base<br />
|
||||
bzr export
|
||||
--root=base-3.15.6
|
||||
-r tag:R3.15.6
|
||||
base-3.15.6.tar.gz
|
||||
mirror-3.15
|
||||
cd base-3.15<br />
|
||||
git archive --prefix=base-3.15.6/ --output=base-3.15.6.tar.gz R3.15.6 configure documentation LICENSE Makefile README src startup
|
||||
</tt></blockquote>
|
||||
Create a GPG signature file of the tarfile as follows:
|
||||
<blockquote><tt>
|
||||
|
||||
@@ -140,6 +140,10 @@ sub display {
|
||||
printf " Lo ctrl limit: %g\n", $data->{lower_ctrl_limit};
|
||||
printf " Hi ctrl limit: %g\n", $data->{upper_ctrl_limit};
|
||||
}
|
||||
if (exists $data->{ackt}) {
|
||||
printf " Ack transients: %s\n", $data->{ackt} ? 'YES' : 'NO';
|
||||
printf " Ack severity: %s\n", $data->{acks};
|
||||
}
|
||||
} else {
|
||||
my $value = format_number($data, $type);
|
||||
if ($opt_t) {
|
||||
|
||||
@@ -644,6 +644,11 @@ caStatus casDGClient::processDG ()
|
||||
if ( status != S_cas_success ) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ( this->in.bytesPresent () > 0 && dgInBytesConsumed == 0 && status == S_cas_success ) {
|
||||
this->in.removeMsg ( this->in.bytesPresent() );
|
||||
}
|
||||
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -649,11 +649,16 @@ static void connectionCallback(struct connection_handler_args arg)
|
||||
if (pca->gotFirstConnection) {
|
||||
if (pca->nelements != ca_element_count(arg.chid) ||
|
||||
pca->dbrType != ca_field_type(arg.chid)) {
|
||||
/* BUG: We have no way to clear any old subscription with the
|
||||
* originally chosen data type/size. That will continue
|
||||
* to send us data and will result in an assert() fail.
|
||||
*/
|
||||
/* Let next dbCaGetLink and/or dbCaPutLink determine options */
|
||||
/* Size or type changed, clear everything and let the next call
|
||||
to dbCaGetLink() and/or dbCaPutLink() reset everything */
|
||||
if (pca->evidNative) {
|
||||
ca_clear_event(pca->evidNative);
|
||||
pca->evidNative = 0;
|
||||
}
|
||||
if (pca->evidString) {
|
||||
ca_clear_event(pca->evidString);
|
||||
pca->evidString = 0;
|
||||
}
|
||||
plink->value.pv_link.pvlMask &=
|
||||
~(pvlOptInpNative | pvlOptInpString |
|
||||
pvlOptOutNative | pvlOptOutString);
|
||||
@@ -701,6 +706,7 @@ static void eventCallback(struct event_handler_args arg)
|
||||
struct dbr_time_double *pdbr_time_double;
|
||||
dbCaCallback monitor = 0;
|
||||
void *userPvt = 0;
|
||||
int doScan = 1;
|
||||
|
||||
assert(pca);
|
||||
epicsMutexMustLock(pca->lock);
|
||||
@@ -729,10 +735,13 @@ static void eventCallback(struct event_handler_args arg)
|
||||
memcpy(pca->pgetString, dbr_value_ptr(arg.dbr, arg.type), size);
|
||||
pca->gotInString = TRUE;
|
||||
} else switch (arg.type){
|
||||
case DBR_TIME_ENUM:
|
||||
/* Disable the record scan if we also have a string monitor */
|
||||
doScan = !(plink->value.pv_link.pvlMask & pvlOptInpString);
|
||||
/* fall through */
|
||||
case DBR_TIME_STRING:
|
||||
case DBR_TIME_SHORT:
|
||||
case DBR_TIME_FLOAT:
|
||||
case DBR_TIME_ENUM:
|
||||
case DBR_TIME_CHAR:
|
||||
case DBR_TIME_LONG:
|
||||
case DBR_TIME_DOUBLE:
|
||||
@@ -748,7 +757,7 @@ static void eventCallback(struct event_handler_args arg)
|
||||
pca->sevr = pdbr_time_double->severity;
|
||||
pca->stat = pdbr_time_double->status;
|
||||
memcpy(&pca->timeStamp, &pdbr_time_double->stamp, sizeof(epicsTimeStamp));
|
||||
if (precord) {
|
||||
if (doScan && precord) {
|
||||
struct pv_link *ppv_link = &plink->value.pv_link;
|
||||
|
||||
if ((ppv_link->pvlMask & pvlOptCP) ||
|
||||
@@ -1005,7 +1014,8 @@ static void dbCaTask(void *arg)
|
||||
status = ca_add_array_event(
|
||||
ca_field_type(pca->chid)+DBR_TIME_STRING,
|
||||
ca_element_count(pca->chid),
|
||||
pca->chid, eventCallback, pca, 0.0, 0.0, 0.0, 0);
|
||||
pca->chid, eventCallback, pca, 0.0, 0.0, 0.0,
|
||||
&pca->evidNative);
|
||||
if (status != ECA_NORMAL) {
|
||||
errlogPrintf("dbCaTask ca_add_array_event %s\n",
|
||||
ca_message(status));
|
||||
@@ -1017,7 +1027,8 @@ static void dbCaTask(void *arg)
|
||||
pca->pgetString = dbCalloc(1, MAX_STRING_SIZE);
|
||||
epicsMutexUnlock(pca->lock);
|
||||
status = ca_add_array_event(DBR_TIME_STRING, 1,
|
||||
pca->chid, eventCallback, pca, 0.0, 0.0, 0.0, 0);
|
||||
pca->chid, eventCallback, pca, 0.0, 0.0, 0.0,
|
||||
&pca->evidString);
|
||||
if (status != ECA_NORMAL) {
|
||||
errlogPrintf("dbCaTask ca_add_array_event %s\n",
|
||||
ca_message(status));
|
||||
|
||||
@@ -78,6 +78,8 @@ typedef struct caLink
|
||||
char *pgetString;
|
||||
void *pputNative;
|
||||
char *pputString;
|
||||
evid evidNative;
|
||||
evid evidString;
|
||||
char gotInNative;
|
||||
char gotInString;
|
||||
char gotOutNative;
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include <limits.h>
|
||||
|
||||
#include "dbDefs.h"
|
||||
#include "alarm.h"
|
||||
#include "epicsMath.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "epicsStdlib.h"
|
||||
@@ -181,6 +182,9 @@ unsigned short recGblResetAlarms(void *precord)
|
||||
epicsEnum16 val_mask = 0;
|
||||
epicsEnum16 stat_mask = 0;
|
||||
|
||||
if (new_sevr > INVALID_ALARM)
|
||||
new_sevr = INVALID_ALARM;
|
||||
|
||||
pdbc->stat = new_stat;
|
||||
pdbc->sevr = new_sevr;
|
||||
pdbc->nsta = 0;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -34,10 +34,10 @@ be written to stdout unless the -o option is given.</p>
|
||||
|
||||
<dl>
|
||||
<dt><tt>-V</tt></dt>
|
||||
<dd>Verbose warnings; if this parameter is specified then any undefined
|
||||
macro discovered in the template file which does not have an associated
|
||||
default value is considered an error. An error message is generated, and
|
||||
when msi terminates it will do so with an exit status of 2.</dd>
|
||||
<dd>Verbose warnings; if this parameter is specified then any undefined or
|
||||
recursive macros discovered in the template will be considered an error and
|
||||
will be marked in the output file. An error message will be shown, and when
|
||||
msi terminates it will do so with an exit status of 2.</dd>
|
||||
|
||||
<dt><tt>-g</tt></dt>
|
||||
<dd>When this flag is given all macros defined in a substitution file will
|
||||
|
||||
@@ -31,18 +31,18 @@ ok(msi('-S ../t5-substitute.txt ../t5-template.txt'), slurp('../t5-result.txt'))
|
||||
# Substitution file, pattern format
|
||||
ok(msi('-S../t6-substitute.txt ../t6-template.txt'), slurp('../t6-result.txt'));
|
||||
|
||||
# Output option -o
|
||||
# Output option -o and verbose option -V
|
||||
my $out = 't7-output.txt';
|
||||
my $count = 5; # Try up to 5 times...
|
||||
my $result;
|
||||
do {
|
||||
unlink $out;
|
||||
msi("-I.. -o $out ../t1-template.txt");
|
||||
msi("-I.. -V -o $out ../t1-template.txt");
|
||||
$result = slurp($out);
|
||||
print "# msi output file empty, retrying\n"
|
||||
if $result eq '';
|
||||
} while ($result eq '') && (--$count > 0);
|
||||
ok($result, slurp('../t1-result.txt'));
|
||||
ok($result, slurp('../t7-result.txt'));
|
||||
|
||||
# Dependency generation, include/substitute model
|
||||
ok(msi('-I.. -D -o t8.txt ../t1-template.txt'), slurp('../t8-result.txt'));
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
This is t1-template.txt
|
||||
|
||||
With $(a,undefined) & $(b,undefined):
|
||||
With $(a) & $(b):
|
||||
This is t1-include.txt
|
||||
a = default value used when a is undefined
|
||||
b = default value used when b is undefined
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
a = va1-a b = def-b c = def-c d = $(d,undefined)
|
||||
a = va2-a b = va2-b c = def-c d = $(d,undefined)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d,undefined)
|
||||
a = va4-a b = va4-b c = def-c d = $(d,undefined)
|
||||
a = va5-a b = def-b c = def-c d = $(d,undefined)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d,undefined)
|
||||
a = va1-a b = def-b c = def-c d = $(d)
|
||||
a = va2-a b = va2-b c = def-c d = $(d)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d)
|
||||
a = va4-a b = va4-b c = def-c d = $(d)
|
||||
a = va5-a b = def-b c = def-c d = $(d)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d)
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
a = gb1-a b = gb1-b c = def-c d = $(d,undefined)
|
||||
a = va1-a b = gb1-b c = def-c d = $(d,undefined)
|
||||
a = va2-a b = va2-b c = def-c d = $(d,undefined)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d,undefined)
|
||||
a = va4-a b = va4-b c = def-c d = $(d,undefined)
|
||||
a = va5-a b = gb1-b c = def-c d = $(d,undefined)
|
||||
a = gb1-a b = gb1-b c = def-c d = $(d,undefined)
|
||||
a = gb2-a b = gb2-b c = def-c d = $(d,undefined)
|
||||
a = va1-a b = gb2-b c = def-c d = $(d,undefined)
|
||||
a = va2-a b = va2-b c = def-c d = $(d,undefined)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d,undefined)
|
||||
a = va4-a b = va4-b c = def-c d = $(d,undefined)
|
||||
a = va5-a b = gb2-b c = def-c d = $(d,undefined)
|
||||
a = gb2-a b = gb2-b c = def-c d = $(d,undefined)
|
||||
a = gb3-a b = gb3-b c = def-c d = $(d,undefined)
|
||||
a = pt1-a b = gb3-b c = def-c d = $(d,undefined)
|
||||
a = pt2-a b = pt2-b c = def-c d = $(d,undefined)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d,undefined)
|
||||
a = pt4-a b = pt4-b c = def-c d = $(d,undefined)
|
||||
a = pt5-a b = gb3-b c = def-c d = $(d,undefined)
|
||||
a = gb3-a b = gb3-b c = def-c d = $(d,undefined)
|
||||
a = gb4-a b = gb4-b c = def-c d = $(d,undefined)
|
||||
a = pt1-a b = gb4-b c = def-c d = $(d,undefined)
|
||||
a = pt2-a b = pt2-b c = def-c d = $(d,undefined)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d,undefined)
|
||||
a = pt4-a b = pt4-b c = def-c d = $(d,undefined)
|
||||
a = pt5-a b = gb4-b c = def-c d = $(d,undefined)
|
||||
a = gb4-a b = gb4-b c = def-c d = $(d,undefined)
|
||||
a = gb1-a b = gb1-b c = def-c d = $(d)
|
||||
a = va1-a b = gb1-b c = def-c d = $(d)
|
||||
a = va2-a b = va2-b c = def-c d = $(d)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d)
|
||||
a = va4-a b = va4-b c = def-c d = $(d)
|
||||
a = va5-a b = gb1-b c = def-c d = $(d)
|
||||
a = gb1-a b = gb1-b c = def-c d = $(d)
|
||||
a = gb2-a b = gb2-b c = def-c d = $(d)
|
||||
a = va1-a b = gb2-b c = def-c d = $(d)
|
||||
a = va2-a b = va2-b c = def-c d = $(d)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d)
|
||||
a = va4-a b = va4-b c = def-c d = $(d)
|
||||
a = va5-a b = gb2-b c = def-c d = $(d)
|
||||
a = gb2-a b = gb2-b c = def-c d = $(d)
|
||||
a = gb3-a b = gb3-b c = def-c d = $(d)
|
||||
a = pt1-a b = gb3-b c = def-c d = $(d)
|
||||
a = pt2-a b = pt2-b c = def-c d = $(d)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d)
|
||||
a = pt4-a b = pt4-b c = def-c d = $(d)
|
||||
a = pt5-a b = gb3-b c = def-c d = $(d)
|
||||
a = gb3-a b = gb3-b c = def-c d = $(d)
|
||||
a = gb4-a b = gb4-b c = def-c d = $(d)
|
||||
a = pt1-a b = gb4-b c = def-c d = $(d)
|
||||
a = pt2-a b = pt2-b c = def-c d = $(d)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d)
|
||||
a = pt4-a b = pt4-b c = def-c d = $(d)
|
||||
a = pt5-a b = gb4-b c = def-c d = $(d)
|
||||
a = gb4-a b = gb4-b c = def-c d = $(d)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
a = va1-a b = def-b c = def-c d = $(d,undefined)
|
||||
a = va2-a b = va2-b c = def-c d = $(d,undefined)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d,undefined)
|
||||
a = va4-a b = va4-b c = va3-c d = $(d,undefined)
|
||||
a = va5-a b = va4-b c = va3-c d = $(d,undefined)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d,undefined)
|
||||
a = va1-a b = def-b c = def-c d = $(d)
|
||||
a = va2-a b = va2-b c = def-c d = $(d)
|
||||
a = va3-a b = va3-b c = va3-c d = $(d)
|
||||
a = va4-a b = va4-b c = va3-c d = $(d)
|
||||
a = va5-a b = va4-b c = va3-c d = $(d)
|
||||
a = pt3-a b = pt3-b c = pt3-c d = $(d)
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
a = 111
|
||||
b = 222
|
||||
c = xx
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = aaa
|
||||
b = bbb
|
||||
c = ccc
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = AA
|
||||
b = BB
|
||||
c = xx
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = aaa
|
||||
b = bbb
|
||||
c = yy
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
|
||||
@@ -2,19 +2,19 @@
|
||||
a = 111
|
||||
b = 222
|
||||
c = xx
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = aaa
|
||||
b = bbb
|
||||
c = ccc
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = AA
|
||||
b = BB
|
||||
c = xx
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
# comment line
|
||||
a = aaa
|
||||
b = bbb
|
||||
c = yy
|
||||
d = $(d,undefined)
|
||||
d = $(d)
|
||||
|
||||
21
src/ioc/dbtemplate/test/t7-result.txt
Normal file
21
src/ioc/dbtemplate/test/t7-result.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
This is t1-template.txt
|
||||
|
||||
With $(a,undefined) & $(b,undefined):
|
||||
This is t1-include.txt
|
||||
a = default value used when a is undefined
|
||||
b = default value used when b is undefined
|
||||
End of t1-include.txt
|
||||
|
||||
On defining a=aaa & b=bbb:
|
||||
This is t1-include.txt again
|
||||
a = aaa
|
||||
b = bbb
|
||||
End of t1-include.txt
|
||||
|
||||
On setting a="aa":
|
||||
This is t1-include.txt again
|
||||
a = "aa"
|
||||
b = bbb
|
||||
End of t1-include.txt
|
||||
|
||||
End of t1-template.txt
|
||||
@@ -26,3 +26,4 @@ dbCore_SRCS += miscIocRegister.c
|
||||
dbCore_SRCS += dlload.c
|
||||
dbCore_SRCS += iocshRegisterCommon.c
|
||||
|
||||
miscIocRegister_CFLAGS_iOS = -DSYSTEM_UNAVAILABLE
|
||||
|
||||
@@ -66,10 +66,12 @@ void miscIocRegister(void)
|
||||
|
||||
/* system -- escape to system command interpreter.
|
||||
*
|
||||
* Disabled by default, for security reasons. To enable this command, add
|
||||
* Disabled by default for security reasons, not available on all OSs.
|
||||
* To enable this command, add
|
||||
* registrar(iocshSystemCommand)
|
||||
* to an application dbd file.
|
||||
* to an application dbd file, or include system.dbd
|
||||
*/
|
||||
#ifndef SYSTEM_UNAVAILABLE
|
||||
static const iocshArg systemArg0 = { "command string",iocshArgString};
|
||||
static const iocshArg * const systemArgs[] = {&systemArg0};
|
||||
static const iocshFuncDef systemFuncDef = {"system",1,systemArgs};
|
||||
@@ -77,12 +79,15 @@ static void systemCallFunc(const iocshArgBuf *args)
|
||||
{
|
||||
system(args[0].sval);
|
||||
}
|
||||
#endif
|
||||
|
||||
static void iocshSystemCommand(void)
|
||||
{
|
||||
#ifndef SYSTEM_UNAVAILABLE
|
||||
if (system(NULL))
|
||||
iocshRegister(&systemFuncDef, systemCallFunc);
|
||||
else
|
||||
#endif
|
||||
errlogPrintf ("Can't register 'system' command -- no command interpreter available.\n");
|
||||
}
|
||||
epicsExportRegistrar(iocshSystemCommand);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* flex - tool to generate fast lexical analyzers */
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Vern Paxson.
|
||||
*
|
||||
*
|
||||
* The United States Government has rights in this work pursuant
|
||||
* to contract no. DE-AC03-76SF00098 between the United States
|
||||
* Department of Energy and the University of California.
|
||||
@@ -495,6 +495,13 @@ void flexinit(int argc, char **argv)
|
||||
/* stupid do-nothing deprecated option */
|
||||
break;
|
||||
|
||||
case 'o':
|
||||
if ( i != 1 )
|
||||
flexerror( "-o flag must be given separately" );
|
||||
|
||||
outfile = arg + i + 1;
|
||||
goto get_next_arg;
|
||||
|
||||
case 'p':
|
||||
performance_report = true;
|
||||
break;
|
||||
|
||||
@@ -347,11 +347,6 @@ static int openLogFile (struct ioc_log_server *pserver)
|
||||
{
|
||||
enum TF_RETURN ret;
|
||||
|
||||
if (ioc_log_file_limit==0u) {
|
||||
pserver->poutfile = stderr;
|
||||
return IOCLS_ERROR;
|
||||
}
|
||||
|
||||
if (pserver->poutfile && pserver->poutfile != stderr){
|
||||
fclose (pserver->poutfile);
|
||||
pserver->poutfile = NULL;
|
||||
@@ -627,7 +622,7 @@ static void writeMessagesToLog (struct iocLogClient *pclient)
|
||||
strlen(pclient->ascii_time) + nchar + 3u;
|
||||
assert (nTotChar <= INT_MAX);
|
||||
ntci = (int) nTotChar;
|
||||
if ( pclient->pserver->filePos+ntci >= pclient->pserver->max_file_size ) {
|
||||
if ( pclient->pserver->max_file_size && pclient->pserver->filePos+ntci >= pclient->pserver->max_file_size ) {
|
||||
if ( pclient->pserver->max_file_size >= pclient->pserver->filePos ) {
|
||||
unsigned nPadChar;
|
||||
/*
|
||||
@@ -771,7 +766,7 @@ static int getConfig(void)
|
||||
&EPICS_IOC_LOG_FILE_LIMIT,
|
||||
&ioc_log_file_limit);
|
||||
if(status>=0){
|
||||
if (ioc_log_file_limit<=0) {
|
||||
if (ioc_log_file_limit < 0) {
|
||||
envFailureNotify (&EPICS_IOC_LOG_FILE_LIMIT);
|
||||
return IOCLS_ERROR;
|
||||
}
|
||||
|
||||
@@ -902,11 +902,16 @@ static void refer ( MAC_HANDLE *handle, MAC_ENTRY *entry, int level,
|
||||
}
|
||||
}
|
||||
|
||||
/* Bad reference, insert $(name,errval) */
|
||||
/* Bad reference, insert either $(name,<error>) or $(name) */
|
||||
if ( v < valend ) *v++ = '$';
|
||||
if ( v < valend ) *v++ = '(';
|
||||
cpy2val( refname, &v, valend );
|
||||
cpy2val( errval, &v, valend );
|
||||
if (handle->flags & FLAG_SUPPRESS_WARNINGS) {
|
||||
if ( v < valend ) *v++ = ')';
|
||||
*v = '\0';
|
||||
}
|
||||
else
|
||||
cpy2val( errval, &v, valend );
|
||||
|
||||
cleanup:
|
||||
if (pop) {
|
||||
|
||||
@@ -34,20 +34,22 @@ extern "C" {
|
||||
|
||||
/* Make printf, puts and putchar use *our* version of stdout */
|
||||
|
||||
#ifdef printf
|
||||
# undef printf
|
||||
#endif /* printf */
|
||||
#define printf epicsStdoutPrintf
|
||||
#ifndef epicsStdioStdPrintfEtc
|
||||
# ifdef printf
|
||||
# undef printf
|
||||
# endif
|
||||
# define printf epicsStdoutPrintf
|
||||
|
||||
#ifdef puts
|
||||
# undef puts
|
||||
#endif /* puts */
|
||||
#define puts epicsStdoutPuts
|
||||
# ifdef puts
|
||||
# undef puts
|
||||
# endif
|
||||
# define puts epicsStdoutPuts
|
||||
|
||||
#ifdef putchar
|
||||
# undef putchar
|
||||
#endif /* putchar */
|
||||
#define putchar epicsStdoutPutchar
|
||||
# ifdef putchar
|
||||
# undef putchar
|
||||
# endif
|
||||
# define putchar epicsStdoutPutchar
|
||||
#endif
|
||||
|
||||
epicsShareFunc int epicsShareAPI epicsSnprintf(
|
||||
char *str, size_t size, const char *format, ...) EPICS_PRINTF_STYLE(3,4);
|
||||
@@ -87,6 +89,17 @@ epicsShareFunc int epicsShareAPI epicsStdoutPutchar(int c);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Also pull functions into the std namespace (see lp:1786927) */
|
||||
namespace std {
|
||||
using ::epicsGetStdin;
|
||||
using ::epicsGetStdout;
|
||||
using ::epicsGetStderr;
|
||||
using ::epicsStdoutPrintf;
|
||||
using ::epicsStdoutPuts;
|
||||
using ::epicsStdoutPutchar;
|
||||
}
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* epicsStdioh */
|
||||
|
||||
@@ -19,13 +19,13 @@
|
||||
#endif
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define STRICT
|
||||
#include <windows.h>
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "osiProcess.h"
|
||||
#include "errlog.h"
|
||||
|
||||
epicsShareFunc osiGetUserNameReturn epicsShareAPI osiGetUserName (char *pBuf, unsigned bufSizeIn)
|
||||
{
|
||||
@@ -94,16 +94,11 @@ epicsShareFunc osiSpawnDetachedProcessReturn epicsShareAPI osiSpawnDetachedProce
|
||||
pFmtArgs[1] = (char *) pBaseExecutableName;
|
||||
pFmtArgs[2] = errStrMsgBuf;
|
||||
pFmtArgs[3] = "Changes may be required in your \"path\" environment variable.";
|
||||
pFmtArgs[4] = "PATH = ";
|
||||
pFmtArgs[5] = getenv ("path");
|
||||
if ( pFmtArgs[5] == NULL ) {
|
||||
pFmtArgs[5] = "<empty string>";
|
||||
}
|
||||
|
||||
W32status = FormatMessage(
|
||||
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_STRING |
|
||||
FORMAT_MESSAGE_ARGUMENT_ARRAY | 80,
|
||||
"%1 \"%2\". %3 %4 %5 \"%6\"",
|
||||
"%1 \"%2\". %3 %4",
|
||||
0,
|
||||
MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT), /* Default language */
|
||||
(LPTSTR) &complteMsgBuf,
|
||||
@@ -111,24 +106,20 @@ epicsShareFunc osiSpawnDetachedProcessReturn epicsShareAPI osiSpawnDetachedProce
|
||||
pFmtArgs
|
||||
);
|
||||
if (W32status) {
|
||||
/* Display the string. */
|
||||
MessageBox (NULL, complteMsgBuf, "Configuration Problem",
|
||||
MB_OK | MB_ICONINFORMATION);
|
||||
fprintf (stderr, "%s\n", (char *) complteMsgBuf);
|
||||
LocalFree (complteMsgBuf);
|
||||
}
|
||||
else {
|
||||
/* Display the string. */
|
||||
MessageBox (NULL, errStrMsgBuf, "Failed to start executable",
|
||||
MB_OK | MB_ICONINFORMATION);
|
||||
fprintf (stderr, "%s\n", (char *) errStrMsgBuf);
|
||||
}
|
||||
|
||||
/* Free the buffer. */
|
||||
LocalFree (errStrMsgBuf);
|
||||
}
|
||||
else {
|
||||
errlogPrintf ("!!WARNING!!\n");
|
||||
errlogPrintf ("Unable to locate executable \"%s\".\n", pBaseExecutableName);
|
||||
errlogPrintf ("You may need to modify your \"path\" environment variable.\n");
|
||||
fprintf (stderr, "!!WARNING!!\n");
|
||||
fprintf (stderr, "Unable to locate executable \"%s\".\n", pBaseExecutableName);
|
||||
fprintf (stderr, "You may need to modify your \"path\" environment variable.\n");
|
||||
}
|
||||
return osiSpawnDetachedProcessFail;
|
||||
}
|
||||
|
||||
@@ -41,16 +41,18 @@ static epicsThreadOnceId onceId = EPICS_THREAD_ONCE_INIT;
|
||||
|
||||
|
||||
#ifdef CLOCK_REALTIME
|
||||
/* This code is not used on systems without Posix CLOCK_REALTIME such
|
||||
* as Darwin, but the only way to detect that is from the OS headers,
|
||||
* so the Makefile can't exclude building this file on those systems.
|
||||
/* This code is not used on systems without Posix CLOCK_REALTIME,
|
||||
* but the only way to detect that is from the OS headers, so the
|
||||
* Makefile can't exclude compiling this file on those systems.
|
||||
*/
|
||||
|
||||
/* Forward references */
|
||||
|
||||
static int ClockTimeGetCurrent(epicsTimeStamp *pDest);
|
||||
static void ClockTimeSync(void *dummy);
|
||||
|
||||
#if defined(vxWorks) || defined(__rtems__)
|
||||
static void ClockTimeSync(void *dummy);
|
||||
#endif
|
||||
|
||||
/* ClockTime_Report iocsh command */
|
||||
static const iocshArg ReportArg0 = { "interest_level", iocshArgArgv};
|
||||
@@ -98,12 +100,18 @@ void ClockTime_Init(int synchronize)
|
||||
|
||||
if (synchronize == CLOCKTIME_SYNC) {
|
||||
if (ClockTimePvt.synchronize == CLOCKTIME_NOSYNC) {
|
||||
|
||||
#if defined(vxWorks) || defined(__rtems__)
|
||||
/* Start synchronizing */
|
||||
ClockTimePvt.synchronize = synchronize;
|
||||
|
||||
epicsThreadCreate("ClockTimeSync", epicsThreadPriorityHigh,
|
||||
epicsThreadGetStackSize(epicsThreadStackSmall),
|
||||
ClockTimeSync, NULL);
|
||||
#else
|
||||
errlogPrintf("Clock synchronization must be performed by the OS\n");
|
||||
#endif
|
||||
|
||||
}
|
||||
else {
|
||||
/* No change, sync thread should already be running */
|
||||
@@ -139,6 +147,7 @@ void ClockTime_GetProgramStart(epicsTimeStamp *pDest)
|
||||
|
||||
/* Synchronization thread */
|
||||
|
||||
#if defined(vxWorks) || defined(__rtems__)
|
||||
static void ClockTimeSync(void *dummy)
|
||||
{
|
||||
taskwdInsert(0, NULL, NULL);
|
||||
@@ -177,6 +186,7 @@ static void ClockTimeSync(void *dummy)
|
||||
ClockTimePvt.synchronized = 0;
|
||||
taskwdRemove(0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/* Time Provider Routine */
|
||||
@@ -188,6 +198,7 @@ static int ClockTimeGetCurrent(epicsTimeStamp *pDest)
|
||||
/* If a Hi-Res clock is available and works, use it */
|
||||
#ifdef CLOCK_REALTIME_HR
|
||||
clock_gettime(CLOCK_REALTIME_HR, &clockNow) &&
|
||||
/* Note: Uses the lo-res clock below if the above call fails */
|
||||
#endif
|
||||
clock_gettime(CLOCK_REALTIME, &clockNow);
|
||||
|
||||
@@ -195,9 +206,15 @@ static int ClockTimeGetCurrent(epicsTimeStamp *pDest)
|
||||
clockNow.tv_sec < POSIX_TIME_AT_EPICS_EPOCH) {
|
||||
clockNow.tv_sec = POSIX_TIME_AT_EPICS_EPOCH + 86400;
|
||||
clockNow.tv_nsec = 0;
|
||||
|
||||
#if defined(vxWorks) || defined(__rtems__)
|
||||
clock_settime(CLOCK_REALTIME, &clockNow);
|
||||
errlogPrintf("WARNING: OS Clock time was read before being set.\n"
|
||||
"Using 1990-01-02 00:00:00.000000 UTC\n");
|
||||
#else
|
||||
errlogPrintf("WARNING: OS Clock pre-dates the EPICS epoch!\n"
|
||||
"Using 1990-01-02 00:00:00.000000 UTC\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
epicsTimeFromTimespec(pDest, &clockNow);
|
||||
|
||||
@@ -391,7 +391,7 @@ MAIN(epicsCalcTest)
|
||||
testExpr(isnan(0.));
|
||||
testExpr(isnan(Inf));
|
||||
testExpr(isnan(-Inf));
|
||||
testExpr(isnan(NaN));
|
||||
testExpr(!!isnan(NaN)); // As above
|
||||
testCalc("isnan(0,1,2)", 0);
|
||||
testCalc("isnan(0,1,NaN)", 1);
|
||||
testCalc("isnan(0,NaN,2)", 1);
|
||||
|
||||
@@ -65,11 +65,11 @@ static void ovcheck(void)
|
||||
|
||||
MAIN(macLibTest)
|
||||
{
|
||||
testPlan(91);
|
||||
testPlan(93);
|
||||
|
||||
if (macCreateHandle(&h, NULL))
|
||||
testAbort("macCreateHandle() failed");
|
||||
macSuppressWarning(h, TRUE);
|
||||
eltc(0);
|
||||
|
||||
check("FOO", " FOO");
|
||||
|
||||
@@ -215,6 +215,10 @@ MAIN(macLibTest)
|
||||
check("${FOO,FOO=${FOO}}", "!$(FOO,recursive)");
|
||||
check("${FOO=GRIBBLE,FOO=${FOO}}", "!$(FOO,recursive)");
|
||||
|
||||
macSuppressWarning(h, TRUE);
|
||||
check("$(CRUX)", "!$(CRUX)");
|
||||
check("${FOO}", "!$(BAR)");
|
||||
|
||||
ovcheck();
|
||||
|
||||
return testDone();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "alarm.h"
|
||||
#include "dbDefs.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "recGbl.h"
|
||||
#include "devSup.h"
|
||||
#include "cantProceed.h"
|
||||
@@ -71,13 +72,18 @@ static long init_record(aaiRecord *prec)
|
||||
|
||||
static long read_aai(aaiRecord *prec)
|
||||
{
|
||||
epicsUInt32 nord = prec->nord;
|
||||
long nRequest = prec->nelm;
|
||||
|
||||
dbGetLink(prec->simm == menuYesNoYES ? &prec->siol : &prec->inp,
|
||||
prec->ftvl, prec->bptr, 0, &nRequest);
|
||||
|
||||
if (nRequest > 0) {
|
||||
prec->nord = nRequest;
|
||||
prec->udf=FALSE;
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
|
||||
prec->udf = FALSE;
|
||||
if (prec->tsel.type == CONSTANT &&
|
||||
prec->tse == epicsTimeEventDeviceTime)
|
||||
dbGetTimeStamp(&prec->inp, &prec->time);
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 Lawrence Berkeley Laboratory,The Control Systems
|
||||
* Group, Systems Engineering Department
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "alarm.h"
|
||||
#include "dbDefs.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbEvent.h"
|
||||
#include "recGbl.h"
|
||||
#include "devSup.h"
|
||||
#include "subArrayRecord.h"
|
||||
@@ -67,6 +68,7 @@ static long init_record(subArrayRecord *prec)
|
||||
static long read_sa(subArrayRecord *prec)
|
||||
{
|
||||
long nRequest = prec->indx + prec->nelm;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
long ecount;
|
||||
|
||||
if (nRequest > prec->malm)
|
||||
@@ -89,6 +91,8 @@ static long read_sa(subArrayRecord *prec)
|
||||
ecount = 0;
|
||||
|
||||
prec->nord = ecount;
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
|
||||
if (nRequest > 0 &&
|
||||
prec->tsel.type == CONSTANT &&
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
@@ -67,11 +67,16 @@ static long init_record(waveformRecord *prec)
|
||||
|
||||
static long read_wf(waveformRecord *prec)
|
||||
{
|
||||
epicsUInt32 nord = prec->nord;
|
||||
long nRequest = prec->nelm;
|
||||
|
||||
dbGetLink(&prec->inp, prec->ftvl, prec->bptr, 0, &nRequest);
|
||||
|
||||
if (nRequest > 0) {
|
||||
prec->nord = nRequest;
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
|
||||
if (prec->tsel.type == CONSTANT &&
|
||||
prec->tse == epicsTimeEventDeviceTime)
|
||||
dbGetTimeStamp(&prec->inp, &prec->time);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2002 Southeastern Universities Research Association, as
|
||||
* Operator of Thomas Jefferson National Accelerator Facility.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* recAai.c */
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* Original Author: Dave Barker
|
||||
*
|
||||
* C E B A F
|
||||
*
|
||||
*
|
||||
* Continuous Electron Beam Accelerator Facility
|
||||
* Newport News, Virginia, USA.
|
||||
*
|
||||
@@ -139,12 +139,12 @@ static long init_record(aaiRecord *prec, int pass)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* SIML must be a CONSTANT or a PV_LINK or a DB_LINK */
|
||||
if (prec->siml.type == CONSTANT) {
|
||||
recGblInitConstantLink(&prec->siml,DBF_USHORT,&prec->simm);
|
||||
}
|
||||
|
||||
|
||||
/* must have read_aai function defined */
|
||||
if (pdset->number < 5 || pdset->read_aai == NULL) {
|
||||
recGblRecordError(S_dev_missingSup, prec, "aai: init_record");
|
||||
@@ -204,10 +204,14 @@ static long get_array_info(DBADDR *paddr, long *no_elements, long *offset)
|
||||
static long put_array_info(DBADDR *paddr, long nNew)
|
||||
{
|
||||
aaiRecord *prec = (aaiRecord *)paddr->precord;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
prec->nord = nNew;
|
||||
if (prec->nord > prec->nelm)
|
||||
prec->nord = prec->nelm;
|
||||
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -220,7 +224,7 @@ static long get_units(DBADDR *paddr, char *units)
|
||||
switch (dbGetFieldIndex(paddr)) {
|
||||
case indexof(VAL):
|
||||
if (prec->ftvl == DBF_STRING || prec->ftvl == DBF_ENUM)
|
||||
break;
|
||||
break;
|
||||
case indexof(HOPR):
|
||||
case indexof(LOPR):
|
||||
strncpy(units,prec->egu,DB_UNITS_SIZE);
|
||||
@@ -314,12 +318,11 @@ static void monitor(aaiRecord *prec)
|
||||
|
||||
static long readValue(aaiRecord *prec)
|
||||
{
|
||||
long status;
|
||||
struct aaidset *pdset = (struct aaidset *)prec->dset;
|
||||
long status;
|
||||
|
||||
if (prec->pact == TRUE){
|
||||
status = pdset->read_aai(prec);
|
||||
return status;
|
||||
return pdset->read_aai(prec);
|
||||
}
|
||||
|
||||
status = dbGetLink(&prec->siml, DBR_ENUM, &prec->simm, 0, 0);
|
||||
@@ -327,10 +330,16 @@ static long readValue(aaiRecord *prec)
|
||||
return status;
|
||||
|
||||
if (prec->simm == menuYesNoNO){
|
||||
return pdset->read_aai(prec);
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
status = pdset->read_aai(prec);
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
if (prec->simm == menuYesNoYES){
|
||||
epicsUInt32 nord = prec->nord;
|
||||
/* Device suport is responsible for buffer
|
||||
which might be read-only so we may not be
|
||||
allowed to call dbGetLink on it.
|
||||
@@ -339,10 +348,13 @@ static long readValue(aaiRecord *prec)
|
||||
Thus call device now.
|
||||
*/
|
||||
recGblSetSevr(prec, SIMM_ALARM, prec->sims);
|
||||
return pdset->read_aai(prec);
|
||||
|
||||
status = pdset->read_aai(prec);
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return status;
|
||||
}
|
||||
|
||||
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (c) 2002 Southeastern Universities Research Association, as
|
||||
* Operator of Thomas Jefferson National Accelerator Facility.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* recAao.c */
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* Original Author: Dave Barker
|
||||
*
|
||||
* C E B A F
|
||||
*
|
||||
*
|
||||
* Continuous Electron Beam Accelerator Facility
|
||||
* Newport News, Virginia, USA.
|
||||
*
|
||||
@@ -204,10 +204,14 @@ static long get_array_info(DBADDR *paddr, long *no_elements, long *offset)
|
||||
static long put_array_info(DBADDR *paddr, long nNew)
|
||||
{
|
||||
aaoRecord *prec = (aaoRecord *)paddr->precord;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
prec->nord = nNew;
|
||||
if (prec->nord > prec->nelm)
|
||||
prec->nord = prec->nelm;
|
||||
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -220,7 +224,7 @@ static long get_units(DBADDR *paddr, char *units)
|
||||
switch (dbGetFieldIndex(paddr)) {
|
||||
case indexof(VAL):
|
||||
if (prec->ftvl == DBF_STRING || prec->ftvl == DBF_ENUM)
|
||||
break;
|
||||
break;
|
||||
case indexof(HOPR):
|
||||
case indexof(LOPR):
|
||||
strncpy(units,prec->egu,DB_UNITS_SIZE);
|
||||
@@ -343,4 +347,3 @@ static long writeValue(aaoRecord *prec)
|
||||
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
* Original Author: Bob Dalesio
|
||||
* Date: 7-14-89
|
||||
* Date: 7-14-89
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
@@ -405,11 +405,15 @@ static long get_array_info(DBADDR *paddr, long *no_elements, long *offset)
|
||||
static long put_array_info(DBADDR *paddr, long nNew)
|
||||
{
|
||||
compressRecord *prec = (compressRecord *) paddr->precord;
|
||||
epicsUInt32 nuse = prec->nuse;
|
||||
|
||||
prec->off = (prec->off + nNew) % prec->nsam;
|
||||
prec->nuse += nNew;
|
||||
if (prec->nuse > prec->nsam)
|
||||
prec->nuse = prec->nsam;
|
||||
|
||||
if (nuse != prec->nuse)
|
||||
db_post_events(prec, &prec->nuse, DBE_VALUE | DBE_LOG);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
* Copyright (c) 2002 Lawrence Berkeley Laboratory,The Control Systems
|
||||
* Group, Systems Engineering Department
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/* recSubArray.c - Record Support Routines for SubArray records
|
||||
/* recSubArray.c - Record Support Routines for SubArray records
|
||||
*
|
||||
*
|
||||
* Author: Carl Lionberger
|
||||
* Date: 090293
|
||||
*
|
||||
* NOTES:
|
||||
* Derived from waveform record.
|
||||
* Derived from waveform record.
|
||||
* Modification Log:
|
||||
* -----------------
|
||||
*/
|
||||
@@ -124,7 +124,7 @@ static long init_record(subArrayRecord *prec, int pass)
|
||||
}
|
||||
|
||||
if (pdset->init_record)
|
||||
return (*pdset->init_record)(prec);
|
||||
return pdset->init_record(prec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -191,11 +191,14 @@ static long get_array_info(DBADDR *paddr, long *no_elements, long *offset)
|
||||
static long put_array_info(DBADDR *paddr, long nNew)
|
||||
{
|
||||
subArrayRecord *prec = (subArrayRecord *) paddr->precord;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
if (nNew > prec->malm)
|
||||
nNew = prec->malm;
|
||||
prec->nord = nNew;
|
||||
if (prec->nord > prec->malm)
|
||||
prec->nord = prec->malm;
|
||||
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -208,7 +211,7 @@ static long get_units(DBADDR *paddr, char *units)
|
||||
switch (dbGetFieldIndex(paddr)) {
|
||||
case indexof(VAL):
|
||||
if (prec->ftvl == DBF_STRING || prec->ftvl == DBF_ENUM)
|
||||
break;
|
||||
break;
|
||||
case indexof(HOPR):
|
||||
case indexof(LOPR):
|
||||
strncpy(units,prec->egu,DB_UNITS_SIZE);
|
||||
@@ -318,4 +321,3 @@ static long readValue(subArrayRecord *prec)
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (c) 2002 The Regents of the University of California, as
|
||||
* Operator of Los Alamos National Laboratory.
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
|
||||
/* recWaveform.c - Record Support Routines for Waveform records */
|
||||
@@ -184,12 +184,14 @@ static long get_array_info(DBADDR *paddr, long *no_elements, long *offset)
|
||||
static long put_array_info(DBADDR *paddr, long nNew)
|
||||
{
|
||||
waveformRecord *prec = (waveformRecord *) paddr->precord;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
prec->nord = nNew;
|
||||
if (prec->nord > prec->nelm)
|
||||
prec->nord = prec->nelm;
|
||||
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -202,7 +204,7 @@ static long get_units(DBADDR *paddr, char *units)
|
||||
switch (dbGetFieldIndex(paddr)) {
|
||||
case indexof(VAL):
|
||||
if (prec->ftvl == DBF_STRING || prec->ftvl == DBF_ENUM)
|
||||
break;
|
||||
break;
|
||||
case indexof(HOPR):
|
||||
case indexof(LOPR):
|
||||
strncpy(units,prec->egu,DB_UNITS_SIZE);
|
||||
@@ -305,36 +307,37 @@ static void monitor(waveformRecord *prec)
|
||||
|
||||
static long readValue(waveformRecord *prec)
|
||||
{
|
||||
long status;
|
||||
struct wfdset *pdset = (struct wfdset *) prec->dset;
|
||||
long status;
|
||||
|
||||
if (prec->pact == TRUE){
|
||||
return (*pdset->read_wf)(prec);
|
||||
return pdset->read_wf(prec);
|
||||
}
|
||||
|
||||
status = dbGetLink(&(prec->siml), DBR_ENUM, &(prec->simm),0,0);
|
||||
status = dbGetLink(&prec->siml, DBR_ENUM, &prec->simm, 0, 0);
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
if (prec->simm == menuYesNoNO){
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
status = (*pdset->read_wf)(prec);
|
||||
status = pdset->read_wf(prec);
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
return status;
|
||||
}
|
||||
|
||||
if (prec->simm == menuYesNoYES){
|
||||
epicsUInt32 nord = prec->nord;
|
||||
long nRequest = prec->nelm;
|
||||
|
||||
status = dbGetLink(&(prec->siol), prec->ftvl, prec->bptr, 0, &nRequest);
|
||||
/* nord set only for db links: needed for old db_access */
|
||||
status = dbGetLink(&prec->siol, prec->ftvl, prec->bptr, 0, &nRequest);
|
||||
if (prec->siol.type != CONSTANT) {
|
||||
prec->nord = nRequest;
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
if (status == 0)
|
||||
prec->udf=FALSE;
|
||||
prec->udf = FALSE;
|
||||
}
|
||||
} else {
|
||||
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
|
||||
@@ -344,4 +347,3 @@ static long readValue(waveformRecord *prec)
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
if $running_under_some_shell;
|
||||
#!/usr/bin/env perl
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2010 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
|
||||
55
src/tools/EpicsHostArch.pl
Normal file
55
src/tools/EpicsHostArch.pl
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env perl
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2018 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# Returns an architecture name for EPICS_HOST_ARCH that should be
|
||||
# appropriate for the CPU that this version of Perl was built for.
|
||||
# Any arguments to the program will be appended with separator '-'
|
||||
# to allow flags like -gnu -debug and/or -static to be added.
|
||||
|
||||
# Before Base has been built, use a command like this:
|
||||
# bash$ export EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl`
|
||||
#
|
||||
# If Base is already built, use
|
||||
# tcsh% setenv EPICS_HOST_ARCH `perl base/lib/perl/EpicsHostArch.pl`
|
||||
|
||||
# If your architecture is not recognized by this script, please send
|
||||
# the output from running 'perl --version' to the EPICS tech-talk
|
||||
# mailing list to have it added.
|
||||
|
||||
use strict;
|
||||
|
||||
use Config;
|
||||
use POSIX;
|
||||
|
||||
print join('-', HostArch(), @ARGV), "\n";
|
||||
|
||||
sub HostArch {
|
||||
my $arch = $Config{archname};
|
||||
for ($arch) {
|
||||
return 'linux-x86_64' if m/^x86_64-linux/;
|
||||
return 'linux-x86' if m/^i[3-6]86-linux/;
|
||||
return 'linux-arm' if m/^arm-linux/;
|
||||
return 'windows-x64' if m/^MSWin32-x64/;
|
||||
return 'win32-x86' if m/^MSWin32-x86/;
|
||||
return "cygwin-x86_64" if m/^x86_64-cygwin/;
|
||||
return "cygwin-x86" if m/^i[3-6]86-cygwin/;
|
||||
return 'solaris-sparc' if m/^sun4-solaris/;
|
||||
return 'solaris-x86' if m/^i86pc-solaris/;
|
||||
|
||||
my ($kernel, $hostname, $release, $version, $cpu) = uname;
|
||||
if (m/^darwin/) {
|
||||
for ($cpu) {
|
||||
return 'darwin-x86' if m/^(i386|x86_64)/;
|
||||
return 'darwin-ppc' if m/Power Macintosh/;
|
||||
}
|
||||
die "$0: macOS CPU type '$cpu' not recognized\n";
|
||||
}
|
||||
|
||||
die "$0: Architecture '$arch' not recognized\n";
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,9 @@ PERL_MODULES += DBD/Recordtype.pm
|
||||
PERL_MODULES += DBD/Registrar.pm
|
||||
PERL_MODULES += DBD/Variable.pm
|
||||
|
||||
# This goes into lib/perl, not bin/<host>
|
||||
PERL_MODULES += EpicsHostArch.pl
|
||||
|
||||
PERL_SCRIPTS += assembleSnippets.pl
|
||||
PERL_SCRIPTS += convertRelease.pl
|
||||
PERL_SCRIPTS += cvsclean.pl
|
||||
|
||||
@@ -41,19 +41,69 @@ BEGIN {
|
||||
}
|
||||
}
|
||||
|
||||
my $tool = 'dbdToHtml';
|
||||
use Pod::Usage;
|
||||
|
||||
our ($opt_D, @opt_I, $opt_o);
|
||||
getopts('DI@o:') or
|
||||
die "Usage: $tool [-D] [-I dir] [-o file.html] file.dbd.pod\n";
|
||||
=head1 NAME
|
||||
|
||||
dbdToHtml.pl - Convert DBD file with POD to HTML
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<dbdToHtml.pl> [B<-h>] [B<-D>] [B<-I> dir] [B<-o> file] file.dbd.pod
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Generates HTML documentation from a B<.dbd.pod> file.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
B<dbdToHtml.pl> understands the following options:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-h>
|
||||
|
||||
Help, display usage information.
|
||||
|
||||
=item B<-H>
|
||||
|
||||
Conversion help, display information about converting reference documentation
|
||||
from the EPICS Wiki into a B<.dbd.pod> file for use with this tool.
|
||||
|
||||
=item B<-D>
|
||||
|
||||
Instead of creating the output file as described, read the input file(s) and
|
||||
print a B<Makefile> dependency rule for the output file(s) to stdout.
|
||||
|
||||
=item B<-o> file
|
||||
|
||||
Name of the output file to be created.
|
||||
|
||||
=back
|
||||
|
||||
If no output filename is set, the file created will be named after the input
|
||||
file, removing any directory components in the path and replacing any
|
||||
B<.dbd.pod> file extension with B<.html>.
|
||||
|
||||
=cut
|
||||
|
||||
our ($opt_h, $opt_H, $opt_D, @opt_I, $opt_o);
|
||||
|
||||
my $tool = 'dbdToHtml.pl';
|
||||
|
||||
getopts('hHDI@o:') or
|
||||
pod2usage(2);
|
||||
pod2usage(-verbose => 2) if $opt_H;
|
||||
pod2usage(1) if $opt_h;
|
||||
pod2usage("$tool: No input file given.\n") if @ARGV != 1;
|
||||
|
||||
my $dbd = DBD->new();
|
||||
|
||||
my $infile = shift @ARGV;
|
||||
$infile =~ m/\.dbd.pod$/ or
|
||||
die "$tool: Input file '$infile' must have '.dbd.pod' extension\n";
|
||||
pod2usage("$tool: Input file '$infile' must have '.dbd.pod' extension.\n");
|
||||
|
||||
&ParseDBD($dbd, &Readfile($infile, 0, \@opt_I));
|
||||
ParseDBD($dbd, Readfile($infile, 0, \@opt_I));
|
||||
|
||||
if (!$opt_o) {
|
||||
($opt_o = $infile) =~ s/\.dbd\.pod$/.html/;
|
||||
@@ -243,3 +293,87 @@ sub DBD::Recfield::writable {
|
||||
return $fld->dbf_type eq "DBF_NOACCESS" ? 'No' : 'Yes';
|
||||
}
|
||||
|
||||
=pod
|
||||
|
||||
=head1 Converting Wiki Record Reference to POD
|
||||
|
||||
If you open the src/std/rec/aiRecord.dbd.pod file in your favourite plain text
|
||||
editor you'll see what input was required to generate the aiRecord.html file.
|
||||
The text markup language we're using is a standard called POD (Plain Old
|
||||
Documentation) which is used by Perl developers, but you don't need to know Perl
|
||||
at all to be able to use it.
|
||||
|
||||
When we add POD markup to a record type, we rename its *Record.dbd file to
|
||||
.dbd.pod in the src/std/rec directory; no other changes are needed for the build
|
||||
system to find it by its new name. The POD content is effectively just a new
|
||||
kind of comment that appears in .dbd.pod files, which the formatter knows how to
|
||||
convert into HTML. The build also generates a plain *Record.dbd file from this
|
||||
same input file by stripping out all of the POD markup.
|
||||
|
||||
Documentation for Perl's POD markup standard can be found online at
|
||||
L<https://perldoc.perl.org/perlpod.html> or you may be able to type 'perldoc
|
||||
perlpod' into a Linux command-line to see the same text. We added a few POD
|
||||
keywords of our own to handle the table generation, and I'll cover those briefly
|
||||
below.
|
||||
|
||||
POD text can appear almost anywhere in a dbd.pod file. It always starts with a
|
||||
line "=[keyword] [additional text...]" where [keyword] is "title", "head1"
|
||||
through "head4" etc.. The POD text ends with a line "=cut". There must be a
|
||||
blank line above every POD line, and in many cases below it as well.
|
||||
|
||||
The POD keywords we have added are "title", "recordtype", "menu", "fields",
|
||||
"type", "read" and "write". The last 3 are less common but are used in some of
|
||||
the other record types such as the waveform and aSub records.
|
||||
|
||||
The most interesting of our new keywords is "fields", which takes a list of
|
||||
record field names on the same line after the keyword and generates an HTML
|
||||
Table describing those fields based on the field description found in the DBD
|
||||
parts. In the ai documentation the first such table covers the DTYP and INP
|
||||
fields, so the line
|
||||
|
||||
=fields DTYP, INP
|
||||
|
||||
generates all this in the output:
|
||||
|
||||
<blockquote><table border="1">
|
||||
<tr>
|
||||
<th>Field</th><th>Summary</th><th>Type</th><th>DCT</th>
|
||||
<th>Default</th><th>Read</th><th>Write</th><th>CA PP</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="cell">DTYP</td><td class="cell">Device Type</td>
|
||||
<td class="cell">DEVICE</td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell"> </td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell">No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="cell">INP</td>
|
||||
<td class="cell">Input Specification</td>
|
||||
<td class="cell">INLINK</td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell"> </td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell">Yes</td>
|
||||
<td class="cell">No</td>
|
||||
</tr>
|
||||
</table></blockquote>
|
||||
|
||||
Note that the "=fields" line must appear inside the DBD's declaration of the
|
||||
record type, i.e. after the line
|
||||
|
||||
recordtype(ai) {
|
||||
|
||||
The "type", "read" and "write" POD keywords are used inside an individual record
|
||||
field declaration and provide information for the "Type", "Read" and "Write"
|
||||
columns of the field's table output for fields where this information is
|
||||
normally supplied by the record support code. Usage examples for these keywords
|
||||
can be found in the aai and aSub record types.
|
||||
|
||||
If you look at the L<aoRecord.dbd.pod> file you'll see that the POD there starts
|
||||
by documenting a record-specific menu definition. The "menu" keyword generates a
|
||||
table that lists all the choices found in the named menu.
|
||||
|
||||
=cut
|
||||
|
||||
@@ -1,84 +1,21 @@
|
||||
#!/bin/sh
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# EpicsHostArch - returns the Epics host architecture suitable
|
||||
# for assigning to the EPICS_HOST_ARCH variable
|
||||
# Script to find and run the Perl EpicsHostArch.pl script.
|
||||
|
||||
if [ "x${1}" != "x" ]
|
||||
then
|
||||
suffix="-"${1}
|
||||
else
|
||||
suffix=""
|
||||
fi
|
||||
# This script is provided for backwards-compatibility only and may be
|
||||
# dropped from future releases of Base. Please adjust callers to run
|
||||
# the Perl version directly as this startup directory isn't copied to
|
||||
# INSTALL_LOCATION by the EPICS build system.
|
||||
|
||||
sysname=`uname`
|
||||
EHA=EpicsHostArch.pl
|
||||
|
||||
case $sysname in
|
||||
Linux )
|
||||
os=linux
|
||||
cpu=`uname -m`
|
||||
case $cpu in
|
||||
i386 | i486 | i586 | i686 )
|
||||
cpu=x86 ;;
|
||||
x86_64 )
|
||||
;; # $cpu is correct
|
||||
armv6l | armv7l )
|
||||
cpu=arm ;;
|
||||
esac
|
||||
echo ${os}-${cpu}${suffix}
|
||||
;;
|
||||
Darwin )
|
||||
os=darwin
|
||||
cpu=`uname -m`
|
||||
case $cpu in
|
||||
"Power Macintosh")
|
||||
cpu=ppc ;;
|
||||
i386 | x86_64 )
|
||||
cpu=x86 ;;
|
||||
esac
|
||||
echo ${os}-${cpu}${suffix}
|
||||
;;
|
||||
SunOS )
|
||||
version=`uname -r | sed '1s/^\([0-9]*\).*$/\1/'`
|
||||
if [ ${version} -ge 5 ]; then
|
||||
os=solaris
|
||||
else
|
||||
os=sun4
|
||||
fi
|
||||
cpu=`uname -m`
|
||||
case $cpu in
|
||||
sun4*)
|
||||
cpu=sparc
|
||||
;;
|
||||
i86pc)
|
||||
cpu=x86
|
||||
;;
|
||||
esac
|
||||
echo ${os}-${cpu}${suffix}
|
||||
;;
|
||||
* )
|
||||
sysname=`uname -o`
|
||||
case $sysname in
|
||||
Cygwin )
|
||||
os=cygwin
|
||||
cpu=`uname -m`
|
||||
case $cpu in i386 | i486 | i586 | i686 )
|
||||
cpu=x86
|
||||
;;
|
||||
esac
|
||||
echo ${os}-${cpu}${suffix}
|
||||
;;
|
||||
* )
|
||||
echo unsupported
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
# Perl script will be installed into lib/perl
|
||||
[ -f lib/perl/$EHA ] && exec perl lib/perl/$EHA "$@"
|
||||
|
||||
# If Base hasn't been built yet, use the source Luke
|
||||
[ -f src/tools/$EHA ] && exec perl src/tools/$EHA "$@"
|
||||
|
||||
# Die with an error message
|
||||
echo "$0: Can't find $EHA" >&2
|
||||
exit 1
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
|
||||
if $running_under_some_shell; # EpicsHostArch.pl
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE is distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
|
||||
# Returns the Epics host architecture suitable
|
||||
# for assigning to the EPICS_HOST_ARCH variable
|
||||
|
||||
use Config;
|
||||
use POSIX;
|
||||
|
||||
$suffix="";
|
||||
$suffix="-".$ARGV[0] if ($ARGV[0] ne "");
|
||||
|
||||
$EpicsHostArch = GetEpicsHostArch();
|
||||
print "$EpicsHostArch$suffix";
|
||||
|
||||
sub GetEpicsHostArch { # no args
|
||||
$arch=$Config{'archname'};
|
||||
if ($arch =~ /sun4-solaris/) { return "solaris-sparc";
|
||||
} elsif ($arch =~ m/i86pc-solaris/) { return "solaris-x86";
|
||||
} elsif ($arch =~ m/i[3-6]86-linux/){ return "linux-x86";
|
||||
} elsif ($arch =~ m/x86_64-linux/) { return "linux-x86_64";
|
||||
} elsif ($arch =~ m/arm-linux/) { return "linux-arm";
|
||||
} elsif ($arch =~ m/MSWin32-x86/) { return "win32-x86";
|
||||
} elsif ($arch =~ m/MSWin32-x64/) { return "windows-x64";
|
||||
} elsif ($arch =~ m/cygwin/) {
|
||||
my($kernel, $hostname, $release, $version, $cpu) = POSIX::uname();
|
||||
if ($cpu =~ m/x86_64/) { return "cygwin-x86_64"; }
|
||||
return "cygwin-x86";
|
||||
} elsif ($arch =~ m/darwin/) {
|
||||
my($kernel, $hostname, $release, $version, $cpu) = POSIX::uname();
|
||||
if ($cpu =~ m/Power Macintosh/) { return "darwin-ppc"; }
|
||||
elsif ($cpu =~ m/i386/) { return "darwin-x86"; }
|
||||
elsif ($cpu =~ m/x86_64/) { return "darwin-x86"; }
|
||||
else { return "unsupported"; }
|
||||
} else { return "unsupported"; }
|
||||
}
|
||||
|
||||
#EOF EpicsHostArch.pl
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
#!/bin/csh -f
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Site-specific EPICS environment settings
|
||||
#
|
||||
# sites should modify these definitions
|
||||
|
||||
# Location of epics base
|
||||
if ( ! $?EPICS_BASE ) then
|
||||
set EPICS_BASE=/usr/local/epics/base
|
||||
endif
|
||||
|
||||
# Location of epics extensions
|
||||
if ( ! $?EPICS_EXTENSIONS ) then
|
||||
setenv EPICS_EXTENSIONS /usr/local/epics/extensions
|
||||
endif
|
||||
|
||||
# Postscript printer definition needed by some extensions (eg medm, dp, dm, ...)
|
||||
if ( ! $?PSPRINTTER ) then
|
||||
setenv PSPRINTER lp
|
||||
endif
|
||||
|
||||
# Needed only by medm extension
|
||||
#setenv EPICS_DISPLAY_PATH
|
||||
# Needed only by medm extension
|
||||
setenv BROWSER firefox
|
||||
|
||||
# Needed only by orbitscreen extension
|
||||
if ( ! $?ORBITSCREENHOME ) then
|
||||
setenv ORBITSCREENHOME $EPICS_EXTENSIONS/src/orbitscreen
|
||||
endif
|
||||
|
||||
# Needed only by adt extension
|
||||
if ( ! $?ADTHOME ) then
|
||||
setenv ADTHOME /usr/local/oag/apps/src/appconfig/adt
|
||||
echo $ADTHOME
|
||||
endif
|
||||
|
||||
# Needed only by ar extension (archiver)
|
||||
setenv EPICS_AR_PORT 7002
|
||||
|
||||
# Needed for java extensions
|
||||
if ( $?CLASSPATH ) then
|
||||
setenv CLASSPATH "${CLASSPATH}:${EPICS_EXTENSIONS}/javalib"
|
||||
else
|
||||
setenv CLASSPATH "${EPICS_EXTENSIONS}/javalib"
|
||||
endif
|
||||
|
||||
# Allow private versions of extensions without a bin subdir
|
||||
if ( $?EPICS_EXTENSIONS_PVT ) then
|
||||
set path = ( $path $EPICS_EXTENSIONS_PVT)
|
||||
endif
|
||||
|
||||
##################################################################
|
||||
|
||||
# Start of set R3.14 environment variables
|
||||
|
||||
setenv EPICS_HOST_ARCH `$EPICS_BASE/startup/EpicsHostArch.pl`
|
||||
|
||||
# Allow private versions of base
|
||||
if ( $?EPICS_BASE_PVT ) then
|
||||
if ( -e $EPICS_BASE_PVT/bin/$EPICS_HOST_ARCH ) then
|
||||
set path = ( $path $EPICS_BASE_PVT/bin/$EPICS_HOST_ARCH)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Allow private versions of extensions
|
||||
if ( $?EPICS_EXTENSIONS_PVT ) then
|
||||
if ( -e $EPICS_EXTENSIONS_PVT/bin/$EPICS_HOST_ARCH ) then
|
||||
set path = ( $path $EPICS_EXTENSIONS_PVT/bin/$EPICS_HOST_ARCH)
|
||||
endif
|
||||
endif
|
||||
set path = ( $path $EPICS_EXTENSIONS/bin/$EPICS_HOST_ARCH )
|
||||
|
||||
# End of set R3.14 environment variables
|
||||
##################################################################
|
||||
@@ -1,88 +0,0 @@
|
||||
#!/bin/sh
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
# Site-specific EPICS environment settings
|
||||
#
|
||||
# sites should modify these definitions
|
||||
|
||||
# Location of epics base
|
||||
if [ -z "${MY_EPICS_BASE}" ] ; then
|
||||
MY_EPICS_BASE=/usr/local/epics/base
|
||||
fi
|
||||
|
||||
# Location of epics extensions (medm, msi, etc.)
|
||||
if [ -z "${EPICS_EXTENSIONS}" ] ; then
|
||||
EPICS_EXTENSIONS=/usr/local/epics/extensions
|
||||
fi
|
||||
|
||||
# Postscript printer definition needed by some extensions (eg medm, dp, dm, ...)
|
||||
if [ -z "${PSPRINTER}" ] ; then
|
||||
export PSPRINTER=lp
|
||||
fi
|
||||
|
||||
#Needed only by the idl and ezcaIDL extensions.
|
||||
#export EPICS_EXTENSIONS
|
||||
|
||||
# Needed only by medm extension
|
||||
#export EPICS_DISPLAY_PATH=/path/to/adl/files
|
||||
export BROWSER=firefox
|
||||
|
||||
# Needed only by orbitscreen extension
|
||||
#if [ -z "${ORBITSCREENHOME}" ] ; then
|
||||
# export "ORBITSCREENHOME=${EPICS_EXTENSIONS/src/orbitscreen}"
|
||||
#fi
|
||||
|
||||
# Needed only by adt extension
|
||||
#if [ -z "${ADTHOME}" ] ; then
|
||||
# ADTHOME=
|
||||
# export ADTHOME
|
||||
#fi
|
||||
|
||||
# Needed only by ar extension (archiver)
|
||||
#EPICS_AR_PORT=7002
|
||||
#export EPICS_AR_PORT
|
||||
|
||||
# Needed for java extensions
|
||||
if [ -z "${CLASSPATH}" ] ; then
|
||||
CLASSPATH="${EPICS_EXTENSIONS}/javalib"
|
||||
else
|
||||
CLASSPATH="${CLASSPATH}:${EPICS_EXTENSIONS}/javalib"
|
||||
fi
|
||||
export CLASSPATH
|
||||
|
||||
# Allow private versions of extensions without a bin subdir
|
||||
if [ -n "${EPICS_EXTENSIONS_PVT}" ] ; then
|
||||
PATH="${PATH}:${EPICS_EXTENSIONS_PVT}"
|
||||
fi
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# Start of set R3.14 environment variables
|
||||
#
|
||||
EPICS_HOST_ARCH=`"${MY_EPICS_BASE}"/startup/EpicsHostArch.pl`
|
||||
export EPICS_HOST_ARCH
|
||||
|
||||
# Allow private versions of base
|
||||
if [ -n "${EPICS_BASE_PVT}" ] ; then
|
||||
if [ -d "${EPICS_BASE_PVT}/bin/${EPICS_HOST_ARCH}" ]; then
|
||||
PATH="${PATH}:${EPICS_BASE_PVT}/bin/${EPICS_HOST_ARCH}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Allow private versions of extensions
|
||||
if [ -n "${EPICS_EXTENSIONS_PVT}" ] ; then
|
||||
if [ -d "${EPICS_EXTENSIONS_PVT}/bin/${EPICS_HOST_ARCH}" ]; then
|
||||
PATH="${PATH}:${EPICS_EXTENSIONS_PVT}/bin/${EPICS_HOST_ARCH}"
|
||||
fi
|
||||
fi
|
||||
PATH="${PATH}:${EPICS_EXTENSIONS}/bin/${EPICS_HOST_ARCH}"
|
||||
|
||||
# End of set R3.14 environment variables
|
||||
|
||||
#---------------------------------------------------------------
|
||||
@@ -1,122 +0,0 @@
|
||||
@ECHO OFF
|
||||
REM *************************************************************************
|
||||
REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
REM National Laboratory.
|
||||
REM Copyright (c) 2002 The Regents of the University of California, as
|
||||
REM Operator of Los Alamos National Laboratory.
|
||||
REM EPICS BASE Versions 3.13.7
|
||||
REM and higher are distributed subject to a Software License Agreement found
|
||||
REM in file LICENSE that is included with this distribution.
|
||||
REM *************************************************************************
|
||||
REM
|
||||
REM Site-specific EPICS environment settings
|
||||
REM
|
||||
REM sites should modify these definitions
|
||||
|
||||
REM ======================================================
|
||||
REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
|
||||
REM ======================================================
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- WINDOWS ---------------------------
|
||||
REM ======================================================
|
||||
REM ----- WIN95 -----
|
||||
REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
|
||||
REM ----- WINNT, WIN2000 -----
|
||||
REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
|
||||
REM ----- WINXP, Vista, Windows 7 -----
|
||||
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- make and perl ---------------------
|
||||
REM ======================================================
|
||||
|
||||
REM --------------- ActiveState perl -------------------
|
||||
set PATH=C:\Perl\bin;%PATH%
|
||||
|
||||
REM --------------- mingw make ------------------------
|
||||
REM set PATH=C:\mingw-make\bin;%PATH%
|
||||
REM set PATH=C:\mingw-make82-3\bin;%PATH%
|
||||
|
||||
REM --------------- gnuwin32 make ----------------------
|
||||
set PATH=C:\gnuwin32\bin;%PATH%
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- cygwin tools ------------------------
|
||||
REM ======================================================
|
||||
REM (make & perl if above perl and make are REMs)
|
||||
REM Dont use cygwin GNU make and Perl!
|
||||
REM cygwin contains tk/tcl, vim, perl, and many unix tools
|
||||
REM need grep from here NOT from cvs directory
|
||||
set PATH=%PATH%;.;..
|
||||
set PATH=%PATH%;c:\cygwin\bin
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- EPICS --------------------------------
|
||||
REM ======================================================
|
||||
set EPICS_HOST_ARCH=cygwin-x86
|
||||
set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
|
||||
set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
|
||||
|
||||
REM ======================================================
|
||||
REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
|
||||
REM ======================================================
|
||||
|
||||
REM ======================================================
|
||||
REM ----------------- remote CVS -------------------------
|
||||
REM ======================================================
|
||||
REM set CVS_RSH=c:/cygwin/bin/ssh.exe
|
||||
REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
|
||||
REM set HOME=c:/users/%USERNAME%
|
||||
REM set HOME=c:/users/jba
|
||||
|
||||
REM ======================================================
|
||||
REM ------------------- Bazaar ---------------------------
|
||||
REM ======================================================
|
||||
set PATH=%PATH%;C:\Program files\Bazaar
|
||||
|
||||
REM ======================================================
|
||||
REM ----------------- GNU make flags ---------------------
|
||||
REM ======================================================
|
||||
set MAKEFLAGS=-w
|
||||
|
||||
REM ======================================================
|
||||
REM -------------- vim (use cygwin vim ) -----------------
|
||||
REM ======================================================
|
||||
REM HOME needed by vim to write .viminfo file.
|
||||
REM VIM needed by vim to find _vimrc file.
|
||||
REM set VIM=c:\cygwin
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- Epics Channel Access -----------------
|
||||
REM Modify and uncomment the following lines
|
||||
REM to override the base/configure/CONFIG_ENV defaults
|
||||
REM ======================================================
|
||||
REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
|
||||
REM set EPICS_CA_AUTO_ADDR_LIST=YES
|
||||
|
||||
REM set EPICS_CA_CONN_TMO=30.0
|
||||
REM set EPICS_CA_BEACON_PERIOD=15.0
|
||||
REM set EPICS_CA_REPEATER_PORT=5065
|
||||
REM set EPICS_CA_SERVER_PORT=5064
|
||||
REM set EPICS_TS_MIN_WEST=420
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- JAVA ---------------------------------
|
||||
REM ======================================================
|
||||
REM Needed for java extensions
|
||||
REM set CLASSPATH=G:\epics\extensions\javalib
|
||||
REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
|
||||
REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- Exceed -------------------------------
|
||||
REM Needed for X11 extensions
|
||||
REM ======================================================
|
||||
REM set EX_VER=7.10
|
||||
REM set EX_VER=12.00
|
||||
REM set EX_VER=14.00
|
||||
REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
|
||||
REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
|
||||
|
||||
|
||||
96
startup/unix.csh
Normal file
96
startup/unix.csh
Normal file
@@ -0,0 +1,96 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# Site-specific EPICS environment settings
|
||||
#
|
||||
# Attempts to set EPICS_HOST_ARCH. Optionally, adds the EPICS Base
|
||||
# install host architecture bin directory to PATH.
|
||||
#
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Site serviceable parts (These definitions may be modified)
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Automatically set up the environment when possible ("yes" or "no").
|
||||
# If set to yes, as much of the environment will be set up as possible.
|
||||
# If set to no, just the minimum environment will be set up. More
|
||||
# specific _auto_* definitions take precedence over this definition.
|
||||
set _auto=no
|
||||
|
||||
# Automatically append to PATH ("yes" or "no"). If set to yes, the
|
||||
# EPICS Base install host architecture bin directory will be added to
|
||||
# PATH if possible. If set to no, the bin directory will not be added
|
||||
# to PATH.
|
||||
set _auto_path_append=$_auto
|
||||
|
||||
# The program used to run Perl scripts (pathname).
|
||||
set _perl_prog=perl
|
||||
|
||||
# The EPICS host architecture specification for EPICS_HOST_ARCH
|
||||
# (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE). If
|
||||
# nonempty, the value will be used as the value of EPICS_HOST_ARCH. If
|
||||
# empty, an attempt will be made to automatically determine the value
|
||||
# with EpicsHostArch.pl.
|
||||
set _epics_host_arch=
|
||||
|
||||
# The install location of EPICS Base (pathname). If nonempty, the
|
||||
# EpicsHostArch.pl script from it, if it exists, will be used to
|
||||
# determine EPICS_HOST_ARCH. If nonempty and EPICS_HOST_ARCH was
|
||||
# determined successfully, it will be used to add the host architecture
|
||||
# bin directory to PATH if _auto_path_append is yes.
|
||||
set _epics_base=
|
||||
|
||||
# The source location of EPICS Base (pathname). If nonempty, the
|
||||
# EpicsHostArch.pl script from it, if it exists and _epics_base is empty
|
||||
# or it did not exist in the _epics_base location, will be used to
|
||||
# determine EPICS_HOST_ARCH.
|
||||
set _epics_base_src=
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Internal parts (There is typically no need to modify these)
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Define the possible locations of EpicsHostArch.pl
|
||||
set _epics_host_arch_pl=
|
||||
set _src_epics_host_arch_pl=
|
||||
if ("$_epics_base" != '') then
|
||||
set _epics_host_arch_pl="$_epics_base/lib/perl/EpicsHostArch.pl"
|
||||
endif
|
||||
if ("$_epics_base_src" != '') then
|
||||
set _src_epics_host_arch_pl="$_epics_base_src/src/tools/EpicsHostArch.pl"
|
||||
endif
|
||||
|
||||
# Set the EPICS host architecture specification
|
||||
if ("$_epics_host_arch" != '') then
|
||||
setenv EPICS_HOST_ARCH "$_epics_host_arch"
|
||||
else if (-e "$_epics_host_arch_pl") then
|
||||
set _epics_host_arch=`"$_perl_prog" "$_epics_host_arch_pl"`
|
||||
setenv EPICS_HOST_ARCH "$_epics_host_arch"
|
||||
else if (-e "$_src_epics_host_arch_pl") then
|
||||
set _epics_host_arch=`"$_perl_prog" "$_src_epics_host_arch_pl"`
|
||||
setenv EPICS_HOST_ARCH "$_epics_host_arch"
|
||||
endif
|
||||
|
||||
# Add the EPICS Base host architecture bin directory to PATH
|
||||
if ("$_auto_path_append" == yes) then
|
||||
if ("$_epics_base" != '' && "$_epics_host_arch" != '') then
|
||||
setenv PATH "${PATH}:$_epics_base/bin/$_epics_host_arch"
|
||||
endif
|
||||
endif
|
||||
|
||||
# Don't leak variables into the environment
|
||||
unset _auto
|
||||
unset _auto_path_append
|
||||
unset _perl_prog
|
||||
unset _epics_host_arch
|
||||
unset _epics_base
|
||||
unset _epics_base_src
|
||||
unset _epics_host_arch_pl
|
||||
unset _src_epics_host_arch_pl
|
||||
100
startup/unix.sh
Normal file
100
startup/unix.sh
Normal file
@@ -0,0 +1,100 @@
|
||||
#*************************************************************************
|
||||
# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
# National Laboratory.
|
||||
# Copyright (c) 2002 The Regents of the University of California, as
|
||||
# Operator of Los Alamos National Laboratory.
|
||||
# EPICS BASE Versions 3.13.7
|
||||
# and higher are distributed subject to a Software License Agreement found
|
||||
# in file LICENSE that is included with this distribution.
|
||||
#*************************************************************************
|
||||
#
|
||||
# Site-specific EPICS environment settings
|
||||
#
|
||||
# Attempts to set EPICS_HOST_ARCH. Optionally, adds the EPICS Base
|
||||
# install host architecture bin directory to PATH.
|
||||
#
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Site serviceable parts (These definitions may be modified)
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Automatically set up the environment when possible ("yes" or "no").
|
||||
# If set to yes, as much of the environment will be set up as possible.
|
||||
# If set to no, just the minimum environment will be set up. More
|
||||
# specific _auto_* definitions take precedence over this definition.
|
||||
_auto=no
|
||||
|
||||
# Automatically append to PATH ("yes" or "no"). If set to yes, the
|
||||
# EPICS Base install host architecture bin directory will be added to
|
||||
# PATH if possible. If set to no, the bin directory will not be added
|
||||
# to PATH.
|
||||
_auto_path_append=$_auto
|
||||
|
||||
# The program used to run Perl scripts (pathname).
|
||||
_perl_prog=perl
|
||||
|
||||
# The EPICS host architecture specification for EPICS_HOST_ARCH
|
||||
# (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE). If
|
||||
# nonempty, the value will be used as the value of EPICS_HOST_ARCH. If
|
||||
# empty, an attempt will be made to automatically determine the value
|
||||
# with EpicsHostArch.pl.
|
||||
_epics_host_arch=
|
||||
|
||||
# The install location of EPICS Base (pathname). If nonempty, the
|
||||
# EpicsHostArch.pl script from it, if it exists, will be used to
|
||||
# determine EPICS_HOST_ARCH. If nonempty and EPICS_HOST_ARCH was
|
||||
# determined successfully, it will be used to add the host architecture
|
||||
# bin directory to PATH if _auto_path_append is yes.
|
||||
_epics_base=
|
||||
|
||||
# The source location of EPICS Base (pathname). If nonempty, the
|
||||
# EpicsHostArch.pl script from it, if it exists and _epics_base is empty
|
||||
# or it did not exist in the _epics_base location, will be used to
|
||||
# determine EPICS_HOST_ARCH.
|
||||
_epics_base_src=
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# Internal parts (There is typically no need to modify these)
|
||||
#-----------------------------------------------------------------------
|
||||
|
||||
# Define the possible locations of EpicsHostArch.pl
|
||||
_epics_host_arch_pl=
|
||||
_src_epics_host_arch_pl=
|
||||
if [ -n "$_epics_base" ]; then
|
||||
_epics_host_arch_pl="$_epics_base/lib/perl/EpicsHostArch.pl"
|
||||
fi
|
||||
if [ -n "$_epics_base_src" ]; then
|
||||
_src_epics_host_arch_pl="$_epics_base_src/src/tools/EpicsHostArch.pl"
|
||||
fi
|
||||
|
||||
# Set the EPICS host architecture specification
|
||||
if [ -n "$_epics_host_arch" ]; then
|
||||
EPICS_HOST_ARCH=$_epics_host_arch
|
||||
export EPICS_HOST_ARCH
|
||||
elif [ -e "$_epics_host_arch_pl" ]; then
|
||||
_epics_host_arch=$("$_perl_prog" "$_epics_host_arch_pl")
|
||||
EPICS_HOST_ARCH=$_epics_host_arch
|
||||
export EPICS_HOST_ARCH
|
||||
elif [ -e "$_src_epics_host_arch_pl" ]; then
|
||||
_epics_host_arch=$("$_perl_prog" "$_src_epics_host_arch_pl")
|
||||
EPICS_HOST_ARCH=$_epics_host_arch
|
||||
export EPICS_HOST_ARCH
|
||||
fi
|
||||
|
||||
# Add the EPICS Base host architecture bin directory to PATH
|
||||
if [ "$_auto_path_append" = yes ]; then
|
||||
if [ -n "$_epics_base" ] && [ -n "$_epics_host_arch" ]; then
|
||||
PATH="$PATH:$_epics_base/bin/$_epics_host_arch"
|
||||
export PATH
|
||||
fi
|
||||
fi
|
||||
|
||||
# Don't leak variables into the environment
|
||||
unset _auto
|
||||
unset _auto_path_append
|
||||
unset _perl_prog
|
||||
unset _epics_host_arch
|
||||
unset _epics_base
|
||||
unset _epics_base_src
|
||||
unset _epics_host_arch_pl
|
||||
unset _src_epics_host_arch_pl
|
||||
@@ -1,147 +1,105 @@
|
||||
@ECHO OFF
|
||||
REM *************************************************************************
|
||||
REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
|
||||
REM National Laboratory.
|
||||
REM Copyright (c) 2002 The Regents of the University of California, as
|
||||
REM Operator of Los Alamos National Laboratory.
|
||||
REM EPICS BASE Versions 3.13.7
|
||||
REM and higher are distributed subject to a Software License Agreement found
|
||||
REM in file LICENSE that is included with this distribution.
|
||||
REM *************************************************************************
|
||||
REM
|
||||
REM Site-specific EPICS environment settings
|
||||
REM
|
||||
REM sites should modify these definitions
|
||||
|
||||
REM ======================================================
|
||||
REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
|
||||
REM ======================================================
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- WINDOWS ---------------------------
|
||||
REM ======================================================
|
||||
REM ----- WIN95 -----
|
||||
REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
|
||||
REM ----- WINNT, WIN2000 -----
|
||||
REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
|
||||
REM ----- WINXP, Vista, Windows 7 -----
|
||||
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- make and perl ---------------------
|
||||
REM ======================================================
|
||||
|
||||
REM --------------- ActiveState perl -------------------
|
||||
set PATH=C:\Perl\bin;%PATH%
|
||||
|
||||
REM --------------- mingw make ------------------------
|
||||
REM set PATH=C:\mingw-make\bin;%PATH%
|
||||
REM set PATH=C:\mingw-make82-3\bin;%PATH%
|
||||
|
||||
REM --------------- gnuwin32 make ----------------------
|
||||
set PATH=C:\gnuwin32\bin;%PATH%
|
||||
|
||||
REM ======================================================
|
||||
REM ---------------- cygwin tools ------------------------
|
||||
REM ======================================================
|
||||
REM (make & perl if above perl and make are REMs)
|
||||
REM Dont use cygwin GNU make and Perl!
|
||||
REM cygwin contains tk/tcl, vim, perl, and many unix tools
|
||||
REM need grep from here NOT from cvs directory
|
||||
REM set PATH=%PATH%;.;..
|
||||
REM set PATH=%PATH%;c:\cygwin\bin
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- Visual c++ -------------------------
|
||||
REM ======================================================
|
||||
|
||||
REM ------ Microsoft Visual Studio 2005 ------
|
||||
REM call "C:\Program files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86_amd64
|
||||
REM set PATH=%PATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
|
||||
REM set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\include
|
||||
REM REM set LIBPATH=%LIBPATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
|
||||
REM set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
|
||||
|
||||
REM ------ Microsoft Visual Studio 2008 ------
|
||||
REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
|
||||
REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
|
||||
REM set PATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\bin;%PATH%
|
||||
REM set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.0\include;%INCLUDE%
|
||||
REM set LIBPATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIBPATH%
|
||||
REM set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIB%
|
||||
|
||||
REM ----- Visual Studion 2010 -----
|
||||
REM -- windows-x64 ---
|
||||
REM call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
|
||||
REM -- win32-x86 ---
|
||||
call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- EPICS --------------------------------
|
||||
REM ======================================================
|
||||
REM set EPICS_HOST_ARCH=windows-x64
|
||||
set EPICS_HOST_ARCH=win32-x86
|
||||
set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
|
||||
set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
|
||||
|
||||
REM ======================================================
|
||||
REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
|
||||
REM ======================================================
|
||||
|
||||
REM ======================================================
|
||||
REM ----------------- remote CVS -------------------------
|
||||
REM ======================================================
|
||||
REM set CVS_RSH=c:/cygwin/bin/ssh.exe
|
||||
REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
|
||||
REM set HOME=c:/users/%USERNAME%
|
||||
REM set HOME=c:/users/jba
|
||||
|
||||
REM ======================================================
|
||||
REM ------------------- Bazaar ---------------------------
|
||||
REM ======================================================
|
||||
set PATH=%PATH%;C:\Program files\Bazaar
|
||||
|
||||
REM ======================================================
|
||||
REM ----------------- GNU make flags ---------------------
|
||||
REM ======================================================
|
||||
set MAKEFLAGS=-w
|
||||
|
||||
REM ======================================================
|
||||
REM -------------- vim (use cygwin vim ) -----------------
|
||||
REM ======================================================
|
||||
REM HOME needed by vim to write .viminfo file.
|
||||
REM VIM needed by vim to find _vimrc file.
|
||||
REM set VIM=c:\cygwin
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- Epics Channel Access -----------------
|
||||
REM Modify and uncomment the following lines
|
||||
REM to override the base/configure/CONFIG_ENV defaults
|
||||
REM ======================================================
|
||||
REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
|
||||
REM set EPICS_CA_AUTO_ADDR_LIST=YES
|
||||
|
||||
REM set EPICS_CA_CONN_TMO=30.0
|
||||
REM set EPICS_CA_BEACON_PERIOD=15.0
|
||||
REM set EPICS_CA_REPEATER_PORT=5065
|
||||
REM set EPICS_CA_SERVER_PORT=5064
|
||||
REM set EPICS_TS_MIN_WEST=420
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- JAVA ---------------------------------
|
||||
REM ======================================================
|
||||
REM Needed for java extensions
|
||||
REM set CLASSPATH=G:\epics\extensions\javalib
|
||||
REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
|
||||
REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
|
||||
|
||||
REM ======================================================
|
||||
REM --------------- Exceed -------------------------------
|
||||
REM Needed for X11 extensions
|
||||
REM ======================================================
|
||||
REM set EX_VER=7.10
|
||||
REM set EX_VER=12.00
|
||||
REM set EX_VER=14.00
|
||||
REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
|
||||
REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
|
||||
|
||||
@echo off
|
||||
rem *************************************************************************
|
||||
rem Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne
|
||||
rem National Laboratory.
|
||||
rem Copyright (c) 2002 The Regents of the University of California, as
|
||||
rem Operator of Los Alamos National Laboratory.
|
||||
rem EPICS BASE is distributed subject to a Software License Agreement found
|
||||
rem in file LICENSE that is included with this distribution.
|
||||
rem *************************************************************************
|
||||
rem
|
||||
rem Site-specific EPICS environment settings
|
||||
rem
|
||||
rem Sets EPICS_HOST_ARCH and the environment for Microsoft Visual Studio.
|
||||
rem Optionally, resets PATH, adds Strawberry Perl to PATH, and adds the
|
||||
rem EPICS Base install host architecture bin directory to PATH.
|
||||
rem
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Site serviceable parts (These definitions may be modified)
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
rem The values of the definitions in this section must not contain
|
||||
rem double-quotes.
|
||||
rem
|
||||
rem * Right: set _foo=C:\foo
|
||||
rem * Right: set "_foo=C:\foo"
|
||||
rem * Wrong: set _foo="C:\foo"
|
||||
|
||||
rem Automatically set up the environment when possible ("yes" or "no").
|
||||
rem If set to yes, as much of the environment will be set up as possible.
|
||||
rem If set to no, just the minimum environment will be set up. More
|
||||
rem specific _auto_* definitions take precedence over this definition.
|
||||
set _auto=no
|
||||
|
||||
rem Automatically reset PATH ("yes" or "no"). If set to yes, PATH will
|
||||
rem be reset to the value of _path_new. If set to no, PATH will not be
|
||||
rem reset.
|
||||
set _auto_path_reset=%_auto%
|
||||
|
||||
rem Automatically append to PATH ("yes" or "no"). If set to yes, the
|
||||
rem EPICS Base install host architecture bin directory will be added to
|
||||
rem PATH if possible. If set to no, the bin directory will not be added
|
||||
rem to PATH.
|
||||
set _auto_path_append=%_auto%
|
||||
|
||||
rem The new value for PATH. If _auto_path_reset is yes, PATH will be set
|
||||
rem to it.
|
||||
set _path_new=C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem
|
||||
|
||||
rem The location of Strawberry Perl (pathname). If empty, Strawberry Perl
|
||||
rem is assumed to already be in PATH and will not be added. If nonempty,
|
||||
rem Strawberry Perl will be added to PATH.
|
||||
set _strawberry_perl_home=C:\Strawberry
|
||||
|
||||
rem The location of Microsoft Visual Studio (pathname).
|
||||
set _visual_studio_home=C:\Program Files (x86)\Microsoft Visual Studio 14.0
|
||||
|
||||
rem The EPICS host architecture specification for EPICS_HOST_ARCH
|
||||
rem (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE).
|
||||
set _epics_host_arch=win32-x86
|
||||
|
||||
rem The install location of EPICS Base (pathname). If nonempty and
|
||||
rem _auto_path_append is yes, it will be used to add the host architecture
|
||||
rem bin directory to PATH.
|
||||
set _epics_base=
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Internal parts (There is typically no need to modify these)
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
rem Reset PATH
|
||||
if "%_auto_path_reset%" == "yes" (
|
||||
set "PATH=%_path_new%"
|
||||
)
|
||||
|
||||
rem Add Strawberry Perl to PATH
|
||||
if "%_strawberry_perl_home%" == "" goto after_add_strawberry_perl
|
||||
rem Can't do this inside parentheses because PATH would be read only once
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\c\bin"
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\perl\site\bin"
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\perl\bin"
|
||||
:after_add_strawberry_perl
|
||||
|
||||
rem Set the environment for Microsoft Visual Studio
|
||||
call "%_visual_studio_home%\VC\vcvarsall.bat" x86
|
||||
|
||||
rem Set the EPICS host architecture specification
|
||||
set "EPICS_HOST_ARCH=%_epics_host_arch%"
|
||||
|
||||
rem Add the EPICS Base host architecture bin directory to PATH
|
||||
if "%_auto_path_append%" == "yes" (
|
||||
if not "%_epics_base%" == "" (
|
||||
set "PATH=%PATH%;%_epics_base%\bin\%_epics_host_arch%"
|
||||
)
|
||||
)
|
||||
|
||||
rem Don't leak variables into the environment
|
||||
set _auto=
|
||||
set _auto_path_reset=
|
||||
set _auto_path_append=
|
||||
set _path_new=
|
||||
set _strawberry_perl_home=
|
||||
set _visual_studio_home=
|
||||
set _epics_host_arch=
|
||||
set _epics_base=
|
||||
|
||||
105
startup/windows.bat
Normal file
105
startup/windows.bat
Normal file
@@ -0,0 +1,105 @@
|
||||
@echo off
|
||||
rem *************************************************************************
|
||||
rem Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne
|
||||
rem National Laboratory.
|
||||
rem Copyright (c) 2002 The Regents of the University of California, as
|
||||
rem Operator of Los Alamos National Laboratory.
|
||||
rem EPICS BASE is distributed subject to a Software License Agreement found
|
||||
rem in file LICENSE that is included with this distribution.
|
||||
rem *************************************************************************
|
||||
rem
|
||||
rem Site-specific EPICS environment settings
|
||||
rem
|
||||
rem Sets EPICS_HOST_ARCH and the environment for Microsoft Visual Studio.
|
||||
rem Optionally, resets PATH, adds Strawberry Perl to PATH, and adds the
|
||||
rem EPICS Base install host architecture bin directory to PATH.
|
||||
rem
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Site serviceable parts (These definitions may be modified)
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
rem The values of the definitions in this section must not contain
|
||||
rem double-quotes.
|
||||
rem
|
||||
rem * Right: set _foo=C:\foo
|
||||
rem * Right: set "_foo=C:\foo"
|
||||
rem * Wrong: set _foo="C:\foo"
|
||||
|
||||
rem Automatically set up the environment when possible ("yes" or "no").
|
||||
rem If set to yes, as much of the environment will be set up as possible.
|
||||
rem If set to no, just the minimum environment will be set up. More
|
||||
rem specific _auto_* definitions take precedence over this definition.
|
||||
set _auto=no
|
||||
|
||||
rem Automatically reset PATH ("yes" or "no"). If set to yes, PATH will
|
||||
rem be reset to the value of _path_new. If set to no, PATH will not be
|
||||
rem reset.
|
||||
set _auto_path_reset=%_auto%
|
||||
|
||||
rem Automatically append to PATH ("yes" or "no"). If set to yes, the
|
||||
rem EPICS Base install host architecture bin directory will be added to
|
||||
rem PATH if possible. If set to no, the bin directory will not be added
|
||||
rem to PATH.
|
||||
set _auto_path_append=%_auto%
|
||||
|
||||
rem The new value for PATH. If _auto_path_reset is yes, PATH will be set
|
||||
rem to it.
|
||||
set _path_new=C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem
|
||||
|
||||
rem The location of Strawberry Perl (pathname). If empty, Strawberry Perl
|
||||
rem is assumed to already be in PATH and will not be added. If nonempty,
|
||||
rem Strawberry Perl will be added to PATH.
|
||||
set _strawberry_perl_home=C:\Strawberry
|
||||
|
||||
rem The location of Microsoft Visual Studio (pathname).
|
||||
set _visual_studio_home=C:\Program Files (x86)\Microsoft Visual Studio 14.0
|
||||
|
||||
rem The EPICS host architecture specification for EPICS_HOST_ARCH
|
||||
rem (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE).
|
||||
set _epics_host_arch=windows-x64
|
||||
|
||||
rem The install location of EPICS Base (pathname). If nonempty and
|
||||
rem _auto_path_append is yes, it will be used to add the host architecture
|
||||
rem bin directory to PATH.
|
||||
set _epics_base=
|
||||
|
||||
rem ----------------------------------------------------------------------
|
||||
rem Internal parts (There is typically no need to modify these)
|
||||
rem ----------------------------------------------------------------------
|
||||
|
||||
rem Reset PATH
|
||||
if "%_auto_path_reset%" == "yes" (
|
||||
set "PATH=%_path_new%"
|
||||
)
|
||||
|
||||
rem Add Strawberry Perl to PATH
|
||||
if "%_strawberry_perl_home%" == "" goto after_add_strawberry_perl
|
||||
rem Can't do this inside parentheses because PATH would be read only once
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\c\bin"
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\perl\site\bin"
|
||||
set "PATH=%PATH%;%_strawberry_perl_home%\perl\bin"
|
||||
:after_add_strawberry_perl
|
||||
|
||||
rem Set the environment for Microsoft Visual Studio
|
||||
call "%_visual_studio_home%\VC\vcvarsall.bat" x64
|
||||
|
||||
rem Set the EPICS host architecture specification
|
||||
set "EPICS_HOST_ARCH=%_epics_host_arch%"
|
||||
|
||||
rem Add the EPICS Base host architecture bin directory to PATH
|
||||
if "%_auto_path_append%" == "yes" (
|
||||
if not "%_epics_base%" == "" (
|
||||
set "PATH=%PATH%;%_epics_base%\bin\%_epics_host_arch%"
|
||||
)
|
||||
)
|
||||
|
||||
rem Don't leak variables into the environment
|
||||
set _auto=
|
||||
set _auto_path_reset=
|
||||
set _auto_path_append=
|
||||
set _path_new=
|
||||
set _strawberry_perl_home=
|
||||
set _visual_studio_home=
|
||||
set _epics_host_arch=
|
||||
set _epics_base=
|
||||
Reference in New Issue
Block a user