dnl***************************************************************************
dnl Copyright (c) 1998 Free Software Foundation, Inc.                        *
dnl                                                                          *
dnl Permission is hereby granted, free of charge, to any person obtaining a  *
dnl copy of this software and associated documentation files (the            *
dnl "Software"), to deal in the Software without restriction, including      *
dnl without limitation the rights to use, copy, modify, merge, publish,      *
dnl distribute, distribute with modifications, sublicense, and/or sell       *
dnl copies of the Software, and to permit persons to whom the Software is    *
dnl furnished to do so, subject to the following conditions:                 *
dnl                                                                          *
dnl The above copyright notice and this permission notice shall be included  *
dnl in all copies or substantial portions of the Software.                   *
dnl                                                                          *
dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
dnl                                                                          *
dnl Except as contained in this notice, the name(s) of the above copyright   *
dnl holders shall not be used in advertising or otherwise to promote the     *
dnl sale, use or other dealings in this Software without prior written       *
dnl authorization.                                                           *
dnl***************************************************************************
dnl
dnl Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
dnl
dnl $Id: configure.in,v 1.126 1998/02/12 23:10:43 tom Exp $
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.12.971222)
AC_REVISION($Revision: 1.126 $)
AC_INIT(ncurses/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)

CF_SUBST_NCURSES_VERSION
CF_CHECK_CACHE
AC_ARG_WITH(system-type,
[  --with-system-type=XXX  test: override derived host system-type],
[AC_MSG_WARN(overriding system type to $withval)
 cf_cv_system_name=$withval])

# We need a configure script only when compiling as part of GNU C library.
# Here we have to generate one of the files we need while compiling.
#
# The only problem is that users of the package might think they have to
# run configure themself and find it irritating when nothing happens.
#
# So we try here to find out whether we are called from the glibc configure
# or by a user.
#
dnl Check if we are a drop-in addition to glibc.
AC_ARG_ENABLE(add-ons, dnl
[  --enable-add-ons=DIR... used to check if we are a glibc add-on.],
		[glibc_add_on=yes],
		[glibc_add_on=])

dnl We need to use [ and ] for other purposes for a while now.
changequote(,)dnl
if test x"$glibc_add_on" = "xyes" ; then
  rm -f $srcdir/Banner
  # We are in glibc.
  rm -f $srcdir/Makefile
  cp $srcdir/Makefile.glibc $srcdir/Makefile
  echo "ncurses `grep \"^[ 	]*ncurses-version[ 	]*=.*$\" \
		$srcdir/Makefile | sed -e \
		's/^[ 	]*ncurses-version[ 	]*=[ 	]*\([^	^ ]*\)[ 	]*$/\1/'`" > $srcdir/Banner
  exit 0
fi
changequote([,])dnl

###	Save the given $CFLAGS to allow user-override.
cf_user_CFLAGS="$CFLAGS"

###	Default install-location
CF_CFG_DEFAULTS

###	Checks for programs.
AC_PROG_CC
if test -n "$GCC" ; then
AC_MSG_CHECKING(version of gcc)
eval "$CC --version"
fi
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
AC_ISC_POSIX
AC_PATH_PROG(LDCONFIG,ldconfig,,$PATH:/sbin:/usr/sbin)

dnl DEFECT in autoconf 2.12:	an attempt to set policy, this breaks the
dnl				configure script by not letting us test if C++
dnl				is present, making this option necessary.
dnl AC_MSG_CHECKING(if you want to build with C++)
dnl AC_ARG_WITH(cxx,
dnl 	[  --without-cxx           suppress check for C++, don't build demo],
dnl 	[cf_with_cxx=$withval],
dnl 	[cf_with_cxx=yes])
dnl AC_MSG_RESULT($cf_with_cxx)
dnl if test "X$cf_with_cxx" != Xno ; then
dnl AC_PROG_CXX
dnl fi
dnl changequote(,)dnl
dnl if test -n "$GXX" ; then case "`${CXX-g++} --version`" in 1*|2.[0-6]*) GXX=""; CXX=""; ac_cv_prog_gxx=no; cf_cxx_library=no ; echo No: templates do not work;; esac; fi
dnl changequote([,])dnl

