Merge up changes from 3.15 branch into 3.16
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)
|
||||
|
@ -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.
|
||||
|
@ -164,12 +164,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>
|
||||
|
@ -176,12 +176,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>
|
||||
|
@ -700,11 +700,45 @@ the stdout stream, making it hard to parse.</p>
|
||||
callback.h header and removed the need for dbScan.c to reach into the internals
|
||||
of its CALLBACK objects.</p>
|
||||
|
||||
|
||||
<h2 align="center">Changes from the 3.15 branch since 3.15.5</h2>
|
||||
<h2 align="center">Changes from the 3.15 branch since 3.15.6</h2>
|
||||
|
||||
<!-- Insert inherited items immediately below here ... -->
|
||||
|
||||
|
||||
<h2 align="center">Changes made between 3.15.5 and 3.15.6</h2>
|
||||
|
||||
<h3>Unsetting environment variables</h3>
|
||||
|
||||
<p>The new command <code>epicsEnvUnset <i>varname</i></code> can be used to
|
||||
unset an environment variable.</p>
|
||||
|
||||
<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
|
||||
@ -736,15 +770,84 @@ of having go modify or replace the original. A new .gitignore pattern
|
||||
tells git to ignore all configure/*.local files.</p>
|
||||
|
||||
|
||||
<h2 align="center">Changes from the 3.14 branch since 3.15.5</h2>
|
||||
<h2 align="center">Changes from the 3.14 branch between 3.15.5 and 3.15.6</h2>
|
||||
|
||||
<!-- 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">
|
||||
|
@ -131,7 +131,7 @@ the final release version.</p>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>Release Manager</td>
|
||||
<td>Tag the module in Git using these tag conventions:
|
||||
<td>Tag the module in Git, using these tag conventions:
|
||||
<ul>
|
||||
<li>
|
||||
<tt>R3.16.1-pre<i>n</i></tt>
|
||||
@ -141,7 +141,7 @@ the final release version.</p>
|
||||
<tt>R3.16.1-rc<i>n</i></tt>
|
||||
— release candidate tag
|
||||
</li>
|
||||
</ul>
|
||||
</ul>
|
||||
<blockquote><tt>
|
||||
cd base-3.16<br />
|
||||
git tag -m 'ANJ: Tagged for 3.16.1-rc1' R3.16.1-rc1
|
||||
|
@ -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) {
|
||||
|
@ -842,6 +842,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);
|
||||
@ -872,10 +873,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:
|
||||
@ -893,7 +897,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) ||
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
#include "alarm.h"
|
||||
#include "dbDefs.h"
|
||||
#include "alarm.h"
|
||||
#include "epicsMath.h"
|
||||
#include "epicsPrint.h"
|
||||
#include "epicsStdlib.h"
|
||||
@ -178,6 +179,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);
|
||||
|
1
src/libCom/env/envDefs.h
vendored
1
src/libCom/env/envDefs.h
vendored
@ -98,6 +98,7 @@ epicsShareFunc long epicsShareAPI
|
||||
envGetBoolConfigParam(const ENV_PARAM *pParam, int *pBool);
|
||||
epicsShareFunc long epicsShareAPI epicsPrtEnvParams(void);
|
||||
epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *value);
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name);
|
||||
epicsShareFunc void epicsShareAPI epicsEnvShow (const char *name);
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -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;
|
||||
|
@ -110,6 +110,21 @@ static void epicsEnvSetCallFunc(const iocshArgBuf *args)
|
||||
epicsEnvSet (name, value);
|
||||
}
|
||||
|
||||
/* epicsEnvUnset */
|
||||
static const iocshArg epicsEnvUnsetArg0 = { "name",iocshArgString};
|
||||
static const iocshArg * const epicsEnvUnsetArgs[1] = {&epicsEnvUnsetArg0};
|
||||
static const iocshFuncDef epicsEnvUnsetFuncDef = {"epicsEnvUnset",1,epicsEnvUnsetArgs};
|
||||
static void epicsEnvUnsetCallFunc(const iocshArgBuf *args)
|
||||
{
|
||||
char *name = args[0].sval;
|
||||
|
||||
if (name == NULL) {
|
||||
fprintf(stderr, "Missing environment variable name argument.\n");
|
||||
return;
|
||||
}
|
||||
epicsEnvUnset (name);
|
||||
}
|
||||
|
||||
/* epicsParamShow */
|
||||
static const iocshFuncDef epicsParamShowFuncDef = {"epicsParamShow",0,NULL};
|
||||
static void epicsParamShowCallFunc(const iocshArgBuf *args)
|
||||
@ -367,6 +382,7 @@ void epicsShareAPI libComRegister(void)
|
||||
iocshRegister(&pwdFuncDef, pwdCallFunc);
|
||||
|
||||
iocshRegister(&epicsEnvSetFuncDef, epicsEnvSetCallFunc);
|
||||
iocshRegister(&epicsEnvUnsetFuncDef, epicsEnvUnsetCallFunc);
|
||||
iocshRegister(&epicsParamShowFuncDef, epicsParamShowCallFunc);
|
||||
iocshRegister(&epicsPrtEnvParamsFuncDef, epicsPrtEnvParamsCallFunc);
|
||||
iocshRegister(&epicsEnvShowFuncDef, epicsEnvShowCallFunc);
|
||||
|
@ -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,19 @@ epicsShareFunc int epicsShareAPI epicsStdoutPutchar(int c);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Also pull functions into the std namespace (see lp:1786927) */
|
||||
#if !defined(__GNUC__) || (__GNUC__ > 2)
|
||||
namespace std {
|
||||
using ::epicsGetStdin;
|
||||
using ::epicsGetStdout;
|
||||
using ::epicsGetStderr;
|
||||
using ::epicsStdoutPrintf;
|
||||
using ::epicsStdoutPuts;
|
||||
using ::epicsStdoutPutchar;
|
||||
}
|
||||
#endif /* __GNUC__ > 2 */
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* epicsStdioh */
|
||||
|
@ -39,6 +39,16 @@ epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *val
|
||||
setenv(name, value, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
unsetenv(name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
|
89
src/libCom/osi/os/WIN32/osdEnv.c
Normal file
89
src/libCom/osi/os/WIN32/osdEnv.c
Normal file
@ -0,0 +1,89 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Saskatchewan
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* osdEnv.c */
|
||||
/*
|
||||
* Author: Eric Norum
|
||||
* Date: May 7, 2001
|
||||
*
|
||||
* Routines to modify/display environment variables and EPICS parameters
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsStdio.h"
|
||||
#include "errlog.h"
|
||||
#include "cantProceed.h"
|
||||
#include "envDefs.h"
|
||||
#include "osiUnistd.h"
|
||||
#include "epicsFindSymbol.h"
|
||||
#include "iocsh.h"
|
||||
|
||||
/*
|
||||
* Set the value of an environment variable
|
||||
* Leaks memory, but the assumption is that this routine won't be
|
||||
* called often enough for the leak to be a problem.
|
||||
*/
|
||||
epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *value)
|
||||
{
|
||||
char *cp;
|
||||
|
||||
iocshEnvClear(name);
|
||||
|
||||
cp = mallocMustSucceed (strlen (name) + strlen (value) + 2, "epicsEnvSet");
|
||||
strcpy (cp, name);
|
||||
strcat (cp, "=");
|
||||
strcat (cp, value);
|
||||
if (putenv (cp) < 0) {
|
||||
errPrintf(
|
||||
-1L,
|
||||
__FILE__,
|
||||
__LINE__,
|
||||
"Failed to set environment parameter \"%s\" to \"%s\": %s\n",
|
||||
name,
|
||||
value,
|
||||
strerror (errno));
|
||||
free (cp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
* Using putenv with a an existing name plus "=" (without value) deletes
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
if (getenv(name) != NULL)
|
||||
epicsEnvSet((char*)name, "");
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
epicsShareFunc void epicsShareAPI epicsEnvShow (const char *name)
|
||||
{
|
||||
if (name == NULL) {
|
||||
extern char **environ;
|
||||
char **sp;
|
||||
|
||||
for (sp = environ ; (sp != NULL) && (*sp != NULL) ; sp++)
|
||||
printf ("%s\n", *sp);
|
||||
}
|
||||
else {
|
||||
const char *cp = getenv (name);
|
||||
if (cp == NULL)
|
||||
printf ("%s is not an environment variable.\n", name);
|
||||
else
|
||||
printf ("%s=%s\n", name, cp);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -55,6 +55,18 @@ epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *val
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
* Using putenv with a an existing name but without "=..." deletes
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
if (getenv(name) != NULL)
|
||||
putenv((char*)name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
|
@ -36,6 +36,16 @@ epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *val
|
||||
setenv(name, value, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
unsetenv(name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
|
62
src/libCom/osi/os/solaris/osdEnv.c
Normal file
62
src/libCom/osi/os/solaris/osdEnv.c
Normal file
@ -0,0 +1,62 @@
|
||||
/*************************************************************************\
|
||||
* Copyright (c) 2002 The University of Saskatchewan
|
||||
* EPICS BASE is distributed subject to a Software License Agreement found
|
||||
* in file LICENSE that is included with this distribution.
|
||||
\*************************************************************************/
|
||||
/* osdEnv.c */
|
||||
/*
|
||||
* Author: Eric Norum
|
||||
* Date: May 7, 2001
|
||||
*
|
||||
* Routines to modify/display environment variables and EPICS parameters
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#define epicsExportSharedSymbols
|
||||
#include "epicsStdio.h"
|
||||
#include "envDefs.h"
|
||||
#include "osiUnistd.h"
|
||||
#include "iocsh.h"
|
||||
|
||||
/*
|
||||
* Set the value of an environment variable
|
||||
*/
|
||||
epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *value)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
setenv(name, value, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
iocshEnvClear(name);
|
||||
unsetenv(name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
epicsShareFunc void epicsShareAPI epicsEnvShow (const char *name)
|
||||
{
|
||||
if (name == NULL) {
|
||||
extern char **environ;
|
||||
char **sp;
|
||||
|
||||
for (sp = environ ; (sp != NULL) && (*sp != NULL) ; sp++)
|
||||
printf ("%s\n", *sp);
|
||||
}
|
||||
else {
|
||||
const char *cp = getenv (name);
|
||||
if (cp == NULL)
|
||||
printf ("%s is not an environment variable.\n", name);
|
||||
else
|
||||
printf ("%s=%s\n", name, cp);
|
||||
}
|
||||
}
|
@ -51,6 +51,25 @@ epicsShareFunc void epicsShareAPI epicsEnvSet (const char *name, const char *val
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Unset an environment variable
|
||||
* Basically destroy the name of that variable because vxWorks does not
|
||||
* support to really unset an environment variable.
|
||||
*/
|
||||
|
||||
epicsShareFunc void epicsShareAPI epicsEnvUnset (const char *name)
|
||||
{
|
||||
char* var;
|
||||
|
||||
if (!name) return;
|
||||
iocshEnvClear(name);
|
||||
var = getenv(name);
|
||||
if (!var) return;
|
||||
var -= strlen(name);
|
||||
var --;
|
||||
*var = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Show the value of the specified, or all, environment variables
|
||||
*/
|
||||
|
@ -40,17 +40,19 @@ static struct {
|
||||
static epicsThreadOnceId onceId = EPICS_THREAD_ONCE_INIT;
|
||||
|
||||
|
||||
#if defined(CLOCK_REALTIME) && !defined(_WIN32)
|
||||
/* 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.
|
||||
#ifdef CLOCK_REALTIME
|
||||
/* 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);
|
||||
|
@ -62,6 +62,11 @@ epicsEnvTest_SRCS += epicsEnvTest.c
|
||||
testHarness_SRCS += epicsEnvTest.c
|
||||
TESTS += epicsEnvTest
|
||||
|
||||
TESTPROD_HOST += epicsEnvUnsetTest
|
||||
epicsEnvUnsetTest_SRCS += epicsEnvUnsetTest.c
|
||||
testHarness_SRCS += epicsEnvUnsetTest.c
|
||||
TESTS += epicsEnvUnsetTest
|
||||
|
||||
TESTPROD_HOST += epicsErrlogTest
|
||||
epicsErrlogTest_SRCS += epicsErrlogTest.c
|
||||
testHarness_SRCS += epicsErrlogTest.c
|
||||
|
37
src/libCom/test/epicsEnvUnsetTest.c
Normal file
37
src/libCom/test/epicsEnvUnsetTest.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include "macLib.h"
|
||||
#include "envDefs.h"
|
||||
#include "errlog.h"
|
||||
#include "epicsUnitTest.h"
|
||||
#include "testMain.h"
|
||||
|
||||
static void check(const char* variable, const char* expected)
|
||||
{
|
||||
const char* value;
|
||||
|
||||
value = getenv(variable);
|
||||
if (!testOk((!expected && !value) || (expected && value && strcmp(expected, value) == 0),
|
||||
"%s = \"%s\"", variable, value))
|
||||
{
|
||||
testDiag("should have been \"%s\"", expected);
|
||||
}
|
||||
}
|
||||
|
||||
MAIN(epicsEnvUnsetTest)
|
||||
{
|
||||
eltc(0);
|
||||
testPlan(3);
|
||||
|
||||
check("TEST_VAR_A",NULL);
|
||||
epicsEnvSet("TEST_VAR_A","test value");
|
||||
check("TEST_VAR_A","test value");
|
||||
epicsEnvUnset("TEST_VAR_A");
|
||||
check("TEST_VAR_A",NULL);
|
||||
|
||||
testDone();
|
||||
return 0;
|
||||
}
|
@ -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();
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "dbDefs.h"
|
||||
#include "dbAccess.h"
|
||||
#include "dbConstLink.h"
|
||||
#include "dbEvent.h"
|
||||
#include "recGbl.h"
|
||||
#include "devSup.h"
|
||||
#include "cantProceed.h"
|
||||
@ -96,11 +97,15 @@ static long readLocked(struct link *pinp, void *dummy)
|
||||
|
||||
static long read_aai(aaiRecord *prec)
|
||||
{
|
||||
epicsUInt32 nord = prec->nord;
|
||||
struct link *pinp = prec->simm == menuYesNoYES ? &prec->siol : &prec->inp;
|
||||
long status = dbLinkDoLocked(pinp, readLocked, NULL);
|
||||
|
||||
if (status == S_db_noLSET)
|
||||
status = readLocked(pinp, NULL);
|
||||
|
||||
if (!status && nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -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"
|
||||
@ -101,6 +102,7 @@ static long read_sa(subArrayRecord *prec)
|
||||
{
|
||||
long status;
|
||||
struct sart rt;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
rt.nRequest = prec->indx + prec->nelm;
|
||||
if (rt.nRequest > prec->malm)
|
||||
@ -123,8 +125,12 @@ static long read_sa(subArrayRecord *prec)
|
||||
status = readLocked(&prec->inp, &rt);
|
||||
}
|
||||
|
||||
if (!status && rt.nRequest > 0)
|
||||
if (!status && rt.nRequest > 0) {
|
||||
subset(prec, rt.nRequest);
|
||||
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
}
|
||||
|
||||
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.
|
||||
\*************************************************************************/
|
||||
|
||||
/*
|
||||
@ -81,6 +81,7 @@ static long read_wf(waveformRecord *prec)
|
||||
{
|
||||
long status;
|
||||
struct wfrt rt;
|
||||
epicsUInt32 nord = prec->nord;
|
||||
|
||||
rt.nRequest = prec->nelm;
|
||||
rt.ptime = (dbLinkIsConstant(&prec->tsel) &&
|
||||
@ -93,6 +94,8 @@ static long read_wf(waveformRecord *prec)
|
||||
if (!status && rt.nRequest > 0) {
|
||||
prec->nord = rt.nRequest;
|
||||
prec->udf = FALSE;
|
||||
if (nord != prec->nord)
|
||||
db_post_events(prec, &prec->nord, DBE_VALUE | DBE_LOG);
|
||||
}
|
||||
|
||||
return status;
|
||||
|
@ -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.
|
||||
*
|
||||
@ -140,9 +140,9 @@ static long init_record(struct dbCommon *pcommon, int pass)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
recGblInitConstantLink(&prec->siml,DBF_USHORT,&prec->simm);
|
||||
|
||||
|
||||
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");
|
||||
@ -203,10 +203,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;
|
||||
}
|
||||
|
||||
@ -219,7 +223,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);
|
||||
@ -313,35 +317,28 @@ 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;
|
||||
}
|
||||
/* NB: Device support must post updates to NORD */
|
||||
|
||||
if (prec->pact == TRUE)
|
||||
goto do_read;
|
||||
|
||||
status = dbGetLink(&prec->siml, DBR_ENUM, &prec->simm, 0, 0);
|
||||
if (status)
|
||||
return status;
|
||||
|
||||
if (prec->simm == menuYesNoNO){
|
||||
return pdset->read_aai(prec);
|
||||
}
|
||||
|
||||
if (prec->simm == menuYesNoYES){
|
||||
/* Device suport is responsible for buffer
|
||||
which might be read-only so we may not be
|
||||
allowed to call dbGetLink on it.
|
||||
Maybe also device support has an advanced
|
||||
simulation mode.
|
||||
Thus call device now.
|
||||
*/
|
||||
if (prec->simm == menuYesNoYES) {
|
||||
recGblSetSevr(prec, SIMM_ALARM, prec->sims);
|
||||
return pdset->read_aai(prec);
|
||||
goto do_read;
|
||||
}
|
||||
|
||||
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
|
||||
return -1;
|
||||
}
|
||||
if (prec->simm != menuYesNoNO) {
|
||||
recGblSetSevr(prec, SOFT_ALARM, INVALID_ALARM);
|
||||
return -1;
|
||||
}
|
||||
|
||||
do_read:
|
||||
return pdset->read_aai(prec);
|
||||
}
|
||||
|
@ -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.
|
||||
*
|
||||
@ -203,10 +203,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;
|
||||
}
|
||||
|
||||
@ -219,7 +223,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);
|
||||
@ -342,4 +346,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>
|
||||
@ -439,12 +439,16 @@ 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;
|
||||
|
||||
if (prec->balg == bufferingALG_FIFO)
|
||||
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:
|
||||
* -----------------
|
||||
*/
|
||||
@ -126,7 +126,7 @@ static long init_record(struct dbCommon *pcommon, int pass)
|
||||
}
|
||||
|
||||
if (pdset->init_record)
|
||||
return (*pdset->init_record)(prec);
|
||||
return pdset->init_record(prec);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -194,11 +194,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;
|
||||
}
|
||||
|
||||
@ -211,7 +214,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);
|
||||
@ -321,4 +324,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 */
|
||||
@ -183,12 +183,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;
|
||||
}
|
||||
|
||||
@ -201,7 +203,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);
|
||||
@ -304,11 +306,11 @@ 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);
|
||||
@ -318,22 +320,23 @@ static long readValue(waveformRecord *prec)
|
||||
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 */
|
||||
if (!dbLinkIsConstant(&prec->siol)) {
|
||||
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);
|
||||
@ -343,4 +346,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";
|
||||
}
|
||||
}
|
@ -34,6 +34,9 @@ PERL_MODULES += DBD/Record.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
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/local/bin/perl
|
||||
#!/usr/bin/perl
|
||||
=head1 NAME
|
||||
|
||||
tap-to-junit-xml - convert perl-style TAP test output to JUnit-style XML
|
||||
|
@ -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