:
# Guess values for system-dependant variables and create `Makefile'.
# Copyright (C) 1991 Free Software Foundation, Inc.

# 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, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

# Usage: configure [+srcdir=DIR] [+host=HOST] [+gas] [+nfp] [TARGET]
# All args except +srcdir=DIR are ignored.

trap 'rm -f conftest conftest.c; exit 1' 1 3 15

set +u # Make sure unset variables are ok.

# Make sure we don't find the System V /etc/install.
PATH=`echo $PATH|sed 's,^:,|,
s,:$,|,
s,:/usr/etc,,g
s,/usr/etc:,,g
s,:/etc,,g
s,/etc:,,g
s,|,:,g'`

# A filename unique to this package, relative to the directory that
# configure is in, which we can look for to find out if srcdir is correct.
unique_file=find/pred.c

for arg in $*; do
  # Handle +srcdir with a space before the argument.
  if [ x$next_srcdir = xyes ]; then srcdir=$arg; next_srcdir=
  # Handle +host with a space before the argument.
  elif [ x$next_host = xyes ]; then next_host=
  else
    case $arg in
     -srcdir=* | +srcdir=* | +srcdi=* | +srcd=* | +src=* | +sr=* | +s=*)
	srcdir=`echo $arg | sed 's/[+-]s[a-z]*=//'` ;;
     -srcdir | +srcdir | +srcdi | +srcd | +src | +sr | +s)
	next_srcdir=yes ;;
     -host=* | +host=* | +hos=* | +ho=* | +h=*) ;;
     -host | +host | +hos | +ho | +h)
	next_host=yes ;;
     -gas | +gas | +ga | +g) ;;
     -nfp | +nfp | +nf | +n) ;;
     *) ;;
    esac
  fi
done

vpsub='s@\$\([-./a-zA-Z0-9]*\)<@\1@g'
# Find the source files, if location was not specified.
if [ x$srcdir = x ]; then
  srcdirdefaulted=yes; srcdir=.
  if [ ! -r $unique_file ]; then srcdir=`pwd`/..; fi
fi
if [ $srcdir != . ]; then
  VPATH='VPATH = $(srcdir)'
  vpsub='s@\$\([-./a-zA-Z0-9]*\)<@\$<@g'
fi

if [ ! -r $srcdir/$unique_file ]; then
  if [ x$srcdirdefaulted = xyes ]; then
    echo "$0: Can not find sources in \`.' or \`..'." 1>&2
  else
    echo "$0: Can not find sources in \`${srcdir}'." 1>&2
  fi
  exit 1
fi

if test "$RANDOM" = "$RANDOM"; then
  # Plain old Bourne shell.
  echo checking for gcc
  test -z "$CC" -a -n "`gcc 2>&1`" && CC="gcc -O"

  echo checking for install
  if test -z "$INSTALL" -a -n "`install 2>&1`"; then
    INSTALL="install -c"
    INSTALLDATA="install -c -m644"
  fi

  echo checking for ranlib
  test -z "$RANLIB" -a -n "`ranlib conftest 2>&1`" && RANLIB=ranlib
  rm -f conftest
else
  # ksh, bash or zsh.  ksh and zsh write "command not found" to stderr.
  echo checking for gcc
  test -z "$CC" && type gcc && CC="gcc -O"

  echo checking for install
  if test -z "$INSTALL" && type install; then
    INSTALL="install -c"
    INSTALLDATA="install -c -m644"
  fi

  echo checking for ranlib
  test -z "$RANLIB" && type ranlib && RANLIB=ranlib
fi

CC=${CC-cc}
INSTALL=${INSTALL-cp}
INSTALLDATA=${INSTALLDATA-cp}
RANLIB=${RANLIB-echo}
INCLUDEDIR=${INCLUDEDIR-/usr/include}

rm -f conftest conftest.c
compile="$CC $DEFS conftest.c -o conftest $LIBS >/dev/null 2>&1"