AC_MSG_CHECKING(if you want to build programs such as tic)
AC_ARG_WITH(progs,
	[  --without-progs         suppress build with programs (e.g., tic)],
	[cf_with_progs=$withval],
	[cf_with_progs=no])
AC_MSG_RESULT($cf_with_progs)

modules_to_build="ncurses"
if test "X$cf_with_progs" != Xno ; then
modules_to_build="$modules_to_build progs tack"
fi

AC_PROG_AWK
AC_PROG_MAKE_SET
CF_PROG_INSTALL
AC_SYS_LONG_FILE_NAMES
AC_PROG_LN_S
AC_PROG_RANLIB
AC_CHECK_PROGS(LINT, tdlint lint alint)
AC_CHECK_PROGS(MAN, man man_db)
AC_SUBST(LINT_OPTS)

dnl These are standard among *NIX systems, but not when cross-compiling
CF_SUBST(loader,LD,ld)
CF_SUBST(archiver,AR,ar)
CF_SUBST(archiver options,AR_OPTS,rv)

CF_MAKEFLAGS
CF_MAN_PAGES

dnl Special option for use by system-builders: the install-prefix is used to
dnl adjust the location into which the actual install is done, so that an
dnl archive can be built without modifying the host system's configuration.
AC_MSG_CHECKING(if you have specified an install-prefix)
AC_ARG_WITH(install-prefix,
	[  --with-install-prefix   prefixes actual install-location],
	[case "$withval" in #(vi
	yes|no) #(vi
		;;
	*)	INSTALL_PREFIX="$withval"
		;;
	esac])
AC_MSG_RESULT($INSTALL_PREFIX)
AC_SUBST(INSTALL_PREFIX)

###############################################################################
CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)

### Options to allow the user to specify the set of libraries which are used.
### Use "--without-normal --with-shared" to allow the default model to be
### shared, for example.
cf_list_models=""

AC_MSG_CHECKING(if you want to build shared libraries)
AC_ARG_WITH(shared,
	[  --with-shared           generate shared-libraries],
	[with_shared=$withval],
	[with_shared=no])
AC_MSG_RESULT($with_shared)
test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"

AC_MSG_CHECKING(if you want to build static libraries)
AC_ARG_WITH(normal,
	[  --with-normal           generate normal-libraries (default)],
	[with_normal=$withval],
	[with_normal=yes])
AC_MSG_RESULT($with_normal)
test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"

AC_MSG_CHECKING(if you want to build debug libraries)
AC_ARG_WITH(debug,
	[  --with-debug            generate debug-libraries],
	[with_debug=$withval],
	[with_debug=no])
AC_MSG_RESULT($with_debug)
test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"

AC_MSG_CHECKING(if you want to build profiling libraries)
AC_ARG_WITH(profile,
	[  --with-profile          generate profile-libraries],
	[with_profile=$withval],
	[with_profile=no])
AC_MSG_RESULT($with_profile)
test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"

AC_MSG_CHECKING(if you want to build a separate terminfo library)
AC_ARG_WITH(termlib,
	[  --with-termlib          generate separate terminfo library],
	[with_termlib=$withval],
	[with_termlib=no])
AC_MSG_RESULT($with_termlib)

