dnl
dnl configure.in --- autoconf input file for gawk
dnl 
dnl Copyright (C) 1995-2000 the Free Software Foundation, Inc.
dnl 
dnl This file is part of GAWK, the GNU implementation of the
dnl AWK Programming Language.
dnl 
dnl GAWK is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl 
dnl GAWK is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.
dnl 
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA
dnl

dnl Process this file with autoconf to produce a configure script.

dnl this makes sure that the local install-sh gets found
dnl define(AC_CONFIG_AUX_DIR,)

dnl This is the configure.in script proper
AC_INIT(awk.h)
AC_PREREQ(2.12)
AC_CONFIG_HEADER(config.h:configh.in)

dnl Additional argument stuff
AC_ARG_ENABLE(bitops, [  --enable-bitops	Enable Octal and Hex constants and bit functions], AC_DEFINE(BITOPS))
AC_ARG_ENABLE(non-decimal-data, [  --enable-non-decimal-data	Enable Octal and Hex constants as valid input data], AC_DEFINE(NONDECDATA))

dnl checks for programs
AC_PROG_YACC
AC_PROG_LN_S
AC_PROG_CC
AC_PROG_CPP

# This is a hack. Different versions of install on different systems
# are just too different. Chuck it and use install-sh.
INSTALL="$srcdir/install-sh -c"; export INSTALL
AC_PROG_INSTALL

AC_PROG_MAKE_SET

if test "$CFLAGS" = ""
then
dnl	no user provided CFLAGS, feel free to do this our way
	if test "$GCC" = yes
	then
		CFLAGS="-g -O"
	else
dnl		go for speed, not debugging. :-)
		CFLAGS="-O"
	fi
fi

# This is mainly for my use during testing and development.
# Yes, it's a bit of a hack.
if test -f $srcdir/.developing
then
	AC_DEFINE(BITOPS)
	AC_DEFINE(NONDECDATA)
	CFLAGS="$CFLAGS -DARRAYDEBUG"
fi

AC_SUBST(CFLAGS)

dnl checks for systems
AC_AIX
AC_ISC_POSIX
AC_MINIX
GAWK_AC_SYS_LARGEFILE
GAWK_AC_AIX_TWEAK

if test "$ISC" = 1	# will be set by test for ISC
then
dnl	need -D_SYSV3 for ISC
	CFLAGS="$CFLAGS -D_SYSV3"
fi

dnl checks for header files
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(limits.h locale.h stdarg.h unistd.h signum.h sys/param.h string.h)
if test "$ac_cv_header_string_h" = yes
then
	AC_CHECK_HEADERS(memory.h)
else
	AC_CHECK_HEADERS(strings.h)
fi

dnl checks for typedefs
AC_TYPE_PID_T
AC_TYPE_SIGNAL
AC_SIZE_T
AC_TYPE_GETGROUPS
AC_EGREP_HEADER([int.*sprintf], stdio.h,
	AC_DEFINE(SPRINTF_RET, int),
	AC_DEFINE(SPRINTF_RET, char *))

dnl checks for functions
if test "$YACC" = "bison -y" ||
 { test -f $srcdir/awktab.c && grep 'alloca *(' $srcdir/awktab.c > /dev/null; }
then
	AC_FUNC_ALLOCA
fi
AC_DEFINE(REGEX_MALLOC)
AC_FUNC_VPRINTF

AC_CHECK_LIB(m, fmod)
AC_CHECK_FUNCS(madvise memset memcpy memcmp fmod setlocale strchr strerror \
		strftime strncasecmp strtod system tzset)

dnl see if we have mmap
AC_FUNC_MMAP

dnl check for how to use getpgrp
dnl have to hardwire it for VMS POSIX. Sigh.
if (uname) > /dev/null 2>&1
then
	case `uname` in
	*VMS*|*BeOS*)
		AC_DEFINE(GETPGRP_VOID)
		;;
	*HP-UX*)	# not getpgrp related
		if test "$GCC" = yes
		then
			:
		else
			# stupid HP linker leaves the output file
			# around even when a link fails. This confuses
			# the alloca tests, so we have to do this
			# manually. Sucks big time.
			LIBS="$LIBS -lPW"
		fi

		# have to do the getpgrp test since won't
		# fall into the default
		AC_FUNC_GETPGRP
		;;
	*)	AC_FUNC_GETPGRP
		;;
	esac
else
	AC_FUNC_GETPGRP
fi

dnl checks for structure members
AC_STRUCT_ST_BLKSIZE
AC_HEADER_TIME
AC_STRUCT_TM
AC_STRUCT_TIMEZONE

dnl checks for compiler characteristics
AC_C_CHAR_UNSIGNED
AC_C_CONST
GAWK_AC_C_STRINGIZE

AC_OUTPUT(Makefile doc/Makefile test/Makefile awklib/Makefile, [date > stamp-h])
