Imported from ../bash-1.14.7.tar.gz.

This commit is contained in:
Jari Aalto 1996-08-26 18:22:31 +00:00
commit 726f63884d
402 changed files with 150297 additions and 0 deletions

22
support/PORTING Normal file
View file

@ -0,0 +1,22 @@
if _mkfifo cannot be found, add "-DMKFIFO_MISSING" to SYSDEP_CFLAGS in
your machine's entry in machines.h.
If bash compiles, but hangs when executing a non-builtin, there is a
problem with the defines in your /usr/include/sys/wait.h. If you
don't have one, there is a problem in our defines. At any rate,
perhaps you have a partially POSIX system, instead of a fully
operational one. Try defining _POSIX_SOURCE just before the inclusion
of <sys/wait.h> in jobs.h, and then undefining it immediately after
the inclusion.
Finding out if your system has something (like setpgid, for example)
You can always do "nm -o /lib/*.a | grep setpgid". If an entry for
the function appears, you have it, and you might have to link with
that library by adding "#defined REQUIRED_LIBRARIES -lfoo" to the
entry in machines.h.
If you seem to be going around in circles, and they are related to
job control and posixness, try #undef HAVE_UNISTD_H in the entry for
your machine in machines.h. This can work by keeping unistd.h from
defining _POSIX_VERSION, which in turn prevents bash from assuming
full Posix semantics.

23
support/SYMLINKS Normal file
View file

@ -0,0 +1,23 @@
#
# symlink map for bash source tree
#
# link name link target
#
lib/readline/doc/texindex.c ../../doc-support/texindex.c
#
lib/readline/tilde.c ../tilde/tilde.c
lib/readline/tilde.h ../tilde/tilde.h
lib/readline/posixstat.h ../posixheaders/posixstat.h
lib/readline/ansi_stdlib.h ../posixheaders/ansi_stdlib.h
lib/readline/memalloc.h ../posixheaders/memalloc.h
lib/readline/xmalloc.c ../malloc/xmalloc.c
#
lib/tilde/memalloc.h ../posixheaders/memalloc.h
#
lib/doc-support/getopt.h ../../builtins/getopt.h
#
posixstat.h lib/posixheaders/posixstat.h
ansi_stdlib.h lib/posixheaders/ansi_stdlib.h
stdc.h lib/posixheaders/stdc.h
memalloc.h lib/posixheaders/memalloc.h
filecntl.h lib/posixheaders/filecntl.h

59
support/bash.xbm Normal file
View file

@ -0,0 +1,59 @@
From: Simon Marshall <sm2@sequent.cc.hull.ac.uk>
Date: Wed, 8 May 91 17:15:58 +0100
To: bug-bash@ai.mit.edu
Subject: X bitmap for bash
Since other GNU software comes with its very own X bitmap, I
thought it was about time bash had one too & here it is! To use,
stick the stuff after my signature in a file <path>/bash.xbm. If
using a twm window manager, insert the lines:
IconDirectory "<path>"
Icons {
"<xterm title>" "bash.xbm"
}
in your ~/.twmrc file. The <xterm title> can be a prefix, so if
you have titles "bash@machine", the prefix "bash" will do. I'm not
familiar enough with other window managers, but they should be
similar.
If you like it, you're welcome to it...
Simon.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define bash_width 64
#define bash_height 48
static char bash_bits[] = {
0x00, 0x60, 0x06, 0x30, 0x04, 0x00, 0x00, 0x00, 0x60, 0x98, 0x01, 0x40,
0x03, 0x00, 0x00, 0x00, 0x19, 0x00, 0xa0, 0x80, 0x80, 0xff, 0x00, 0x00,
0x06, 0x00, 0x1c, 0x03, 0xe1, 0x5f, 0x03, 0x00, 0x02, 0x00, 0x22, 0x0c,
0x5d, 0xf4, 0x0e, 0x00, 0xe1, 0x02, 0x09, 0x19, 0x17, 0x91, 0x3d, 0x00,
0xf8, 0x87, 0x40, 0x90, 0x88, 0x88, 0x6e, 0x00, 0x8e, 0x9b, 0x04, 0x62,
0x22, 0x22, 0xd6, 0x00, 0x02, 0xee, 0x4c, 0x68, 0x44, 0x44, 0x6c, 0x01,
0x02, 0xf8, 0xa1, 0x4a, 0x11, 0x11, 0xb1, 0x02, 0x05, 0xa0, 0x22, 0xe0,
0x88, 0x88, 0x68, 0x03, 0x42, 0x50, 0x5d, 0x40, 0x22, 0x22, 0xa2, 0x05,
0x11, 0x81, 0x00, 0x44, 0x44, 0x44, 0x44, 0x07, 0x02, 0x20, 0x84, 0x60,
0x11, 0x11, 0xd1, 0x0d, 0x02, 0x0a, 0x02, 0xc0, 0x88, 0x88, 0x48, 0x0b,
0x44, 0x40, 0x00, 0x42, 0x22, 0x22, 0xa2, 0x1d, 0x24, 0x08, 0x02, 0x64,
0x44, 0x44, 0xc4, 0x1a, 0x08, 0x00, 0x20, 0x20, 0x11, 0x11, 0x91, 0x15,
0x88, 0x00, 0x00, 0xe1, 0xff, 0xff, 0xff, 0x1a, 0x10, 0x08, 0x22, 0x10,
0x00, 0x00, 0xc0, 0x15, 0x31, 0x40, 0x00, 0xf2, 0x03, 0xc0, 0xc1, 0x1a,
0x41, 0x24, 0x48, 0x6c, 0x06, 0x80, 0xc1, 0x15, 0x82, 0x01, 0x00, 0x66,
0x06, 0x80, 0xc1, 0x1a, 0x04, 0x22, 0x12, 0x67, 0x06, 0x80, 0xc1, 0x15,
0x0a, 0x04, 0xe0, 0x66, 0xe6, 0xb8, 0xc7, 0x1a, 0x09, 0xf0, 0x17, 0xee,
0xb3, 0xa5, 0xcf, 0x15, 0x30, 0x00, 0x00, 0x6e, 0x86, 0x8d, 0xcd, 0x1a,
0x00, 0x01, 0x80, 0x67, 0xe6, 0xbd, 0xcd, 0x15, 0x00, 0x46, 0x40, 0x66,
0xb6, 0xb1, 0xcd, 0x1a, 0x00, 0x38, 0x3c, 0x66, 0xb6, 0xa5, 0xcd, 0x15,
0x00, 0x00, 0x02, 0xf6, 0xe3, 0x9d, 0xdd, 0x1a, 0x00, 0x04, 0x60, 0x06,
0x00, 0x00, 0xc0, 0x15, 0x00, 0x04, 0x40, 0xfe, 0xff, 0xff, 0xff, 0x1a,
0x00, 0x02, 0x80, 0x12, 0x11, 0x11, 0x91, 0x15, 0x00, 0x00, 0x00, 0x8a,
0x88, 0x88, 0x88, 0x1a, 0x00, 0x00, 0x00, 0x22, 0x22, 0x22, 0xa2, 0x15,
0x00, 0x00, 0x00, 0x46, 0x44, 0x44, 0xc4, 0x9a, 0x00, 0x00, 0x00, 0x12,
0x11, 0x11, 0x91, 0xb5, 0x00, 0x00, 0x10, 0x8a, 0x88, 0x88, 0x88, 0xba,
0x00, 0x00, 0x10, 0x22, 0x22, 0x22, 0xa2, 0xd5, 0x00, 0x00, 0x30, 0xc6,
0x44, 0x44, 0xcc, 0xdf, 0x00, 0x20, 0x39, 0x96, 0x15, 0x51, 0x99, 0xf5,
0x80, 0xf2, 0x56, 0x8b, 0x9a, 0xea, 0x9b, 0xff, 0xc1, 0xad, 0x5e, 0xaf,
0xbb, 0xfa, 0xba, 0xdf, 0x22, 0x9b, 0xae, 0xd7, 0x54, 0x5d, 0xd7, 0xbf,
0x3b, 0x32, 0xce, 0xff, 0xff, 0xff, 0xff, 0xab, 0xae, 0x2b, 0x59, 0xaf,
0xd4, 0xae, 0x2e, 0xc3, 0xdd, 0x43, 0xa9, 0xd1, 0xba, 0xae, 0x2c, 0xcd};