### Checks for special libraries, must be done up-front.
AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
AC_ARG_WITH(dbmalloc,
	[  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
	[with_dbmalloc=yes],
	[with_dbmalloc=no])
AC_MSG_RESULT($with_dbmalloc)
if test $with_dbmalloc = yes ; then
	AC_CHECK_LIB(dbmalloc,debug_malloc)
fi

AC_MSG_CHECKING(if you want to link with dmalloc for testing)
AC_ARG_WITH(dmalloc,
	[  --with-dmalloc          test: use Gray Watson's dmalloc library],
	[with_dmalloc=yes],
	[with_dmalloc=no])
AC_MSG_RESULT($with_dmalloc)
if test $with_dmalloc = yes ; then
	AC_CHECK_LIB(dmalloc,dmalloc_debug)
fi

AC_MSG_CHECKING(if you want to link with the gpm mouse library)
AC_ARG_WITH(gpm,
	[  --with-gpm              use Alessandro Rubini's GPM library],
	[with_gpm=yes],
	[with_gpm=no])
AC_MSG_RESULT($with_gpm)
if test $with_gpm = yes ; then
	AC_CHECK_LIB(gpm,Gpm_Open,[
		EXTRA_LIBS="$EXTRA_LIBS -lgpm -lncurses"
		SHLIB_LIST="$SHLIB_DEPS -lgpm "
		AC_DEFINE(HAVE_LIBGPM)
		AC_CHECK_HEADERS(gpm.h)
	],,-lcurses -ltermcap)
fi

AC_SUBST(EXTRA_LIBS)
AC_SUBST(SHLIB_LIST)

AC_MSG_CHECKING(for specified models)
test -z "$cf_list_models" && cf_list_models=normal
AC_MSG_RESULT($cf_list_models)

### Use the first model as the default, and save its suffix for use in building
### up test-applications.
DFT_LWR_MODEL=`echo $cf_list_models | $AWK '{print $1}'`
CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl
CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl
CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl
CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl
AC_SUBST(DFT_OBJ_SUBDIR)dnl	the default object-directory ("obj")
AC_SUBST(DFT_LWR_MODEL)dnl	the default model ("normal")
AC_SUBST(DFT_UPR_MODEL)dnl	the default model ("NORMAL")
AC_SUBST(DFT_DEP_SUFFIX)dnl	the corresponding library-suffix (".a")
AC_SUBST(DFT_ARG_SUFFIX)dnl	the string to append to "-lncurses" ("")
AC_SUBST(cf_list_models)dnl	the complete list of models ("normal debug")

TINFO_NAME=tinfo
AC_SUBST(TINFO_NAME)

LIB_NAME=ncurses
AC_SUBST(LIB_NAME)

LIB_DIR=../lib
CF_LIB_PREFIX(cf_prefix)
LIB_PREFIX=$LIB_DIR/$cf_prefix
AC_SUBST(LIB_PREFIX)

dnl Not all ports of gcc support the -g option
dnl autoconf 2.12 uses different symbol for -g option than autoconf 2.10, etc.

if test X"$CC_G_OPT" = X"" ; then
	CC_G_OPT='-g'
	test -n "$GCC" && test "${ac_cv_prog_cc_g}${ac_cv_prog_gcc_g}" != yes && CC_G_OPT=''
fi
AC_SUBST(CC_G_OPT)

if test X"$CXX_G_OPT" = X"" ; then
	CXX_G_OPT='-g'
	test -n "$GXX" && test "${ac_cv_prog_cxx_g}${ac_cv_prog_gxx_g}" != yes && CXX_G_OPT=''
fi
AC_SUBST(CXX_G_OPT)

case $DFT_LWR_MODEL in
normal)  LD_MODEL=''   ;;
debug)   LD_MODEL=$CC_G_OPT ;;
profile) LD_MODEL='-pg';;
shared)  LD_MODEL=''   ;;
esac
AC_SUBST(LD_MODEL)dnl		the type of link (e.g., -g or -pg)

AC_MSG_CHECKING(if rpath option should be used)
AC_ARG_ENABLE(rpath,
[  --enable-rpath          use rpath option when generating shared libraries],
[cf_cv_ld_rpath=$enableval],
[cf_cv_ld_rpath=no])
AC_MSG_RESULT($cf_cv_ld_rpath)

CF_SHARED_OPTS

if test "$CC_SHARED_OPTS" = "unknown"; then
	for model in $cf_list_models; do
		if test "$model" = "shared"; then
			AC_ERROR(Shared libraries are not supported in this version)
		fi
	done
fi

###############################################################################
CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)

