1dnl*************************************************************************** 2dnl Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * 3dnl * 4dnl Permission is hereby granted, free of charge, to any person obtaining a * 5dnl copy of this software and associated documentation files (the * 6dnl "Software"), to deal in the Software without restriction, including * 7dnl without limitation the rights to use, copy, modify, merge, publish, * 8dnl distribute, distribute with modifications, sublicense, and/or sell * 9dnl copies of the Software, and to permit persons to whom the Software is * 10dnl furnished to do so, subject to the following conditions: * 11dnl * 12dnl The above copyright notice and this permission notice shall be included * 13dnl in all copies or substantial portions of the Software. * 14dnl * 15dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 16dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 17dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 18dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 19dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 20dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 21dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 22dnl * 23dnl Except as contained in this notice, the name(s) of the above copyright * 24dnl holders shall not be used in advertising or otherwise to promote the * 25dnl sale, use or other dealings in this Software without prior written * 26dnl authorization. * 27dnl*************************************************************************** 28dnl 29dnl Author: Thomas E. Dickey 1996, etc. 30dnl 31dnl $Id: configure.in,v 1.67 2008/09/06 22:10:23 tom Exp $ 32dnl This is a simple configuration-script for the ncurses test programs that 33dnl allows the test-directory to be separately configured against a reference 34dnl system (i.e., sysvr4 curses) 35dnl 36dnl If you're configuring ncurses, you shouldn't need to use this script. 37dnl It's only for testing purposes. 38dnl 39dnl See http://invisible-island.net/autoconf/ for additional information. 40dnl --------------------------------------------------------------------------- 41AC_PREREQ(2.13.20020210) 42AC_INIT(ncurses.c) 43AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin) 44 45CF_INHERIT_SCRIPT(config.guess) 46CF_INHERIT_SCRIPT(config.sub) 47CF_CHECK_CACHE 48 49AC_PROG_MAKE_SET 50AC_PROG_CC 51AC_PROG_CPP 52AC_PROG_AWK 53 54dnl Things that we don't need (or must override) if we're not building ncurses 55CC_G_OPT="-g" AC_SUBST(CC_G_OPT) 56CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS) 57CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS) 58DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX) 59DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR) 60DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL) 61LD="ld" AC_SUBST(LD) 62LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED) 63LDFLAGS_STATIC="" AC_SUBST(LDFLAGS_STATIC) 64LD_MODEL="" AC_SUBST(LD_MODEL) 65LD_SHARED_OPTS="" AC_SUBST(LD_SHARED_OPTS) 66LIBTOOL="" AC_SUBST(LIBTOOL) 67LIB_CLEAN="" AC_SUBST(LIB_CLEAN) 68LIB_COMPILE="" AC_SUBST(LIB_COMPILE) 69LIB_LINK='${CC}' AC_SUBST(LIB_LINK) 70LINK_TESTS="" AC_SUBST(LINK_TESTS) 71LINT=lint AC_SUBST(LINT) 72LINT_OPTS="" AC_SUBST(LINT_OPTS) 73LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS) 74MATH_LIB="-lm" AC_SUBST(MATH_LIB) 75PTHREAD="-lm" AC_SUBST(PTHREAD) 76TEST_ARGS="" AC_SUBST(TEST_ARGS) 77TEST_DEPS="" AC_SUBST(TEST_DEPS) 78TEST_LIBS="" AC_SUBST(TEST_LIBS) 79TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS) 80cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version) 81cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version) 82 83cf_cv_screen=curses 84cf_cv_libtype= 85 86AC_EXEEXT 87AC_OBJEXT 88 89CF_ANSI_CC_REQD 90CF_GCC_ATTRIBUTES 91CF_XOPEN_SOURCE 92AC_C_CONST 93CF_SIG_ATOMIC_T 94 95CF_DISABLE_ECHO 96CF_ENABLE_WARNINGS 97 98CF_WITH_CURSES_DIR 99 100dnl SunOS 4.x 101AC_ARG_WITH(5lib, 102 [ --with-5lib use SunOS sysv-libraries], 103 [LIBS="-L/usr/5lib $LIBS" 104 CPPFLAGS="$CPPFLAGS -I/usr/5include"]) 105 106dnl --------------------------------------------------------------------------- 107dnl NcursesW, installed in conventional location 108AC_ARG_WITH(ncursesw, 109 [ --with-ncursesw use wide ncurses-libraries (installed)], 110 [cf_cv_screen=ncursesw],[ 111 112dnl Ncurses, installed in conventional location 113AC_ARG_WITH(ncurses, 114 [ --with-ncurses use ncurses-libraries (installed)], 115 [cf_cv_screen=ncurses],[ 116 117AC_ARG_WITH(pdcurses, 118 [ --with-pdcurses compile/link with pdcurses X11 library], 119 [cf_cv_screen=pdcurses])])]) 120 121case $cf_cv_screen in 122curses) 123 CF_CURSES_CPPFLAGS 124 CF_NCURSES_VERSION 125 CF_CURSES_LIBS 126 ;; 127ncurses) 128 CF_NCURSES_CPPFLAGS 129 CF_NCURSES_LIBS 130 ;; 131ncursesw) 132 cf_cv_libtype=w 133 CF_UTF8_LIB 134 CF_NCURSES_CPPFLAGS(ncursesw) 135 CF_NCURSES_LIBS(ncursesw) 136 ;; 137pdcurses) #(vi 138 CF_PDCURSES_X11 139 ;; 140esac 141 142dnl If we've not specified a library, assume we're using sysvr4 libraries 143dnl installed conventionally (e.g., SunOS 5.x - solaris). 144 145dnl Autoconf builds up the $LIBS in reverse order 146 147case $cf_cv_screen in #(vi 148pdcurses) #(vi 149 ;; 150*) 151 # look for curses-related libraries 152 AC_CHECK_LIB(panel$cf_cv_libtype,new_panel) 153 AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver) 154 AC_CHECK_LIB(form$cf_cv_libtype,form_driver) 155 156 # look for curses-related headers 157 AC_CHECK_HEADERS( \ 158 nc_alloc.h \ 159 nomacros.h \ 160 form.h \ 161 menu.h \ 162 panel.h \ 163 ) 164 ;; 165esac 166 167AC_TYPE_SIGNAL 168 169AC_STDC_HEADERS 170AC_HEADER_TIME 171AC_CHECK_HEADERS( \ 172getopt.h \ 173locale.h \ 174stdarg.h \ 175sys/ioctl.h \ 176sys/select.h \ 177sys/time.h \ 178termios.h \ 179unistd.h \ 180) 181 182AC_CHECK_FUNCS( \ 183gettimeofday \ 184mblen \ 185mbrlen \ 186mbrtowc \ 187mbsrtowcs \ 188mbstowcs \ 189mbtowc \ 190strdup \ 191wcsrtombs \ 192wcstombs \ 193) 194 195CF_CURSES_FUNCS( \ 196chgat \ 197color_set \ 198filter \ 199getbegx \ 200getcurx \ 201getmaxx \ 202getnstr \ 203getparx \ 204getwin \ 205mvvline \ 206mvwvline \ 207napms \ 208putwin \ 209resize_term \ 210resizeterm \ 211ripoffline \ 212setupterm \ 213slk_color \ 214slk_init \ 215termattrs \ 216tgetent \ 217tigetnum \ 218tigetstr \ 219typeahead \ 220use_default_colors \ 221vsscanf \ 222wchgat \ 223winsstr \ 224wresize \ 225) 226 227AC_CACHE_CHECK(for ncurses extended functions,cf_cv_ncurses_ext_funcs,[ 228AC_TRY_LINK([ 229#include <${cf_cv_ncurses_header-curses.h}>], 230[ 231 (void) assume_default_colors (0, 0); 232 (void) curses_version (); 233 (void) define_key (0, 0); 234 (void) is_term_resized (0, 0); 235 (void) key_defined (0); 236 (void) keybound (0, 0); 237 (void) keyok (0, 0); 238 (void) resize_term (0, 0); 239 (void) resizeterm (0, 0); 240 (void) use_default_colors (); 241 (void) use_extended_names (0); 242 (void) wresize (0, 0, 0);], 243 [cf_cv_ncurses_ext_funcs=yes], 244 [cf_cv_ncurses_ext_funcs=no]) 245]) 246test "$cf_cv_ncurses_ext_funcs" != no && AC_DEFINE(NCURSES_EXT_FUNCS) 247 248AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[ 249AC_TRY_LINK([ 250#include <${cf_cv_ncurses_header-curses.h}>], 251[ 252 static wchar_t src_wchar[2]; 253 static cchar_t dst_cchar; 254 setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); 255 ], 256 [cf_cv_widechar_funcs=yes], 257 [cf_cv_widechar_funcs=no]) 258]) 259if test "$cf_cv_widechar_funcs" != no ; then 260 AC_DEFINE(USE_WIDEC_SUPPORT,1) 261else 262 AC_DEFINE(USE_WIDEC_SUPPORT,0) 263fi 264 265CF_SYS_TIME_SELECT 266CF_FUNC_CURSES_VERSION 267CF_CURSES_ACS_MAP 268CF_CURSES_WACS_MAP 269CF_CURSES_CHECK_TYPE(attr_t,long) 270CF_CURSES_CHECK_TYPE(mbstate_t,long) 271 272TEST_ARGS="$LIBS" 273LIBS= 274 275dnl --------------------------------------------------------------------------- 276 277AC_OUTPUT(Makefile,[ 278CF_PRG_RULES([$srcdir/mk-test.awk ECHO_LINK="$ECHO_LD"], .) 279 cat >>Makefile <<TEST_EOF 280 281# These rules are generated so we do not rely on suffix rules, which do not 282# work consistently for different make-programs (the '\$(MODEL)/' confuses 283# some, and the '\$x' confuses others). 284TEST_EOF 285LIST=`sed -e 's/[[ ]].*//' -e '/^[[#@]]/d' $srcdir/modules` 286for N in $LIST 287do 288 cat >>Makefile <<TEST_EOF 289 290\$(MODEL)/$N.o : $N.c \\ 291 test.priv.h \\ 292 ncurses_cfg.h 293 @echo compiling $N; \$(CC) -c \$(CFLAGS_DEFAULT) $N.c 294TEST_EOF 295done 296],[ 297AWK="$AWK" 298ECHO_LD="$ECHO_LD" 299],cat) 300