84
support/bashbug.sh Normal file
View file

@ -0,0 +1,84 @@
#!/bin/sh -
#
# bashbug - create a bug report and mail it to bug-bash@prep.ai.mit.edu
#
# configuration section:
# these variables are filled in by the make target in cpp-Makefile
#
MACHINE="@MACHINE@"
OS="@OS@"
CC="@CC@"
CFLAGS="@CFLAGS@"
RELEASE="@RELEASE@"
PATCHLEVEL="@PATCHLEVEL@"
PATH=/bin:/usr/bin:usr/local/bin:$PATH
export PATH
TEMP=/tmp/bashbug.$$
BUGADDR=${1-bug-bash@prep.ai.mit.edu}
: ${EDITOR=emacs}
trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15
trap 'rm -f $TEMP $TEMP.x' 0
UN=
if (uname) >/dev/null 2>&1; then
UN=`uname -a`
fi
if [ -f /usr/lib/sendmail ] ; then
RMAIL="/usr/lib/sendmail"
elif [ -f /usr/sbin/sendmail ] ; then
RMAIL="/usr/sbin/sendmail"
else
RMAIL=rmail
fi
cat > $TEMP <<EOF
From: ${USER}
To: ${BUGADDR}
Subject: [50 character or so descriptive subject here (for reference)]
Configuration Information [Automatically generated, do not change]:
Machine: $MACHINE
OS: $OS
Compiler: $CC
Compilation CFLAGS: $CFLAGS
uname output: $UN
Bash Version: $RELEASE
Patch Level: $PATCHLEVEL
Description:
[Detailed description of the problem, suggestion, or complaint.]
Repeat-By:
[Describe the sequence of events that causes the problem
to occur.]
Fix:
[Description of how to fix the problem. If you don't know a
fix for the problem, don't include this section.]
EOF
chmod u+w $TEMP
cp $TEMP $TEMP.x
if $EDITOR $TEMP
then
if cmp -s $TEMP $TEMP.x
then
echo "File not changed, no bug report submitted."
exit
fi
${RMAIL} $BUGADDR < $TEMP || {
cat $TEMP >> $HOME/dead.bashbug
echo "$0: mail failed: report saved in $HOME/dead.bashbug" >&2
}
fi
exit 0

16
support/cat-s Normal file
View file

@ -0,0 +1,16 @@
# This awk script is called from within Makefile to strip multiple blank
# lines from stdin.
BEGIN { newlines = 0 }
{
if (NF == 0)
newlines = 1;
else
{
if (newlines)
{
printf "\n";
newlines = 0;
}
print $0;
}
}

95
support/clone-bash Executable file
View file

@ -0,0 +1,95 @@
#! /bin/sh
#
#
src=src
case "$1" in
-s) shift; src=$1; shift ;;
esac
if [ ! -d $1 ]; then
mkdir $1
fi
prog=`basename $0`
echo "${prog}: creating clone of bash source tree (from $src) in $1"
case $src in
/*) abs=yes ;;
esac
d=${PWD-`pwd`}
cd $1 || { echo "$0: cannot cd to $1" ; exit 1; }
d=$d/$1
SUBDIRS="CWRU builtins documentation examples support tests"
LIBDIRS="malloc termcap glob readline tilde malloclib posixheaders doc-support"
CWRUDIRS="misc"
mkdir $SUBDIRS
for i in $SUBDIRS
do
cd $i
case "$abs" in
yes) ln -s $src/$i/* . ;;
*) ln -s ../../$src/$i/* . ;;
esac
echo -n $i..
cd ..
done
cd $d
cd CWRU
for i in $CWRUDIRS
do
rm -f $i
mkdir $i
cd $i
case "$abs" in
yes) ln -s $src/CWRU/$i/* . ;;
*) ln -s ../../../$src/CWRU/$i/* . ;;
esac
echo -n "CWRU/$i.."
cd ..
done
cd $d
if [ ! -d lib ] ; then
mkdir lib
fi
cd lib
mkdir $LIBDIRS
for i in $LIBDIRS
do
cd $i
case "$abs" in
yes) ln -s $src/lib/$i/* . ;;
*) ln -s ../../../$src/lib/$i/* . ;;
esac
echo -n "lib/$i.."
cd ..
done
cd $d
case "$abs" in
yes) ln -s $src/.[a-z]* . ; ln -s $src/* . 2>&1 | grep -v exists ;;
*) ln -s ../$src/.[a-z]* . ; ln -s ../$src/* . 2>&1 | grep -v exists ;;
esac
echo -n src..
SPECIAL="parser-built y.tab.h y.tab.c"
for x in $SPECIAL
do
rm -f $x
cp ../$src/$x .
done
echo special
exit 0

51
support/cppmagic Executable file
View file

@ -0,0 +1,51 @@
#!/bin/sh
# Return a full cpp specification, complete with system dependent flags.
#
# Syntax: cppmagic [ program-to-generate-flags [ guessed-cpp ]]
#
# If only one arg is present it is the name of a program to invoke
# which should generate -Dfoo defines.
#
# If two args are present the second arg is the name of the C
# preprocessor to use.
#
# Invoked with no args, provides a C preprocessor name and
# -traditional flag if that is appropriate.
#
# ../Makefile calls this file thusly: "cppmagic getcppsyms".
#
# Typical output:
#
# /lib/cpp -Dunix -Dm68k
#
Cpp=
if [ "$2" ]; then
Cpp=$2
else
for cpp in /lib/cpp /usr/lib/cpp /usr/ccs/lib/cpp; do
if [ -f $cpp ]; then
Cpp=$cpp
fi
done
if [ "$Cpp" = "" ]; then
Cpp=cpp
fi
fi
TRADITIONAL=
FLAGS=
# First flag might be `-traditional' if this is Gnu Cpp.
unknown_flag=`$Cpp -traditional /dev/null 2>&1 |
egrep 'known|recognized|valid|bad|legal'`
if [ "$unknown_flag" = "" ]; then
TRADITIONAL=-traditional
fi
if [ "$1" ]; then
FLAGS=`$1`
fi
echo $Cpp $TRADITIONAL $FLAGS

61
support/fixlinks Executable file
View file

@ -0,0 +1,61 @@
#! /bin/sh
#
# fixlinks - make symlinks in the bash source tree so that there is
# exactly one version of any given source file.
#
#
SRCDIR=.
while [ $# -gt 0 ]; do
case "$1" in
-s) shift; SRCDIR=$1 ;;
-u) unfix=yes ;;
-*) echo "$0: $1: bad option" 1>&2
echo "$0: usage: $0 [-u] [-s srcdir] [linkmap]" 1>&2
exit 1;;
*) break ;;
esac
shift
done
if [ ! -d $SRCDIR/builtins ]; then
echo "$0: must be run with valid -s argument or from source directory" 1>&2
exit 1
fi
if [ $# -eq 0 ]; then
linkfile=$SRCDIR/support/SYMLINKS
else
linkfile=$1
fi
if [ ! -f "$linkfile" ]; then
echo "$0: symlink map file \`$linkfile' does not exist"
exit 1
fi
rm -f /tmp/z
if (ln -s /dev/null /tmp/z) >/dev/null 2>&1; then
LN="ln -s"
else
LN=ln
fi
while read name target
do
case "$name" in
\#*) continue;;
esac
rm -f $name
case "$unfix" in
yes) dirname=`expr "$name" ':' '^\(.*\)/[^/]*'`
[ -z "$dirname" ] && dirname=.
cp $dirname/$target $name
echo $target copied to $name ;;
*) $LN $target $name ; echo "$name -> $target" ;;
esac
done < $linkfile
exit 0

428
support/getcppsyms.c Normal file
View file

@ -0,0 +1,428 @@
/* getcppsyms.c - Find unique compiler symbols. */
/* Copyright (C) 1993 Free Software Foundation, Inc.
This file is part of GNU Bash, the Bourne Again SHell.
Bash is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
Bash is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License along
with Bash; see the file COPYING. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* Some cpp's do not define any symbols, but instead let /bin/cc do it
for them. For such machines, running this file may prove useful. It
outputs the list of symbols which /bin/cc or /lib/cpp define and which
we had the foresight to guess at. */
#include <stdio.h>
main ()
{
#if defined (__BSD_4_4__)
printf ("-D__BSD_4_4__");
#endif /* __BSD_4_4__ */
#if defined (CMU)
printf (" -DCMU");
#endif /* CMU */
#if defined (_COFF)
printf (" -D_COFF");
#endif /* _COFF */
#if defined (DGUX)
printf (" -DDGUX");
#endif /* DGUX */
#if defined (GOULD_PN)
printf (" -DGOULD_PN");
#endif /* GOULD_PN */
#if defined (MACH)
printf (" -DMACH");
#endif /* MACH */
#if defined (MIPSEB)
printf (" -DMIPSEB");
#endif /* MIPSEB */
#if defined (MIPSEL)
printf (" -DMIPSEL");
#endif /* MIPSEL */
#if defined (MULTIMAX)
printf (" -DMULTIMAX");
#endif /* MULTIMAX */
#if defined (M_UNIX)
printf (" -DM_UNIX");
#endif /* M_UNIX */
#if defined (M_XENIX)
printf (" -DM_XENIX");
#endif /* M_XENIX */
#if defined (_M_XENIX)
printf (" -D_M_XENIX");
#endif /* _M_XENIX */
#if defined (NeXT)
printf (" -DNeXT");
#endif /* NeXT */
#if defined (__PARAGON__)
printf (" -D__PARAGON__");
#endif /* __PARAGON__ */
#if defined (_PGC_)
printf (" -D_PGC_");
#endif /* _PGC_ */
#if defined (__PGC__)
printf (" -D__PGC__");
#endif /* __PGC__ */
#if defined (RES)
printf (" -DRES");
#endif /* RES */
#if defined (RISC6000)
printf (" -DRISC6000");
#endif /* RISC6000 */
#if defined (RT)
printf (" -DRT");
#endif /* RT */
#if defined (SYSTYPE_BSD)
printf (" -DSYSTYPE_BSD");
#endif /* SYSTYPE_BSD */
#if defined (SYSTYPE_SYSV)
printf (" -DSYSTYPE_SYSV");
#endif /* SYSTYPE_SYSV */
#if defined (Sun386i)
printf (" -DSun386i");
#endif /* Sun386i */
#if defined (Tek4132)
printf (" -DTek4132");
#endif /* Tek4132 */
#if defined (Tek4300)
printf (" -DTek4300");
#endif /* Tek4300 */
#if defined (UMAXV)
printf (" -DUMAXV");
#endif /* UMAXV */
#if defined (USGr4)
printf (" -DUSGr4");
#endif /* USGr4 */
#if defined (USGr4_2)
printf (" -DUSGr4_2");
#endif /* USGr4_2 */
#if defined (__SVR4_2__)
printf (" -D__SVR4_2__");
#endif /* __SVR4_2__ */
#if defined (Xenix286)
printf (" -DXenix286");
#endif /* Xenix286 */
#if defined (_AIX)
printf (" -D_AIX");
#endif /* _AIX */
#if defined (_AIX370)
printf (" -D_AIX370");
#endif /* _AIX370 */
#if defined (_IBMESA)
printf (" -D_IBMESA");
#endif /* _IBMESA */
#if defined (__ibmesa)
printf (" -D__ibmesa");
#endif /* __ibmesa */
#if defined (_U370)
printf (" -D_U370");
#endif /* _U370 */
#if defined (_NLS)
printf (" -D_NLS");
#endif /* _NLS */
#if defined (_CX_UX)
printf (" -D_CX_UX");
#endif /* _CX_UX */
#if defined (_IBMR2)
printf (" -D_IBMR2");
#endif /* _IBMR2 */
#if defined (_M88K)
printf (" -D_M88K");
#endif /* _M88K */
#if defined (_M88KBCS_TARGET)
printf (" -D_M88KBCS_TARGET");
#endif /* _M88KBCS_TARGET */
#if defined (__DGUX__)
printf (" -D__DGUX__");
#endif /* __DGUX__ */
#if defined (__UMAXV__)
printf (" -D__UMAXV__");
#endif /* __UMAXV__ */
#if defined (__m88k)
printf (" -D__m88k");
#endif /* __m88k */
#if defined (__uxpm__)
printf (" -DUSGr4 -Du370 -D__uxpm__");
#endif /* __uxpm__ */
#if defined (__uxps__)
printf (" -D__svr4__ -D__uxps__");
#endif /* __uxps__ */
#if defined (alliant)
printf (" -Dalliant");
#endif /* alliant */
#if defined (alpha)
printf (" -Dalpha");
#endif /* alpha */
#if defined (__alpha)
printf (" -D__alpha");
#endif /* __alpha */
#if defined (aix)
printf (" -Daix");
#endif /* aix */
#if defined (aixpc)
printf (" -Daixpc");
#endif /* aixpc */
#if defined (apollo)
printf (" -Dapollo");
#endif /* apollo */
#if defined (ardent)
printf (" -Dardent");
#endif /* ardent */
#if defined (att386)
printf (" -Datt386");
#endif /* att386 */
#if defined (att3b)
printf (" -Datt3b");
#endif /* att3b */
#if defined (bsd4_2)
printf (" -Dbsd4_2");
#endif /* bsd4_2 */
#if defined (bsd4_3)
printf (" -Dbsd4_3");
#endif /* bsd4_3 */
#if defined (__bsdi__)
printf (" -D__bsdi__");
#endif /* __bsdi__ */
#if defined (bsdi)
printf (" -Dbsdi");
#endif /* bsdi */
#if defined (__386BSD__)
printf (" -D__386BSD__");
#endif /* __386BSD__ */
#if defined (cadmus)
printf (" -Dcadmus");
#endif /* cadmus */
#if defined (clipper)
printf (" -Dclipper");
#endif /* clipper */
#if defined (concurrent)
printf (" -Dconcurrent");
#endif /* concurrent */
#if defined (convex) || defined (__convex__) || defined (__convexc__)
# if !defined (__GNUC__)
printf (" -pcc");
# endif /* !__GNUC__ */
printf (" -Dconvex");
#endif /* convex */
#if defined (dmert)
printf (" -Ddmert");
#endif /* dmert */
#if defined (gcos)
printf (" -Dgcos");
#endif /* gcos */
#if defined (gcx)
printf (" -Dgcx");
#endif /* gcx */
#if defined (gould)
printf (" -Dgould");
#endif /* gould */
#if defined (hbullx20)
printf (" -Dhbullx20");
#endif /* hbullx20 */
#if defined (hcx)
printf (" -Dhcx");
#endif /* hcx */
#if defined (host_mips)
printf (" -Dhost_mips");
#endif /* host_mips */
#if defined (hp9000) || defined (__hp9000)
printf (" -Dhp9000");
#endif /* hp9000 || __hp9000 */
#if defined (hp9000s200) || defined (__hp9000s200)
printf (" -Dhp9000s200");
#endif /* hp9000s200 || __hp9000s200 */
#if defined (hp9000s300) || defined (__hp9000s300)
printf (" -Dhp9000s300");
#endif /* hp9000s300 || __hp9000s300 */
#if defined (hp9000s500) || defined (__hp9000s500)
printf (" -Dhp9000s500");
#endif /* hp9000s500 || __hp9000s500 */
#if defined (hp9000s700) || defined (__hp9000s700)
printf (" -Dhp9000s700");
#endif /* hp9000s700 || __hp9000s700 */
#if defined (hp9000s800) || defined (__hp9000s800)
printf (" -Dhp9000s800");
#endif /* hp9000s800 || __hp9000s800 */
#if defined (hppa) || defined (__hppa)
printf (" -Dhppa");
#endif /* hppa || __hppa */
#if defined (hpux) || defined (__hpux)
printf (" -Dhpux");
#endif /* hpux */
#if defined (__hp_osf)
printf (" -D__hp_osf");
#endif /* __hp_osf */
#if defined (i386)
printf (" -Di386");
#endif /* i386 */
#if defined (__i386__)
printf (" -D__i386__");
#endif
#if defined (__i860)
printf(" -D__i860");
#endif /* __i860 */
#if defined (__i860__)
printf(" -D__i860__");
#endif /* __i860__ */
#if defined (ibm)
printf (" -Dibm");
#endif /* ibm */
#if defined (ibm032)
printf (" -Dibm032");
#endif /* ibm032 */
#if defined (ibmrt)
printf (" -Dibmrt");
#endif /* ibmrt */
#if defined (interdata)
printf (" -Dinterdata");
#endif /* interdata */
#if defined (is68k)
printf (" -Dis68k");
#endif /* is68k */
#if defined (ksr1)
printf (" -Dksr1");
#endif /* ksr1 */
#if defined (__ksr1__)
printf (" -D__ksr1__");
#endif /* __ksr1__ */
#if defined (linux)
printf (" -Dlinux");
#endif /* linux */
#if defined (__linux__)
printf (" -D__linux__");
#endif /* __linux__ */
#if defined (luna88k)
printf (" -Dluna88k");
#endif /* luna88k */
#if defined (m68k)
printf (" -Dm68k");
#endif /* m68k */
#if defined (m88k)
printf (" -Dm88k");
#endif /* m88k */
#if defined (mc68010)
printf (" -Dmc68010");
#endif /* mc68010 */
#if defined (mc68020)
printf (" -Dmc68020");
#endif /* mc68020 */
#if defined (mc68030)
printf (" -Dmc68030");
#endif /* mc68030 */
#if defined (mc68040)
printf (" -Dmc68040");
#endif /* mc68040 */
#if defined (mc68k32)
printf (" -Dmc68k32");
#endif /* mc68k32 */
#if defined (mips)
printf (" -Dmips");
#endif /* mips */
#if defined (n16)
printf (" -Dn16");
#endif /* n16 */
#if defined __nonstopux
printf (" -D__nonstopux");
#endif
#if defined (ns32000)
printf (" -Dns32000");
#endif /* ns32000 */
#if defined (os)
printf (" -Dos");
#endif /* os */
#if defined (osf)
printf (" -Dosf");
#endif /* osf */
#if defined (__osf__)
printf (" -D__osf__");
#endif /* __osf__ */
#if defined (__OSF1__)
printf(" -D__OSF1__");
#endif /* __OSF1__ */
#if defined (pdp11)
printf (" -Dpdp11");
#endif /* pdp11 */
#if defined (plexus)
printf (" -Dplexus")
#endif /* plexus */
#if defined (pyr)
printf (" -Dpyr");
#endif /* pyr */
#if defined (scs)
printf (" -Dscs");
#endif /* scs */
#if defined (sequent)
printf (" -Dsequent");
#endif /* sequent */
#if defined (sgi)
printf (" -Dsgi");
#endif /* sgi */
#if defined (sony)
printf (" -Dsony");
#endif /* sony */
#if defined (sparc)
printf (" -Dsparc");
#endif /* sparc */
#if defined (stardent)
printf (" -Dstardent");
#endif /* stardent */
#if defined (sun)
printf (" -Dsun");
#endif /* sun */
#if defined (sun2)
printf (" -Dsun2");
#endif /* sun2 */
#if defined (sun3)
printf (" -Dsun3");
#endif /* sun3 */
#if defined (sun4)
printf (" -Dsun4");
#endif /* sun4 */
#if defined (__svr4__)
printf (" -D__svr4__");
#endif /* __svr4__ */
#if defined (tower32)
printf (" -Dtower32");
#endif /* tower32 */
#if defined (tss)
printf (" -Dtss");
#endif /* tss */
#if defined (u370)
printf (" -Du370");
#endif /* u370 */
#if defined (u3b)
printf (" -Du3b");
#endif /* u3b */
#if defined (u3b2)
printf (" -Du3b2");
#endif /* u3b2 */
#if defined (u3b20d)
printf (" -Du3b20d");
#endif /* u3b20d */
#if defined (u3b5)
printf (" -Du3b5");
#endif /* u3b5 */
#if defined (ultrix)
printf (" -Dultrix");
#endif /* ultrix */
#if defined (unix)
printf (" -Dunix");
#endif /* unix */
#if defined (vax)
printf (" -Dvax");
#endif /* vax */
printf ("\n");
exit (0);
}