###	use option --disable-overwrite to leave out the link to -lcurses
AC_MSG_CHECKING(if you wish to install ncurses overwriting curses)
AC_ARG_ENABLE(overwrite,
	[  --disable-overwrite     leave out the link to -lcurses],
	[with_overwrite=$enableval
	 test "$with_overwrite" = no && \
	 test "x$includedir" = 'x${prefix}/include' && \
	 	includedir='$(prefix)/include/ncurses'
	],
	[with_overwrite=yes])
AC_MSG_RESULT($with_overwrite)
AC_MSG_CHECKING(where we will install curses.h)
AC_MSG_RESULT($includedir)

AC_MSG_CHECKING(if external terminfo-database is used)
AC_ARG_ENABLE(database,
	[  --disable-database      use only built-in data],
	[with_database=$enableval],
	[with_database=yes])
AC_MSG_RESULT($with_database)
test $with_database != no && AC_DEFINE(USE_DATABASE)

AC_MSG_CHECKING(if you want to build with function extensions)
AC_ARG_ENABLE(ext-funcs,
	[  --disable-ext-funcs     disable function-extensions],
	[with_ext_funcs=$enableval],
	[with_ext_funcs=yes])
AC_MSG_RESULT($with_ext_funcs)
test "$with_ext_funcs" = yes && AC_DEFINE(NCURSES_EXT_FUNCS)

AC_MSG_CHECKING(for list of fallback descriptions)
AC_ARG_WITH(fallbacks,
	[  --with-fallbacks=XXX    specify list of fallback terminal descriptions],
	[with_fallback=$withval],
	[with_fallback=])
AC_MSG_RESULT($with_fallback)
FALLBACK_LIST=`echo $with_fallback|sed -e 's/,/ /'`
AC_SUBST(FALLBACK_LIST)

if test $with_database = no ; then
	if test -z $with_fallback ; then
		AC_ERROR(You have disabled the database w/o specifying fallbacks)
	fi
fi

###	use option --enable-big-core to make tic run faster on big machines
AC_MSG_CHECKING(if big-core option selected)
AC_ARG_ENABLE(big-core,
	[  --enable-big-core       assume machine has lots of memory],
	[with_big_core=$enableval],
	[with_big_core=no])
AC_MSG_RESULT($with_big_core)
test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE)

###	use option --enable-termcap to compile in the termcap fallback support
AC_MSG_CHECKING(if you want termcap-fallback support)
AC_ARG_ENABLE(termcap,
	[  --enable-termcap        compile in termcap fallback support],
	[with_termcap=$enableval],
	[with_termcap=no])
AC_MSG_RESULT($with_termcap)

if test "$with_termcap" != "yes" ; then
	AC_DEFINE(PURE_TERMINFO)
else

###	use option --enable-getcap to use a hacked getcap for reading termcaps
AC_MSG_CHECKING(if fast termcap-loader is needed)
AC_ARG_ENABLE(getcap,
	[  --enable-getcap         fast termcap load, no xrefs to terminfo],
	[with_getcap=$enableval],
	[with_getcap=no])
AC_MSG_RESULT($with_getcap)
test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP)

AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo)
AC_ARG_ENABLE(getcap-cache,
	[  --enable-getcap-cache   cache translated termcaps in ~/.terminfo],
	[with_getcap_cache=$enableval],
	[with_getcap_cache=no])
AC_MSG_RESULT($with_getcap_cache)
test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE)

fi

###   Use option --enable-symlinks to make tic use symlinks, not hard links
###   to reduce storage requirements for the terminfo database.
###
###   Most Unix systems have both link and symlink, a few don't have symlink.
###   A few non-Unix systems implement symlink, but not link.
###   A few non-systems implement neither.

AC_CHECK_FUNCS( \
	link \
	symlink )

with_links=no
with_symlinks=no

if test "$ac_cv_func_link" != yes ; then
    AC_MSG_CHECKING(if tic should use symbolic links)
    if test "$ac_cv_func_symlink" = yes ; then
    	with_symlinks=yes
    else
    	with_symlinks=no
    fi
    AC_MSG_RESULT($with_symlinks)
