Merge ~epics-contrib/epics-base/+git/contrib:tidy-startup into ~epics-core/epics-base/+git/epics-base:3.14

Proposed by Andrew Johnson
Status: Merged
Merged at revision: 4b594761701e23bb6fc82a7e8ee7deda54416d27
Proposed branch: ~epics-contrib/epics-base/+git/contrib:tidy-startup
Merge into: ~epics-core/epics-base/+git/epics-base:3.14
Diff against target: 1342 lines (+539/-368) (has conflicts)
14 files modified
ci/travis-build.sh (+1/-1)
configure/CONFIG (+6/-2)
dev/null (+0/-122)
documentation/README.1st (+5/-8)
documentation/README.darwin.html (+1/-1)
documentation/README.html (+5/-8)
documentation/RELEASE_NOTES.html (+41/-0)
src/tools/EpicsHostArch.pl (+55/-0)
src/tools/Makefile (+3/-0)
startup/EpicsHostArch (+16/-79)
startup/unix.csh (+96/-0)
startup/unix.sh (+100/-0)
startup/win32.bat (+105/-147)
startup/windows.bat (+105/-0)
Conflict in documentation/RELEASE_NOTES.html
Reviewer Review Type Date Requested Status
Martin Konrad (community) Needs Fixing
EPICS Core Developers Pending
Review via email: mp+352919@code.launchpad.net

Description of the change

A tidy-up of the Base startup directory, which should be suitable for all branches.

The EpicsHostArch.pl script has been rewritten, and moved to src/tools from where it gets installed into lib/perl (ci/travis-build.sh has been adjusted to find it there).
The original EpicsHostArch shell-script has been replaced with one that finds and runs the Perl version.

To post a comment you must log in.
Revision history for this message
Martin Konrad (info-martin-konrad) :
review: Needs Fixing
Revision history for this message
Andrew Johnson (anj) wrote :

