dnl***************************************************************************
dnl Copyright (c) 1998-2007,2008 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 1996, etc.
dnl
dnl $Id: configure.in,v 1.67 2008/09/06 22:10:23 tom Exp $
dnl This is a simple configuration-script for the ncurses test programs that
dnl allows the test-directory to be separately configured against a reference
dnl system (i.e., sysvr4 curses)
dnl
dnl If you're configuring ncurses, you shouldn't need to use this script.
dnl It's only for testing purposes.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.13.20020210)
AC_INIT(ncurses.c)
AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin)

CF_INHERIT_SCRIPT(config.guess)
CF_INHERIT_SCRIPT(config.sub)
CF_CHECK_CACHE

AC_PROG_MAKE_SET
AC_PROG_CC
AC_PROG_CPP
AC_PROG_AWK

dnl Things that we don't need (or must override) if we're not building ncurses
CC_G_OPT="-g"					AC_SUBST(CC_G_OPT)
CC_SHARED_OPTS=unknown			AC_SUBST(CC_SHARED_OPTS)
CPPFLAGS="$CPPFLAGS"			AC_SUBST(CPPFLAGS)
DFT_DEP_SUFFIX=""				AC_SUBST(DFT_DEP_SUFFIX)
DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`	AC_SUBST(DFT_OBJ_SUBDIR)
DFT_UPR_MODEL="NORMAL"			AC_SUBST(DFT_UPR_MODEL)
LD="ld"							AC_SUBST(LD)
LDFLAGS_SHARED=""				AC_SUBST(LDFLAGS_SHARED)
LDFLAGS_STATIC=""				AC_SUBST(LDFLAGS_STATIC)
LD_MODEL=""						AC_SUBST(LD_MODEL)
LD_SHARED_OPTS=""				AC_SUBST(LD_SHARED_OPTS)
LIBTOOL=""						AC_SUBST(LIBTOOL)
LIB_CLEAN=""					AC_SUBST(LIB_CLEAN)
LIB_COMPILE=""					AC_SUBST(LIB_COMPILE)
LIB_LINK='${CC}'				AC_SUBST(LIB_LINK)
LINK_TESTS=""					AC_SUBST(LINK_TESTS)
LINT=lint						AC_SUBST(LINT)
LINT_OPTS=""					AC_SUBST(LINT_OPTS)
LOCAL_LDFLAGS=""				AC_SUBST(LOCAL_LDFLAGS)
MATH_LIB="-lm"					AC_SUBST(MATH_LIB)
PTHREAD="-lm"					AC_SUBST(PTHREAD)
TEST_ARGS=""					AC_SUBST(TEST_ARGS)
TEST_DEPS=""					AC_SUBST(TEST_DEPS)
TEST_LIBS=""					AC_SUBST(TEST_LIBS)
TINFO_ARGS='$(LIBS_CURSES)'		AC_SUBST(TINFO_ARGS)
cf_cv_abi_version=""			AC_SUBST(cf_cv_abi_version)
cf_cv_rel_version=""			AC_SUBST(cf_cv_rel_version)

cf_cv_screen=curses
cf_cv_libtype=

AC_EXEEXT
AC_OBJEXT

CF_ANSI_CC_REQD
CF_GCC_ATTRIBUTES
CF_XOPEN_SOURCE
AC_C_CONST
CF_SIG_ATOMIC_T

CF_DISABLE_ECHO
CF_ENABLE_WARNINGS

CF_WITH_CURSES_DIR

dnl SunOS 4.x
AC_ARG_WITH(5lib,
	[  --with-5lib             use SunOS sysv-libraries],
	[LIBS="-L/usr/5lib $LIBS"
	 CPPFLAGS="$CPPFLAGS -I/usr/5include"])

dnl ---------------------------------------------------------------------------
dnl NcursesW, installed in conventional location
AC_ARG_WITH(ncursesw,
	[  --with-ncursesw         use wide ncurses-libraries (installed)],
	[cf_cv_screen=ncursesw],[

dnl Ncurses, installed in conventional location
AC_ARG_WITH(ncurses,
	[  --with-ncurses          use ncurses-libraries (installed)],
	[cf_cv_screen=ncurses],[

AC_ARG_WITH(pdcurses,
	[  --with-pdcurses         compile/link with pdcurses X11 library],
	[cf_cv_screen=pdcurses])])])

case $cf_cv_screen in
curses)
	CF_CURSES_CPPFLAGS
	CF_NCURSES_VERSION
	CF_CURSES_LIBS
	;;
ncurses)
	CF_NCURSES_CPPFLAGS
	CF_NCURSES_LIBS
	;;
ncursesw)
	cf_cv_libtype=w
	CF_UTF8_LIB
	CF_NCURSES_CPPFLAGS(ncursesw)
	CF_NCURSES_LIBS(ncursesw)
	;;
pdcurses) #(vi
	CF_PDCURSES_X11
	;;
esac

dnl If we've not specified a library, assume we're using sysvr4 libraries
dnl installed conventionally (e.g., SunOS 5.x - solaris).

dnl Autoconf builds up the $LIBS in reverse order

case $cf_cv_screen in #(vi
pdcurses) #(vi
	;;
*)
	# look for curses-related libraries
	AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
	AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
	AC_CHECK_LIB(form$cf_cv_libtype,form_driver)

	# look for curses-related headers
	AC_CHECK_HEADERS( \
		nc_alloc.h \
		nomacros.h \
		form.h \
		menu.h \
		panel.h \
		)
	;;
esac

AC_TYPE_SIGNAL

AC_STDC_HEADERS
AC_HEADER_TIME
AC_CHECK_HEADERS( \
getopt.h \
locale.h \
stdarg.h \
sys/ioctl.h \
sys/select.h \
sys/time.h \
termios.h \
unistd.h \
)

AC_CHECK_FUNCS( \
gettimeofday \
mblen \
mbrlen \
mbrtowc \
mbsrtowcs \
mbstowcs \
mbtowc \
strdup \
wcsrtombs \
wcstombs \
)

CF_CURSES_FUNCS( \
chgat \
color_set \
filter \
getbegx \
getcurx \
getmaxx \
getnstr \
getparx \
getwin \
mvvline \
mvwvline \
napms \
putwin \
resize_term \
resizeterm \
ripoffline \
setupterm \
slk_color \
slk_init \
termattrs \
tgetent \
tigetnum \
tigetstr \
typeahead \
use_default_colors \
vsscanf \
wchgat \
winsstr \
wresize \
)

AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[
AC_TRY_LINK([
#include <${cf_cv_ncurses_header-curses.h}>],
[
	(void) assume_default_colors (0, 0);
	(void) curses_version ();
	(void) define_key (0, 0);
	(void) is_term_resized (0, 0);
	(void) key_defined (0);
	(void) keybound (0, 0);
	(void) keyok (0, 0);
	(void) resize_term (0, 0);
	(void) resizeterm (0, 0);
	(void) use_default_colors ();
	(void) use_extended_names (0);
	(void) wresize (0, 0, 0);],
	[cf_cv_ncurses_ext_funcs=yes],
	[cf_cv_ncurses_ext_funcs=no])
])
test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS)

AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[
AC_TRY_LINK([
#include <${cf_cv_ncurses_header-curses.h}>],
[
	static wchar_t src_wchar[2];
	static cchar_t dst_cchar;
	setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0);
	],
	[cf_cv_widechar_funcs=yes],
	[cf_cv_widechar_funcs=no])
])
if test "$cf_cv_widechar_funcs" != no ; then
	AC_DEFINE(USE_WIDEC_SUPPORT,1)
else
	AC_DEFINE(USE_WIDEC_SUPPORT,0)
fi

CF_SYS_TIME_SELECT
CF_FUNC_CURSES_VERSION
CF_CURSES_ACS_MAP
CF_CURSES_WACS_MAP
CF_CURSES_CHECK_TYPE(attr_t,long)
CF_CURSES_CHECK_TYPE(mbstate_t,long)

TEST_ARGS="$LIBS"
LIBS=

dnl ---------------------------------------------------------------------------

AC_OUTPUT(Makefile,[
CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .)
	cat >>Makefile <<TEST_EOF

# These rules are generated so we do not rely on suffix rules, which do not
# work consistently for different make-programs (the '\$(MODEL)/' confuses
# some, and the '\$x' confuses others).
TEST_EOF
LIST=`sed -e 's/[[ 	]].*//' -e '/^[[#@]]/d' $srcdir/modules`
for N in $LIST
do
	cat >>Makefile <<TEST_EOF

\$(MODEL)/$N.o : $N.c \\
	test.priv.h \\
	ncurses_cfg.h
	@echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c
TEST_EOF
done
],[
AWK="$AWK"
ECHO_LD="$ECHO_LD"
],cat)