elif test "$ac_cv_func_symlink" != yes ; then
    AC_MSG_CHECKING(if tic should use hard links)
    if test "$ac_cv_func_link" = yes ; then
    	with_links=yes
    else
    	with_links=no
    fi
    AC_MSG_RESULT($with_links)
else
    AC_MSG_CHECKING(if tic should use symbolic links)
    AC_ARG_ENABLE(symlinks,
	[  --enable-symlinks       make tic use symbolic links not hard links],
	[with_symlinks=$enableval],
	[with_symlinks=no])
    AC_MSG_RESULT($with_symlinks)
fi

test "$with_links" = yes && AC_DEFINE(USE_LINKS)
test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS)

###   use option --enable-bsdpad to have tputs process BSD-style prefix padding
AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
AC_ARG_ENABLE(bsdpad,
	[  --enable-bsdpad         recognize BSD-style prefix padding],
	[with_bsdpad=$enableval],
	[with_bsdpad=no])
AC_MSG_RESULT($with_bsdpad)
test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS)

###   use option --enable-const to turn on use of const beyond that in XSI.
AC_MSG_CHECKING(for extended use of const keyword)
AC_ARG_ENABLE(const,
	[  --enable-const          compile with extra/non-standard const],
	[with_ext_const=$enableval],
	[with_ext_const=no])
AC_MSG_RESULT($with_ext_const)
test "$with_ext_const" = yes && AC_DEFINE(NCURSES_CONST,const)

### Enable compiling-in rcs id's
AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
AC_ARG_WITH(rcs-ids,
	[  --with-rcs-ids          compile-in RCS identifiers],
	[with_rcs_ids=$enableval],
	[with_rcs_ids=no])
AC_MSG_RESULT($with_rcs_ids)
test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS)

###############################################################################
CF_HELP_MESSAGE(Experimental Code:)
AC_MSG_CHECKING(if you want all experimental code)
AC_ARG_WITH(develop,
	[  --with-develop          enable all experimental options for testing],
	[with_develop=$withval],
	[with_develop=no])
AC_MSG_RESULT($with_develop)

###   use option --enable-hard-tabs to turn on use of hard-tabs optimize
AC_MSG_CHECKING(if you want experimental hard-tabs code)
AC_ARG_ENABLE(hard-tabs,
	[  --enable-hard-tabs      compile with experimental hard-tabs code],
	[with_hardtabs=$enableval],
	[with_hardtabs=$with_develop])
AC_MSG_RESULT($with_hardtabs)
test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS)

###   use option --enable-hashmap to turn on use of hashmap scrolling logic
AC_MSG_CHECKING(if you want experimental hashmap code)
AC_ARG_ENABLE(hashmap,
	[  --enable-hashmap        compile with experimental hashmap code],
	[with_hashmap=$enableval],
	[with_hashmap=$with_develop])
AC_MSG_RESULT($with_hashmap)
test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP)

AC_MSG_CHECKING(if you want experimental safe-sprintf code)
AC_ARG_ENABLE(safe-sprintf,
	[  --disable-safe-sprintf  compile with experimental safe-sprintf code],
	[with_safe_sprintf=$enableval],
	[with_safe_sprintf=no])
AC_MSG_RESULT($with_safe_sprintf)
test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF)

###   use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
AC_MSG_CHECKING(if you want to experiment without scrolling-hints code)
AC_ARG_ENABLE(scroll-hints,
	[  --disable-scroll-hints  compile hashmap without scroll-hints code],
	[with_scroll_hints=$enableval],
	[with_scroll_hints=yes])
AC_MSG_RESULT($with_scroll_hints)
test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)

###   use option --enable-sigwinch to turn on use of SIGWINCH logic
AC_MSG_CHECKING(if you want experimental SIGWINCH handler)
AC_ARG_ENABLE(sigwinch,
	[  --enable-sigwinch       compile with experimental SIGWINCH handler],
	[with_sigwinch=$enableval],
	[with_sigwinch=$with_develop])
AC_MSG_RESULT($with_sigwinch)
test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH)

