:
# 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.

trap 'rm -f rltest defstest defstest.c uttest Makefile; exit 1' 1 3 15

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

  echo checking for bison >&2
  test -z "$YACC" -a -n "`bison 2>&1`" && YACC="bison -y"

  echo checking for ranlib >&2
  test -z "$RANLIB" -a -n "`ranlib rltest 2>&1`" && RANLIB=ranlib
  rm -f rltest
else
  # ksh, bash or zsh.
  echo checking for gcc >&2
  test -z "$CC" && type gcc && CC="gcc -O"

  echo checking for bison >&2
  test -z "$YACC" && type bison && YACC="bison -y"

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

CC=${CC-cc}
YACC=${YACC-yacc}
RANLIB=${RANLIB-echo}
INCLUDEDIR=${INCLUDEDIR-/usr/include}

# Check for various header files.

echo checking header files >&2
test -f $INCLUDEDIR/stdlib.h &&
  grep strerror $INCLUDEDIR/string.h >/dev/null 2>&1 &&
  DEFS="$DEFS -DSTDC_HEADERS"
grep POSIX_VERSION $INCLUDEDIR/unistd.h >/dev/null 2>&1 &&
  DEFS="$DEFS -DPOSIX"
grep 'int[ 	]*(\*signal[ 	]*(' $INCLUDEDIR/signal.h >/dev/null 2>&1 &&
  DEFS="$DEFS -DSIGTYPE=int"
grep rindex $INCLUDEDIR/strings.h >/dev/null 2>&1 || DEFS="$DEFS -DUSG"
if test -f $INCLUDEDIR/dirent.h; then
  DEFS="$DEFS -DDIRENT"
elif test -f $INCLUDEDIR/sys/ndir.h; then
  DEFS="$DEFS -DSYSNDIR"
fi
grep st_blocks $INCLUDEDIR/sys/stat.h >/dev/null 2>&1 ||
  DEFS="$DEFS -DST_BLOCKS_MISSING"

# Check whether various functions exist.

for func in strdup stpcpy mktime mkdir mkfifo ftruncate fchmod rename vprintf
do
  echo checking for $func >&2
  rm -f defstest defstest.c
  echo "main() { exit(0); ${func}(); }" > defstest.c
  ${CC} defstest.c -o defstest ${LIBS} >/dev/null 2>&1
  if test -s defstest && ./defstest 2>/dev/null; then :
  else DEFS="$DEFS -D`echo $func|tr '[a-z]' '[A-Z]'`_MISSING"
  fi
  rm -f defstest defstest.c
done

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

# Check other misc. things.

echo checking integer size >&2
echo "main() { exit(!(sizeof(long) > sizeof(int))); }" > defstest.c
${CC} defstest.c -o defstest ${LIBS} >/dev/null 2>&1
./defstest && DEFS="$DEFS -DINT_16_BITS"
rm -f defstest defstest.c

echo checking utime with null argument >&2
rm -f uttest; > uttest
# Sequent interprets utime(file, 0) to mean use start of epoch.  Wrong.
echo '
#include <sys/types.h>
#include <sys/stat.h>
main() {
struct stat s, t;
exit(!(stat ("uttest", &s) == 0 && utime("uttest", (long *)0) == 0
&& stat("uttest", &t) == 0 && t.st_mtime - s.st_mtime < 120));
}' > defstest.c
${CC} defstest.c -o defstest ${LIBS} >/dev/null 2>&1
./defstest || DEFS="$DEFS -DUTIME_NULL_MISSING"
rm -f defstest defstest.c uttest

echo checking for ftime >&2
echo 'main() { exit(0); ftime(); }' > defstest.c
${CC} defstest.c -o defstest ${LIBS} >/dev/null 2>&1
if test -s defstest && ./defstest; then :
else
  echo checking for tzset >&2
  echo 'main() { exit(0); tzset(); }' > defstest.c
  ${CC} defstest.c -o defstest ${LIBS} >/dev/null 2>&1
  test -s defstest && ./defstest && DEFS="$DEFS -DNEED_TZSET"
fi
rm -f defstest defstest.c

case $DEFS in
*RENAME_MISSING*)
  LIBPROGS="$LIBPROGS mvdir"
  DEFS="$DEFS -DMVDIR="'\\"$(libdir)/mvdir\\"'
  ;;
esac

if test -f /unix -o -f /hp-ux -o -f /xenix; then
  # /etc/xlc.cfg is on AIX 3, which doesn't need -lPW.
  if test -f /etc/xlc.cfg; then
    DEFS="$DEFS -DCHAR_UNSIGNED"
  else
    case $CC in
    *gcc*) ;;
    *) LIBS="$LIBS -lPW" ;; # Get alloca.
    esac
  fi
fi

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

sed -e "
s,@CC@,$CC,
s,@YACC@,$YACC,
s,@RANLIB@,$RANLIB,
s,@DEFS@,$DEFS,
s,@LIBS@,$LIBS,
s,@LIBPROGS@,$LIBPROGS,
" Makefile.in > Makefile
