Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 1 | dnl*************************************************************************** |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 2 | dnl Copyright 2018-2023,2024 Thomas E. Dickey * |
| 3 | dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. * |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 4 | dnl * |
| 5 | dnl Permission is hereby granted, free of charge, to any person obtaining a * |
| 6 | dnl copy of this software and associated documentation files (the * |
| 7 | dnl "Software"), to deal in the Software without restriction, including * |
| 8 | dnl without limitation the rights to use, copy, modify, merge, publish, * |
| 9 | dnl distribute, distribute with modifications, sublicense, and/or sell * |
| 10 | dnl copies of the Software, and to permit persons to whom the Software is * |
| 11 | dnl furnished to do so, subject to the following conditions: * |
| 12 | dnl * |
| 13 | dnl The above copyright notice and this permission notice shall be included * |
| 14 | dnl in all copies or substantial portions of the Software. * |
| 15 | dnl * |
| 16 | dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| 17 | dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| 18 | dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| 19 | dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| 20 | dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| 21 | dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| 22 | dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| 23 | dnl * |
| 24 | dnl Except as contained in this notice, the name(s) of the above copyright * |
| 25 | dnl holders shall not be used in advertising or otherwise to promote the * |
| 26 | dnl sale, use or other dealings in this Software without prior written * |
| 27 | dnl authorization. * |
| 28 | dnl*************************************************************************** |
| 29 | dnl |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 30 | dnl Author: Thomas E. Dickey 1996-on |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 31 | dnl |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 32 | dnl $Id: configure.in,v 1.174 2024/03/30 14:31:11 tom Exp $ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 33 | dnl This is a simple configuration-script for the ncurses test programs that |
| 34 | dnl allows the test-directory to be separately configured against a reference |
| 35 | dnl system (i.e., sysvr4 curses) |
| 36 | dnl |
| 37 | dnl If you're configuring ncurses, you shouldn't need to use this script. |
| 38 | dnl It's only for testing purposes. |
| 39 | dnl |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 40 | dnl For additional information, see |
| 41 | dnl https://invisible-island.net/autoconf/ |
| 42 | dnl https://invisible-island.net/autoconf/my-autoconf.html |
| 43 | dnl https://invisible-island.net/ncurses/ncurses-examples.html |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 44 | dnl --------------------------------------------------------------------------- |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 45 | AC_PREREQ(2.52.20210509) |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 46 | AC_INIT(ncurses.c) |
| 47 | AC_CONFIG_HEADER(ncurses_cfg.h:ncurses_tst.hin) |
| 48 | |
| 49 | CF_INHERIT_SCRIPT(config.guess) |
| 50 | CF_INHERIT_SCRIPT(config.sub) |
| 51 | CF_CHECK_CACHE |
| 52 | |
| 53 | AC_ARG_PROGRAM |
| 54 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 55 | CF_HELP_MESSAGE(General Options:) |
| 56 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 57 | AC_PROG_MAKE_SET |
| 58 | CF_PROG_CC |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 59 | AC_C_INLINE |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 60 | AC_PROG_CPP |
| 61 | AC_PROG_AWK |
| 62 | CF_PROG_INSTALL |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 63 | CF_INSTALL_OPTS |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 64 | CF_PROG_LINT |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 65 | CF_MAKE_PHONY |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 66 | CF_MAKE_TAGS |
| 67 | |
| 68 | CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) |
| 69 | AC_SUBST(MATH_LIB) |
| 70 | |
| 71 | dnl Things that we don't need (or must override) if we're not building ncurses |
| 72 | CF_TOP_BUILDDIR |
| 73 | CC_G_OPT="-g" AC_SUBST(CC_G_OPT) |
| 74 | CC_SHARED_OPTS=unknown AC_SUBST(CC_SHARED_OPTS) |
| 75 | CPPFLAGS="$CPPFLAGS" AC_SUBST(CPPFLAGS) |
| 76 | DFT_DEP_SUFFIX="" AC_SUBST(DFT_DEP_SUFFIX) |
| 77 | DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR) |
| 78 | DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL) |
| 79 | LD="ld" AC_SUBST(LD) |
| 80 | LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED) |
| 81 | LDFLAGS_STATIC="" AC_SUBST(LDFLAGS_STATIC) |
| 82 | LD_MODEL="" AC_SUBST(LD_MODEL) |
| 83 | LD_SHARED_OPTS="" AC_SUBST(LD_SHARED_OPTS) |
| 84 | LIBTOOL="" AC_SUBST(LIBTOOL) |
| 85 | LIBTOOL_OPTS="" AC_SUBST(LIBTOOL_OPTS) |
| 86 | LIB_CLEAN="" AC_SUBST(LIB_CLEAN) |
| 87 | LIB_COMPILE="" AC_SUBST(LIB_COMPILE) |
| 88 | LIB_LINK='${CC}' AC_SUBST(LIB_LINK) |
| 89 | LINK_TESTS="" AC_SUBST(LINK_TESTS) |
| 90 | LOCAL_LDFLAGS="" AC_SUBST(LOCAL_LDFLAGS) |
| 91 | PACKAGE="ncurses-examples" AC_SUBST(PACKAGE) |
| 92 | PTHREAD="-lm" AC_SUBST(PTHREAD) |
| 93 | TEST_ARGS="" AC_SUBST(TEST_ARGS) |
| 94 | TEST_DEPS="" AC_SUBST(TEST_DEPS) |
| 95 | TEST_LIBS="" AC_SUBST(TEST_LIBS) |
| 96 | TINFO_LDFLAGS='' AC_SUBST(TINFO_LDFLAGS) |
| 97 | TINFO_LIBS='$(LIBS_CURSES)' AC_SUBST(TINFO_LIBS) |
| 98 | cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version) |
| 99 | cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version) |
| 100 | includesubdir="" AC_SUBST(includesubdir) |
| 101 | |
| 102 | cf_cv_screen=curses |
| 103 | cf_cv_libtype= |
| 104 | |
| 105 | AC_EXEEXT |
| 106 | AC_OBJEXT |
| 107 | |
| 108 | CF_GCC_ATTRIBUTES |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 109 | CF_ENABLE_STRING_HACKS |
| 110 | CF_XOPEN_SOURCE(600) |
| 111 | AC_CHECK_DECL(exit) |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 112 | CF_SIG_ATOMIC_T |
| 113 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 114 | # Work around breakage on OS X |
| 115 | CF_SIGWINCH |
| 116 | |
| 117 | # Checks for CODESET support. |
| 118 | AM_LANGINFO_CODESET |
| 119 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 120 | dnl --------------------------------------------------------------------------- |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 121 | CF_PKG_CONFIG |
| 122 | CF_DISABLE_ECHO |
| 123 | |
| 124 | dnl --------------------------------------------------------------------------- |
| 125 | CF_HELP_MESSAGE(Curses Version-dependent Options:) |
| 126 | CF_NCURSES_WRAP_PREFIX |
| 127 | |
| 128 | AC_MSG_CHECKING(if you want to check for wide-character functions) |
| 129 | CF_ARG_DISABLE(widec, |
| 130 | [ --disable-widec disable checks for wide-character functions], |
| 131 | cf_enable_widec=no, |
| 132 | cf_enable_widec=yes, |
| 133 | yes) |
| 134 | AC_MSG_RESULT($cf_enable_widec) |
| 135 | |
| 136 | dnl --------------------------------------------------------------------------- |
| 137 | CF_HELP_MESSAGE(Curses Version-dependent Options:) |
| 138 | CF_WITH_NCURSES_ETC |
| 139 | |
| 140 | case $cf_cv_screen in |
| 141 | (ncurses*) |
| 142 | cf_cv_libtype=`echo "$cf_cv_screen" | sed -e 's/^ncurses//'` |
| 143 | ;; |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 144 | esac |
| 145 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 146 | CF_WITH_X11_RGB |
| 147 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 148 | dnl If we've not specified a library, assume we're using sysvr4 libraries |
| 149 | dnl installed conventionally (e.g., SunOS 5.x - solaris). |
| 150 | |
| 151 | dnl Autoconf builds up the $LIBS in reverse order |
| 152 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 153 | cf_curses_headers= |
| 154 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 155 | case $cf_cv_screen in |
| 156 | (pdcurses) |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 157 | cf_default_panel=no |
| 158 | cf_default_form=no |
| 159 | cf_default_menu=no |
| 160 | cf_default_tinfo=no |
| 161 | ;; |
| 162 | (xcurses|bsdcurses) |
| 163 | cf_default_panel=no |
| 164 | cf_default_form=no |
| 165 | cf_default_menu=no |
| 166 | cf_default_tinfo=yes |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 167 | ;; |
| 168 | (*) |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 169 | cf_default_panel=yes |
| 170 | cf_default_form=yes |
| 171 | cf_default_menu=yes |
| 172 | cf_default_tinfo=yes |
| 173 | case $cf_cv_screen in |
| 174 | (ncurses*) |
| 175 | cf_curses_headers="nc_alloc.h nomacros.h term_entry.h" |
| 176 | ;; |
| 177 | esac |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 178 | ;; |
| 179 | esac |
| 180 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 181 | CF_WITH_LIB_BASENAME(FORM_NAME,form) |
| 182 | CF_WITH_LIB_BASENAME(MENU_NAME,menu) |
| 183 | CF_WITH_LIB_BASENAME(PANEL_NAME,panel) |
| 184 | |
| 185 | AC_MSG_CHECKING(if you want to check for panel functions) |
| 186 | CF_ARG_DISABLE(panel, |
| 187 | [ --disable-panel disable checks for panel functions], |
| 188 | cf_enable_panel=no, |
| 189 | cf_enable_panel=$cf_default_panel, |
| 190 | yes) |
| 191 | AC_MSG_RESULT($cf_enable_panel) |
| 192 | if test $cf_enable_panel = yes |
| 193 | then |
| 194 | CF_CHECK_CURSES_LIB($PANEL_NAME,$cf_cv_libtype,new_panel,0) |
| 195 | cf_curses_headers="$cf_curses_headers panel.h" |
| 196 | fi |
| 197 | |
| 198 | AC_MSG_CHECKING(if you want to check for menu functions) |
| 199 | CF_ARG_DISABLE(menu, |
| 200 | [ --disable-menu disable checks for menu functions], |
| 201 | cf_enable_menu=no, |
| 202 | cf_enable_menu=$cf_default_menu, |
| 203 | yes) |
| 204 | AC_MSG_RESULT($cf_enable_menu) |
| 205 | if test $cf_enable_menu = yes |
| 206 | then |
| 207 | case $cf_cv_screen in |
| 208 | (ncurses*) |
| 209 | ;; |
| 210 | (curses*) |
| 211 | CF_NETBSD_MENU_H |
| 212 | ;; |
| 213 | esac |
| 214 | CF_CHECK_CURSES_LIB($MENU_NAME,$cf_cv_libtype,menu_driver,[0,0]) |
| 215 | cf_curses_headers="$cf_curses_headers menu.h" |
| 216 | fi |
| 217 | |
| 218 | AC_MSG_CHECKING(if you want to check for form functions) |
| 219 | CF_ARG_DISABLE(form, |
| 220 | [ --disable-form disable checks for form functions], |
| 221 | cf_enable_form=no, |
| 222 | cf_enable_form=$cf_default_form, |
| 223 | yes) |
| 224 | AC_MSG_RESULT($cf_enable_form) |
| 225 | if test $cf_enable_form = yes |
| 226 | then |
| 227 | case $cf_cv_screen in |
| 228 | (ncurses*) |
| 229 | ;; |
| 230 | (curses*) |
| 231 | CF_NETBSD_FORM_H |
| 232 | ;; |
| 233 | esac |
| 234 | CF_CHECK_CURSES_LIB($FORM_NAME,$cf_cv_libtype,form_driver,[0,0]) |
| 235 | cf_curses_headers="$cf_curses_headers form.h" |
| 236 | fi |
| 237 | |
| 238 | # look for curses-related headers |
| 239 | AC_CHECK_HEADERS( $cf_curses_headers ) |
| 240 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 241 | AC_HEADER_TIME |
| 242 | AC_CHECK_HEADERS( \ |
| 243 | getopt.h \ |
| 244 | locale.h \ |
| 245 | math.h \ |
| 246 | stdarg.h \ |
| 247 | sys/ioctl.h \ |
| 248 | sys/select.h \ |
| 249 | sys/time.h \ |
| 250 | termios.h \ |
| 251 | unistd.h \ |
| 252 | ) |
| 253 | |
| 254 | CF_GETOPT_HEADER |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 255 | CF_FUNC_GETTIME |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 256 | |
| 257 | AC_CHECK_FUNCS( \ |
| 258 | getopt \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 259 | snprintf \ |
| 260 | strdup \ |
| 261 | strstr \ |
| 262 | tsearch \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 263 | ) |
| 264 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 265 | # use a compile-check to work with ncurses*-config and subdirectory includes |
| 266 | AC_CACHE_CHECK(if we can use termcap.h,cf_cv_have_termcap_h,[ |
| 267 | AC_TRY_COMPILE([ |
| 268 | #include <curses.h> |
| 269 | #ifdef NCURSES_VERSION |
| 270 | #undef NCURSES_VERSION |
| 271 | #endif |
| 272 | #include <termcap.h> |
| 273 | #ifndef NCURSES_VERSION |
| 274 | #error wrong header |
| 275 | #endif |
| 276 | ], |
| 277 | [return 0;], |
| 278 | [cf_cv_have_termcap_h=yes], |
| 279 | [cf_cv_have_termcap_h=no])]) |
| 280 | if test "x$cf_cv_have_termcap_h" = xyes |
| 281 | then |
| 282 | AC_DEFINE(HAVE_TERMCAP_H,1,[Define to 1 if we can use termcap.h]) |
| 283 | else |
| 284 | AC_CACHE_CHECK(if we can use ncurses/termcap.h,cf_cv_have_ncurses_termcap_h,[ |
| 285 | AC_TRY_COMPILE([ |
| 286 | #include <ncurses/curses.h> |
| 287 | #ifdef NCURSES_VERSION |
| 288 | #undef NCURSES_VERSION |
| 289 | #endif |
| 290 | #include <ncurses/termcap.h> |
| 291 | #ifndef NCURSES_VERSION |
| 292 | #error wrong header |
| 293 | #endif |
| 294 | ], |
| 295 | [return 0;], |
| 296 | [cf_cv_have_ncurses_termcap_h=yes], |
| 297 | [cf_cv_have_ncurses_termcap_h=no])]) |
| 298 | test "x$cf_cv_have_ncurses_termcap_h" = xyes && AC_DEFINE(HAVE_NCURSES_TERMCAP_H,1,[Define to 1 if we can use ncurses/termcap.h]) |
| 299 | fi |
| 300 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 301 | if test "x$ac_cv_func_getopt" = xno; then |
| 302 | AC_MSG_ERROR(getopt is required for building programs) |
| 303 | fi |
| 304 | |
| 305 | if test "$cf_enable_widec" = yes; then |
| 306 | AC_CHECK_FUNCS( \ |
| 307 | mblen \ |
| 308 | mbrlen \ |
| 309 | mbrtowc \ |
| 310 | mbsrtowcs \ |
| 311 | mbstowcs \ |
| 312 | mbtowc \ |
| 313 | wcsrtombs \ |
| 314 | wcstombs \ |
| 315 | ) |
| 316 | fi |
| 317 | |
| 318 | CF_CURSES_FUNCS( \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 319 | _nc_tparm_analyze \ |
| 320 | _tracef \ |
| 321 | alloc_pair \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 322 | assume_default_colors \ |
| 323 | chgat \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 324 | color_content \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 325 | color_set \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 326 | copywin \ |
| 327 | curses_trace \ |
| 328 | delscreen \ |
| 329 | dupwin \ |
| 330 | exit_curses \ |
| 331 | exit_terminfo \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 332 | filter \ |
| 333 | getbegx \ |
| 334 | getcurx \ |
| 335 | getmaxx \ |
| 336 | getnstr \ |
| 337 | getparx \ |
| 338 | getwin \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 339 | halfdelay \ |
| 340 | init_extended_color \ |
| 341 | mvderwin \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 342 | mvvline \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 343 | mvwin \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 344 | mvwvline \ |
| 345 | napms \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 346 | newpad \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 347 | putwin \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 348 | reset_color_pairs \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 349 | resize_term \ |
| 350 | resizeterm \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 351 | restartterm \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 352 | ripoffline \ |
| 353 | scr_dump \ |
| 354 | setupterm \ |
| 355 | slk_color \ |
| 356 | slk_init \ |
| 357 | termattrs \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 358 | termname \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 359 | tgetent \ |
| 360 | tigetnum \ |
| 361 | tigetstr \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 362 | tiparm \ |
| 363 | tiparm_s \ |
| 364 | tiscan_s \ |
| 365 | tputs_sp \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 366 | typeahead \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 367 | unget_wch \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 368 | use_default_colors \ |
| 369 | use_env \ |
| 370 | use_extended_names \ |
| 371 | use_screen \ |
| 372 | use_window \ |
| 373 | vid_puts \ |
| 374 | vidputs \ |
| 375 | vsscanf \ |
| 376 | vw_printw \ |
| 377 | wchgat \ |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 378 | winsdelln \ |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 379 | winsstr \ |
| 380 | wresize \ |
| 381 | wsyncdown \ |
| 382 | ) |
| 383 | |
| 384 | CF_TPUTS_PROTO |
| 385 | CF_NCURSES_EXT_FUNCS |
| 386 | |
| 387 | if test "$cf_enable_widec" = yes |
| 388 | then |
| 389 | # workaround for systems with ncurses before 20111029, due to change of |
| 390 | # feature test macro from _XPG5 to _XOPEN_SOURCE |
| 391 | if test -n "$cf_cv_ncurses_version" && test "x$cf_cv_ncurses_version" != xno |
| 392 | then |
| 393 | cf_define_xpg5=no |
| 394 | AC_MSG_CHECKING(if _XPG5 should be defined to enable wide-characters) |
| 395 | |
| 396 | AC_TRY_COMPILE([ |
| 397 | #include <${cf_cv_ncurses_header:-curses.h}>], |
| 398 | [int x = _XPG5],, |
| 399 | [cf_save_cppflags="$CPPFLAGS" |
| 400 | CPPFLAGS="$CPPFLAGS -D_XPG5" |
| 401 | AC_TRY_COMPILE([ |
| 402 | #include <${cf_cv_ncurses_header:-curses.h}>], |
| 403 | [int x = _XPG5], |
| 404 | [cf_define_xpg5=yes]) |
| 405 | CPPFLAGS="$cf_save_cppflags"]) |
| 406 | AC_MSG_RESULT($cf_define_xpg5) |
| 407 | |
| 408 | if test "$cf_define_xpg5" = yes |
| 409 | then |
| 410 | CPPFLAGS="$CPPFLAGS -D_XPG5" |
| 411 | fi |
| 412 | fi |
| 413 | |
| 414 | AC_CACHE_CHECK(for wide-character functions,cf_cv_widechar_funcs,[ |
| 415 | AC_TRY_LINK([ |
| 416 | #include <${cf_cv_ncurses_header:-curses.h}>], |
| 417 | [ |
| 418 | static wchar_t src_wchar[2]; |
| 419 | static cchar_t dst_cchar; |
| 420 | setcchar(&dst_cchar, src_wchar, A_NORMAL, 0, (void *) 0); |
| 421 | ], |
| 422 | [cf_cv_widechar_funcs=yes], |
| 423 | [cf_cv_widechar_funcs=no]) |
| 424 | ]) |
| 425 | if test "$cf_cv_widechar_funcs" != no ; then |
| 426 | AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to enable wide-character support in (n)curses]) |
| 427 | else |
| 428 | AC_DEFINE(USE_WIDEC_SUPPORT,0) |
| 429 | fi |
| 430 | else |
| 431 | AC_DEFINE(USE_WIDEC_SUPPORT,0) |
| 432 | fi |
| 433 | |
| 434 | AC_CACHE_CHECK(if $cf_cv_screen library uses pthreads,cf_cv_use_pthreads,[ |
| 435 | AC_TRY_LINK([ |
| 436 | #include <${cf_cv_ncurses_header:-curses.h}> |
| 437 | extern void _nc_init_pthreads(void); |
| 438 | ], |
| 439 | [ |
| 440 | initscr(); |
| 441 | _nc_init_pthreads(); |
| 442 | ], |
| 443 | [cf_cv_use_pthreads=yes], |
| 444 | [cf_cv_use_pthreads=no]) |
| 445 | ]) |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 446 | test $cf_cv_use_pthreads = yes && AC_DEFINE(USE_PTHREADS,1,[Define to 1 if $cf_cv_screen library uses pthreads]) |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 447 | |
| 448 | CF_SYS_TIME_SELECT |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 449 | |
| 450 | # special check for test/ditto.c |
| 451 | CF_FUNC_OPENPTY |
| 452 | if test "$cf_cv_func_openpty" != no ; then |
| 453 | AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function]) |
| 454 | AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface]) |
| 455 | if test "x$cf_cv_lib_util" = xyes ; then |
| 456 | CF_ADD_LIB(util,TEST_LIBS) |
| 457 | fi |
| 458 | fi |
| 459 | |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 460 | CF_FUNC_CURSES_VERSION |
| 461 | |
| 462 | CF_CURSES_ACS_MAP |
| 463 | if test "$cf_enable_widec" = yes; then |
| 464 | CF_CURSES_WACS_MAP |
| 465 | CF_CURSES_WACS_SYMBOLS |
| 466 | fi |
| 467 | |
| 468 | CF_CURSES_CHECK_TYPE(attr_t,long) |
| 469 | |
| 470 | if test "$cf_enable_widec" = yes; then |
| 471 | CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T, NCURSES_OK_MBSTATE_T) |
| 472 | CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) |
| 473 | CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) |
| 474 | |
| 475 | if test "$NCURSES_OK_MBSTATE_T" = 0 ; then |
| 476 | CF_CURSES_CHECK_TYPE(mbstate_t,long) |
| 477 | fi |
| 478 | |
| 479 | if test "$NCURSES_OK_WCHAR_T" = 0 ; then |
| 480 | CF_CURSES_CHECK_TYPE(wchar_t,long) |
| 481 | fi |
| 482 | |
| 483 | if test "$NCURSES_OK_WINT_T" = 0 ; then |
| 484 | CF_CURSES_CHECK_TYPE(wint_t,long) |
| 485 | fi |
| 486 | fi |
| 487 | |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 488 | CF_CURSES_CHECK_DATA(\ |
| 489 | TABSIZE \ |
| 490 | curscr \ |
| 491 | ospeed \ |
| 492 | boolnames \ |
| 493 | boolfnames \ |
| 494 | ttytype) |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 495 | |
| 496 | dnl --------------------------------------------------------------------------- |
| 497 | CF_HELP_MESSAGE(Testing/development Options:) |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 498 | CF_WITH_SCREEN_PDCURSES |
| 499 | CF_ENABLE_WARNINGS(Wno-unknown-pragmas) |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 500 | CF_DISABLE_LEAKS |
| 501 | CF_DISABLE_RPATH_HACK |
| 502 | |
| 503 | TEST_ARGS="$LIBS" |
| 504 | LIBS= |
| 505 | |
| 506 | dnl --------------------------------------------------------------------------- |
| 507 | |
| 508 | AC_OUTPUT(Makefile,[ |
| 509 | CF_PRG_RULES([$srcdir/mk-test.awk INSTALL=yes ECHO_LINK="$ECHO_LD"], .) |
| 510 | cat >>Makefile <<TEST_EOF |
| 511 | |
| 512 | # These rules are generated so we do not rely on suffix rules, which do not |
| 513 | # work consistently for different make-programs (the '\$(MODEL)/' confuses |
| 514 | # some, and the '\$x' confuses others). |
| 515 | TEST_EOF |
| 516 | |
| 517 | LIST=`sed -e 's/[[ ]].*//' -e '/^[[#@]]/d' $srcdir/modules` |
| 518 | for N in $LIST |
| 519 | do |
| 520 | cat >>Makefile <<TEST_EOF |
| 521 | |
| 522 | \$(MODEL)/$N.o : \$(srcdir)/$N.c \\ |
| 523 | \$(srcdir)/test.priv.h \\ |
| 524 | ncurses_cfg.h |
| 525 | $SHOW_CC |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 526 | $ECHO_CC\$(CC) -c \$(CFLAGS_DEFAULT) -DMODULE_NAME="$N" \$(srcdir)/$N.c |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 527 | TEST_EOF |
| 528 | done |
| 529 | |
| 530 | if test -f ../config.guess && test -f ../config.sub |
| 531 | then |
| 532 | cat >>Makefile <<TEST_EOF |
| 533 | |
| 534 | # if we used CF_INHERIT for getting these files, we can remove them |
| 535 | distclean:: |
| 536 | rm -f config.guess config.sub |
| 537 | TEST_EOF |
| 538 | fi |
| 539 | ],[ |
| 540 | AWK="$AWK" |
| 541 | ECHO_CC="$ECHO_CC" |
| 542 | ECHO_LD="$ECHO_LD" |
| 543 | SHOW_CC="$SHOW_LD" |
| 544 | ],cat) |