###   use option --enable-widec to turn on use of wide-character support
AC_MSG_CHECKING(if you want experimental wide-character code)
AC_ARG_ENABLE(widec,
	[  --enable-widec          compile with experimental wide-char code],
	[with_widec=$enableval],
	[with_widec=no])
AC_MSG_RESULT($with_widec)
test "$with_widec" = yes && AC_DEFINE(USE_WIDEC_SUPPORT)

###   use option --enable-xmc-glitch to turn on use of magic-cookie optimize
AC_MSG_CHECKING(if you want experimental xmc code)
AC_ARG_ENABLE(xmc-glitch,
	[  --enable-xmc-glitch     compile with experimental xmc code],
	[with_xmc_glitch=$enableval],
	[with_xmc_glitch=$with_develop])
AC_MSG_RESULT($with_xmc_glitch)
test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT)

###############################################################################
CF_HELP_MESSAGE(Testing/development Options:)

###	use option --disable-echo to suppress full display compiling commands
AC_ARG_ENABLE(echo,
	[  --enable-echo           build: display "compiling" commands (default)],
	[with_echo=$enableval],
	[with_echo=yes])
if test "$with_echo" = yes; then
	ECHO_LINK=
else
	ECHO_LINK='@ echo linking $@ ... ;'
fi
AC_SUBST(ECHO_LINK)

###	use option --enable-warnings to turn on all gcc warnings
AC_ARG_ENABLE(warnings,
	[  --enable-warnings       build: turn on GCC compiler warnings],
	[with_warnings=$enableval])
if test -n "$with_warnings"; then
 	ADAFLAGS="$ADAFLAGS -gnatg"
	CF_GCC_WARNINGS
fi
CF_GCC_ATTRIBUTES

###	use option --enable-assertions to turn on generation of assertion code
AC_ARG_ENABLE(assertions,
	[  --enable-assertions     test: turn on generation of assertion code],
	[with_assertions=$enableval],
	[with_assertions=no])
if test -n "$GCC"
then
	if test $with_assertions = no
	then
		AC_DEFINE(NDEBUG)
		CPPFLAGS="$CPPFLAGS -DNDEBUG"
	else
		ADAFLAGS="$ADAFLAGS -gnata"
	fi
fi

###	use option --disable-leaks to suppress "permanent" leaks, for testing
AC_ARG_ENABLE(leaks,
	[  --disable-leaks         test: suppress permanent memory-leaks],
	[test $enableval = no && AC_DEFINE(NO_LEAKS)])
AC_DEFINE(HAVE_NC_ALLOC_H)

###	use option --enable-expanded to generate certain macros as functions
AC_ARG_ENABLE(expanded,
	[  --enable-expanded       test: generate functions for certain macros],
	[test $enableval = yes && AC_DEFINE(NCURSES_EXPANDED)])

###	use option --disable-macros to suppress macros in favor of functions
AC_ARG_ENABLE(macros,
	[  --disable-macros        test: use functions rather than macros],
	[test $enableval = no && AC_DEFINE(NCURSES_NOMACROS)])

