dnl*************************************************************************** dnl Copyright (c) 1998-2014,2015 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.125 2015/10/10 20:23:49 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.52.20030208) 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_ARG_PROGRAM AC_PROG_MAKE_SET CF_PROG_CC AC_PROG_CPP AC_PROG_AWK CF_PROG_INSTALL CF_PROG_LINT CF_MAKE_TAGS CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) AC_SUBST(MATH_LIB) dnl Things that we don't need (or must override) if we're not building ncurses CF_TOP_BUILDDIR 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) LIBTOOL_OPTS="" AC_SUBST(LIBTOOL_OPTS) 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) LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS) PACKAGE="ncurses-examples" AC_SUBST(PACKAGE) PTHREAD="-lm" AC_SUBST(PTHREAD) TEST_ARGS="" AC_SUBST(TEST_ARGS) TEST_DEPS="" AC_SUBST(TEST_DEPS) TEST_LIBS="" AC_SUBST(TEST_LIBS) TINFO_LDFLAGS='' AC_SUBST(TINFO_LDFLAGS) TINFO_LIBS='$(LIBS_CURSES)' AC_SUBST(TINFO_LIBS) cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version) cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version) includesubdir="" AC_SUBST(includesubdir) cf_cv_screen=curses cf_cv_libtype= AC_EXEEXT AC_OBJEXT CF_GCC_ATTRIBUTES CF_XOPEN_SOURCE CF_SIG_ATOMIC_T dnl --------------------------------------------------------------------------- CF_HELP_MESSAGE(General Options:) CF_PKG_CONFIG CF_DISABLE_ECHO dnl --------------------------------------------------------------------------- CF_HELP_MESSAGE(Curses Version-dependent Options:) CF_NCURSES_WRAP_PREFIX AC_MSG_CHECKING(if you want to check for wide-character functions) CF_ARG_DISABLE(widec, [ --disable-widec disable checks for wide-character functions], cf_enable_widec=no, cf_enable_widec=yes, yes) AC_MSG_RESULT($cf_enable_widec) dnl --------------------------------------------------------------------------- CF_HELP_MESSAGE(Curses Version-dependent Options:) CF_WITH_NCURSES_ETC case $cf_cv_screen in (ncurses*) cf_cv_libtype=`echo "$cf_cv_screen" | sed -e 's/^ncurses//'` ;; (curses|curses_*) CF_NETBSD_FORM_H CF_NETBSD_MENU_H ;; 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 (pdcurses) ;; (*) # look for curses-related libraries CF_CHECK_CURSES_LIB(panel,$cf_cv_libtype,new_panel) CF_CHECK_CURSES_LIB(menu,$cf_cv_libtype,menu_driver) CF_CHECK_CURSES_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 \ term_entry.h \ ) ;; esac AC_STDC_HEADERS AC_HEADER_TIME AC_CHECK_HEADERS( \ getopt.h \ locale.h \ math.h \ stdarg.h \ sys/ioctl.h \ sys/select.h \ sys/time.h \ termios.h \ unistd.h \ ) CF_GETOPT_HEADER AC_CHECK_FUNCS( \ getopt \ gettimeofday \ ) if test "x$ac_cv_func_getopt" = xno; then AC_MSG_ERROR(getopt is required for building programs) fi if test "$cf_enable_widec" = yes; then AC_CHECK_FUNCS( \ mblen \ mbrlen \ mbrtowc \ mbsrtowcs \ mbstowcs \ mbtowc \ wcsrtombs \ wcstombs \ ) fi CF_CURSES_FUNCS( \ assume_default_colors \ chgat \ color_set \ filter \ getbegx \ getcurx \ getmaxx \ getnstr \ getparx \ getwin \ mvvline \ mvwvline \ napms \ putwin \ resize_term \ resizeterm \ ripoffline \ scr_dump \ setupterm \ slk_color \ slk_init \ termattrs \ tgetent \ tigetnum \ tigetstr \ typeahead \ use_default_colors \ use_env \ use_extended_names \ use_screen \ use_window \ vid_puts \ vidputs \ vsscanf \ vw_printw \ wchgat \ winsstr \ wresize \ wsyncdown \ ) CF_TPUTS_PROTO CF_NCURSES_EXT_FUNCS if test "$cf_enable_widec" = yes then # workaround for systems with ncurses before 20111029, due to change of # feature test macro from _XPG5 to _XOPEN_SOURCE if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno then cf_define_xpg5=no AC_MSG_CHECKING(if _XPG5 should be defined to enable wide-characters) AC_TRY_COMPILE([ #include <${cf_cv_ncurses_header:-curses.h}>], [int x = _XPG5],, [cf_save_cppflags="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_XPG5" AC_TRY_COMPILE([ #include <${cf_cv_ncurses_header:-curses.h}>], [int x = _XPG5], [cf_define_xpg5=yes]) CPPFLAGS="$cf_save_cppflags"]) AC_MSG_RESULT($cf_define_xpg5) if test "$cf_define_xpg5" = yes then CPPFLAGS="$CPPFLAGS -D_XPG5" fi fi 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,[Define to 1 to enable wide-character support in (n)curses]) else AC_DEFINE(USE_WIDEC_SUPPORT,0) fi else AC_DEFINE(USE_WIDEC_SUPPORT,0) fi AC_CACHE_CHECK(if $cf_cv_screen library uses pthreads,cf_cv_use_pthreads,[ AC_TRY_LINK([ #include <${cf_cv_ncurses_header:-curses.h}> extern void _nc_init_pthreads(void); ], [ initscr(); _nc_init_pthreads(); ], [cf_cv_use_pthreads=yes], [cf_cv_use_pthreads=no]) ]) test $cf_cv_use_pthreads = yes && AC_DEFINE(USE_PTHREADS) CF_SYS_TIME_SELECT # special check for test/ditto.c CF_FUNC_OPENPTY if test "$cf_cv_func_openpty" != no ; then AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function]) AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface]) if test "x$cf_cv_lib_util" = xyes ; then CF_ADD_LIB(util,TEST_LIBS) fi fi CF_FUNC_CURSES_VERSION CF_CURSES_ACS_MAP if test "$cf_enable_widec" = yes; then CF_CURSES_WACS_MAP CF_CURSES_WACS_SYMBOLS fi CF_CURSES_CHECK_TYPE(attr_t,long) if test "$cf_enable_widec" = yes; then CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T) CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) if test "$NCURSES_OK_MBSTATE_T" = 0 ; then CF_CURSES_CHECK_TYPE(mbstate_t,long) fi if test "$NCURSES_OK_WCHAR_T" = 0 ; then CF_CURSES_CHECK_TYPE(wchar_t,long) fi if test "$NCURSES_OK_WINT_T" = 0 ; then CF_CURSES_CHECK_TYPE(wint_t,long) fi fi CF_CURSES_CHECK_DATA(ospeed) CF_CURSES_CHECK_DATA(boolnames) CF_CURSES_CHECK_DATA(boolfnames) dnl --------------------------------------------------------------------------- CF_HELP_MESSAGE(Testing/development Options:) CF_ENABLE_WARNINGS CF_DISABLE_LEAKS CF_DISABLE_RPATH_HACK TEST_ARGS="$LIBS" LIBS= dnl --------------------------------------------------------------------------- AC_OUTPUT(Makefile,[ CF_PRG_RULES([$srcdir/mk-test.awk INSTALL=yes ECHO_LINK="$ECHO_LD"], .) cat >>Makefile <>Makefile <>Makefile <