19
support/inpath Executable file
View file

@ -0,0 +1,19 @@
#! /bin/sh
#
# Search $PATH for a file the same name as $1; return TRUE if found.
#
command=$1
[ -n "$command" ] || exit 1
set `echo $PATH | sed 's/^:/.:/
s/::/:.:/g
s/:$/:./
s/:/ /g'`
while [ $# -ne 0 ] ; do
[ -f $1/$command ] && exit 0 # test -x not universal
shift
done
exit 1

235
support/install.sh Executable file
View file

@ -0,0 +1,235 @@
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5.
#
# $XConsortium: install.sh,v 1.2 89/12/18 14:47:22 jim Exp $
#
# This script is compatible with the BSD install script, but was written
# from scratch.
#
# set DOITPROG to echo to test this script
# Don't use :- since 4.3BSD and earlier shells don't like it.
doit="${DOITPROG-}"
# put in absolute paths if you don't have them in your path; or use env. vars.
mvprog="${MVPROG-mv}"
cpprog="${CPPROG-cp}"
chmodprog="${CHMODPROG-chmod}"
chownprog="${CHOWNPROG-chown}"
chgrpprog="${CHGRPPROG-chgrp}"
stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
tranformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
chowncmd=""
chgrpcmd=""
stripcmd=""
rmcmd="$rmprog -f"
mvcmd="$mvprog"
src=""
dst=""
dir_arg=""
while [ x"$1" != x ]; do
case $1 in
-c) instcmd="$cpprog"
shift
continue;;
-d) dir_arg=true
shift
continue;;
-m) chmodcmd="$chmodprog $2"
shift
shift
continue;;
-o) chowncmd="$chownprog $2"
shift
shift
continue;;
-g) chgrpcmd="$chgrpprog $2"
shift
shift
continue;;
-s) stripcmd="$stripprog"
shift
continue;;
-t=*) transformarg=`echo $1 | sed 's/-t=//'`
shift
continue;;
-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
shift
continue;;
*) if [ x"$src" = x ]
then
src=$1
else
# this colon is to work around a 386BSD /bin/sh bug
:
dst=$1
fi
shift
continue;;
esac
done
if [ x"$src" = x ]
then
echo "install: no input file specified"
exit 1
else
true
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
if [ -d $dst ]; then
instcmd=:
else
instcmd=mkdir
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
true
else
echo "install: $src does not exist"
exit 1
fi
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
true
fi
# If destination is a directory, append the input filename; if your system
# does not like double slashes in filenames, you may need to add some logic
if [ -d $dst ]
then
dst="$dst"/`basename $src`
else
true
fi
fi
## this sed command emulates the dirname command
dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Make sure that the destination directory exists.
# this part is taken from Noah Friedman's mkinstalldirs script
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
# Some sh's can't handle IFS=/ for some reason.
IFS='%'
set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
IFS="${oIFS}"
pathcomp=''
while [ $# -ne 0 ] ; do
pathcomp="${pathcomp}${1}"
shift
if [ ! -d "${pathcomp}" ] ;
then
$mkdirprog "${pathcomp}"
else
true
fi
pathcomp="${pathcomp}/"
done
fi
if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
else
# If we're going to rename the final executable, determine the name now.
if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
true
fi
# Make a temp file name in the proper directory.
dsttmp=$dstdir/#inst.$$#
# Move or copy the file name to the temp name
$doit $instcmd $src $dsttmp &&
trap "rm -f ${dsttmp}" 0 &&
# and set any options; do chmod last to preserve setuid bits
# If any of these fail, we abort the whole thing. If we want to
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
$doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
exit 0

29
support/mkdirs Executable file
View file

@ -0,0 +1,29 @@
#! /bin/sh
#
# mkdirs - a work-alike for `mkdir -p'
#
# Chet Ramey
# chet@po.cwru.edu
for dir
do
[ -d "$dir" ] && continue
tomake=$dir
while [ "$dir" ]; do
# dir=${dir%/*}
# dir=`expr "$dir" ':' '^\(/.*\)/[^/]*'`
dir=`expr "$dir" ':' '^\(.*\)/[^/]*'`
tomake="$dir $tomake"
done
for d in $tomake
do
[ -d $d ] && continue
echo mkdir $d
mkdir $d
done
done
exit 0

41
support/mklinks Executable file
View file

@ -0,0 +1,41 @@
# Yet another script which requires an already built Bash.
#
# This makes links in the current directory to the directory specified as
# the first argument.
#
topdir=$1
if [ ! "$topdir" ]; then
echo "No directory specified. Read the script $0."
exit 1
fi
function clone_files ()
{
local dir=$1;
local files;
files=$(cd $dir; echo *);
if [ ! "$files" ]; then
return 0;
fi
for filename in $files; do
if [ -d $dir/$filename ]; then
# If the file to clone is this directory, then skip it.
if [ $(cd $dir/$filename; pwd) = $(pwd) ]; then
continue;
fi
mkdir $filename;
(cd $filename; clone_files ../$dir/$filename)
else
ln -s $dir/$filename .;
fi
done
rm -f \#* *~ .*~ *.bak .*.bak *.tmp .*.tmp *.o core a.out;
}
clone_files $topdir

279
support/mkmachtype Executable file
View file

@ -0,0 +1,279 @@
#!/bin/sh
# This script attempts to guess a canonical system name.
# Copyright (C) 1992, 1993 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit system type (host/target name).
#
# Only a few systems have been added to this list; please add others
# (but try to keep the structure clean).
#
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
alpha:OSF1:1.*:*)
# 1.2 uses "1.2" for uname -r.
echo alpha-dec-osf${UNAME_RELEASE}
exit 0 ;;
alpha:OSF1:V1.*:*)
# 1.3 uses "V1.3" for uname -r.
echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^V//'`
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
sun4*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:*:*)
echo sparc-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
mips:*:5*:RISCos)
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit 0 ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
echo m88k-dg-dgux${UNAME_RELEASE}
exit 0 ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit 0 ;;
*:IRIX:*:*)
echo mips-sgi-irix${UNAME_RELEASE}
exit 0 ;;
i[34]86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
*:AIX:2:3)
echo rs6000-ibm-aix3.2
exit 0 ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit 0 ;;
*:BOSX:*:*)
echo rs6000-bull-bosx
exit 0 ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit 0 ;;
9000/31?:HP-UX:*:*)
echo m68000-hp-hpux
exit 0 ;;
9000/[34]??:HP-UX:*:*)
echo m68k-hp-hpux
exit 0 ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit 0 ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
9000/7??:HP-UX:*:* | 9000/8?7:HP-UX:*:* )
echo hppa1.1-hp-hpux
exit 0 ;;
9000/8??:HP-UX:*:*)
echo hppa1.0-hp-hpux
exit 0 ;;
3050*:HI-UX:*:*)
sed 's/^ //' << EOF >dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit 0 ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
C1*:ConvexOS:*:*)
echo c1-convex-bsd
exit 0 ;;
C2*:ConvexOS:*:*)
echo c2-convex-bsd
exit 0 ;;
CRAY*X-MP:UNICOS:*:*)
echo xmp-cray-unicos
exit 0 ;;
CRAY*Y-MP:UNICOS:*:*)
echo ymp-cray-unicos
exit 0 ;;
CRAY-2:UNICOS:*:*)
echo cray2-cray-unicos
exit 0 ;;
hp3[0-9][05]:NetBSD:*:*)
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
i[34]86:NetBSD:*:*)
echo ${UNAME_MACHINE}-unknown-netbsd${UNAME_RELEASE}
exit 0 ;;
i[34]86:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux
exit 0 ;;
i[34]86:UNIX_SV:4.*:*)
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
else
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
i[34]86:*:3.2:*)
if /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
echo ${UNAME_MACHINE}-unknown-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-unknown-sysv3.2
fi
exit 0 ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
M680[234]0:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:*)
uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4 && exit 0 ;;
m680[234]0:LynxOS:2.2*:*)
echo m68k-lynx-lynxos${UNAME_RELEASE}
exit 0 ;;
i[34]86:LynxOS:2.2*:*)
echo i386-lynx-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.2*:*)
echo sparc-lynx-lynxos${UNAME_RELEASE}
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
cat >dummy.c <<EOF
main()
{
#if defined (sony)
#if defined (MIPSEB)
#else
printf("m68k-sony-newsos\n"); exit(0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf("arm-acorn-riscix"); exit (0);
#endif
#if defined(hp300) && !defined(hpux)
printf("m68k-hp-bsd\n"); exit(0);
#endif
#if defined(NeXT)
printf("m68k-next-bsd\n"); exit(0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf("ns32k-encore-sysv\n"); exit(0);
#else
#if defined (CMU)
printf("ns32k-encore-mach\n"); exit(0);
#else
printf("ns32k-encore-bsd\n"); exit(0);
#endif
#endif
#endif
#if defined(__386BSD__) || (defined(__bsdi__) && defined(__i386__))
printf("i386-unknown-bsd\n"); exit(0);
#endif
#if defined(sequent)
#if defined(i386)
printf("i386-sequent-dynix\n"); exit(0);
#endif
#if defined (ns32000)
printf("ns32k-sequent-dynix\n"); exit(0);
#endif
#endif
#if defined(_SEQUENT_)
printf("i386-sequent-ptx\n"); exit(0);
#endif
exit (1);
}
EOF
${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
rm -f dummy.c dummy
#echo '(Unable to guess system type)' 1>&2
exit 1

497
support/mksysdefs Executable file
View file

@ -0,0 +1,497 @@
#!/bin/sh
#
# This file creates a file called "sysdefs.h" which contains CPP defines
# helping to describe the operating system features. We just take guesses
# by looking at random files.
# Removes any inherited definitions.
SYSDEF=
MAKE_ANSI=
while [ $# -gt 0 ]; do
case "$1" in
-s) shift; srcdir=$1; shift ;;
-i) shift; incdir="$1"; shift ;;
-A) shift; MAKE_ANSI=true ;;
*) break ;;
esac
done
if [ -n "$1" ]; then
sysdefs=$1
else
sysdefs=./sysdefs.h
fi
if [ -z "$srcdir" ]; then
srcdir=.
fi
rm -f $sysdefs
echo "/* sysdefs.h -- #defines for your system created by $0." >>$sysdefs
echo " Do NOT EDIT this file, since any changes will disappear." >>$sysdefs
echo " Instead, edit $0, or config.h, or machines.h. */" >>$sysdefs
echo "" >>$sysdefs
echo "#if !defined (_SYSDEFS_H_)" >>$sysdefs
echo "# define _SYSDEFS_H_" >>$sysdefs
# was if [ -f /usr/bin/uname ] || [ -f /bin/uname ]
if ( uname >/dev/null 2>&1 ) 2>/dev/null
then
UNAME=`uname`
UNAME_R=`uname -r 2>/dev/null`
UNAME_M=`uname -m 2>/dev/null`
UNAME_V=`uname -v 2>/dev/null`
UNAME_S=`uname -s 2>/dev/null`
RELEASE=`expr "$UNAME_R" : '[^0-9]*\([0-9]*\)'`
case "$RELEASE" in
"") RELEASE=0 ;;
*) RELEASE=`expr "$RELEASE" + 0` ;;
esac
LEVEL=`expr "$UNAME_R" : '[^0-9]*[0-9]*.\([0-9]*\)'`
fi
# check for versions of SunOS and BSD/OS
case "${UNAME}${RELEASE}" in
SunOS4*) SYSDEF=SunOS4 ;;
SunOS5*) SYSDEF=SunOS5 ;;
BSD/OS2*) SYSDEF=BSDI2 ;;
esac
# Test for NeXT
if [ -d /NextLibrary ]; then
MAKE_ANSI=true
fi
# Intel Paragon
case "$UNAME_M" in
paragon) MAKE_ANSI=true ;;
esac
# Test for shared libraries (this is pretty sVr4ish).
if [ -f /usr/ccs/lib/libc.so ]; then
SYSDEF=USGr4
fi
# Some versions of i386 SVR4.2 make `uname' equivalent to `uname -n', which
# is contrary to all other versions of uname
if [ -n "$UNAME" ] && [ "$UNAME_S" != "$UNAME" ] && [ "$UNAME_S" = UNIX_SV ]; then
UNAME=UNIX_SV
fi
# (sound of teeth grinding...)
if [ "$UNAME" = "UNIX_SV" ] && [ "$UNAME_R" != "4.2" ] && [ "$RELEASE"."$LEVEL" = "4.2" ]; then
UNAME_R="4.2"
fi
# another check for SVR4 on 386 or 486 machines
case "${UNAME_M}:${UNAME}:${UNAME_R}" in
i[34]86:UNIX_SV:4.*) SYSDEF=USGr4 ;;
esac
# A check for Mips RISCos
case "$UNAME_V" in
UMIPS|RISCos) SYSDEF=RISCos_${RELEASE}_${LEVEL} ;;
esac
# A check for Amdahl UTS
case "$UNAME" in
uts) SYSDEF=UTS ;;
esac
# Look for an error message when trying to exec bison. If we find
# what we're looking for, then we don't have it. If we get something
# else (like an error message about no grammar file), then we have
# it.
HAVE_BISON=
if ( cd /tmp ; bison /dev/null 2>&1 >/dev/null | grep 'no input grammar' >/dev/null 2>&1 ) 2>/dev/null
then
HAVE_BISON=yes
fi
# Try to locate ranlib. I think this is a bad idea.
if sh ${srcdir}/support/inpath ranlib; then
RANLIB_LOCATION=ranlib
elif [ -f /usr/bin/ranlib ]; then
RANLIB_LOCATION=/usr/bin/ranlib;
elif [ -f /bin/ranlib ]; then
RANLIB_LOCATION=/bin/ranlib;
elif [ -f /usr/local/bin/ranlib ]; then
RANLIB_LOCATION=/usr/local/bin/ranlib;
elif [ -f /usr/local/gnubin/ranlib ]; then
RANLIB_LOCATION=/usr/local/gnubin/ranlib;
else
RANLIB_LOCATION=: # XXX
fi
if [ -n "${RANLIB_LOCATION}" ]; then
echo "" >>$sysdefs
echo "#if !defined (RANLIB_LOCATION)" >>$sysdefs
echo "# define RANLIB_LOCATION ${RANLIB_LOCATION}" >>$sysdefs
echo "#endif /* RANLIB_LOCATION */" >>$sysdefs
fi
#
# Is this a Xenix system?
#
if [ -f /xenix ]; then
SYSDEF="Xenix"
case "`/bin/uname -p`" in
*286) SYSDEF="Xenix286" ;;
*386) SYSDEF="Xenix386" ;;
esac
# make sure that `i386' is defined for machines.h
if [ "$SYSDEF" = "Xenix386" ]; then
echo "" >>$sysdefs
echo "#if !defined (i386)" >>$sysdefs
echo "# define i386" >>$sysdefs
echo "#endif /* !i386 */" >>$sysdefs
fi
# Pass the release number of the OS through to the machine descriptions
# in machines.h.
if [ -f /etc/perms/soft ]; then
rel=`grep rel= /etc/perms/soft`
case "$rel" in
*2.2.*) XREL=XENIX_22 ;;
*2.3.*) XREL=XENIX_23 ;;
*3.2.*) XREL=XENIX_32 ;;
*) XREL= ;;
esac
if [ "$XREL" ]; then
echo "" >>$sysdefs
echo "#if !defined ($XREL)" >>$sysdefs
echo "# define $XREL" >>$sysdefs
echo "#endif /* !$XREL */" >>$sysdefs
fi
fi
fi
#
# Is this some kind of Sys Vish system?
#
if [ -f /unix ]; then
if [ -d /generic ]; then # This is an AIX system.
SYSDEF="aixpc"
MAKE_ANSI=true
elif [ -d /etc/conf/kconfig.d ] && [ -f /usr/include/sys/limits.h ]; then
SYSDEF="isc386" # This is a 386 running ISC?
ISCREL="ISC_$RELEASE"
echo "#if !defined ($ISCREL)" >>$sysdefs
echo "# define $ISCREL" >>$sysdefs
echo "#endif /* $ISCREL */" >>$sysdefs
elif [ -f /etc/xlc.cfg ]; then
if fgrep _IBMR2 /etc/xlc.cfg >/dev/null 2>&1; then
SYSDEF=RISC6000
MAKE_ANSI=true
fi
elif [ -f /bin/4d -a -f /bin/uname ]; then
case "$UNAME_R" in
3.*) SYSDEF="Irix3" ;;
4.*) SYSDEF="Irix4" ;;
5.*) SYSDEF="Irix5" ;;
6.*) SYSDEF="Irix6" ;;
*) SYSDEF="Irix3" ;;
esac
elif [ -d /usr/amiga ]; then
SYSDEF="amiga" # An Amiga running V.4.
elif [ -f /bin/fxc.info ]; then
SYSDEF="alliant"
fi
fi
# Is this a Unicos system?
if [ -f /unicos ]; then
MAKE_ANSI=true
UnicosMachine=
# Test for the variaous flavors of Cray machines.
if [ -x /bin/cray1 ] && /bin/cray1 2>/dev/null; then
UnicosMachine=Cray1
fi
if [ -x /bin/cray2 ] && /bin/cray2 2>/dev/null; then
UnicosMachine=Cray2
fi
if [ -x /bin/crayxmp ] && /bin/crayxmp 2>/dev/null; then
UnicosMachine=CrayXMP
fi
if [ -x /bin/crayymp ] && /bin/crayymp 2>/dev/null; then
UnicosMachine=CrayYMP
fi
if [ "$UnicosMachine" ]; then
echo "#if !defined ($UnicosMachine)" >>$sysdefs
echo "# define $UnicosMachine" >>$sysdefs
echo "#endif /* !$UnicosMachine */" >>$sysdefs
fi
fi
# Is this (and what kind of) a HPUX system?
if [ -f /hp-ux ]; then
SYSDEF=HPUX_${RELEASE}
if [ "$RELEASE" = 6 -a "$LEVEL" -lt 2 ]; then
SYSDEF=HPUX_USG
fi
fi
if [ "$SYSDEF" = "" ]; then
case "$UNAME_M" in
ESA) SYSDEF=AIXESA ;;
XD88*) SYSDEF=XD88 ;;
M88100) SYSDEF=M88100 ;; # Motorola Delta 88K
esac
fi
if [ "$SYSDEF" = "" ]; then
case "$UNAME_V" in
V[0-9]*L[0-9]*) SYSDEF=UXP ;; # Fujitsu DS/90
esac
fi
# What release of SCO Unix is this?
if [ "$SYSDEF" = "" -a -f /bin/uname ]; then
case `/bin/uname -X 2>/dev/null | grep '^Release' 2>/dev/null` in
*3.2v4.*) SYSDEF=SCOv4 ;;
*3.2v5.*) SYSDEF=SCOv5 ;;
*) SYSDEF=SCO ;;
esac
fi
#
# Default to cadmus for unknown SysVish systems
#
if [ -f /unix ] && [ "$SYSDEF" = "" ]; then
SYSDEF="cadmus"
fi
if [ "$SYSDEF" != "" ]; then
echo "" >>$sysdefs
echo "#if !defined ($SYSDEF)" >>$sysdefs
echo "# define $SYSDEF" >>$sysdefs
echo "#endif /* $SYSDEF */" >>$sysdefs
fi
# Now look for certain include files in a list of directories
# Poor substitute for autoconf
# Add any other directories where include files are found to this list or
# create another case
if [ -n "$incdir" ]; then
dirlist="$incdir"
else
case "$SYSDEF" in
RISCos*) dirlist="/bsd43/usr/include";;
*) dirlist="/usr/include /usr/include/bsd /usr/include/ansi" ;;
esac
fi
# Code fragment to be executed to find a particular include file. Make sure
# to set `file' to the pathname of the file you want, relative to /usr/include,
# before calling `eval $findf'.
findf="
found='';
for d in \$dirlist;
do
if test -f \$d/\$file;
then
found=yes;
break;
fi;
done
"
found=
file=sys/stream.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_SYS_STREAM_H)" >>$sysdefs
echo "# define HAVE_SYS_STREAM_H" >>$sysdefs
echo "#endif /* HAVE_SYS_STREAM_H */" >>$sysdefs
fi
found=
file=sys/ptem.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_SYS_PTEM_H)" >>$sysdefs
echo "# define HAVE_SYS_PTEM_H" >>$sysdefs
echo "#endif /* HAVE_SYS_PTEM_H */" >>$sysdefs
fi
file=sys/pte.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_SYS_PTE_H)" >>$sysdefs
echo "# define HAVE_SYS_PTE_H" >>$sysdefs
echo "#endif /* HAVE_SYS_PTE_H */" >>$sysdefs
fi
file=sys/wait.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_WAIT_H)" >>$sysdefs
echo "# define HAVE_WAIT_H" >>$sysdefs
echo "#endif /* HAVE_WAIT_H */" >>$sysdefs
fi
file=sys/resource.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_RESOURCE)" >>$sysdefs
echo "# define HAVE_RESOURCE" >>$sysdefs
echo "#endif /* HAVE_RESOURCE */" >>$sysdefs
fi
file=sys/param.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_SYS_PARAM)" >>$sysdefs
echo "# define HAVE_SYS_PARAM" >>$sysdefs
echo "#endif /* HAVE_SYS_PARAM */" >>$sysdefs
fi
file=unistd.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_UNISTD_H)" >>$sysdefs
echo "# define HAVE_UNISTD_H" >>$sysdefs
echo "#endif /* HAVE_UNISTD_H */" >>$sysdefs
fi
file=stdlib.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_STDLIB_H)" >>$sysdefs
echo "# define HAVE_STDLIB_H" >>$sysdefs
echo "#endif /* HAVE_STDLIB_H */" >>$sysdefs
fi
file=limits.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_LIMITS_H)" >>$sysdefs
echo "# define HAVE_LIMITS_H" >>$sysdefs
echo "#endif /* HAVE_LIMITS_H */" >>$sysdefs
fi
file=alloca.h
eval $findf
if [ -f /usr/include/alloca.h ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_ALLOCA_H)" >>$sysdefs
echo "# define HAVE_ALLOCA_H" >>$sysdefs
echo "#endif /* HAVE_ALLOCA_H */" >>$sysdefs
fi
file=dirent.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_DIRENT_H)" >>$sysdefs
echo "# define HAVE_DIRENT_H" >>$sysdefs
echo "#endif /* HAVE_DIRENT_H */" >>$sysdefs
fi
file=string.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_STRING_H)" >>$sysdefs
echo "# define HAVE_STRING_H" >>$sysdefs
echo "#endif /* HAVE_STRING_H */" >>$sysdefs
fi
file=varargs.h
eval $findf
if [ -n "$found" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_VARARGS_H)" >>$sysdefs
echo "# define HAVE_VARARGS_H" >>$sysdefs
echo "#endif /* HAVE_VARARGS_H */" >>$sysdefs
fi
# Does the system have a /dev/fd directory?
if [ -d /dev/fd ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_DEV_FD)" >>$sysdefs
echo "# define HAVE_DEV_FD" >>$sysdefs
echo "#endif /* HAVE_DEV_FD */" >>$sysdefs
fi
# Is this SVR4.2? It's subtly different from USGr4
if [ "$UNAME" = "UNIX_SV" ] && [ "$UNAME_R" = "4.2" ]; then
echo "" >>$sysdefs
echo "#if !defined (USGr4_2)" >>$sysdefs
echo "# define USGr4_2" >>$sysdefs
echo "#endif /* USGr4_2 */" >>$sysdefs
fi
# Is this AIX PS/2 1.3? Yuck.
if [ "$UNAME" = "AIX" ] && [ "$UNAME_V" = "1" ] && [ "$RELEASE" = "3" ]; then
case "$UNAME_M" in
i386|i486)
echo "" >>$sysdefs
echo "#if !defined (AIX_13)" >>$sysdefs
echo "# define AIX_13" >>$sysdefs
echo "#endif /* AIX_13 */" >>$sysdefs
;;
esac
fi
if [ -n "$HAVE_BISON" ]; then
echo "" >>$sysdefs
echo "#if !defined (HAVE_BISON)" >>$sysdefs
echo "# define HAVE_BISON" >>$sysdefs
echo "#endif /* HAVE_BISON */" >>$sysdefs
fi
# Functions to test for a la autoconf
# getwd
# getcwd
# strchr
# strcasecmp
# getgroups
# setlinebuf
# strerror
# vfprintf
# bcopy
# getdtablesize
# setdtablesize
# alloca
# gethostname
# memmove (missing)
# mkfifo (missing)
#
# Other things to test
# opendir robustness
# dup2 working
# void sighandler
# sys_siglist[]
# uid_t, gid_t
# have_getpw_decls
# reversed setvbuf args
# int getgroups
# If this system's cpp might not like `/**/#' in cpp-Makefile, make an
# alternate ansi-style cpp-Makefile.
if [ -n "$MAKE_ANSI" ]; then
grep -v '/\*\*/' ${srcdir}/cpp-Makefile >ansi-Makefile
fi
# These should be the last 2 lines in this file!
echo "" >>$sysdefs
echo "#endif /* _SYSDEFS_H_ */" >>$sysdefs