###	Checks for libraries.
AC_CHECK_FUNC(gettimeofday,
	AC_DEFINE(HAVE_GETTIMEOFDAY),[

AC_CHECK_LIB(bsd, gettimeofday,
	AC_DEFINE(HAVE_GETTIMEOFDAY)
	LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday

MATH_LIB=""
AC_CHECK_FUNC(sin,,
	AC_CHECK_LIB(m, sin,[MATH_LIB="-lm"]))
AC_SUBST(MATH_LIB)

###	Checks for header files.
AC_STDC_HEADERS
AC_HEADER_DIRENT
CF_REGEX

dnl These are some other potentially nonportable headers.
AC_CHECK_HEADERS( \
fcntl.h \
getopt.h \
libc.h \
limits.h \
locale.h \
sys/bsdtypes.h \
sys/ioctl.h \
sys/param.h \
poll.h \
sys/select.h \
sys/stropts.h \
sys/time.h \
sys/times.h \
termio.h \
termios.h \
ttyent.h \
unistd.h \
values.h \
)

PROG_EXT=
case $cf_cv_system_name in
hpux*)
    # check for HPUX's ANSI compiler
    if test -z "$GCC"; then
	AC_MSG_CHECKING([for HP/UX ANSI compiler])
	cf_save_CFLAGS="$CFLAGS"
	CFLAGS="$CFLAGS -Aa"
	AC_TRY_COMPILE([],[void (*f)(void)=0],[cf_hpux_cc=yes],[cf_hpux_cc=no])
	AC_MSG_RESULT($cf_hpux_cc)
	if test $cf_hpux_cc = yes; then
		AC_DEFINE(_HPUX_SOURCE)
	else
		CFLAGS="$cf_save_CFLAGS"
	fi
    fi
    ;;
os2*)
    # We make sure -Zexe is not used -- it would interfere with @PROG_EXT@
    CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
    LDFLAGS=`echo "$LDFLAGS -Zmt -Zcrtdll" | sed "s/-Zexe//g"`
    PROG_EXT=".exe"
    ;;
esac
AC_SUBST(PROG_EXT)

# check for ISC (this may also define _POSIX_SOURCE)
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
if test "$ISC" = yes ; then
	AC_CHECK_LIB(cposix,main)
	AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()'
	AC_CHECK_HEADERS( sys/termio.h )
fi

CF_SYS_TIME_SELECT

###	checks for compiler characteristics
AC_LANG_C
AC_C_CONST
AC_C_INLINE
test $ac_cv_c_inline != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)

CF_TYPEOF_CHTYPE
CF_WIDEC_SHIFT

###	Checks for external-data
CF_ERRNO
CF_LINK_DATAONLY
CF_SPEED_TYPE

###	Checks for library functions.
AC_CHECK_FUNCS( \
getttynam \
memccpy \
nanosleep \
poll \
remove \
select \
setbuf \
setbuffer \
setvbuf \
sigaction \
sigvec \
strdup \
tcgetattr \
times \
usleep \
vfscanf \
vsnprintf \
vsscanf \
)

if test "$with_getcap" = "yes" ; then
	CF_CGETENT
fi

CF_ISASCII
CF_STRUCT_SIGACTION
CF_STRUCT_TERMIOS

dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS
if test "$cross_compiling" = yes ; then
	AC_MSG_WARN(cross compiling: assume setvbuf params not reversed)
else
	AC_FUNC_SETVBUF_REVERSED
fi
AC_TYPE_SIGNAL
CF_TYPE_SIGACTION
CF_SIZECHANGE

dnl FIXME checks we don't do (but neither does the old Configure script):
case "$cf_cv_system_name" in
linux*)
	AC_DEFINE(GOOD_SELECT)
	;;
esac

dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS
if test -z "$cf_user_CFLAGS" ; then
	CF_STRIP_G_OPT(CFLAGS)
	CF_STRIP_G_OPT(CXXFLAGS)
fi

dnl Check for C++ compiler characteristics (and ensure that it's there!)
if test -n "$CXX" ; then
	AC_CHECK_PROG(CXX_EXISTS, $CXX, yes, no)
else
	ac_cv_prog_CXX_EXISTS=no
fi
if test "$ac_cv_prog_CXX_EXISTS" = yes; then
	AC_LANG_CPLUSPLUS
	CF_CXX_LIBRARY
	AC_CHECK_HEADERS(builtin.h typeinfo)
	CF_BOOL_DECL
	CF_BOOL_SIZE
else
	cf_cxx_library=no
	AC_CACHE_VAL(cf_cv_builtin_bool,[cf_cv_builtin_bool=0])
	AC_CACHE_VAL(cf_cv_sizeof_bool,[cf_cv_sizeof_bool=int])
fi
AC_SUBST(CXXLIBS)

CF_HELP_MESSAGE(Ada95 Binding Options:)

dnl Check for availability of GNU Ada Translator (GNAT).
dnl At the moment we support no other Ada95 compiler.
cf_ada_make=gnatmake
AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no)
if test "$ac_cv_prog_gnat_exists" = no; then
   cf_ada_make=
