1 ?X: These units are based on the ones supplied with dist-3.0
2 ?X: patchlevel 22. They have been changed or enhanced to work with
3 ?X: perl5alpha. I would appreciate hearing about any changes,
4 ?X: corrections, or enhancements.
5 ?X: Andy Dougherty doughera@lafcol.lafayette.edu
8 ?X: Easton, PA 18042-1782
9 ?X: Sat Apr 2 15:45:17 EST 1994
10 ?RCS: $Id: Loc.U,v 3.0.1.3 1994/01/24 14:01:44 ram Exp $
12 ?RCS: Copyright (c) 1991-1993, Raphael Manfredi
14 ?RCS: You may redistribute only under the terms of the Artistic Licence,
15 ?RCS: as specified in the README file that comes with the distribution.
16 ?RCS: You may reuse parts of this distribution only within the terms of
17 ?RCS: that same Artistic Licence; a copy of which may be found at the root
18 ?RCS: of the source tree for dist 3.0.
20 ?RCS: Revision 3.0.1.3 1994/01/24 14:01:44 ram
21 ?RCS: patch16: added metalint hint on changed PATH variable
23 ?RCS: Revision 3.0.1.2 1993/12/15 08:16:52 ram
24 ?RCS: patch15: now set _test variable when test is built-in
25 ?RCS: patch15: fixed rare cases where echo is not needed
27 ?RCS: Revision 3.0.1.1 1993/09/13 15:47:13 ram
28 ?RCS: patch10: test program not always in /bin/test (WAD)
30 ?RCS: Revision 3.0 1993/08/18 12:05:05 ram
31 ?RCS: Baseline for dist 3.0 netwide release.
34 ?X: This unit produces a shell script "loc" which can be used to find out
35 ?X: where in a list of directories something is. It then uses loc to
36 ?X: determine the location of commonly used programs. It leaves loc sitting
37 ?X: around for other Configure units to use, but arranges for its demise
38 ?X: at the end of Configure.
40 ?X: To add a new program to find, add it both to the ?MAKE: line and to either
41 ?X: the loclist or trylist variable.
43 ?X: I put startsh at the end of the dependency list, in order to avoid the
44 ?X: loading of the spitshell unit before the instructions.
46 ?MAKE:Loc Mcc awk bash bison byacc cat chgrp chmod chown compress cp cpio \
47 cpp csh date echo egrep emacs expr find flex gcc grep inews ksh \
48 less line lint ln lp lpr ls mail mailx make mkdir more mv nroff \
49 perl pg pmake pr rm rmail sed sendmail sh shar sleep smail sort \
50 submit tail tar tbl test touch tr troff uname uniq uuname vi \
51 zcat: eunicefix n c Instruct Myread startsh
52 ?MAKE: -pick weed $@ %<
53 ?LINT:describe Loc Mcc awk bash bison byacc cat chgrp chmod chown compress \
54 cp cpio cpp csh date echo egrep emacs expr find flex gcc grep \
55 inews ksh less line lint ln lp lpr ls mail mailx make mkdir more \
56 mv nroff perl pg pmake pr rm rmail sed sendmail sh shar sleep \
57 smail sort submit tail tar tbl test touch tr troff uname uniq \
59 ?V::pth loclist trylist
60 ?T:thing xxx dir file say _test
62 : find out where common programs are
64 echo "Locating common programs..." >&4
77 if test -d \$dir/\$thing; then
83 if test -f \$dir/\$thing; then
86 elif test -f \$dir/\$thing.exe; then
87 : on Eunice apparently
168 ?LINT:set Loc Mcc awk bash bison byacc cat chgrp chmod chown compress cp cpio cpp \
169 csh date echo egrep emacs expr flex gcc grep inews ksh less line lint ln \
170 lp lpr ls mail mailx make mkdir more mv nroff perl pg pmake pr rm rmail \
171 sed sendmail sh shar sleep smail sort submit tail tar tbl test touch tr \
172 troff uname uniq uuname vi zcat
173 pth=`echo $PATH | sed -e 's/:/ /g'`
174 pth="$pth /lib /usr/lib"
175 for file in $loclist; do
176 xxx=`./loc $file $file $pth`
181 echo $file is in $xxx.
184 echo "I don't know where $file is. I hope it's in everyone's PATH."
189 echo "Don't worry if any of the following aren't found..."
191 for file in $trylist; do
192 xxx=`./loc $file $file $pth`
197 echo $file is in $xxx.
200 echo "I don't see $file out there, $say."
207 echo "Substituting grep for egrep."
213 echo "Hopefully test is built into your sh."
216 if sh -c "PATH= test true" >/dev/null 2>&1; then
217 echo "Using the test built into your sh."
219 ?X: We need to set both test and _test, since Oldconfig.U will use the _test
220 ?X: value to systematically restore computed paths, which may be wrong if
221 ?X: we choose to load an old config.sh generated on another platform.
231 echo "Hopefully echo is built into your sh."
233 ?X: For those rare cases where we don't need $echo...
237 echo "Checking compatibility between $echo and builtin echo (if any)..." >&4
238 $echo $n "hi there$c" >foo1
239 echo $n "hi there$c" >foo2
240 if cmp foo1 foo2 >/dev/null 2>&1; then
241 echo "They are compatible. In fact, they may be identical."
248 They are not compatible! You are probably running ksh on a non-USG system.
249 I'll have to use $echo instead of the builtin, since Bourne shell doesn't
250 have echo built in and we may have to run some Bourne shell scripts. That
251 means I'll have to use '$n$c' to suppress newlines now. Life is ridiculous.
254 $echo $n "The star should be here-->$c"