11
support/printenv Executable file
View file

@ -0,0 +1,11 @@
#! /bin/sh -
if [ $# -eq 0 ]; then
env
exit
elif eval [ "\${$1-unset}" = "unset" ]; then
exit 1
else
eval echo \$$1
exit 0
fi

32
support/recho.c Normal file
View file

@ -0,0 +1,32 @@
#include <stdio.h>
main(argc, argv)
int argc;
char **argv;
{
register int i;
for (i = 1; i < argc; i++) {
printf("argv[%d] = <", i);
strprint(argv[i]);
printf(">\n");
}
}
strprint(str)
char *str;
{
register char *s;
int c;
for (s = str; s && *s; s++) {
if (*s < ' ') {
putchar('^');
putchar(*s+64);
} else if (*s == 127) {
putchar('^');
putchar('?');
} else
putchar(*s);
}
}

13
support/srcdir Executable file
View file

@ -0,0 +1,13 @@
#! /bin/sh
#
# srcdir - print out the absolute pathname of the top of the bash source
# tree. Used for getting the right value to makes in subdirectories
#
case "$1" in
'.'|./) pwd ;;
./*|..*) echo `pwd`/"$1" ;;
*) echo "$1" ;;
esac
exit 0

263
support/texi2dvi Executable file
View file

@ -0,0 +1,263 @@
#!/bin/sh
# texi2dvi -- smartly produce DVI files from texinfo sources
#
# Copyright (C) 1992, 1993 Free Software Foundation.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, you can either send email to this
# program's author (see below) or write to:
#
# Free Software Foundation, Inc.
# 675 Mass Ave.
# Cambridge, MA 02139, USA.
#
# Please send bug reports, etc. to bug-texinfo@prep.ai.mit.edu
# If possible, please send a copy of the output of the script called with
# the `--debug' option when making a bug report.
#
# Version 0.4
# Last modified 26-Mar-93
#
# Please note that in the interest of general portability, some common
# bourne shell constructs were avoided because they weren't guaranteed to
# be available in some earlier implementations. I've tried to make this as
# portable as possible.
#
# Among the more interesting lossages I noticed with some bourne shells
# are:
# 1) Some don't have an `unset' builtin
# 2) In some implementations the `shift' builtin can't take a
# numerical argument.
progname=`basename $0`
usage="Usage: ${progname} {-D} {-h} [file1] {file2} {...}
{--debug} {--help}
Options in braces are optional. Those in brackets are required.
"
if test $# -eq 0 ; then
echo "${usage}" 1>&2;
exit 1
fi
backup_extension=".bak"
texindex="texindex"
tex="tex"
bq="\`" # To prevent hairy quoting and escaping later.
eq="'"
orig_pwd="`pwd`"
if test "z${TEXINDEX}" != "z" ; then
texindex="${TEXINDEX}"
fi
if test "z${TEX}" != "z" ; then
tex="${TEX}"
fi
# Save this so we can construct a new TEXINPUTS path for each file to be
# processed.
TEXINPUTS_orig="${TEXINPUTS}"
export TEXINPUTS
# Parse command line options
# "unset" option variables to make sure they weren't accidentally
# exported
debug=""
# If you add new commands be sure to change the wildcards below to make
# sure they are unambiguous (i.e. only match one possible long option)
# Be sure to show at least one instance of the full long option name to
# document what the long option is canonically called.
while test $# -gt 0 ; do
case z$1 in
z-D | z--debug | z--d* )
debug="t"
shift
;;
z-h | z--help | z--h* )
echo "${usage}" 1>&2
exit 1
;;
z-- )
shift
break
;;
z-* )
echo "${progname}: ${bq}${1}${eq} is not a valid option." 1>&2
echo "" 1>&2
echo "${usage}" 1>&2
exit 1
;;
* )
break
;;
esac
done
# See if there are any command line args left (which will be interpreted as
# filename arguments)
if test $# -eq 0 ; then
echo "${progname}: at least one file name is required as an argument." 1>&2
echo "" 1>&2
echo "${usage}" 1>&2
exit 1
fi
test "z${debug}" = "zt" && set -x
# Texify files
for command_line_filename in ${1+"$@"} ; do
# Roughly equivalent to `dirname ...`, but more portable
directory="`echo ${command_line_filename} | sed 's/\/[^\/]*$//'`"
filename_texi="`basename ${command_line_filename}`"
# Strip off the last extension part (probably .texinfo or .texi)
filename_noext="`echo ${filename_texi} | sed 's/\.[^.]*$//'`"
# If directory and file are the same, then it's probably because there's
# no pathname component. Set dirname to `.', the current directory.
if test "z${directory}" = "z${command_line_filename}" ; then
directory="."
fi
# Source file might @include additional texinfo sources. Put `.' and
# directory where source file(s) reside in TEXINPUTS before anything
# else. `.' goes first to ensure that any old .aux, .cps, etc. files in
# ${directory} don't get used in preference to fresher files in `.'.
TEXINPUTS=".:${directory}:${TEXINPUTS_orig}"
# "Unset" variables that might have values from previous iterations and
# which won't be completely reset later.
definite_index_files=""
# See if file exists here. If it doesn't we're in trouble since, even
# though the user may be able to reenter a valid filename at the tex
# prompt (assuming they're attending the terminal), this script won't be
# able to find the right index files and so forth.
if test ! -r "${command_line_filename}" ; then
echo "${progname}: ${command_line_filename}: No such file or permission denied." 1>&2
continue;
fi
# Find all files having root filename with a two-letter extension,
# determine whether they're really index files, and save them. Foo.aux
# is actually the cross-references file, but we need to keep track of
# that too.
possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
for this_file in ${possible_index_files} ; do
# If file is empty, forget it.
if test ! -s "${this_file}" ; then
continue;
fi
# Examine first character of file. If it's not a backslash or
# single quote, then it's definitely not an index or xref file.
first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then
definite_index_files="${definite_index_files} ${this_file}"
fi
done
orig_index_files="${definite_index_files}"
orig_index_files_sans_aux="`echo ${definite_index_files} \
| sed 's/'${filename_noext}'\.aux//;
s/^[ ]*//;s/[ ]*$//;'`"
# Now save copies of original index files so we have some means of
# comparison later.
for index_file_to_save in ${orig_index_files} ; do
cp "${index_file_to_save}" "${index_file_to_save}${backup_extension}"
done
# Run texindex on current index files. If they already exist, and
# after running TeX a first time the index files don't change, then
# there's no reason to run TeX again. But we won't know that if the
# index files are out of date or nonexistent.
if test "${orig_index_files_sans_aux}" ; then
${texindex} ${orig_index_files_sans_aux}
fi
if ${tex} ${command_line_filename} ; then # TeX run first time
definite_index_files=""
# Get list of new index files
possible_index_files="`eval echo ${filename_noext}.?? ${filename_noext}.aux`"
for this_file in ${possible_index_files} ; do
# If file is empty, forget it.
if test ! -s ${this_file} ; then
continue;
fi
# Examine first character of file. If it's not a backslash or
# single quote, then it's definitely not an index or xref file.
first_character="`sed -n '1s/^\(.\).*$/\1/p;q' ${this_file}`"
if test "${first_character}" = "\\" -o "${first_character}" = "'" ; then
definite_index_files="${definite_index_files} ${this_file}"
fi
done
new_index_files="${definite_index_files}"
new_index_files_sans_aux="`echo ${definite_index_files} \
| sed 's/'${filename_noext}'\.aux//;
s/^[ ]*//;s/[ ]*$//;'`"
# If old and new list don't at least have the same file list, then one
# file or another has definitely changed.
if test "${orig_index_files}" != "${new_index_files}" ; then
index_files_changed_p=t
else
# File list is the same. We must compare each file until we find a
# difference.
index_files_changed_p=""
for this_file in ${new_index_files} ; do
# cmp -s will return nonzero exit status if files differ.
cmp -s "${this_file}" "${this_file}${backup_extension}"
if test $? -ne 0 ; then
# We only need to keep comparing until we find *one* that
# differs, because we'll have to run texindex & tex no
# matter what.
index_files_changed_p=t
break
fi
done
fi
# If index files have changed since TeX has been run, or if the aux
# file wasn't present originally, run texindex and TeX again.
if test "${index_files_changed_p}" ; then
retval=0
if test "${new_index_files_sans_aux}" ; then
${texindex} ${new_index_files_sans_aux}
retval=$?
fi
if test ${retval} -eq 0 ; then
${tex} "${command_line_filename}"
fi
fi
fi
# Generate list of files to delete, then call rm once with the entire
# list. This is significantly faster than multiple executions of rm.
file_list=""
for file in ${orig_index_files} ; do
file_list="${file_list} ${file}${backup_extension}"
done
if test "${file_list}" ; then
rm -f ${file_list}
fi
done
#
# eof
#