else
   CF_GNAT_VERSION
   AC_CHECK_PROG(m4_exists, m4, yes, no)
   if test "$ac_cv_prog_m4_exists" = no; then
      ac_cv_prog_gnat_correct=no
      echo Ada95 binding required program m4 not found. Ada95 binding disabled.
   fi
fi
if test	"$ac_cv_prog_gnat_correct" = yes; then
   ADAFLAGS="-O3 $ADAFLAGS"
   cf_ada_compiler=gcc
   cf_ada_package=terminal_interface

   AC_SUBST(cf_ada_make)
   AC_SUBST(cf_ada_compiler)
   AC_SUBST(cf_ada_package)
   AC_SUBST(ADAFLAGS)
   AC_SUBST(cf_compile_generics)

   CF_WITH_PATH(ada-include,
       [  --with-ada-include=DIR  Ada includes are in DIR],
       ADA_INCLUDE,
       EPREFIX/ada_include,
       [$]exec_prefix/ada_include)
   AC_SUBST(ADA_INCLUDE)

   CF_WITH_PATH(ada-objects,
       [  --with-ada-objects=DIR  Ada objects are in DIR],
       ADA_OBJECTS,
       EPREFIX/ada_objects,
       [$]exec_prefix/ada_objects)
   AC_SUBST(ADA_OBJECTS)

fi

### It's not possible to appease gcc 2.6.3's conversion-warnings if we're
### using a 'char' for bools.  gcc 2.7.0's conversion-warnings are broken too
### badly to consider using for development purposes, but 2.5.8 is okay.
if test -n "$with_warnings"; then
	if test -n "$GCC"; then
		case "`$CC --version`" in
		2.6.3)
			if test "$cf_cv_sizeof_bool" != "char"; then
				EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
			fi
			;;
		2.5*)
			EXTRA_CFLAGS="$EXTRA_CFLAGS -Wconversion"
			;;
		esac
	fi
fi

### Construct the library-subsets, if any, from this set of keywords:
### none, base, ext_funcs, termlib.
AC_MSG_CHECKING(for library subsets)
if test "$with_termlib" = yes ; then
	LIB_SUBSETS="termlib "
else
	LIB_SUBSETS="termlib+"
fi
LIB_SUBSETS="${LIB_SUBSETS}base"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
AC_MSG_RESULT($LIB_SUBSETS)

### Construct the list of include-directories to be generated
CF_INCLUDE_DIRS
CF_ADA_INCLUDE_DIRS

### Set up low-level terminfo dependencies for makefiles.  Note that we
### could override this.
if test "$with_termlib" = yes ; then
	TEST_DEPS="${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
	TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
fi
PROG_DEPS="$TEST_DEPS"
PROG_ARGS="$TEST_ARGS"

### Construct the list of subdirectories for which we'll customize makefiles
### with the appropriate compile-rules.

CF_SRC_MODULES($modules_to_build)
CF_DIRS_TO_MAKE

### Now that we're done running tests, add the compiler-warnings, if any
CFLAGS="$CFLAGS $EXTRA_CFLAGS"

################################################################################
AC_OUTPUT( \
	include/MKterm.h.awk \
	include/curses.h \
	include/termcap.h \
	include/unctrl.h \
	$SUB_MAKEFILES \
	Makefile,[
CF_LIB_RULES
],[
### Special initialization commands, used to pass information from the
### configuration-run into config.status

AWK="$AWK"
CF_LIST_MODELS="$cf_list_models"
DFT_LWR_MODEL="$DFT_LWR_MODEL"
LDCONFIG="$LDCONFIG"
LIB_NAME="$LIB_NAME"
LIB_SUBSETS="$LIB_SUBSETS"
SRC_SUBDIRS="$SRC_SUBDIRS"
TINFO_NAME="$TINFO_NAME"
WITH_ECHO="$with_echo"
WITH_OVERWRITE="$with_overwrite"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_rel_version="$cf_cv_rel_version"
cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
cf_cv_system_name="$cf_cv_system_name"
cf_cxx_library="$cf_cxx_library"
target="$target"

],sort)dnl