@Martin: Thanks for reviewing this.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/ci/travis-build.sh b/ci/travis-build.sh
2index a3ca3fd..2ee5d65 100644
3--- a/ci/travis-build.sh
4+++ b/ci/travis-build.sh
5@@ -17,7 +17,7 @@ ticker() {
6
7 CACHEKEY=1
8
9-EPICS_HOST_ARCH=`sh startup/EpicsHostArch`
10+EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl`
11
12 [ -e configure/os/CONFIG_SITE.Common.linux-x86 ] || die "Wrong location: $PWD"
13
14diff --git a/configure/CONFIG b/configure/CONFIG
15index 6fe6b9b..f5ba0b7 100644
16--- a/configure/CONFIG
17+++ b/configure/CONFIG
18@@ -20,11 +20,15 @@ else
19 endif
20
21 # Provide a default if the user hasn't set EPICS_HOST_ARCH
22+#
23 ifeq ($(origin EPICS_HOST_ARCH), undefined)
24+ # Bootstrapping ...
25+ EHA := $(firstword $(wildcard $(EPICS_BASE)/lib/perl/EpicsHostArch.pl \
26+ $(TOP)/src/tools/EpicsHostArch.pl))
27 # NB: We use a simply expanded variable here for performance:
28- EPICS_HOST_ARCH := $(shell $(CONFIG)/../startup/EpicsHostArch.pl)
29+ export EPICS_HOST_ARCH := $(shell perl $(EHA))
30+ undefine EHA
31 endif
32-#
33
34 -include $(CONFIG)/os/CONFIG_COMPAT
35
36diff --git a/documentation/README.1st b/documentation/README.1st
37index 462ac46..7a6e770 100644
38--- a/documentation/README.1st
39+++ b/documentation/README.1st
40@@ -221,14 +221,11 @@
41
42 base/startup directory - contains scripts to set environment and path
43
44- EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable
45- EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable
46- Site.profile bourne shell script to set path and env variables
47- Site.cshrc c shell script to set path and env variables
48- borland.bat WIN32 bat file to set borland path and env variables
49- cygwin.bat WIN32 bat file to set cygwin path and env variables
50- win32.bat WIN32 bat file to set path and env variables
51- win32-debug.bat WIN32 debug bat file to set debug path and env variables
52+ EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
53+ unix.csh C shell script to set path and env variables
54+ unix.sh Bourne shell script to set path and env variables
55+ win32.bat Bat file example to configure win32-x86 target
56+ windows.bat Bat file example to configure windows-x64 target
57
58 base/configure directory - contains build definitions and rules
59
60diff --git a/documentation/README.darwin.html b/documentation/README.darwin.html
61index cbc2901..dd11ce8 100644
62--- a/documentation/README.darwin.html
63+++ b/documentation/README.darwin.html
64@@ -21,7 +21,7 @@ of my Bash login script (~/.bash_login):
65 #
66 EPICS_BASE="${HOME}/src/EPICS/base"
67 EPICS_EXTENSIONS="${HOME}/src/EPICS/extensions"
68-<strong>.</strong> "${EPICS_BASE}"/startup/Site.profile
69+<strong>.</strong> "${EPICS_BASE}"/startup/unix.sh
70 </pre>
71 </li>
72 <li>
73diff --git a/documentation/README.html b/documentation/README.html
74index a8a5723..98ec1b1 100644
75--- a/documentation/README.html
76+++ b/documentation/README.html
77@@ -230,14 +230,11 @@
78
79 <H4>base/startup directory - contains scripts to set environment and path</H4>
80 <PRE>
81- EpicsHostArch C shell script to set EPICS_HOST_ARCH env variable
82- EpicsHostArch.pl Perl script to set EPICS_HOST_ARCH env variable
83- Site.profile bourne shell script to set path and env variables
84- Site.cshrc c shell script to set path and env variables
85- borland.bat WIN32 bat file to set borland path and env variables
86- cygwin.bat WIN32 bat file to set cygwin path and env variables
87- win32.bat WIN32 bat file to set path and env variables
88- win32-debug.bat WIN32 debug bat file to set debug path and env variables
89+ EpicsHostArch Shell script to set EPICS_HOST_ARCH env variable
90+ unix.csh C shell script to set path and env variables
91+ unix.sh Bourne shell script to set path and env variables
92+ win32.bat Bat file example to configure win32-x86 target
93+ windows.bat Bat file example to configure windows-x64 target
94 </PRE>
95
96 <H4>base/configure directory - contains build definitions and rules</H4>
97diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html
98index bb7dd93..28c2e74 100644
99--- a/documentation/RELEASE_NOTES.html
100+++ b/documentation/RELEASE_NOTES.html
101@@ -16,6 +16,7 @@ Base-3.15 series or to EPICS 7.</p>
102
103 <!-- Insert new items immediately below here ... -->
104
105+<<<<<<< documentation/RELEASE_NOTES.html
106 <h3>Recent Apple XCode Build Issues</h3>
107
108 <p>The latest version of XCode will not compile calls to <tt>system()</tt> or
109@@ -31,6 +32,46 @@ for a field like HSV to get set to a value that is not a legal alarm severity,
110 but the core IOC code should never copy such a value into a record's SEVR or
111 ACKS fields. With this fix the record's alarm severity will be limited to
112 INVALID_ALARM.</p>
113+=======
114+<h3>Cleanup of startup directory</h3>
115+
116+<p>The files in the startup directory have not been maintained in recent years
117+and have grown crufty (technical term). This release includes the following
118+updates to these files:</p>
119+
120+<ul>
121+
122+<li>The Perl <tt>EpicsHostArch.pl</tt> script has been rewritten, and support
123+for a few previously missing host architectures has been added to it.</li>
124+
125+<li>The <tt>EpicsHostArch.pl</tt> script has also been moved into the standard
126+<tt>src/tools</tt> directory, from where it will be installed into
127+<tt>lib/perl</tt>. In this new location it is no longer executable, so it must
128+be run by the <tt>perl</tt> executable.</li>
129+
130+<li>The build system has been adjusted to look for <tt>EpicsHostArch.pl</tt> in
131+both places if the <tt>EPICS_HOST_ARCH</tt> environment variable has not been
132+set at build-time.</li>
133+
134+<li>Sites that used the original Perl script to set <tt>EPICS_HOST_ARCH</tt> as
135+part of their standard environment will need to adjust their scripts when they
136+upgrade to this release.</li>
137+
138+<li>The <tt>EpicsHostArch</tt> shell script has been replaced with a wrapper
139+routine that calls the Perl <tt>EpicsHostArch.pl</tt> script. Sites that rely on
140+this script to set <tt>EPICS_HOST_ARCH</tt> should consider switching to the
141+Perl script instead.</li>
142+
143+<li>The <tt>Site.cshrc</tt> and <tt>Site.profile</tt> files have been renamed to
144+<tt>unix.csh</tt> and <tt>unix.sh</tt>, respectively.</li>
145+
146+<li>The existing <tt>win32.bat</tt> file has been cleaned up and a new
147+<tt>windows.bat</tt> file added for 64-bit targets. The contents of these files
148+should be seen as examples, don't uncomment or install parts for software that
149+you don't explicitly know that you need.</li>
150+
151+</ul>
152+>>>>>>> documentation/RELEASE_NOTES.html
153
154 <h3>Fixes for Launchpad bugs</h3>
155
156diff --git a/src/tools/EpicsHostArch.pl b/src/tools/EpicsHostArch.pl
157new file mode 100644
158index 0000000..e8e49bc
159--- /dev/null
160+++ b/src/tools/EpicsHostArch.pl
161@@ -0,0 +1,55 @@
162+#!/usr/bin/env perl
163+#*************************************************************************
164+# Copyright (c) 2018 UChicago Argonne LLC, as Operator of Argonne
165+# National Laboratory.
166+# EPICS BASE is distributed subject to a Software License Agreement found
167+# in file LICENSE that is included with this distribution.
168+#*************************************************************************
169+
170+# Returns an architecture name for EPICS_HOST_ARCH that should be
171+# appropriate for the CPU that this version of Perl was built for.
172+# Any arguments to the program will be appended with separator '-'
173+# to allow flags like -gnu -debug and/or -static to be added.
174+
175+# Before Base has been built, use a command like this:
176+# bash$ export EPICS_HOST_ARCH=`perl src/tools/EpicsHostArch.pl`
177+#
178+# If Base is already built, use
179+# tcsh% setenv EPICS_HOST_ARCH `perl base/lib/perl/EpicsHostArch.pl`
180+
181+# If your architecture is not recognized by this script, please send
182+# the output from running 'perl --version' to the EPICS tech-talk
183+# mailing list to have it added.
184+
185+use strict;
186+
187+use Config;
188+use POSIX;
189+
190+print join('-', HostArch(), @ARGV), "\n";
191+
192+sub HostArch {
193+ my $arch = $Config{archname};
194+ for ($arch) {
195+ return 'linux-x86_64' if m/^x86_64-linux/;
196+ return 'linux-x86' if m/^i[3-6]86-linux/;
197+ return 'linux-arm' if m/^arm-linux/;
198+ return 'windows-x64' if m/^MSWin32-x64/;
199+ return 'win32-x86' if m/^MSWin32-x86/;
200+ return "cygwin-x86_64" if m/^x86_64-cygwin/;
201+ return "cygwin-x86" if m/^i[3-6]86-cygwin/;
202+ return 'solaris-sparc' if m/^sun4-solaris/;
203+ return 'solaris-x86' if m/^i86pc-solaris/;
204+
205+ my ($kernel, $hostname, $release, $version, $cpu) = uname;
206+ if (m/^darwin/) {
207+ for ($cpu) {
208+ return 'darwin-x86' if m/^(i386|x86_64)/;
209+ return 'darwin-ppc' if m/Power Macintosh/;
210+ }
211+ die "$0: macOS CPU type '$cpu' not recognized\n";
212+ }
213+
214+ die "$0: Architecture '$arch' not recognized\n";
215+ }
216+}
217diff --git a/src/tools/Makefile b/src/tools/Makefile
218index bcf1270..c544703 100644
219--- a/src/tools/Makefile
220+++ b/src/tools/Makefile
221@@ -16,6 +16,9 @@ PERL_MODULES += EPICS/Path.pm
222 PERL_MODULES += EPICS/Release.pm
223 PERL_MODULES += EPICS/Getopts.pm
224
225+# This goes into lib/perl, not bin/<host>
226+PERL_MODULES += EpicsHostArch.pl
227+
228 PERL_SCRIPTS += convertRelease.pl
229 PERL_SCRIPTS += cvsclean.pl
230 PERL_SCRIPTS += dos2unix.pl
231diff --git a/startup/EpicsHostArch b/startup/EpicsHostArch
232old mode 100755
233new mode 100644
234index 8861ac5..de7f3d5
235--- a/startup/EpicsHostArch
236+++ b/startup/EpicsHostArch
237@@ -1,84 +1,21 @@
238 #!/bin/sh
239-#*************************************************************************
240-# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
241-# National Laboratory.
242-# Copyright (c) 2002 The Regents of the University of California, as
243-# Operator of Los Alamos National Laboratory.
244-# EPICS BASE is distributed subject to a Software License Agreement found
245-# in file LICENSE that is included with this distribution.
246-#*************************************************************************
247-#
248-# EpicsHostArch - returns the Epics host architecture suitable
249-# for assigning to the EPICS_HOST_ARCH variable
250+# Script to find and run the Perl EpicsHostArch.pl script.
251
252-if [ "x${1}" != "x" ]
253-then
254- suffix="-"${1}
255-else
256- suffix=""
257-fi
258+# This script is provided for backwards-compatibility only and may be
259+# dropped from future releases of Base. Please adjust callers to run
260+# the Perl version directly as this startup directory isn't copied to
261+# INSTALL_LOCATION by the EPICS build system.
262
263-sysname=`uname`
264+EHA=EpicsHostArch.pl
265
266-case $sysname in
267- Linux )
268- os=linux
269- cpu=`uname -m`
270- case $cpu in
271- i386 | i486 | i586 | i686 )
272- cpu=x86 ;;
273- x86_64 )
274- ;; # $cpu is correct
275- armv6l | armv7l )
276- cpu=arm ;;
277- esac
278- echo ${os}-${cpu}${suffix}
279- ;;
280- Darwin )
281- os=darwin
282- cpu=`uname -m`
283- case $cpu in
284- "Power Macintosh")
285- cpu=ppc ;;
286- i386 | x86_64 )
287- cpu=x86 ;;
288- esac
289- echo ${os}-${cpu}${suffix}
290- ;;
291- SunOS )
292- version=`uname -r | sed '1s/^\([0-9]*\).*$/\1/'`
293- if [ ${version} -ge 5 ]; then
294- os=solaris
295- else
296- os=sun4
297- fi
298- cpu=`uname -m`
299- case $cpu in
300- sun4*)
301- cpu=sparc
302- ;;
303- i86pc)
304- cpu=x86
305- ;;
306- esac
307- echo ${os}-${cpu}${suffix}
308- ;;
309- * )
310- sysname=`uname -o`
311- case $sysname in
312- Cygwin )
313- os=cygwin
314- cpu=`uname -m`
315- case $cpu in i386 | i486 | i586 | i686 )
316- cpu=x86
317- ;;
318- esac
319- echo ${os}-${cpu}${suffix}
320- ;;
321- * )
322- echo unsupported
323- ;;
324- esac
325- ;;
326-esac
327+cd "$(dirname "$0")/.."
328
329+# Perl script will be installed into lib/perl
330+[[ -f lib/perl/$EHA ]] && exec perl lib/perl/$EHA $*
331+
332+# If Base hasn't been built yet, use the source Luke
333+[[ -f src/tools/$EHA ]] && exec perl src/tools/$EHA $*
334+
335+# Die with an error message
336+echo "$0: Can't find $EHA" >&2
337+exit 1
338diff --git a/startup/EpicsHostArch.pl b/startup/EpicsHostArch.pl
339deleted file mode 100755
340index 09f7ffd..0000000
341--- a/startup/EpicsHostArch.pl
342+++ /dev/null
343@@ -1,47 +0,0 @@
344-eval 'exec perl -S $0 ${1+"$@"}' # -*- Mode: perl -*-
345- if $running_under_some_shell; # EpicsHostArch.pl
346-#*************************************************************************
347-# Copyright (c) 2011 UChicago Argonne LLC, as Operator of Argonne
348-# National Laboratory.
349-# Copyright (c) 2002 The Regents of the University of California, as
350-# Operator of Los Alamos National Laboratory.
351-# EPICS BASE is distributed subject to a Software License Agreement found
352-# in file LICENSE that is included with this distribution.
353-#*************************************************************************
354-
355-# Returns the Epics host architecture suitable
356-# for assigning to the EPICS_HOST_ARCH variable
357-
358-use Config;
359-use POSIX;
360-
361-$suffix="";
362-$suffix="-".$ARGV[0] if ($ARGV[0] ne "");
363-
364-$EpicsHostArch = GetEpicsHostArch();
365-print "$EpicsHostArch$suffix";
366-
367-sub GetEpicsHostArch { # no args
368- $arch=$Config{'archname'};
369- if ($arch =~ /sun4-solaris/) { return "solaris-sparc";
370- } elsif ($arch =~ m/i86pc-solaris/) { return "solaris-x86";
371- } elsif ($arch =~ m/i[3-6]86-linux/){ return "linux-x86";
372- } elsif ($arch =~ m/x86_64-linux/) { return "linux-x86_64";
373- } elsif ($arch =~ m/arm-linux/) { return "linux-arm";
374- } elsif ($arch =~ m/MSWin32-x86/) { return "win32-x86";
375- } elsif ($arch =~ m/MSWin32-x64/) { return "windows-x64";
376- } elsif ($arch =~ m/cygwin/) {
377- my($kernel, $hostname, $release, $version, $cpu) = POSIX::uname();
378- if ($cpu =~ m/x86_64/) { return "cygwin-x86_64"; }
379- return "cygwin-x86";
380- } elsif ($arch =~ m/darwin/) {
381- my($kernel, $hostname, $release, $version, $cpu) = POSIX::uname();
382- if ($cpu =~ m/Power Macintosh/) { return "darwin-ppc"; }
383- elsif ($cpu =~ m/i386/) { return "darwin-x86"; }
384- elsif ($cpu =~ m/x86_64/) { return "darwin-x86"; }
385- else { return "unsupported"; }
386- } else { return "unsupported"; }
387-}
388-
389-#EOF EpicsHostArch.pl
390-
391diff --git a/startup/Site.cshrc b/startup/Site.cshrc
392deleted file mode 100755
393index 23453cb..0000000
394--- a/startup/Site.cshrc
395+++ /dev/null
396@@ -1,118 +0,0 @@
397-#!/bin/csh -f
398-#*************************************************************************
399-# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
400-# National Laboratory.
401-# Copyright (c) 2002 The Regents of the University of California, as
402-# Operator of Los Alamos National Laboratory.
403-# EPICS BASE Versions 3.13.7
404-# and higher are distributed subject to a Software License Agreement found
405-# in file LICENSE that is included with this distribution.
406-#*************************************************************************
407-# Site-specific EPICS environment settings
408-#
409-# sites should modify these definitions
410-
411-# Location of epics base
412-if ( ! $?EPICS_BASE ) then
413- set EPICS_BASE=/usr/local/epics/base
414-endif
415-
416-# Location of epics extensions
417-if ( ! $?EPICS_EXTENSIONS ) then
418- setenv EPICS_EXTENSIONS /usr/local/epics/extensions
419-endif
420-
421-# Postscript printer definition needed by some extensions (eg medm, dp, dm, ...)
422-if ( ! $?PSPRINTTER ) then
423- setenv PSPRINTER lp
424-endif
425-
426-# Needed only by medm extension
427-#setenv EPICS_DISPLAY_PATH
428-# Needed only by medm extension
429-setenv BROWSER firefox
430-
431-# Needed only by orbitscreen extension
432-if ( ! $?ORBITSCREENHOME ) then
433- setenv ORBITSCREENHOME $EPICS_EXTENSIONS/src/orbitscreen
434-endif
435-
436-# Needed only by adt extension
437-if ( ! $?ADTHOME ) then
438- setenv ADTHOME /usr/local/oag/apps/src/appconfig/adt
439- echo $ADTHOME
440-endif
441-
442-# Needed only by ar extension (archiver)
443-setenv EPICS_AR_PORT 7002
444-
445-# Needed for java extensions
446-if ( $?CLASSPATH ) then
447- setenv CLASSPATH "${CLASSPATH}:${EPICS_EXTENSIONS}/javalib"
448-else
449- setenv CLASSPATH "${EPICS_EXTENSIONS}/javalib"
450-endif
451-
452-# Allow private versions of extensions without a bin subdir
453-if ( $?EPICS_EXTENSIONS_PVT ) then
454- set path = ( $path $EPICS_EXTENSIONS_PVT)
455-endif
456-
457-##################################################################
458-
459-# Start of set R3.14 environment variables
460-
461-setenv EPICS_HOST_ARCH `$EPICS_BASE/startup/EpicsHostArch.pl`
462-
463-# Allow private versions of base
464-if ( $?EPICS_BASE_PVT ) then
465- if ( -e $EPICS_BASE_PVT/bin/$EPICS_HOST_ARCH ) then
466- set path = ( $path $EPICS_BASE_PVT/bin/$EPICS_HOST_ARCH)
467- endif
468-endif
469-
470-# Allow private versions of extensions
471-if ( $?EPICS_EXTENSIONS_PVT ) then
472- if ( -e $EPICS_EXTENSIONS_PVT/bin/$EPICS_HOST_ARCH ) then
473- set path = ( $path $EPICS_EXTENSIONS_PVT/bin/$EPICS_HOST_ARCH)
474- endif
475-endif
476-set path = ( $path $EPICS_EXTENSIONS/bin/$EPICS_HOST_ARCH )
477-
478-# End of set R3.14 environment variables
479-##################################################################
480-
481-
482-## Start of set pre R3.14 environment variables
483-#
484-## Time service:
485-## EPICS_TS_MIN_WEST the local time difference from GMT.
486-#setenv EPICS_TS_MIN_WEST 360
487-#
488-#if ( -e /usr/local/etc/setup/HostArch.pl ) then
489-# setenv HOST_ARCH `/usr/local/etc/setup/HostArch.pl`
490-#else
491-# setenv HOST_ARCH `/usr/local/epics/startup/HostArch.pl`
492-#endif
493-#
494-## Allow private versions of extensions
495-#if ( $?EPICS_EXTENSIONS_PVT ) then
496-# if ( -e $EPICS_EXTENSIONS_PVT/bin/$HOST_ARCH ) then
497-# set path = ( $path $EPICS_EXTENSIONS_PVT/bin/$HOST_ARCH)
498-# endif
499-# # Needed if shared extension libraries are built
500-# if ( -e $EPICS_EXTENSIONS_PVT/lib/$HOST_ARCH ) then
501-# if ( $?LD_LIBRARY_PATH ) then
502-# setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:${EPICS_EXTENSIONS_PVT}/lib/${HOST_ARCH}"
503-# else
504-# setenv LD_LIBRARY_PATH "${EPICS_EXTENSIONS_PVT}/lib/${HOST_ARCH}"
505-# endif
506-# endif
507-#endif
508-#
509-#set path = ( $path $EPICS_EXTENSIONS/bin/$HOST_ARCH )
510-## Needed if shared extension libraries are built
511-#setenv LD_LIBRARY_PATH "${LD_LIBRARY_PATH}:${EPICS_EXTENSIONS}/lib/${HOST_ARCH}"
512-
513-# End of set pre R3.14 environment variables
514-##################################################################
515diff --git a/startup/Site.profile b/startup/Site.profile
516deleted file mode 100755
517index 5cb9b02..0000000
518--- a/startup/Site.profile
519+++ /dev/null
520@@ -1,118 +0,0 @@
521-#!/bin/sh
522-#*************************************************************************
523-# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
524-# National Laboratory.
525-# Copyright (c) 2002 The Regents of the University of California, as
526-# Operator of Los Alamos National Laboratory.
527-# EPICS BASE Versions 3.13.7
528-# and higher are distributed subject to a Software License Agreement found
529-# in file LICENSE that is included with this distribution.
530-#*************************************************************************
531-# Site-specific EPICS environment settings
532-#
533-# sites should modify these definitions
534-
535-# Location of epics base
536-if [ -z "${MY_EPICS_BASE}" ] ; then
537- MY_EPICS_BASE=/usr/local/epics/base
538-fi
539-
540-# Location of epics extensions (medm, msi, etc.)
541-if [ -z "${EPICS_EXTENSIONS}" ] ; then
542- EPICS_EXTENSIONS=/usr/local/epics/extensions
543-fi
544-
545-# Postscript printer definition needed by some extensions (eg medm, dp, dm, ...)
546-if [ -z "${PSPRINTER}" ] ; then
547- export PSPRINTER=lp
548-fi
549-
550-#Needed only by the idl and ezcaIDL extensions.
551-#export EPICS_EXTENSIONS
552-
553-# Needed only by medm extension
554-#export EPICS_DISPLAY_PATH=/path/to/adl/files
555-export BROWSER=firefox
556-
557-# Needed only by orbitscreen extension
558-#if [ -z "${ORBITSCREENHOME}" ] ; then
559-# export "ORBITSCREENHOME=${EPICS_EXTENSIONS/src/orbitscreen}"
560-#fi
561-
562-# Needed only by adt extension
563-#if [ -z "${ADTHOME}" ] ; then
564-# ADTHOME=
565-# export ADTHOME
566-#fi
567-
568-# Needed only by ar extension (archiver)
569-#EPICS_AR_PORT=7002
570-#export EPICS_AR_PORT
571-
572-# Needed for java extensions
573-if [ -z "${CLASSPATH}" ] ; then
574- CLASSPATH="${EPICS_EXTENSIONS}/javalib"
575-else
576- CLASSPATH="${CLASSPATH}:${EPICS_EXTENSIONS}/javalib"
577-fi
578-export CLASSPATH
579-
580-# Allow private versions of extensions without a bin subdir
581-if [ -n "${EPICS_EXTENSIONS_PVT}" ] ; then
582- PATH="${PATH}:${EPICS_EXTENSIONS_PVT}"
583-fi
584-
585-#---------------------------------------------------------------
586-# Start of set R3.14 environment variables
587-#
588-EPICS_HOST_ARCH=`"${MY_EPICS_BASE}"/startup/EpicsHostArch.pl`
589-export EPICS_HOST_ARCH
590-
591-# Allow private versions of base
592-if [ -n "${EPICS_BASE_PVT}" ] ; then
593- if [ -d "${EPICS_BASE_PVT}/bin/${EPICS_HOST_ARCH}" ]; then
594- PATH="${PATH}:${EPICS_BASE_PVT}/bin/${EPICS_HOST_ARCH}"
595- fi
596-fi
597-
598-# Allow private versions of extensions
599-if [ -n "${EPICS_EXTENSIONS_PVT}" ] ; then
600- if [ -d "${EPICS_EXTENSIONS_PVT}/bin/${EPICS_HOST_ARCH}" ]; then
601- PATH="${PATH}:${EPICS_EXTENSIONS_PVT}/bin/${EPICS_HOST_ARCH}"
602- fi
603-fi
604-PATH="${PATH}:${EPICS_EXTENSIONS}/bin/${EPICS_HOST_ARCH}"
605-
606-# End of set R3.14 environment variables
607-
608-#---------------------------------------------------------------
609-#
610-## Start of set pre R3.14 environment variables
611-#
612-## Time service:
613-## EPICS_TS_MIN_WEST the local time difference from GMT.
614-#EPICS_TS_MIN_WEST=360
615-#export EPICS_TS_MIN_WEST
616-#
617-#HOST_ARCH=`"${MY_EPICS_BASE}"/startup/HostArch`
618-#export HOST_ARCH
619-#
620-## Allow private versions of base
621-#if [ -n "${EPICS_BASE_PVT}" ] ; then
622-# if [ -d "${EPICS_BASE_PVT}/bin/${HOST_ARCH}" ]; then
623-# PATH="${PATH}:${EPICS_BASE_PVT}/bin/${HOST_ARCH}"
624-# fi
625-#fi
626-#
627-## Allow private versions of extensions
628-#if [ -n "${EPICS_EXTENSIONS_PVT}" ] ; then
629-# if [ -d "${EPICS_EXTENSIONS_PVT}/bin/${HOST_ARCH}" ]; then
630-# PATH="${PATH}:${EPICS_EXTENSIONS_PVT}/bin/${HOST_ARCH}"
631-# fi
632-#fi
633-#
634-#PATH="${PATH}:${EPICS_EXTENSIONS}/lib/${HOST_ARCH}"
635-#
636-# End of set pre R3.14 environment variables
637-
638-#---------------------------------------------------------------
639diff --git a/startup/cygwin.bat b/startup/cygwin.bat
640deleted file mode 100755
641index ff75b53..0000000
642--- a/startup/cygwin.bat
643+++ /dev/null
644@@ -1,122 +0,0 @@
645-@ECHO OFF
646-REM *************************************************************************
647-REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
648-REM National Laboratory.
649-REM Copyright (c) 2002 The Regents of the University of California, as
650-REM Operator of Los Alamos National Laboratory.
651-REM EPICS BASE Versions 3.13.7
652-REM and higher are distributed subject to a Software License Agreement found
653-REM in file LICENSE that is included with this distribution.
654-REM *************************************************************************
655-REM
656-REM Site-specific EPICS environment settings
657-REM
658-REM sites should modify these definitions
659-
660-REM ======================================================
661-REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
662-REM ======================================================
663-
664-REM ======================================================
665-REM ---------------- WINDOWS ---------------------------
666-REM ======================================================
667-REM ----- WIN95 -----
668-REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
669-REM ----- WINNT, WIN2000 -----
670-REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
671-REM ----- WINXP, Vista, Windows 7 -----
672-set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
673-
674-REM ======================================================
675-REM ---------------- make and perl ---------------------
676-REM ======================================================
677-
678-REM --------------- ActiveState perl -------------------
679-set PATH=C:\Perl\bin;%PATH%
680-
681-REM --------------- mingw make ------------------------
682-REM set PATH=C:\mingw-make\bin;%PATH%
683-REM set PATH=C:\mingw-make82-3\bin;%PATH%
684-
685-REM --------------- gnuwin32 make ----------------------
686-set PATH=C:\gnuwin32\bin;%PATH%
687-
688-REM ======================================================
689-REM ---------------- cygwin tools ------------------------
690-REM ======================================================
691-REM (make & perl if above perl and make are REMs)
692-REM Dont use cygwin GNU make and Perl!
693-REM cygwin contains tk/tcl, vim, perl, and many unix tools
694-REM need grep from here NOT from cvs directory
695-set PATH=%PATH%;.;..
696-set PATH=%PATH%;c:\cygwin\bin
697-
698-REM ======================================================
699-REM --------------- EPICS --------------------------------
700-REM ======================================================
701-set EPICS_HOST_ARCH=cygwin-x86
702-set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
703-set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
704-
705-REM ======================================================
706-REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
707-REM ======================================================
708-
709-REM ======================================================
710-REM ----------------- remote CVS -------------------------
711-REM ======================================================
712-REM set CVS_RSH=c:/cygwin/bin/ssh.exe
713-REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
714-REM set HOME=c:/users/%USERNAME%
715-REM set HOME=c:/users/jba
716-
717-REM ======================================================
718-REM ------------------- Bazaar ---------------------------
719-REM ======================================================
720-set PATH=%PATH%;C:\Program files\Bazaar
721-
722-REM ======================================================
723-REM ----------------- GNU make flags ---------------------
724-REM ======================================================
725-set MAKEFLAGS=-w
726-
727-REM ======================================================
728-REM -------------- vim (use cygwin vim ) -----------------
729-REM ======================================================
730-REM HOME needed by vim to write .viminfo file.
731-REM VIM needed by vim to find _vimrc file.
732-REM set VIM=c:\cygwin
733-
734-REM ======================================================
735-REM --------------- Epics Channel Access -----------------
736-REM Modify and uncomment the following lines
737-REM to override the base/configure/CONFIG_ENV defaults
738-REM ======================================================
739-REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
740-REM set EPICS_CA_AUTO_ADDR_LIST=YES
741-
742-REM set EPICS_CA_CONN_TMO=30.0
743-REM set EPICS_CA_BEACON_PERIOD=15.0
744-REM set EPICS_CA_REPEATER_PORT=5065
745-REM set EPICS_CA_SERVER_PORT=5064
746-REM set EPICS_TS_MIN_WEST=420
747-
748-REM ======================================================
749-REM --------------- JAVA ---------------------------------
750-REM ======================================================
751-REM Needed for java extensions
752-REM set CLASSPATH=G:\epics\extensions\javalib
753-REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
754-REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
755-
756-REM ======================================================
757-REM --------------- Exceed -------------------------------
758-REM Needed for X11 extensions
759-REM ======================================================
760-REM set EX_VER=7.10
761-REM set EX_VER=12.00
762-REM set EX_VER=14.00
763-REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
764-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
765-
766-
767diff --git a/startup/unix.csh b/startup/unix.csh
768new file mode 100644
769index 0000000..788a639
770--- /dev/null
771+++ b/startup/unix.csh
772@@ -0,0 +1,96 @@
773+#*************************************************************************
774+# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
775+# National Laboratory.
776+# Copyright (c) 2002 The Regents of the University of California, as
777+# Operator of Los Alamos National Laboratory.
778+# EPICS BASE Versions 3.13.7
779+# and higher are distributed subject to a Software License Agreement found
780+# in file LICENSE that is included with this distribution.
781+#*************************************************************************
782+#
783+# Site-specific EPICS environment settings
784+#
785+# Attempts to set EPICS_HOST_ARCH. Optionally, adds the EPICS Base
786+# install host architecture bin directory to PATH.
787+#
788+
789+#-----------------------------------------------------------------------
790+# Site serviceable parts (These definitions may be modified)
791+#-----------------------------------------------------------------------
792+
793+# Automatically set up the environment when possible ("yes" or "no").
794+# If set to yes, as much of the environment will be set up as possible.
795+# If set to no, just the minimum environment will be set up. More
796+# specific _auto_* definitions take precedence over this definition.
797+set _auto=no
798+
799+# Automatically append to PATH ("yes" or "no"). If set to yes, the
800+# EPICS Base install host architecture bin directory will be added to
801+# PATH if possible. If set to no, the bin directory will not be added
802+# to PATH.
803+set _auto_path_append=$_auto
804+
805+# The program used to run Perl scripts (pathname).
806+set _perl_prog=perl
807+
808+# The EPICS host architecture specification for EPICS_HOST_ARCH
809+# (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE). If
810+# nonempty, the value will be used as the value of EPICS_HOST_ARCH. If
811+# empty, an attempt will be made to automatically determine the value
812+# with EpicsHostArch.pl.
813+set _epics_host_arch=
814+
815+# The install location of EPICS Base (pathname). If nonempty, the
816+# EpicsHostArch.pl script from it, if it exists, will be used to
817+# determine EPICS_HOST_ARCH. If nonempty and EPICS_HOST_ARCH was
818+# determined successfully, it will be used to add the host architecture
819+# bin directory to PATH if _auto_path_append is yes.
820+set _epics_base=
821+
822+# The source location of EPICS Base (pathname). If nonempty, the
823+# EpicsHostArch.pl script from it, if it exists and _epics_base is empty
824+# or it did not exist in the _epics_base location, will be used to
825+# determine EPICS_HOST_ARCH.
826+set _epics_base_src=
827+
828+#-----------------------------------------------------------------------
829+# Internal parts (There is typically no need to modify these)
830+#-----------------------------------------------------------------------
831+
832+# Define the possible locations of EpicsHostArch.pl
833+set _epics_host_arch_pl=
834+set _src_epics_host_arch_pl=
835+if ("$_epics_base" != '') then
836+ set _epics_host_arch_pl="$_epics_base/lib/perl/EpicsHostArch.pl"
837+endif
838+if ("$_epics_base_src" != '') then
839+ set _src_epics_host_arch_pl="$_epics_base_src/src/tools/EpicsHostArch.pl"
840+endif
841+
842+# Set the EPICS host architecture specification
843+if ("$_epics_host_arch" != '') then
844+ setenv EPICS_HOST_ARCH "$_epics_host_arch"
845+else if (-e "$_epics_host_arch_pl") then
846+ set _epics_host_arch=`"$_perl_prog" "$_epics_host_arch_pl"`
847+ setenv EPICS_HOST_ARCH "$_epics_host_arch"
848+else if (-e "$_src_epics_host_arch_pl") then
849+ set _epics_host_arch=`"$_perl_prog" "$_src_epics_host_arch_pl"`
850+ setenv EPICS_HOST_ARCH "$_epics_host_arch"
851+endif
852+
853+# Add the EPICS Base host architecture bin directory to PATH
854+if ("$_auto_path_append" == yes) then
855+ if ("$_epics_base" != '' && "$_epics_host_arch" != '') then
856+ setenv PATH "${PATH}:$_epics_base/bin/$_epics_host_arch"
857+ endif
858+endif
859+
860+# Don't leak variables into the environment
861+unset _auto
862+unset _auto_path_append
863+unset _perl_prog
864+unset _epics_host_arch
865+unset _epics_base
866+unset _epics_base_src
867+unset _epics_host_arch_pl
868+unset _src_epics_host_arch_pl
869diff --git a/startup/unix.sh b/startup/unix.sh
870new file mode 100644
871index 0000000..a8d8328
872--- /dev/null
873+++ b/startup/unix.sh
874@@ -0,0 +1,100 @@
875+#*************************************************************************
876+# Copyright (c) 2002 The University of Chicago, as Operator of Argonne
877+# National Laboratory.
878+# Copyright (c) 2002 The Regents of the University of California, as
879+# Operator of Los Alamos National Laboratory.
880+# EPICS BASE Versions 3.13.7
881+# and higher are distributed subject to a Software License Agreement found
882+# in file LICENSE that is included with this distribution.
883+#*************************************************************************
884+#
885+# Site-specific EPICS environment settings
886+#
887+# Attempts to set EPICS_HOST_ARCH. Optionally, adds the EPICS Base
888+# install host architecture bin directory to PATH.
889+#
890+
891+#-----------------------------------------------------------------------
892+# Site serviceable parts (These definitions may be modified)
893+#-----------------------------------------------------------------------
894+
895+# Automatically set up the environment when possible ("yes" or "no").
896+# If set to yes, as much of the environment will be set up as possible.
897+# If set to no, just the minimum environment will be set up. More
898+# specific _auto_* definitions take precedence over this definition.
899+_auto=no
900+
901+# Automatically append to PATH ("yes" or "no"). If set to yes, the
902+# EPICS Base install host architecture bin directory will be added to
903+# PATH if possible. If set to no, the bin directory will not be added
904+# to PATH.
905+_auto_path_append=$_auto
906+
907+# The program used to run Perl scripts (pathname).
908+_perl_prog=perl
909+
910+# The EPICS host architecture specification for EPICS_HOST_ARCH
911+# (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE). If
912+# nonempty, the value will be used as the value of EPICS_HOST_ARCH. If
913+# empty, an attempt will be made to automatically determine the value
914+# with EpicsHostArch.pl.
915+_epics_host_arch=
916+
917+# The install location of EPICS Base (pathname). If nonempty, the
918+# EpicsHostArch.pl script from it, if it exists, will be used to
919+# determine EPICS_HOST_ARCH. If nonempty and EPICS_HOST_ARCH was
920+# determined successfully, it will be used to add the host architecture
921+# bin directory to PATH if _auto_path_append is yes.
922+_epics_base=
923+
924+# The source location of EPICS Base (pathname). If nonempty, the
925+# EpicsHostArch.pl script from it, if it exists and _epics_base is empty
926+# or it did not exist in the _epics_base location, will be used to
927+# determine EPICS_HOST_ARCH.
928+_epics_base_src=
929+
930+#-----------------------------------------------------------------------
931+# Internal parts (There is typically no need to modify these)
932+#-----------------------------------------------------------------------
933+
934+# Define the possible locations of EpicsHostArch.pl
935+_epics_host_arch_pl=
936+_src_epics_host_arch_pl=
937+if [ -n "$_epics_base" ]; then
938+ _epics_host_arch_pl="$_epics_base/lib/perl/EpicsHostArch.pl"
939+fi
940+if [ -n "$_epics_base_src" ]; then
941+ _src_epics_host_arch_pl="$_epics_base_src/src/tools/EpicsHostArch.pl"
942+fi
943+
944+# Set the EPICS host architecture specification
945+if [ -n "$_epics_host_arch" ]; then
946+ EPICS_HOST_ARCH=$_epics_host_arch
947+ export EPICS_HOST_ARCH
948+elif [ -e "$_epics_host_arch_pl" ]; then
949+ _epics_host_arch=$("$_perl_prog" "$_epics_host_arch_pl")
950+ EPICS_HOST_ARCH=$_epics_host_arch
951+ export EPICS_HOST_ARCH
952+elif [ -e "$_src_epics_host_arch_pl" ]; then
953+ _epics_host_arch=$("$_perl_prog" "$_src_epics_host_arch_pl")
954+ EPICS_HOST_ARCH=$_epics_host_arch
955+ export EPICS_HOST_ARCH
956+fi
957+
958+# Add the EPICS Base host architecture bin directory to PATH
959+if [ "$_auto_path_append" = yes ]; then
960+ if [ -n "$_epics_base" ] && [ -n "$_epics_host_arch" ]; then
961+ PATH="$PATH:$_epics_base/bin/$_epics_host_arch"
962+ export PATH
963+ fi
964+fi
965+
966+# Don't leak variables into the environment
967+unset _auto
968+unset _auto_path_append
969+unset _perl_prog
970+unset _epics_host_arch
971+unset _epics_base
972+unset _epics_base_src
973+unset _epics_host_arch_pl
974+unset _src_epics_host_arch_pl
975diff --git a/startup/win32.bat b/startup/win32.bat
976index af9155d..6652fc9 100644
977--- a/startup/win32.bat
978+++ b/startup/win32.bat
979@@ -1,147 +1,105 @@
980-@ECHO OFF
981-REM *************************************************************************
982-REM Copyright (c) 2002 The University of Chicago, as Operator of Argonne
983-REM National Laboratory.
984-REM Copyright (c) 2002 The Regents of the University of California, as
985-REM Operator of Los Alamos National Laboratory.
986-REM EPICS BASE Versions 3.13.7
987-REM and higher are distributed subject to a Software License Agreement found
988-REM in file LICENSE that is included with this distribution.
989-REM *************************************************************************
990-REM
991-REM Site-specific EPICS environment settings
992-REM
993-REM sites should modify these definitions
994-
995-REM ======================================================
996-REM ====== REQUIRED ENVIRONMENT VARIABLES FOLLOW ======
997-REM ======================================================
998-
999-REM ======================================================
1000-REM ---------------- WINDOWS ---------------------------
1001-REM ======================================================
1002-REM ----- WIN95 -----
1003-REM set PATH=C:\WINDOWS;C:\WINDOWS\COMMAND
1004-REM ----- WINNT, WIN2000 -----
1005-REM set PATH=C:\WINNT;C:\WINNT\SYSTEM32
1006-REM ----- WINXP, Vista, Windows 7 -----
1007-set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\SYSTEM32\Wbem
1008-
1009-REM ======================================================
1010-REM ---------------- make and perl ---------------------
1011-REM ======================================================
1012-
1013-REM --------------- ActiveState perl -------------------
1014-set PATH=C:\Perl\bin;%PATH%
1015-
1016-REM --------------- mingw make ------------------------
1017-REM set PATH=C:\mingw-make\bin;%PATH%
1018-REM set PATH=C:\mingw-make82-3\bin;%PATH%
1019-
1020-REM --------------- gnuwin32 make ----------------------
1021-set PATH=C:\gnuwin32\bin;%PATH%
1022-
1023-REM ======================================================
1024-REM ---------------- cygwin tools ------------------------
1025-REM ======================================================
1026-REM (make & perl if above perl and make are REMs)
1027-REM Dont use cygwin GNU make and Perl!
1028-REM cygwin contains tk/tcl, vim, perl, and many unix tools
1029-REM need grep from here NOT from cvs directory
1030-REM set PATH=%PATH%;.;..
1031-REM set PATH=%PATH%;c:\cygwin\bin
1032-
1033-REM ======================================================
1034-REM --------------- Visual c++ -------------------------
1035-REM ======================================================
1036-
1037-REM ------ Microsoft Visual Studio 2005 ------
1038-REM call "C:\Program files\Microsoft Visual Studio 8\VC\vcvarsall.bat" x86_amd64
1039-REM set PATH=%PATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
1040-REM set INCLUDE=%INCLUDE%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\include
1041-REM REM set LIBPATH=%LIBPATH%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
1042-REM set LIB=%LIB%;C:\Program Files\Microsoft SDKs\Windows\v6.0A\lib
1043-
1044-REM ------ Microsoft Visual Studio 2008 ------
1045-REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
1046-REM call "C:\Program files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_amd64
1047-REM set PATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\bin;%PATH%
1048-REM set INCLUDE=C:\Program Files\Microsoft SDKs\Windows\v7.0\include;%INCLUDE%
1049-REM set LIBPATH=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIBPATH%
1050-REM set LIB=C:\Program Files\Microsoft SDKs\Windows\v7.0\lib;%LIB%
1051-
1052-REM ----- Visual Studion 2010 -----
1053-REM -- windows-x64 ---
1054-REM call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x64
1055-REM -- win32-x86 ---
1056-call "C:\Program files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
1057-
1058-REM ======================================================
1059-REM --------------- EPICS --------------------------------
1060-REM ======================================================
1061-REM set EPICS_HOST_ARCH=windows-x64
1062-set EPICS_HOST_ARCH=win32-x86
1063-set PATH=%PATH%;G:\epics\base\bin\%EPICS_HOST_ARCH%
1064-set PATH=%PATH%;G:\epics\extensions\bin\%EPICS_HOST_ARCH%
1065-
1066-REM ======================================================
1067-REM ------- OPTIONAL ENVIRONMENT VARIABLES FOLLOW --------
1068-REM ======================================================
1069-
1070-REM ======================================================
1071-REM ----------------- remote CVS -------------------------
1072-REM ======================================================
1073-REM set CVS_RSH=c:/cygwin/bin/ssh.exe
1074-REM set CVSROOT=:ext:jba@aps.anl.gov:/usr/local/epicsmgr/cvsroot
1075-REM set HOME=c:/users/%USERNAME%
1076-REM set HOME=c:/users/jba
1077-
1078-REM ======================================================
1079-REM ------------------- Bazaar ---------------------------
1080-REM ======================================================
1081-set PATH=%PATH%;C:\Program files\Bazaar
1082-
1083-REM ======================================================
1084-REM ----------------- GNU make flags ---------------------
1085-REM ======================================================
1086-set MAKEFLAGS=-w
1087-
1088-REM ======================================================
1089-REM -------------- vim (use cygwin vim ) -----------------
1090-REM ======================================================
1091-REM HOME needed by vim to write .viminfo file.
1092-REM VIM needed by vim to find _vimrc file.
1093-REM set VIM=c:\cygwin
1094-
1095-REM ======================================================
1096-REM --------------- Epics Channel Access -----------------
1097-REM Modify and uncomment the following lines
1098-REM to override the base/configure/CONFIG_ENV defaults
1099-REM ======================================================
1100-REM set EPICS_CA_ADDR_LIST=n.n.n.n n.n.n.n
1101-REM set EPICS_CA_AUTO_ADDR_LIST=YES
1102-
1103-REM set EPICS_CA_CONN_TMO=30.0
1104-REM set EPICS_CA_BEACON_PERIOD=15.0
1105-REM set EPICS_CA_REPEATER_PORT=5065
1106-REM set EPICS_CA_SERVER_PORT=5064
1107-REM set EPICS_TS_MIN_WEST=420
1108-
1109-REM ======================================================
1110-REM --------------- JAVA ---------------------------------
1111-REM ======================================================
1112-REM Needed for java extensions
1113-REM set CLASSPATH=G:\epics\extensions\javalib
1114-REM set PATH=%PATH%;C:\j2sdk1.4.1_01\bin
1115-REM set CLASSPATH=%CLASSPATH%;C:\j2sdk1.4.1_01\lib\tools.jar
1116-
1117-REM ======================================================
1118-REM --------------- Exceed -------------------------------
1119-REM Needed for X11 extensions
1120-REM ======================================================
1121-REM set EX_VER=7.10
1122-REM set EX_VER=12.00
1123-REM set EX_VER=14.00
1124-REM set PATH=%PATH%;C:\Exceed%EX_VER%\XDK\
1125-REM set PATH=%PATH%;C:\Program Files\Hummingbird\Connectivity\%EX_VER%\Exceed\
1126-
1127+@echo off
1128+rem *************************************************************************
1129+rem Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne
1130+rem National Laboratory.
1131+rem Copyright (c) 2002 The Regents of the University of California, as
1132+rem Operator of Los Alamos National Laboratory.
1133+rem EPICS BASE is distributed subject to a Software License Agreement found
1134+rem in file LICENSE that is included with this distribution.
1135+rem *************************************************************************
1136+rem
1137+rem Site-specific EPICS environment settings
1138+rem
1139+rem Sets EPICS_HOST_ARCH and the environment for Microsoft Visual Studio.
1140+rem Optionally, resets PATH, adds Strawberry Perl to PATH, and adds the
1141+rem EPICS Base install host architecture bin directory to PATH.
1142+rem
1143+
1144+rem ----------------------------------------------------------------------
1145+rem Site serviceable parts (These definitions may be modified)
1146+rem ----------------------------------------------------------------------
1147+
1148+rem The values of the definitions in this section must not contain
1149+rem double-quotes.
1150+rem
1151+rem * Right: set _foo=C:\foo
1152+rem * Right: set "_foo=C:\foo"
1153+rem * Wrong: set _foo="C:\foo"
1154+
1155+rem Automatically set up the environment when possible ("yes" or "no").
1156+rem If set to yes, as much of the environment will be set up as possible.
1157+rem If set to no, just the minimum environment will be set up. More
1158+rem specific _auto_* definitions take precedence over this definition.
1159+set _auto=no
1160+
1161+rem Automatically reset PATH ("yes" or "no"). If set to yes, PATH will
1162+rem be reset to the value of _path_new. If set to no, PATH will not be
1163+rem reset.
1164+set _auto_path_reset=%_auto%
1165+
1166+rem Automatically append to PATH ("yes" or "no"). If set to yes, the
1167+rem EPICS Base install host architecture bin directory will be added to
1168+rem PATH if possible. If set to no, the bin directory will not be added
1169+rem to PATH.
1170+set _auto_path_append=%_auto%
1171+
1172+rem The new value for PATH. If _auto_path_reset is yes, PATH will be set
1173+rem to it.
1174+set _path_new=C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem
1175+
1176+rem The location of Strawberry Perl (pathname). If empty, Strawberry Perl
1177+rem is assumed to already be in PATH and will not be added. If nonempty,
1178+rem Strawberry Perl will be added to PATH.
1179+set _strawberry_perl_home=C:\Strawberry
1180+
1181+rem The location of Microsoft Visual Studio (pathname).
1182+set _visual_studio_home=C:\Program Files (x86)\Microsoft Visual Studio 14.0
1183+
1184+rem The EPICS host architecture specification for EPICS_HOST_ARCH
1185+rem (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE).
1186+set _epics_host_arch=win32-x86
1187+
1188+rem The install location of EPICS Base (pathname). If nonempty and
1189+rem _auto_path_append is yes, it will be used to add the host architecture
1190+rem bin directory to PATH.
1191+set _epics_base=
1192+
1193+rem ----------------------------------------------------------------------
1194+rem Internal parts (There is typically no need to modify these)
1195+rem ----------------------------------------------------------------------
1196+
1197+rem Reset PATH
1198+if "%_auto_path_reset%" == "yes" (
1199+ set "PATH=%_path_new%"
1200+)
1201+
1202+rem Add Strawberry Perl to PATH
1203+if "%_strawberry_perl_home%" == "" goto after_add_strawberry_perl
1204+rem Can't do this inside parentheses because PATH would be read only once
1205+set "PATH=%PATH%;%_strawberry_perl_home%\c\bin"
1206+set "PATH=%PATH%;%_strawberry_perl_home%\perl\site\bin"
1207+set "PATH=%PATH%;%_strawberry_perl_home%\perl\bin"
1208+:after_add_strawberry_perl
1209+
1210+rem Set the environment for Microsoft Visual Studio
1211+call "%_visual_studio_home%\VC\vcvarsall.bat" x86
1212+
1213+rem Set the EPICS host architecture specification
1214+set "EPICS_HOST_ARCH=%_epics_host_arch%"
1215+
1216+rem Add the EPICS Base host architecture bin directory to PATH
1217+if "%_auto_path_append%" == "yes" (
1218+ if not "%_epics_base%" == "" (
1219+ set "PATH=%PATH%;%_epics_base%\bin\%_epics_host_arch%"
1220+ )
1221+)
1222+
1223+rem Don't leak variables into the environment
1224+set _auto=
1225+set _auto_path_reset=
1226+set _auto_path_append=
1227+set _path_new=
1228+set _strawberry_perl_home=
1229+set _visual_studio_home=
1230+set _epics_host_arch=
1231+set _epics_base=
1232diff --git a/startup/windows.bat b/startup/windows.bat
1233new file mode 100644
1234index 0000000..877c0d5
1235--- /dev/null
1236+++ b/startup/windows.bat
1237@@ -0,0 +1,105 @@
1238+@echo off
1239+rem *************************************************************************
1240+rem Copyright (c) 2017 UChicago Argonne LLC, as Operator of Argonne
1241+rem National Laboratory.
1242+rem Copyright (c) 2002 The Regents of the University of California, as
1243+rem Operator of Los Alamos National Laboratory.
1244+rem EPICS BASE is distributed subject to a Software License Agreement found
1245+rem in file LICENSE that is included with this distribution.
1246+rem *************************************************************************
1247+rem
1248+rem Site-specific EPICS environment settings
1249+rem
1250+rem Sets EPICS_HOST_ARCH and the environment for Microsoft Visual Studio.
1251+rem Optionally, resets PATH, adds Strawberry Perl to PATH, and adds the
1252+rem EPICS Base install host architecture bin directory to PATH.
1253+rem
1254+
1255+rem ----------------------------------------------------------------------
1256+rem Site serviceable parts (These definitions may be modified)
1257+rem ----------------------------------------------------------------------
1258+
1259+rem The values of the definitions in this section must not contain
1260+rem double-quotes.
1261+rem
1262+rem * Right: set _foo=C:\foo
1263+rem * Right: set "_foo=C:\foo"
1264+rem * Wrong: set _foo="C:\foo"
1265+
1266+rem Automatically set up the environment when possible ("yes" or "no").
1267+rem If set to yes, as much of the environment will be set up as possible.
1268+rem If set to no, just the minimum environment will be set up. More
1269+rem specific _auto_* definitions take precedence over this definition.
1270+set _auto=no
1271+
1272+rem Automatically reset PATH ("yes" or "no"). If set to yes, PATH will
1273+rem be reset to the value of _path_new. If set to no, PATH will not be
1274+rem reset.
1275+set _auto_path_reset=%_auto%
1276+
1277+rem Automatically append to PATH ("yes" or "no"). If set to yes, the
1278+rem EPICS Base install host architecture bin directory will be added to
1279+rem PATH if possible. If set to no, the bin directory will not be added
1280+rem to PATH.
1281+set _auto_path_append=%_auto%
1282+
1283+rem The new value for PATH. If _auto_path_reset is yes, PATH will be set
1284+rem to it.
1285+set _path_new=C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem
1286+
1287+rem The location of Strawberry Perl (pathname). If empty, Strawberry Perl
1288+rem is assumed to already be in PATH and will not be added. If nonempty,
1289+rem Strawberry Perl will be added to PATH.
1290+set _strawberry_perl_home=C:\Strawberry
1291+
1292+rem The location of Microsoft Visual Studio (pathname).
1293+set _visual_studio_home=C:\Program Files (x86)\Microsoft Visual Studio 14.0
1294+
1295+rem The EPICS host architecture specification for EPICS_HOST_ARCH
1296+rem (<os>-<arch>[-<toolset>] as defined in configure/CONFIG_SITE).
1297+set _epics_host_arch=windows-x64
1298+
1299+rem The install location of EPICS Base (pathname). If nonempty and
1300+rem _auto_path_append is yes, it will be used to add the host architecture
1301+rem bin directory to PATH.
1302+set _epics_base=
1303+
1304+rem ----------------------------------------------------------------------
1305+rem Internal parts (There is typically no need to modify these)
1306+rem ----------------------------------------------------------------------
1307+
1308+rem Reset PATH
1309+if "%_auto_path_reset%" == "yes" (
1310+ set "PATH=%_path_new%"
1311+)
1312+
1313+rem Add Strawberry Perl to PATH
1314+if "%_strawberry_perl_home%" == "" goto after_add_strawberry_perl
1315+rem Can't do this inside parentheses because PATH would be read only once
1316+set "PATH=%PATH%;%_strawberry_perl_home%\c\bin"
1317+set "PATH=%PATH%;%_strawberry_perl_home%\perl\site\bin"
1318+set "PATH=%PATH%;%_strawberry_perl_home%\perl\bin"
1319+:after_add_strawberry_perl
1320+
1321+rem Set the environment for Microsoft Visual Studio
1322+call "%_visual_studio_home%\VC\vcvarsall.bat" x64
1323+
1324+rem Set the EPICS host architecture specification
1325+set "EPICS_HOST_ARCH=%_epics_host_arch%"
1326+
1327+rem Add the EPICS Base host architecture bin directory to PATH
1328+if "%_auto_path_append%" == "yes" (
1329+ if not "%_epics_base%" == "" (
1330+ set "PATH=%PATH%;%_epics_base%\bin\%_epics_host_arch%"
1331+ )
1332+)
1333+
1334+rem Don't leak variables into the environment
1335+set _auto=
1336+set _auto_path_reset=
1337+set _auto_path_append=
1338+set _path_new=
1339+set _strawberry_perl_home=
1340+set _visual_studio_home=
1341+set _epics_host_arch=
1342+set _epics_base=

Subscribers

People subscribed via source and target branches