# Check for various header files.

echo checking for limits.h
test -f $INCLUDEDIR/limits.h || DEFS="$DEFS -DLIMITS_MISSING"

echo checking for sys/mkdev.h
if test -f $INCLUDEDIR/sys/mkdev.h; then
  DEFS="$DEFS -DMAJOR_IN_MKDEV"
fi

echo checking for directory library header
if test -f $INCLUDEDIR/dirent.h; then
  DEFS="$DEFS -DDIRENT"
elif test -f $INCLUDEDIR/sys/ndir.h; then
  DEFS="$DEFS -DSYSNDIR"
elif grep 'void.*closedir' $INCLUDEDIR/sys/dir.h >/dev/null 2>&1; then
  DEFS="$DEFS -DVOID_CLOSEDIR"
fi

echo checking for st_blocks in struct stat
echo "#include <sys/types.h>
#include <sys/stat.h>
main() { struct stat s; exit(0); s.st_blocks; }" > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then :
else
  DEFS="$DEFS -DST_BLOCKS_MISSING"
  LIBOBJS="$LIBOBJS fileblocks.o"
fi
rm -f conftest conftest.c

echo checking how to get filesystem type
if test -f $INCLUDEDIR/sys/statvfs.h -a -f $INCLUDEDIR/sys/fstyp.h; then
  DEFS="$DEFS -DFS_STATVFS"
elif test -f $INCLUDEDIR/sys/statfs.h -a -f $INCLUDEDIR/sys/fstyp.h; then
  DEFS="$DEFS -DFS_USG_STATFS"
elif test -f $INCLUDEDIR/sys/statfs.h -a -f $INCLUDEDIR/sys/vmount.h; then
  DEFS="$DEFS -DFS_AIX_STATFS"
elif test -f $INCLUDEDIR/mntent.h; then
  DEFS="$DEFS -DFS_MNTENT"
elif test -f $INCLUDEDIR/sys/mount.h -a -f $INCLUDEDIR/sys/fs_types.h; then
  DEFS="$DEFS -DFS_GETMNT"
elif grep MOUNT_UFS $INCLUDEDIR/sys/mount.h >/dev/null 2>&1; then
  DEFS="$DEFS -DFS_STATFS"
fi

echo checking for ANSI C header files
echo "#include <stdlib.h>
#include <string.h>
main() { exit(0); strerror(0); }" > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then
  DEFS="$DEFS -DSTDC_HEADERS"
fi
rm -f conftest conftest.c

echo checking for POSIX.1 header files
echo "#include <unistd.h>
main() {
#ifdef _POSIX_VERSION
exit(0);
#else
exit(1);
#endif
}" > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then
  DEFS="$DEFS -DPOSIX"
fi
rm -f conftest conftest.c

echo checking for BSD string and memory functions
echo "#include <strings.h>
main() { exit(0); rindex(0, 0); bzero(0, 0); }" > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then :
  else DEFS="$DEFS -DUSG"
fi
rm -f conftest conftest.c

# Check whether various functions exist.

# Functions we provide replacements for.
for func in fnmatch memset stpcpy strdup strftime strspn strstr strtol
do
  echo checking for $func
  echo "main() { exit(0); ${func}(); }" > conftest.c
  eval $compile
  if test -s conftest && ./conftest 2>/dev/null; then :
  else LIBOBJS="$LIBOBJS ${func}.o"
  fi
  rm -f conftest conftest.c
done

case "$LIBOBJS" in
*strftime.o*)
  echo checking whether struct tm has tm_zone
  echo '#include <sys/types.h>' > conftest.c
  case "$DEFS" in
    *-DTM_IN_SYS_TIME*) echo '#include <sys/time.h>' >> conftest.c ;;
    *) echo '#include <time.h>' >> conftest.c ;;
  esac
  echo 'main() { struct tm tm; exit(0); tm.tm_zone; }' >> conftest.c
  eval $compile
  if test -s conftest && ./conftest 2>/dev/null; then :
  else DEFS="$DEFS -DTM_ZONE_MISSING"
  fi
  rm -f conftest conftest.c

  case "$DEFS" in
    *-DTM_ZONE_MISSING*)
    echo checking for tzname
    echo '
main() { extern char *tzname[2]; exit(tzname[0][0] == 1); }' > conftest.c
    eval $compile
    if test -s conftest && ./conftest 2>/dev/null; then :
    else DEFS="$DEFS -DTZNAME_MISSING"
    fi
    rm -f conftest conftest.c
    ;;
  esac
  ;;
esac # strftime.o

# Functions whose absence we work around.
for func in vprintf
do
  echo checking for $func
  echo "main() { exit(0); ${func}(); }" > conftest.c
  eval $compile
  if test -s conftest && ./conftest 2>/dev/null; then :
  else DEFS="$DEFS -D`echo $func|tr '[a-z]' '[A-Z]'`_MISSING"
  fi
  rm -f conftest conftest.c
done

case "$DEFS" in
*VPRINTF_MISSING*)
  func=_doprnt
  echo checking for $func
  echo "main() { exit(0); ${func}(); }" > conftest.c
  eval $compile
  if test -s conftest && ./conftest 2>/dev/null; then :
  else DEFS="$DEFS -DDOPRNT_MISSING"
  fi
  rm -f conftest conftest.c
  ;;
esac

# Check other misc. things.

echo checking for unsigned characters
echo 'main() { char c = 255; exit(c < 0); }' > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then
  DEFS="$DEFS -DCHAR_UNSIGNED"
fi
rm -f conftest conftest.c

echo checking for Minix
if test -d /usr/include/minix; then
  DEFS="$DEFS -UUSG -D_POSIX_SOURCE -D_POSIX_1_SOURCE=2 -D_MINIX"
fi

echo checking for Xenix
if test -f /xenix; then
  LIBS="$LIBS -lx"
  case "$DEFS" in
  *SYSNDIR*) ;;
  *) LIBS="-ldir $LIBS" ;; # Make sure -ldir precedes any -lx.
  esac
fi

echo checking how to get alloca
echo '
#ifdef __GNUC__
#define alloca __builtin_alloca
#else
#ifdef sparc
#include <alloca.h>
#else
#ifdef _AIX
 #pragma alloca
#else
char *alloca ();
#endif
#endif
#endif
main() { char *p = (char *) alloca(1); exit(0); }' > conftest.c
eval $compile
if test -s conftest && ./conftest 2>/dev/null; then :
elif test -d /usr/ucblib; then LIBS="$LIBS -L/usr/ucblib -lucb"
else LIBS="$LIBS -lPW"
fi
rm -f conftest conftest.c

trap 'rm -f Makefile lib/Makefile find/Makefile xargs/Makefile locate/Makefile man/Makefile config.status; exit 1' 1 3 15

for dir in . lib find xargs locate man
do
  test -d $dir || mkdir $dir
  echo '# Generated automatically from Makefile.in by configure.' > $dir/Makefile
  sed -e "
$vpsub
s,@srcdir@,$srcdir,
s,@VPATH@,$VPATH,
s,@CC@,$CC,
s,@RANLIB@,$RANLIB,
s,@INSTALL@,$INSTALL,
s,@INSTALLDATA@,$INSTALLDATA,
s,@DEFS@,$DEFS,
s,@LIBS@,$LIBS,
s,@LIBOBJS@,$LIBOBJS,
" $srcdir/$dir/Makefile.in >> $dir/Makefile
done

echo "CC = $CC
RANLIB = $RANLIB
INSTALL = $INSTALL
INSTALLDATA = $INSTALLDATA
DEFS = $DEFS
LIBS = $LIBS
LIBOBJS = $LIBOBJS" > config.status
