1dnl*************************************************************************** 2dnl Copyright 2018-2020,2021 Thomas E. Dickey * 3dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. * 4dnl * 5dnl Permission is hereby granted, free of charge, to any person obtaining a * 6dnl copy of this software and associated documentation files (the * 7dnl "Software"), to deal in the Software without restriction, including * 8dnl without limitation the rights to use, copy, modify, merge, publish, * 9dnl distribute, distribute with modifications, sublicense, and/or sell * 10dnl copies of the Software, and to permit persons to whom the Software is * 11dnl furnished to do so, subject to the following conditions: * 12dnl * 13dnl The above copyright notice and this permission notice shall be included * 14dnl in all copies or substantial portions of the Software. * 15dnl * 16dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 17dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 18dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 19dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 20dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 21dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 22dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 23dnl * 24dnl Except as contained in this notice, the name(s) of the above copyright * 25dnl holders shall not be used in advertising or otherwise to promote the * 26dnl sale, use or other dealings in this Software without prior written * 27dnl authorization. * 28dnl*************************************************************************** 29dnl 30dnl Author: Thomas E. Dickey 1995-on 31dnl 32dnl $Id: configure.in,v 1.729 2021/01/09 11:20:52 tom Exp $ 33dnl Process this file with autoconf to produce a configure script. 34dnl 35dnl For additional information, see 36dnl https://invisible-island.net/autoconf/ 37dnl https://invisible-island.net/autoconf/my-autoconf.html 38dnl 39dnl --------------------------------------------------------------------------- 40AC_PREREQ(2.52.20210101) 41AC_REVISION($Revision: 1.729 $) 42AC_INIT(ncurses/base/lib_initscr.c) 43AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) 44 45AC_DEFUN([AC_PATH_XTRA],[])dnl ignore dependencies on this 46 47CF_TOP_BUILDDIR 48CF_SUBST_NCURSES_VERSION 49CF_VERSION_INFO(NCURSES,ncurses) 50 51CF_WITH_REL_VERSION(NCURSES) 52CF_NCURSES_WITH_ABI_VERSION 53 54CF_WITH_SYSTYPE 55 56### Save the given $CFLAGS to allow user-override. 57cf_user_CFLAGS="$CFLAGS" 58 59### Default install-location 60CF_CFG_DEFAULTS 61### Defaults for ncurses ABI 62CF_ABI_DEFAULTS 63 64### Checks for programs. 65AC_ARG_WITH(ada, 66 [ --without-ada suppress check for Ada compiler, don't build demo], 67 [cf_with_ada=$withval], 68 [cf_with_ada=yes]) 69 70if test "x$cf_with_ada" = xyes 71then 72 cf_prog_cc="gnatgcc gcc cc" 73else 74 cf_prog_cc="gcc cc" 75fi 76CF_PROG_CC($cf_prog_cc) 77 78AC_PROG_CPP 79AC_PROG_GCC_TRADITIONAL 80CF_PROG_CC_C_O(CC,[$CFLAGS $CPPFLAGS]) 81CF_PROG_LDCONFIG 82 83dnl DEFECT in autoconf 2.12: an attempt to set policy, this breaks the 84dnl configure script by not letting us test if C++ 85dnl is present, making this option necessary. 86AC_MSG_CHECKING(if you want to ensure bool is consistent with C++) 87AC_ARG_WITH(cxx, 88 [ --without-cxx do not adjust ncurses bool to match C++], 89 [cf_with_cxx=$withval], 90 [cf_with_cxx=yes]) 91AC_MSG_RESULT($cf_with_cxx) 92if test "X$cf_with_cxx" = Xno ; then 93 CXX="" 94 GXX="" 95else 96 # with autoconf 2.13, we can change the error to a warning: 97 pushdef([AC_MSG_ERROR], 98 [AC_MSG_RESULT(no) 99 AC_MSG_WARN([You don't have any C++ compiler, too bad]) 100 cf_with_cxx=no; CXX=""; GXX="";])dnl 101 AC_PROG_CXX 102 popdef([AC_MSG_ERROR])dnl 103 104 AC_LANG_PUSH(C++) 105 if test "x$cf_with_cxx" != xno 106 then 107 # Several of the C++ configurations do not work, particularly when 108 # cross-compiling (20140913 -TD) 109 AC_MSG_CHECKING(if $CXX works) 110 111 save_CPPFLAGS="$CPPFLAGS" 112 eval cf_includedir=${includedir} 113 CPPFLAGS="$CPPFLAGS -I${cf_includedir}" 114 AC_TRY_COMPILE([ 115#include <stdlib.h> 116#include <stdio.h> 117], 118 [ 119 printf("Hello world!\n") 120 ], 121 [cf_cxx_works=yes], 122 [cf_cxx_works=no]) 123 CPPFLAGS="$save_CPPFLAGS" 124 125 AC_MSG_RESULT($cf_cxx_works) 126 if test "x$cf_cxx_works" = xno 127 then 128 AC_MSG_WARN([Ignore $CXX, since it cannot compile hello-world.]) 129 cf_with_cxx=no; CXX=""; GXX=""; 130 fi 131 fi 132 AC_LANG_POP 133 134 # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) 135 if test "$CXX" = "g++" ; then 136 AC_PATH_PROG(CXX,g++) 137 fi 138 case "x$CXX" in 139 (x|xg++) 140 AC_MSG_WARN([You don't have any C++ compiler, too bad]) 141 cf_with_cxx=no; CXX=""; GXX=""; 142 ;; 143 esac 144fi 145 146CF_GXX_VERSION 147case "$GXX_VERSION" in 148([[1-9]][[0-9]].*) 149 ;; 150(1.*|2.[[0-6]]*) 151 AC_MSG_WARN(templates do not work) 152 ;; 153esac 154 155AC_MSG_CHECKING(if you want to build C++ binding and demo) 156AC_ARG_WITH(cxx-binding, 157 [ --without-cxx-binding do not build C++ binding and demo], 158 [cf_with_cxx_binding=$withval], 159 [cf_with_cxx_binding=$cf_with_cxx]) 160AC_MSG_RESULT($cf_with_cxx_binding) 161 162AC_MSG_CHECKING(if you want to build with Ada) 163AC_MSG_RESULT($cf_with_ada) 164 165AC_MSG_CHECKING(if you want to install terminal database) 166AC_ARG_ENABLE(db-install, 167 [ --disable-db-install suppress install of terminal database], 168 [cf_with_db_install=$enableval], 169 [cf_with_db_install=yes]) 170AC_MSG_RESULT($cf_with_db_install) 171 172AC_MSG_CHECKING(if you want to install manpages) 173AC_ARG_WITH(manpages, 174 [ --without-manpages suppress install of manpages], 175 [cf_with_manpages=$withval], 176 [cf_with_manpages=yes]) 177AC_MSG_RESULT($cf_with_manpages) 178 179AC_MSG_CHECKING(if you want to build programs such as tic) 180AC_ARG_WITH(progs, 181 [ --without-progs suppress build/install with programs (e.g., tic)], 182 [cf_with_progs=$withval], 183 [cf_with_progs=yes]) 184AC_MSG_RESULT($cf_with_progs) 185 186if test -f "$srcdir/tack/tack.h" ; then 187 if test "x$cross_compiling" = xyes ; then 188 CF_VERBOSE(ignoring tack because we are cross-compiling) 189 cf_with_tack=no 190 else 191 AC_MSG_CHECKING(if you want to build the tack program) 192 AC_ARG_WITH(tack, 193 [ --without-tack suppress build/install with tack program], 194 [cf_with_tack=$withval], 195 [cf_with_tack=$cf_with_progs]) 196 AC_MSG_RESULT($cf_with_tack) 197 fi 198else 199 cf_with_tack=no 200fi 201 202AC_MSG_CHECKING(if you want to build test-programs) 203AC_ARG_WITH(tests, 204 [ --without-tests suppress build/install with test-programs], 205 [cf_with_tests=$withval], 206 [cf_with_tests=yes]) 207AC_MSG_RESULT($cf_with_tests) 208 209AC_MSG_CHECKING(if you wish to install curses.h) 210AC_ARG_WITH(curses-h, 211 [ --without-curses-h install curses.h as ncurses.h only], 212 [with_curses_h=$withval], 213 [with_curses_h=yes]) 214AC_MSG_RESULT($with_curses_h) 215 216modules_to_build="ncurses" 217test "X$cf_with_progs" != Xno && modules_to_build="$modules_to_build progs" 218test "X$cf_with_tack" != Xno && modules_to_build="$modules_to_build tack" 219modules_to_build="$modules_to_build panel menu form" 220 221AC_ARG_PROGRAM 222 223CF_PROG_AWK 224CF_PROG_INSTALL 225CF_PROG_LINT 226CF_PROG_LN_S 227 228AC_SYS_LONG_FILE_NAMES 229 230# Provide for renaming "ncurses5-config" to "ncurses5X-config", etc., in case 231# of package conflict. 232cf_config_suffix= 233AC_ARG_WITH(config-suffix, 234 [ --with-config-suffix=X suffixes ncursesXX-config file], 235 [case "x$withval" in 236 (xyes|xno) 237 AC_MSG_WARN(expected a value for config-suffix option) 238 ;; 239 (*) cf_config_suffix="$withval" 240 ;; 241 esac]) 242AC_SUBST(cf_config_suffix) 243 244# If we find pkg-config, check if we should install the ".pc" files. 245CF_PKG_CONFIG 246CF_WITH_PKG_CONFIG_LIBDIR 247CF_ENABLE_PC_FILES 248if test -z "$MAKE_PC_FILES" 249then 250 AC_MSG_CHECKING(for suffix to add to pc-files) 251AC_ARG_WITH(pc-suffix, 252 [ --with-pc-suffix suffixes pc-files], 253 [case "x$withval" in 254 (xyes|xno) 255 PC_MODULE_SUFFIX= 256 ;; 257 (*) PC_MODULE_SUFFIX="$withval" 258 ;; 259 esac]) 260 test -z "$PC_MODULE_SUFFIX" && PC_MODULE_SUFFIX=none 261 AC_MSG_RESULT($PC_MODULE_SUFFIX) 262 test "$PC_MODULE_SUFFIX" = none && PC_MODULE_SUFFIX= 263 AC_SUBST(PC_MODULE_SUFFIX) 264fi 265 266AC_MSG_CHECKING(if we should assume mixed-case filenames) 267AC_ARG_ENABLE(mixed-case, 268 [ --enable-mixed-case tic should assume mixed-case filenames], 269 [enable_mixedcase=$enableval], 270 [enable_mixedcase=auto]) 271AC_MSG_RESULT($enable_mixedcase) 272if test "$enable_mixedcase" = "auto" ; then 273 CF_MIXEDCASE_FILENAMES 274else 275 cf_cv_mixedcase=$enable_mixedcase 276 if test "x$enable_mixedcase" = "xyes" ; then 277 AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if tic should assume mixed-case filenames]) 278 fi 279fi 280 281# do this after mixed-case option (tags/TAGS is not as important as tic). 282AC_PROG_MAKE_SET 283CF_MAKE_TAGS 284CF_MAKEFLAGS 285 286dnl These are standard among *NIX systems, but not when cross-compiling 287AC_CHECK_TOOL(RANLIB, ranlib, ':') 288AC_CHECK_TOOL(LD, ld, ld) 289AC_CHECK_TOOL(AR, ar, ar) 290AC_CHECK_TOOL(NM, nm, nm) 291CF_AR_FLAGS 292 293dnl Special option for use by system-builders: the install-prefix is used to 294dnl adjust the location into which the actual install is done, so that an 295dnl archive can be built without modifying the host system's configuration. 296AC_MSG_CHECKING(if you have specified an install-prefix) 297AC_ARG_WITH(install-prefix, 298 [ --with-install-prefix prefixes actual install-location ($DESTDIR)], 299 [case "x$withval" in 300 (xyes|xno) 301 ;; 302 (*) DESTDIR="$withval" 303 ;; 304 esac]) 305AC_MSG_RESULT($DESTDIR) 306AC_SUBST(DESTDIR) 307 308############################################################################### 309CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:) 310# If we're cross-compiling, allow the user to override the tools and their 311# options. The configure script is oriented toward identifying the host 312# compiler, etc., but we need a build compiler to generate parts of the source. 313 314case "$cf_cv_system_name" in 315(*-msvc*) 316 LDFLAGS="$LDFLAGS user32.lib" 317 export LDFLAGS 318 ;; 319esac 320 321CF_BUILD_CC 322 323############################################################################### 324CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:) 325 326### Options to allow the user to specify the set of libraries which are used. 327### Use "--without-normal --with-shared" to allow the default model to be 328### shared, for example. 329cf_list_models="" 330AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug") 331 332CF_WITH_LIBTOOL 333if test "$with_libtool" != "no" ; then 334 335cf_list_models="$cf_list_models libtool" 336 337else 338 339AC_MSG_CHECKING(if you want to build shared libraries) 340AC_ARG_WITH(shared, 341 [ --with-shared generate shared-libraries], 342 [with_shared=$withval], 343 [with_shared=no]) 344AC_MSG_RESULT($with_shared) 345test "x$with_shared" = "xyes" && cf_list_models="$cf_list_models shared" 346 347AC_MSG_CHECKING(if you want to build static libraries) 348AC_ARG_WITH(normal, 349 [ --with-normal generate normal-libraries (default)], 350 [with_normal=$withval], 351 [with_normal=yes]) 352AC_MSG_RESULT($with_normal) 353test "x$with_normal" = "xyes" && cf_list_models="$cf_list_models normal" 354 355AC_MSG_CHECKING(if you want to build debug libraries) 356AC_ARG_WITH(debug, 357 [ --with-debug generate debug-libraries (default)], 358 [with_debug=$withval], 359 [with_debug=yes]) 360AC_MSG_RESULT($with_debug) 361test "x$with_debug" = "xyes" && cf_list_models="$cf_list_models debug" 362 363AC_MSG_CHECKING(if you want to build profiling libraries) 364AC_ARG_WITH(profile, 365 [ --with-profile generate profile-libraries], 366 [with_profile=$withval], 367 [with_profile=no]) 368AC_MSG_RESULT($with_profile) 369test "x$with_profile" = "xyes" && cf_list_models="$cf_list_models profile" 370 371fi 372 373if test "X$cf_with_cxx_binding" != Xno; then 374if test "x$with_shared" = "xyes"; then 375AC_MSG_CHECKING(if you want to build C++ shared libraries) 376AC_ARG_WITH(cxx-shared, 377 [ --with-cxx-shared generate C++ shared-libraries], 378 [with_shared_cxx=$withval], 379 [with_shared_cxx=no]) 380AC_MSG_RESULT($with_shared_cxx) 381fi 382fi 383 384############################################################################### 385 386AC_MSG_CHECKING(for specified models) 387test -z "$cf_list_models" && cf_list_models=normal 388dnl If we use libtool to generate libraries, then it must be the only 389dnl specified model. 390test "$with_libtool" != "no" && cf_list_models=libtool 391AC_MSG_RESULT($cf_list_models) 392 393### Use the first model as the default, and save its suffix for use in building 394### up test-applications. 395AC_MSG_CHECKING(for default model) 396DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'` 397AC_MSG_RESULT($DFT_LWR_MODEL) 398 399CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl 400 401AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal") 402AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL") 403 404TICS_NAME=tic 405AC_SUBST(TICS_NAME) 406 407TINFO_NAME=tinfo 408AC_SUBST(TINFO_NAME) 409 410LIB_NAME=ncurses 411AC_SUBST(LIB_NAME) 412 413LIB_DIR=../lib 414LIB_2ND=../../lib 415 416CF_WITH_LIB_PREFIX(cf_prefix) 417 418LIB_SUFFIX= 419AC_SUBST(LIB_SUFFIX) 420CF_PATHSEP 421 422############################################################################### 423 424AC_MSG_CHECKING(if you want to build a separate terminfo library) 425AC_ARG_WITH(termlib, 426 [ --with-termlib generate separate terminfo library], 427 [with_termlib=$withval], 428 [with_termlib=no]) 429AC_MSG_RESULT($with_termlib) 430 431AC_MSG_CHECKING(if you want to build a separate tic library) 432AC_ARG_WITH(ticlib, 433 [ --with-ticlib generate separate tic library], 434 [with_ticlib=$withval], 435 [with_ticlib=no]) 436AC_MSG_RESULT($with_ticlib) 437 438dnl Not all ports of gcc support the -g option 439 440if test X"$CC_G_OPT" = X"" ; then 441 CC_G_OPT='-g' 442 test -n "$GCC" && test "x${ac_cv_prog_cc_g}" != xyes && CC_G_OPT='' 443fi 444AC_SUBST(CC_G_OPT) 445 446if test X"$CXX_G_OPT" = X"" ; then 447 CXX_G_OPT='-g' 448 test -n "$GXX" && test "x${ac_cv_prog_cxx_g}" != xyes && CXX_G_OPT='' 449fi 450AC_SUBST(CXX_G_OPT) 451 452AC_MSG_CHECKING(for default loader flags) 453case "$DFT_LWR_MODEL" in 454(libtool) LD_MODEL='' ;; 455(normal) LD_MODEL='' ;; 456(debug) LD_MODEL=$CC_G_OPT ;; 457(profile) LD_MODEL='-pg';; 458(shared) LD_MODEL='' ;; 459esac 460AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg) 461AC_MSG_RESULT($LD_MODEL) 462 463case "$DFT_LWR_MODEL" in 464(shared) 465CF_ENABLE_RPATH 466AC_MSG_CHECKING(if shared libraries should be relinked during install) 467AC_ARG_ENABLE(relink, 468[ --disable-relink relink shared libraries during install], 469[cf_cv_do_relink=$enableval], 470[cf_cv_do_relink=yes]) 471AC_MSG_RESULT($cf_cv_do_relink) 472 ;; 473esac 474 475# we will build libraries one-level down. 476rel_builddir=.. 477CF_SHARED_OPTS 478for model in $cf_list_models ; do 479 case "$model" in 480 (libtool) 481 CF_WITH_LIBTOOL_OPTS 482 CF_WITH_EXPORT_SYMS 483 ;; 484 (shared) 485 if test "$CC_SHARED_OPTS" = "unknown"; then 486 AC_ERROR(Shared libraries are not supported in this version) 487 fi 488 # workaround for inept transition to PIE vs PIC... 489 AC_MSG_CHECKING(if current CFLAGS link properly) 490 AC_TRY_LINK( 491 [#include <stdio.h>], 492 [printf("Hello work\\n");], 493 [cf_cflags_work=yes], 494 [cf_cflags_work=no]) 495 AC_MSG_RESULT($cf_cflags_work) 496 if test "$cf_cflags_work" = no 497 then 498 CF_VERBOSE(try to work around by appending shared-options) 499 CFLAGS="$CFLAGS $CC_SHARED_OPTS" 500 fi 501 CF_WITH_VERSIONED_SYMS 502 ;; 503 esac 504done 505 506### Checks for special libraries, must be done up-front. 507SHLIB_LIST="" 508CF_WITH_GPM 509if test "$with_gpm" != no ; then 510 AC_MSG_CHECKING(if you want to load GPM dynamically) 511 AC_ARG_WITH(dlsym, 512 [ --without-dlsym do not use dlsym() to load GPM dynamically], 513 [with_dlsym=$withval], 514 [with_dlsym=yes]) 515 AC_MSG_RESULT($with_dlsym) 516 if test "x$with_dlsym" = xyes ; then 517 CF_FUNC_DLSYM 518 if test "x$with_gpm" != xyes ; then 519 CF_VERBOSE(assuming soname for gpm is $with_gpm) 520 cf_cv_gpm_soname="$with_gpm" 521 else 522 CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm) 523 fi 524 test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname",[Define as needed to set the gpm share library soname]) 525 SHLIB_LIST="-ldl $SHLIB_LIST" 526 CF_ADD_LIB(dl,PRIVATE_LIBS) 527 else 528 SHLIB_LIST="-lgpm $SHLIB_LIST" 529 CF_ADD_LIB(gpm,TEST_LIBS) 530 CF_ADD_LIB(gpm,PRIVATE_LIBS) 531 fi 532 AC_DEFINE(HAVE_LIBGPM,1,[Define to 1 if we have the gpm library]) 533 CF_CHECK_GPM_WGETCH 534fi 535 536CF_WITH_PCRE2 537CF_WITH_SYSMOUSE 538 539# pretend that ncurses==ncursesw==ncursest 540AC_MSG_CHECKING(if you want to disable library suffixes) 541CF_ARG_DISABLE(lib-suffixes, 542 [ --disable-lib-suffixes disable library suffixes], 543 [disable_lib_suffixes=yes], 544 [disable_lib_suffixes=no], 545 no) 546AC_MSG_RESULT($disable_lib_suffixes) 547 548### If we're building with rpath, try to link non-standard libs that way too. 549if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then 550 CF_DISABLE_RPATH_HACK 551fi 552 553### Depending on the system, someone may use rpath to build ncurses but not 554# want users of the package to rely upon that feature. Give those people an 555# option to suppress that detail from EXTRA_LDFLAGS. 556EXTRA_PKG_LDFLAGS="$EXTRA_LDFLAGS" 557if test -n "$EXTRA_PKG_LDFLAGS" 558then 559 AC_MSG_CHECKING(if you want to disable extra LDFLAGS for package-scripts) 560 CF_ARG_DISABLE(pkg-ldflags, 561 [ --disable-pkg-ldflags disable extra LDFLAGS for package-scripts], 562 [disable_pkg_ldflags=yes], 563 [disable_pkg_ldflags=no], 564 no) 565 AC_MSG_RESULT($disable_pkg_ldflags) 566 test "$disable_pkg_ldflags" = yes && EXTRA_PKG_LDFLAGS= 567fi 568AC_SUBST(EXTRA_PKG_LDFLAGS) 569 570############################################################################### 571CF_HELP_MESSAGE(Fine-Tuning Your Configuration:) 572 573### use option --with-extra-suffix to append suffix to headers and libraries 574AC_MSG_CHECKING(if you wish to append extra suffix to header/library paths) 575EXTRA_SUFFIX= 576AC_ARG_WITH(extra-suffix, 577 [ --with-extra-suffix=X append extra suffix to header/library paths], 578 [case x$withval in 579 (xno) 580 ;; 581 (xyes|x) 582 EXTRA_SUFFIX=$cf_cv_abi_version 583 ;; 584 (*) 585 EXTRA_SUFFIX=$withval 586 ;; 587 esac 588 ]) 589AC_MSG_RESULT($EXTRA_SUFFIX) 590AC_SUBST(EXTRA_SUFFIX) 591 592### use option --disable-overwrite to leave out the link to -lcurses 593AC_MSG_CHECKING(if you wish to install ncurses overwriting curses) 594AC_ARG_ENABLE(overwrite, 595 [ --disable-overwrite put headers in subdir, omit link to -lcurses], 596 [with_overwrite=$enableval], 597 [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi]) 598AC_MSG_RESULT($with_overwrite) 599 600AC_MSG_CHECKING(if external terminfo-database is used) 601AC_ARG_ENABLE(database, 602 [ --disable-database do not use terminfo, only fallbacks/termcap], 603 [use_database=$enableval], 604 [use_database=yes]) 605AC_MSG_RESULT($use_database) 606 607case "$host_os" in 608(os2*) 609 TERMINFO_SRC='${top_srcdir}/misc/emx.src' 610 ;; 611(*) 612 TERMINFO_SRC='${top_srcdir}/misc/terminfo.src' 613 ;; 614esac 615AC_SUBST(TERMINFO_SRC) 616 617NCURSES_USE_DATABASE=0 618if test "$use_database" != no ; then 619 NCURSES_USE_DATABASE=1 620 621 AC_MSG_CHECKING(which terminfo source-file will be installed) 622 AC_ARG_WITH(database, 623 [ --with-database=XXX specify terminfo source to install], 624 [TERMINFO_SRC=$withval]) 625 AC_MSG_RESULT($TERMINFO_SRC) 626 627 AC_MSG_CHECKING(whether to use hashed database instead of directory/tree) 628 AC_ARG_WITH(hashed-db, 629 [ --with-hashed-db specify hashed-database library],, 630 [with_hashed_db=no]) 631 AC_MSG_RESULT($with_hashed_db) 632else 633 with_hashed_db=no 634fi 635AC_SUBST(NCURSES_USE_DATABASE) 636 637AC_MSG_CHECKING(for list of fallback descriptions) 638AC_ARG_WITH(fallbacks, 639 [ --with-fallbacks=XXX specify list of fallback terminal descriptions], 640 [with_fallback=$withval], 641 [with_fallback=]) 642AC_MSG_RESULT($with_fallback) 643 644case ".$with_fallback" in 645(.|.no) 646 FALLBACK_LIST= 647 ;; 648(.yes) 649 AC_MSG_WARN(expected a list of terminal descriptions) 650 ;; 651(*) 652 FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` 653 ;; 654esac 655 656# The fallback feature in ncurses relies upon tic/infocmp outside the build 657# tree for generating the terminal descriptions that will be compiled into the 658# library. If your toolchain is old, it may not handle current terminal 659# databases. Use configure-options to point to the tools which will be used, 660# rather than the first ones found on the $PATH. 661AC_CHECK_TOOL(TIC, tic) 662AC_CHECK_TOOL(INFOCMP, infocmp) 663if test -n "$FALLBACK_LIST" 664then 665 CF_WITH_PATH_PROG(TIC, tic, [for fallbacks], $PATH:/usr/local/ncurses/bin) 666 CF_WITH_PATH_PROG(INFOCMP, infocmp, [for fallbacks], $PATH:/usr/local/ncurses/bin) 667 test -z "$TIC" && FALLBACK_LIST= 668 test -z "$INFOCMP" && FALLBACK_LIST= 669 if test -z "$FALLBACK_LIST" 670 then 671 AC_MSG_WARN(ignoring fallback option because tic/infocmp are not available) 672 fi 673fi 674AC_SUBST(TIC) 675AC_SUBST(INFOCMP) 676 677USE_FALLBACKS= 678test -z "$FALLBACK_LIST" && USE_FALLBACKS="#" 679AC_SUBST(FALLBACK_LIST) 680AC_SUBST(USE_FALLBACKS) 681 682AC_MSG_CHECKING(if you want modern xterm or antique) 683AC_ARG_WITH(xterm-new, 684 [ --without-xterm-new specify if xterm terminfo should be old version], 685 [with_xterm_new=$withval], 686 [with_xterm_new=yes]) 687case "$with_xterm_new" in 688(no) with_xterm_new=xterm-old;; 689(*) with_xterm_new=xterm-new;; 690esac 691AC_MSG_RESULT($with_xterm_new) 692WHICH_XTERM=$with_xterm_new 693AC_SUBST(WHICH_XTERM) 694 695AC_MSG_CHECKING(if xterm backspace sends BS or DEL) 696AC_ARG_WITH(xterm-kbs, 697 [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL], 698 [with_xterm_kbs=$withval], 699 [with_xterm_kbs=BS]) 700case x$with_xterm_kbs in 701(xyes|xno|xBS|xbs|x8) 702 with_xterm_kbs=BS 703 ;; 704(xDEL|xdel|x127) 705 with_xterm_kbs=DEL 706 ;; 707(*) 708 with_xterm_kbs=$withval 709 ;; 710esac 711AC_MSG_RESULT($with_xterm_kbs) 712XTERM_KBS=$with_xterm_kbs 713AC_SUBST(XTERM_KBS) 714 715MAKE_TERMINFO= 716if test "$use_database" = no ; then 717 TERMINFO="${datadir}/terminfo" 718 MAKE_TERMINFO="#" 719else 720 721AC_MSG_CHECKING(for list of terminfo directories) 722CF_WITH_PATHLIST(terminfo-dirs, 723 [ --with-terminfo-dirs=XXX specify list of terminfo directories], 724 TERMINFO_DIRS, 725 DATADIR/terminfo, 726 ${datadir}/terminfo) 727AC_MSG_RESULT($TERMINFO_DIRS) 728test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist]) 729 730case "x$TERMINFO" in 731x???:*) 732 AC_MSG_WARN(ignoring non-directory/file TERMINFO value) 733 unset TERMINFO 734 ;; 735esac 736 737AC_MSG_CHECKING(for default terminfo directory) 738CF_WITH_PATH(default-terminfo-dir, 739 [ --with-default-terminfo-dir=DIR default terminfo directory], 740 TERMINFO, 741 DATADIR/terminfo, 742 ${datadir}/terminfo) 743AC_MSG_RESULT($TERMINFO) 744AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO",[Define to set the default terminal database path]) 745 746fi 747 748AC_SUBST(TERMINFO) 749AC_SUBST(MAKE_TERMINFO) 750 751### use option --disable-big-core to make tic run on small machines 752### We need 4Mb, check if we can allocate 50% more than that. 753AC_MSG_CHECKING(if big-core option selected) 754AC_ARG_ENABLE(big-core, 755 [ --disable-big-core assume machine has little memory], 756 [with_big_core=$enableval], 757 [AC_TRY_RUN([ 758#include <stdlib.h> 759#include <string.h> 760int main() { 761 unsigned long n = 6000000L; 762 char *s = malloc(n); 763 if (s != 0) 764 s[0] = s[n-1] = 0; 765 ${cf_cv_main_return:-return}(s == 0); 766}], 767 [with_big_core=yes], 768 [with_big_core=no], 769 [with_big_core=no])]) 770AC_MSG_RESULT($with_big_core) 771test "x$with_big_core" = "xyes" && AC_DEFINE(HAVE_BIG_CORE,1,[Define to 1 if machine has ample memory for tic]) 772 773### ISO C only guarantees 512-char strings, we have tables which load faster 774### when constructed using "big" strings. More than the C compiler, the awk 775### program is a limit on most vendor UNIX systems. Check that we can build. 776AC_MSG_CHECKING(if big-strings option selected) 777AC_ARG_ENABLE(big-strings, 778 [ --disable-big-strings assume compiler has only standard-size strings], 779 [with_big_strings=$enableval], 780 [CF_AWK_BIG_PRINTF(12000,with_big_strings)]) 781AC_MSG_RESULT($with_big_strings) 782 783USE_BIG_STRINGS=0 784test "x$with_big_strings" = "xyes" && USE_BIG_STRINGS=1 785AC_SUBST(USE_BIG_STRINGS) 786 787### use option --enable-termcap to compile in the termcap fallback support 788AC_MSG_CHECKING(if you want termcap-fallback support) 789AC_ARG_ENABLE(termcap, 790 [ --enable-termcap compile in termcap fallback support], 791 [with_termcap=$enableval], 792 [with_termcap=no]) 793AC_MSG_RESULT($with_termcap) 794 795NCURSES_USE_TERMCAP=0 796if test "x$with_termcap" != "xyes" ; then 797 if test "$use_database" = no ; then 798 if test -z "$with_fallback" ; then 799 AC_ERROR(You have disabled the database w/o specifying fallbacks) 800 fi 801 fi 802 AC_DEFINE(PURE_TERMINFO,1,[Define to 1 if we should support only terminfo]) 803else 804 805 if test "$with_ticlib" != no ; then 806 AC_ERROR(Options --with-ticlib and --enable-termcap cannot be combined) 807 fi 808 809 NCURSES_USE_TERMCAP=1 810 AC_MSG_CHECKING(for list of termcap files) 811 CF_WITH_PATHLIST(termpath, 812 [ --with-termpath=XXX specify list of termcap files], 813 TERMPATH, 814 /etc/termcap:/usr/share/misc/termcap) 815 AC_MSG_RESULT($TERMPATH) 816 test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH",[Define to set the termcap searchlist]) 817 818 ### use option --enable-getcap to use a hacked getcap for reading termcaps 819 AC_MSG_CHECKING(if fast termcap-loader is needed) 820 AC_ARG_ENABLE(getcap, 821 [ --enable-getcap fast termcap load, no xrefs to terminfo], 822 [with_getcap=$enableval], 823 [with_getcap=no]) 824 AC_MSG_RESULT($with_getcap) 825 test "x$with_getcap" = "xyes" && AC_DEFINE(USE_GETCAP,1,[Define to 1 to use fast termcap-loader]) 826 827 AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) 828 AC_ARG_ENABLE(getcap-cache, 829 [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], 830 [with_getcap_cache=$enableval], 831 [with_getcap_cache=no]) 832 AC_MSG_RESULT($with_getcap_cache) 833 test "x$with_getcap_cache" = "xyes" && AC_DEFINE(USE_GETCAP_CACHE,1,[Define to 1 if translated termcap should be stored in $HOME/.terminfo]) 834 835fi 836AC_SUBST(NCURSES_USE_TERMCAP) 837 838### Use option --disable-home-terminfo to completely remove ~/.terminfo 839AC_MSG_CHECKING(if ~/.terminfo is wanted) 840AC_ARG_ENABLE(home-terminfo, 841 [ --disable-home-terminfo drop ~/.terminfo from terminfo search-path], 842 [with_home_terminfo=$enableval], 843 [with_home_terminfo=yes]) 844AC_MSG_RESULT($with_home_terminfo) 845test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted]) 846 847AC_MSG_CHECKING(if you want to use restricted environment when running as root) 848AC_ARG_ENABLE(root-environ, 849 [ --disable-root-environ restrict environment when running as root], 850 [with_root_environ=$enableval], 851 [with_root_environ=yes]) 852AC_MSG_RESULT($with_root_environ) 853test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if environment should be restricted for root user]) 854 855### Use option --enable-symlinks to make tic use symlinks, not hard links 856### to reduce storage requirements for the terminfo database. 857CF_LINK_FUNCS 858 859with_links=no 860with_symlinks=no 861 862# soft links (symbolic links) are useful for some systems where hard links do 863# not work, or to make it simpler to copy terminfo trees around. 864if test "x$ac_cv_func_symlink" = xyes ; then 865 AC_MSG_CHECKING(if tic should use symbolic links) 866 AC_ARG_ENABLE(symlinks, 867 [ --enable-symlinks make tic use symbolic links not hard links], 868 [with_symlinks=$enableval], 869 [with_symlinks=no]) 870 AC_MSG_RESULT($with_symlinks) 871fi 872 873# If we have hard links and did not choose to use soft links instead, there is 874# no reason to make this choice optional - use the hard links. 875if test "$with_symlinks" = no ; then 876 AC_MSG_CHECKING(if tic should use hard links) 877 if test "x$ac_cv_func_link" = xyes ; then 878 with_links=yes 879 else 880 with_links=no 881 fi 882 AC_MSG_RESULT($with_links) 883fi 884 885test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks should be used in terminfo database]) 886test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database]) 887 888### use option --enable-broken-linker to force on use of broken-linker support 889CF_ENABLE_BROKEN_LINKER 890 891### use option --enable-bsdpad to have tputs process BSD-style prefix padding 892AC_MSG_CHECKING(if tputs should process BSD-style prefix padding) 893AC_ARG_ENABLE(bsdpad, 894 [ --enable-bsdpad recognize BSD-style prefix padding], 895 [with_bsdpad=$enableval], 896 [with_bsdpad=no]) 897AC_MSG_RESULT($with_bsdpad) 898test "x$with_bsdpad" = xyes && AC_DEFINE(BSD_TPUTS,1,[Define to 1 to recognize BSD-style prefix padding]) 899 900### use option --enable-widec to turn on use of wide-character support 901NCURSES_CH_T=chtype 902NCURSES_LIBUTF8=0 903 904NEED_WCHAR_H=0 905NCURSES_MBSTATE_T=0 906NCURSES_WCHAR_T=0 907NCURSES_WINT_T=0 908 909# Check to define _XOPEN_SOURCE "automatically" 910CPPFLAGS_before_XOPEN="$CPPFLAGS" 911CF_XOPEN_SOURCE(600) 912CPPFLAGS_after_XOPEN="$CPPFLAGS" 913 914# Work around breakage on OS X 915CF_SIGWINCH 916 917# Checks for CODESET support. 918AM_LANGINFO_CODESET 919 920# use these variables to work around a defect in gcc's fixincludes. 921NCURSES_OK_WCHAR_T= 922NCURSES_OK_WINT_T= 923 924AC_MSG_CHECKING(if you want wide-character code) 925AC_ARG_ENABLE(widec, 926 [ --enable-widec compile with wide-char/UTF-8 code], 927 [with_widec=$enableval], 928 [with_widec=no]) 929AC_MSG_RESULT($with_widec) 930 931NCURSES_WCWIDTH_GRAPHICS=1 932AC_SUBST(NCURSES_WCWIDTH_GRAPHICS) 933 934if test "x$with_widec" = xyes ; then 935 if test "x$disable_lib_suffixes" = xno ; then 936 LIB_SUFFIX="w${LIB_SUFFIX}" 937 fi 938 AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code]) 939 AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code]) 940 941 CF_CHECK_WCHAR_H 942 CF_CHECK_WCWIDTH_GRAPHICS 943 test "$cf_cv_wcwidth_graphics" = no && NCURSES_WCWIDTH_GRAPHICS=0 944 945 # with_overwrite=no 946 NCURSES_CH_T=cchar_t 947 AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) 948 if test "x$ac_cv_func_putwc" != xyes ; then 949 CF_UTF8_LIB 950 if test "$cf_cv_utf8_lib" != no ; then 951 NCURSES_LIBUTF8=1 952 fi 953 fi 954 CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T) 955 CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) 956 CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) 957 958 if test "$NCURSES_MBSTATE_T" != 0; then 959 AC_DEFINE(NEED_MBSTATE_T_DEF,1,[Define to 1 if we must declare mbstate_t]) 960 fi 961fi 962AC_SUBST(NCURSES_CH_T) 963AC_SUBST(NCURSES_LIBUTF8) 964 965AC_SUBST(NEED_WCHAR_H) 966AC_SUBST(NCURSES_MBSTATE_T) 967AC_SUBST(NCURSES_WCHAR_T) 968AC_SUBST(NCURSES_WINT_T) 969 970AC_SUBST(NCURSES_OK_WCHAR_T) 971AC_SUBST(NCURSES_OK_WINT_T) 972 973### use option --disable-lp64 to allow long chtype 974AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h) 975AC_ARG_ENABLE(lp64, 976 [ --disable-lp64 allow chtype to be long (ignore _LP64)], 977 [with_lp64=$enableval], 978 [with_lp64=$cf_dft_with_lp64]) 979AC_MSG_RESULT($with_lp64) 980 981if test "x$with_lp64" = xyes ; then 982 cf_cv_enable_lp64=1 983else 984 cf_cv_enable_lp64=0 985fi 986AC_SUBST(cf_cv_enable_lp64) 987 988CF_LARGEFILE 989 990### use option --disable-tparm-varargs to make tparm() conform to X/Open 991AC_MSG_CHECKING(if you want tparm not to use X/Open fixed-parameter list) 992AC_ARG_ENABLE(tparm-varargs, 993 [ --disable-tparm-varargs compile tparm() without varargs interface], 994 [with_tparm_varargs=$enableval], 995 [with_tparm_varargs=yes]) 996AC_MSG_RESULT($with_tparm_varargs) 997NCURSES_TPARM_VARARGS=0 998test "x$with_tparm_varargs" = xyes && NCURSES_TPARM_VARARGS=1 999AC_SUBST(NCURSES_TPARM_VARARGS) 1000 1001### use option --disable-tic-depends to make libtic not explicitly depend on ncurses/ncursesw 1002if test "$with_ticlib" != no ; then 1003AC_MSG_CHECKING(if you want tic library to use explicit dependency on ncurses$LIB_SUFFIX library) 1004AC_ARG_ENABLE(tic-depends, 1005 [ --disable-tic-depends link tic library without explicit dependency on ncurses library], 1006 [with_tic_depends=$enableval], 1007 [with_tic_depends=yes]) 1008AC_MSG_RESULT($with_tic_depends) 1009else 1010 with_tic_depends=no 1011fi 1012 1013### use option --disable-wattr-macros to suppress wattr* macros from curses.h 1014AC_MSG_CHECKING(if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition) 1015AC_ARG_ENABLE(wattr-macros, 1016 [ --disable-wattr-macros suppress wattr* macros to help with ncurses5/ncurses6 transition], 1017 [with_wattr_macros=$enableval], 1018 [with_wattr_macros=yes]) 1019if [[ "x$with_wattr_macros" != xyes ]]; then 1020 NCURSES_WATTR_MACROS=0 1021 AC_MSG_RESULT(yes) 1022else 1023 NCURSES_WATTR_MACROS=1 1024 AC_MSG_RESULT(no) 1025fi 1026AC_SUBST(NCURSES_WATTR_MACROS) 1027 1028CF_WITH_X11_RGB 1029 1030### use option --with-bool to override bool's type 1031AC_MSG_CHECKING(for type of bool) 1032AC_ARG_WITH(bool, 1033 [ --with-bool=TYPE override fallback type of bool variable], 1034 [NCURSES_BOOL="$withval"], 1035 [NCURSES_BOOL=auto]) 1036AC_MSG_RESULT($NCURSES_BOOL) 1037AC_SUBST(NCURSES_BOOL) 1038 1039AC_MSG_CHECKING(for alternate terminal capabilities file) 1040AC_ARG_WITH(caps, 1041 [ --with-caps=alt compile with alternate Caps file], 1042 [TERMINFO_CAPS=Caps.$withval], 1043 [TERMINFO_CAPS=Caps]) 1044test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps 1045AC_MSG_RESULT($TERMINFO_CAPS) 1046AC_SUBST(TERMINFO_CAPS) 1047 1048### use option --with-chtype to override chtype's type 1049AC_MSG_CHECKING(for type of chtype) 1050AC_ARG_WITH(chtype, 1051 [ --with-chtype=TYPE override type of chtype], 1052 [NCURSES_CHTYPE="$withval"], 1053 [NCURSES_CHTYPE=$cf_dft_chtype]) 1054AC_MSG_RESULT($NCURSES_CHTYPE) 1055 1056### use option --with-ospeed to override ospeed's type 1057AC_MSG_CHECKING(for type of ospeed) 1058AC_ARG_WITH(ospeed, 1059 [ --with-ospeed=TYPE override type of ospeed variable], 1060 [NCURSES_OSPEED="$withval"], 1061 [NCURSES_OSPEED=short]) 1062AC_MSG_RESULT($NCURSES_OSPEED) 1063AC_SUBST(NCURSES_OSPEED) 1064 1065### use option --with-mmask-t to override mmask_t's type 1066AC_MSG_CHECKING(for type of mmask_t) 1067AC_ARG_WITH(mmask-t, 1068 [ --with-mmask-t=TYPE override type of mmask_t], 1069 [NCURSES_MMASK_T="$withval"], 1070 [NCURSES_MMASK_T=$cf_dft_mmask_t]) 1071AC_MSG_RESULT($NCURSES_MMASK_T) 1072 1073### use option --with-ccharw-max to override CCHARW_MAX size 1074AC_MSG_CHECKING(for size CCHARW_MAX) 1075AC_ARG_WITH(ccharw-max, 1076 [ --with-ccharw-max=XXX override size CCHARW_MAX], 1077 [NCURSES_CCHARW_MAX="$withval"], 1078 [NCURSES_CCHARW_MAX=5]) 1079AC_MSG_RESULT($NCURSES_CCHARW_MAX) 1080AC_SUBST(NCURSES_CCHARW_MAX) 1081 1082AC_CHECK_SIZEOF([signed char]) 1083if test "$ac_cv_sizeof_signed_char" = 1 ; then 1084 NCURSES_SBOOL="signed char" 1085else 1086 NCURSES_SBOOL="char" 1087fi 1088AC_MSG_CHECKING(if you want to use signed Boolean array in term.h) 1089AC_ARG_ENABLE(signed-char, 1090 [ --enable-signed-char compile using signed Boolean's in term.h], 1091 [with_signed_char=$enableval], 1092 [with_signed_char=no]) 1093AC_MSG_RESULT($with_signed_char) 1094test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" 1095AC_SUBST(NCURSES_SBOOL) 1096 1097### use option --with-tparm-arg to override tparm's argument type 1098AC_MSG_CHECKING(for type of tparm args) 1099AC_ARG_WITH(tparm-arg, 1100 [ --with-tparm-arg=TYPE override parameter type of tparm], 1101 [NCURSES_TPARM_ARG="$withval"], 1102 [NCURSES_TPARM_ARG=$cf_dft_tparm_arg]) 1103AC_MSG_RESULT($NCURSES_TPARM_ARG) 1104AC_SUBST(NCURSES_TPARM_ARG) 1105 1106### Enable compiling-in rcs id's 1107AC_MSG_CHECKING(if RCS identifiers should be compiled-in) 1108AC_ARG_WITH(rcs-ids, 1109 [ --with-rcs-ids compile-in RCS identifiers], 1110 [with_rcs_ids=$withval], 1111 [with_rcs_ids=no]) 1112AC_MSG_RESULT($with_rcs_ids) 1113test "x$with_rcs_ids" = xyes && AC_DEFINE(USE_RCS_IDS,1,[Define to 1 to compile-in RCS identifiers]) 1114 1115############################################################################### 1116CF_MAN_PAGES([ captoinfo clear infocmp infotocap reset tabs tic toe tput tset ]) 1117 1118############################################################################### 1119CF_HELP_MESSAGE(Extensions:) 1120 1121### Note that some functions (such as const) are normally disabled anyway. 1122AC_MSG_CHECKING(if you want to build with function extensions) 1123AC_ARG_ENABLE(ext-funcs, 1124 [ --disable-ext-funcs disable function-extensions], 1125 [with_ext_funcs=$enableval], 1126 [with_ext_funcs=yes]) 1127AC_MSG_RESULT($with_ext_funcs) 1128if test "x$with_ext_funcs" = xyes ; then 1129 NCURSES_EXT_FUNCS=1 1130 AC_DEFINE(NCURSES_EXT_FUNCS,1,[Define to 1 to enable ncurses extended functions]) 1131 AC_DEFINE(HAVE_ASSUME_DEFAULT_COLORS,1,[Define to 1 to enable assume_default_colors() function in test-programs]) 1132 AC_DEFINE(HAVE_CURSES_VERSION,1,[Define to 1 to enable curses_version() function in test-programs]) 1133 AC_DEFINE(HAVE_HAS_KEY,1,[Define to 1 to enable has_key() function in test-programs]) 1134 AC_DEFINE(HAVE_RESIZETERM,1,[Define to 1 to enable resizeterm() function in test-programs]) 1135 AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function in test-programs]) 1136 AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function in test-programs]) 1137 AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function in test-programs]) 1138 AC_DEFINE(HAVE_USE_EXTENDED_NAMES,1,[Define to 1 to enable use_extended_names() function in test-programs]) 1139 AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function in test-programs]) 1140 AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function in test-programs]) 1141 AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function in test-programs]) 1142 GENERATED_EXT_FUNCS=generated 1143 test "x$with_ext_funcs" = xyes || cf_dft_ext_spfuncs=no 1144else 1145 NCURSES_EXT_FUNCS=0 1146 GENERATED_EXT_FUNCS= 1147fi 1148AC_SUBST(NCURSES_EXT_FUNCS) 1149AC_SUBST(GENERATED_EXT_FUNCS) 1150 1151AC_MSG_CHECKING(if you want to build with SCREEN extensions) 1152AC_ARG_ENABLE(sp-funcs, 1153 [ --enable-sp-funcs enable SCREEN-extensions], 1154 [with_sp_funcs=$enableval], 1155 [with_sp_funcs=$cf_dft_ext_spfuncs]) 1156AC_MSG_RESULT($with_sp_funcs) 1157if test "x$with_sp_funcs" = xyes ; then 1158 NCURSES_SP_FUNCS=1 1159 AC_DEFINE(NCURSES_SP_FUNCS,1,[Define to 1 to enable SCREEN-extensions]) 1160 AC_DEFINE(HAVE_TPUTS_SP,1,[Define to 1 to enable tputs_sp() function in test-programs]) 1161 GENERATED_SP_FUNCS=generated 1162else 1163 NCURSES_SP_FUNCS=0 1164 GENERATED_SP_FUNCS= 1165fi 1166AC_SUBST(NCURSES_SP_FUNCS) 1167AC_SUBST(GENERATED_SP_FUNCS) 1168 1169AC_MSG_CHECKING(if you want to build with terminal-driver) 1170AC_ARG_ENABLE(term-driver, 1171 [ --enable-term-driver enable terminal-driver], 1172 [with_term_driver=$enableval], 1173 [with_term_driver=no]) 1174AC_MSG_RESULT($with_term_driver) 1175if test "x$with_term_driver" = xyes ; then 1176 AC_DEFINE(USE_TERM_DRIVER,1,[Define to 1 to enable terminal-driver]) 1177 if test "x$with_termlib" != xno ; then 1178 AC_MSG_ERROR(The term-driver option conflicts with the termlib option) 1179 fi 1180 if test "x$with_sp_funcs" != xyes ; then 1181 AC_MSG_ERROR(The term-driver option relies upon sp-funcs) 1182 fi 1183fi 1184 1185### use option --enable-const to turn on use of const beyond that in XSI. 1186AC_MSG_CHECKING(for extended use of const keyword) 1187AC_ARG_ENABLE(const, 1188 [ --enable-const compile with extra/non-standard const], 1189 [with_ext_const=$enableval], 1190 [with_ext_const=$cf_dft_ext_const]) 1191AC_MSG_RESULT($with_ext_const) 1192NCURSES_CONST='/*nothing*/' 1193if test "x$with_ext_const" = xyes ; then 1194 NCURSES_CONST=const 1195fi 1196AC_SUBST(NCURSES_CONST) 1197 1198### use option --enable-ext-colors to turn on use of colors beyond 16. 1199AC_MSG_CHECKING(if you want to use extended colors) 1200AC_ARG_ENABLE(ext-colors, 1201 [ --enable-ext-colors compile for 256-color support], 1202 [with_ext_colors=$enableval], 1203 [with_ext_colors=$cf_dft_ext_colors]) 1204AC_MSG_RESULT($with_ext_colors) 1205NCURSES_EXT_COLORS=0 1206if test "x$with_ext_colors" = xyes ; then 1207 if test "x$with_widec" != xyes ; then 1208 AC_MSG_WARN(This option applies only to wide-character library) 1209 else 1210 # cannot be ABI 5 since it changes sizeof(cchar_t) 1211 CF_NCURSES_ABI_6 1212 NCURSES_EXT_COLORS=1 1213 AC_DEFINE(NCURSES_EXT_COLORS,1,[Define to 1 to compile for 256-color support]) 1214 AC_DEFINE(HAVE_ALLOC_PAIR,1,[Define to 1 to enable alloc_pair() function]) 1215 AC_DEFINE(HAVE_INIT_EXTENDED_COLOR,1,[Define to 1 to enable init_extended_color() function in test-programs]) 1216 AC_DEFINE(HAVE_RESET_COLOR_PAIRS,1,[Define to 1 to enable reset_color_pairs() function in test-programs]) 1217 fi 1218fi 1219AC_SUBST(NCURSES_EXT_COLORS) 1220 1221### use option --enable-ext-mouse to modify coding to support 5-button mice 1222AC_MSG_CHECKING(if you want to use extended mouse encoding) 1223AC_ARG_ENABLE(ext-mouse, 1224 [ --enable-ext-mouse compile for extended mouse-encoding], 1225 [with_ext_mouse=$enableval], 1226 [with_ext_mouse=$cf_dft_ext_mouse]) 1227AC_MSG_RESULT($with_ext_mouse) 1228NCURSES_MOUSE_VERSION=1 1229if test "x$with_ext_mouse" = xyes ; then 1230 NCURSES_MOUSE_VERSION=2 1231 CF_NCURSES_ABI_6 1232fi 1233AC_SUBST(NCURSES_MOUSE_VERSION) 1234 1235### use option --enable-ext-putwin to turn on extended screendumps 1236AC_MSG_CHECKING(if you want to use extended putwin/screendump) 1237AC_ARG_ENABLE(ext-putwin, 1238 [ --enable-ext-putwin compile with extended putwin/screendump], 1239 [with_ext_putwin=$enableval], 1240 [with_ext_putwin=$cf_dft_ext_putwin]) 1241AC_MSG_RESULT($with_ext_putwin) 1242if test "x$with_ext_putwin" = xyes ; then 1243 AC_DEFINE(NCURSES_EXT_PUTWIN,1,[Define to 1 to compile with extended putwin/screendump]) 1244fi 1245 1246AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code) 1247AC_ARG_ENABLE(no-padding, 1248 [ --enable-no-padding compile with $NCURSES_NO_PADDING code], 1249 [with_no_padding=$enableval], 1250 [with_no_padding=$with_ext_funcs]) 1251AC_MSG_RESULT($with_no_padding) 1252test "x$with_no_padding" = xyes && AC_DEFINE(NCURSES_NO_PADDING,1,[Define to 1 to compile with $NCURSES_NO_PADDING code]) 1253 1254### use option --enable-sigwinch to turn on use of SIGWINCH logic 1255AC_MSG_CHECKING(if you want SIGWINCH handler) 1256AC_ARG_ENABLE(sigwinch, 1257 [ --enable-sigwinch compile with SIGWINCH handler], 1258 [with_sigwinch=$enableval], 1259 [with_sigwinch=$with_ext_funcs]) 1260AC_MSG_RESULT($with_sigwinch) 1261test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler]) 1262 1263### use option --enable-tcap-names to allow user to define new capabilities 1264AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap) 1265AC_ARG_ENABLE(tcap-names, 1266 [ --enable-tcap-names compile with user-definable terminal capabilities], 1267 [with_tcap_names=$enableval], 1268 [with_tcap_names=$with_ext_funcs]) 1269AC_MSG_RESULT($with_tcap_names) 1270NCURSES_XNAMES=0 1271test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 1272AC_SUBST(NCURSES_XNAMES) 1273 1274############################################################################## 1275CF_HELP_MESSAGE(Reentrant Code:) 1276CF_WITH_PTHREAD 1277 1278if test "x$with_pthread" != xno; then 1279 AC_CHECK_FUNC(pthread_kill,[ 1280 AC_MSG_CHECKING(if you want to allow EINTR in wgetch with pthreads) 1281 AC_ARG_ENABLE(pthreads-eintr, 1282 [ --enable-pthreads-eintr enable EINTR in wgetch with pthreads], 1283 [use_pthreads_eintr=$enableval], 1284 [use_pthreads_eintr=no]) 1285 AC_MSG_RESULT($use_pthreads_eintr) 1286 if test "x$use_pthreads_eintr" = xyes ; then 1287 AC_DEFINE(USE_PTHREADS_EINTR,1,[Define to 1 to enable EINTR in wgetch with pthreads]) 1288 fi]) 1289 1290 AC_MSG_CHECKING(if you want to use weak-symbols for pthreads) 1291 AC_ARG_ENABLE(weak-symbols, 1292 [ --enable-weak-symbols enable weak-symbols for pthreads], 1293 [use_weak_symbols=$enableval], 1294 [use_weak_symbols=no]) 1295 AC_MSG_RESULT($use_weak_symbols) 1296 if test "x$use_weak_symbols" = xyes ; then 1297 CF_WEAK_SYMBOLS 1298 else 1299 cf_cv_weak_symbols=no 1300 fi 1301 1302 if test "x$cf_cv_weak_symbols" = xyes ; then 1303 AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define to 1 to enable weak-symbols for pthreads]) 1304 fi 1305fi 1306 1307PTHREAD= 1308if test "x$with_pthread" = "xyes" ; then 1309 AC_DEFINE(USE_PTHREADS,1,[Define to 1 to use pthreads feature]) 1310 enable_reentrant=yes 1311 if test "x$cf_cv_weak_symbols" = xyes ; then 1312 PTHREAD=-lpthread 1313 CF_ADD_LIB(pthread,PRIVATE_LIBS) 1314 fi 1315fi 1316AC_SUBST(PTHREAD) 1317 1318# Reentrant code has to be opaque; there's little advantage to making ncurses 1319# opaque outside of that, so there is no --enable-opaque option. We can use 1320# this option without --with-pthreads, but this will be always set for 1321# pthreads. 1322AC_MSG_CHECKING(if you want reentrant code) 1323AC_ARG_ENABLE(reentrant, 1324 [ --enable-reentrant compile with reentrant code], 1325 [with_reentrant=$enableval], 1326 [with_reentrant=no]) 1327AC_MSG_RESULT($with_reentrant) 1328if test "x$with_reentrant" = xyes ; then 1329 cf_cv_enable_reentrant=1 1330 cf_cv_enable_opaque="NCURSES_INTERNALS" 1331 NCURSES_SIZE_T=int 1332 if test "x$cf_cv_weak_symbols" = xyes ; then 1333 CF_REMOVE_LIB(LIBS,$LIBS,pthread) 1334 CF_ADD_LIB(pthread,TEST_LIBS) 1335 CF_ADD_LIB(pthread,TEST_LIBS2) 1336 CF_ADD_LIB(pthread,PRIVATE_LIBS) 1337 else 1338 # when not using weak symbols but with_reentrant, 1339 # add 't' to the library suffix on all platforms 1340 # except cygwin, where we only do that if ALSO 1341 # compiling with full thread support. 1342 case "$host" in 1343 (*cygwin* | *msys*) 1344 if test "$with_pthread" = "yes" ; then 1345 if test "x$disable_lib_suffixes" = "xno" ; then 1346 LIB_SUFFIX="t${LIB_SUFFIX}" 1347 fi 1348 fi ;; 1349 (*) 1350 if test "x$disable_lib_suffixes" = "xno" ; then 1351 LIB_SUFFIX="t${LIB_SUFFIX}" 1352 fi 1353 ;; 1354 esac 1355 fi 1356 AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use reentrant feature]) 1357 CF_NCURSES_ABI_6 1358else 1359 cf_cv_enable_reentrant=0 1360 cf_cv_enable_opaque="NCURSES_OPAQUE" 1361 NCURSES_SIZE_T=short 1362fi 1363AC_SUBST(cf_cv_enable_reentrant) 1364AC_SUBST(cf_cv_enable_opaque) 1365 1366AC_SUBST(NCURSES_SIZE_T) 1367 1368AC_MSG_CHECKING(if you want opaque curses-library structures) 1369CF_ARG_ENABLE(opaque-curses, 1370 [ --enable-opaque-curses make curses WINDOW, etc., "opaque"], 1371 [enable_opaque_curses=yes],[ 1372 test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes 1373 test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no 1374 ]) 1375AC_MSG_RESULT($enable_opaque_curses) 1376 1377test "$cf_cv_enable_reentrant" = 1 && \ 1378test "$enable_opaque_curses" = no && \ 1379AC_MSG_ERROR(reentrant configuration requires opaque library) 1380 1381AC_MSG_CHECKING(if you want opaque form-library structures) 1382AC_ARG_ENABLE(opaque-form, 1383 [ --enable-opaque-form make form-library structures "opaque"], 1384 [enable_opaque_form=yes],[enable_opaque_form=no]) 1385AC_MSG_RESULT($enable_opaque_form) 1386 1387AC_MSG_CHECKING(if you want opaque menu-library structures) 1388AC_ARG_ENABLE(opaque-menu, 1389 [ --enable-opaque-menu make menu-library structures "opaque"], 1390 [enable_opaque_menu=yes],[enable_opaque_menu=no]) 1391AC_MSG_RESULT($enable_opaque_menu) 1392 1393AC_MSG_CHECKING(if you want opaque panel-library structures) 1394AC_ARG_ENABLE(opaque-panel, 1395 [ --enable-opaque-panel make panel-library structures "opaque"], 1396 [enable_opaque_panel=yes],[enable_opaque_panel=no]) 1397AC_MSG_RESULT($enable_opaque_panel) 1398 1399NCURSES_OPAQUE=0; test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1 1400NCURSES_OPAQUE_FORM=0; test "$enable_opaque_form" = yes && NCURSES_OPAQUE_FORM=1 1401NCURSES_OPAQUE_MENU=0; test "$enable_opaque_menu" = yes && NCURSES_OPAQUE_MENU=1 1402NCURSES_OPAQUE_PANEL=0; test "$enable_opaque_panel" = yes && NCURSES_OPAQUE_PANEL=1 1403 1404AC_SUBST(NCURSES_OPAQUE) 1405AC_SUBST(NCURSES_OPAQUE_FORM) 1406AC_SUBST(NCURSES_OPAQUE_MENU) 1407AC_SUBST(NCURSES_OPAQUE_PANEL) 1408 1409### Allow using a different wrap-prefix 1410if test "$cf_cv_enable_reentrant" != 0 || test "$BROKEN_LINKER" = 1 ; then 1411 AC_MSG_CHECKING(for prefix used to wrap public variables) 1412 AC_ARG_WITH(wrap-prefix, 1413 [ --with-wrap-prefix=XXX override prefix used for public variables], 1414 [NCURSES_WRAP_PREFIX=$withval], 1415 [NCURSES_WRAP_PREFIX=_nc_]) 1416 AC_MSG_RESULT($NCURSES_WRAP_PREFIX) 1417else 1418 NCURSES_WRAP_PREFIX=_nc_ 1419fi 1420AC_SUBST(NCURSES_WRAP_PREFIX) 1421AC_DEFINE_UNQUOTED(NCURSES_WRAP_PREFIX,"$NCURSES_WRAP_PREFIX",[Define to override _nc_ prefix]) 1422 1423############################################################################### 1424# These options are relatively safe to experiment with. 1425CF_HELP_MESSAGE(Development Code:) 1426AC_MSG_CHECKING(if you want all development code) 1427AC_ARG_WITH(develop, 1428 [ --without-develop disable development options], 1429 [with_develop=$withval], 1430 [with_develop=no]) 1431AC_MSG_RESULT($with_develop) 1432 1433### use option --enable-hard-tabs to turn on use of hard-tabs optimize 1434AC_MSG_CHECKING(if you want hard-tabs code) 1435AC_ARG_ENABLE(hard-tabs, 1436 [ --enable-hard-tabs compile with hard-tabs code],, 1437 [enable_hard_tabs=$with_develop]) 1438AC_MSG_RESULT($enable_hard_tabs) 1439test "x$enable_hard_tabs" = xyes && AC_DEFINE(USE_HARD_TABS,1,[Define to 1 to compile with hard-tabs code]) 1440 1441### use option --enable-xmc-glitch to turn on use of magic-cookie optimize 1442AC_MSG_CHECKING(if you want limited support for xmc) 1443AC_ARG_ENABLE(xmc-glitch, 1444 [ --enable-xmc-glitch compile with support for xmc (magic-cookie)],, 1445 [enable_xmc_glitch=$with_develop]) 1446AC_MSG_RESULT($enable_xmc_glitch) 1447test "x$enable_xmc_glitch" = xyes && AC_DEFINE(USE_XMC_SUPPORT,1,[Define to 1 to compile with support for xmc (magic-cookie)]) 1448 1449############################################################################### 1450# These are just experimental, probably should not be in a package: 1451CF_HELP_MESSAGE(Experimental Code:) 1452 1453AC_MSG_CHECKING(if you do not want to assume colors are white-on-black) 1454AC_ARG_ENABLE(assumed-color, 1455 [ --disable-assumed-color do not assume anything about default-colors], 1456 [with_assumed_color=$enableval], 1457 [with_assumed_color=yes]) 1458AC_MSG_RESULT($with_assumed_color) 1459test "x$with_assumed_color" = xyes && AC_DEFINE(USE_ASSUMED_COLOR,1,[Define to 1 to assume things about default-colors]) 1460 1461### use option --enable-hashmap to turn on use of hashmap scrolling logic 1462AC_MSG_CHECKING(if you want hashmap scrolling-optimization code) 1463AC_ARG_ENABLE(hashmap, 1464 [ --disable-hashmap compile without hashmap scrolling-optimization], 1465 [with_hashmap=$enableval], 1466 [with_hashmap=yes]) 1467AC_MSG_RESULT($with_hashmap) 1468test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization]) 1469 1470### use option --enable-colorfgbg to turn on use of $COLORFGBG environment 1471AC_MSG_CHECKING(if you want colorfgbg code) 1472AC_ARG_ENABLE(colorfgbg, 1473 [ --enable-colorfgbg compile-in experimental $COLORFGBG code], 1474 [with_colorfgbg=$enableval], 1475 [with_colorfgbg=no]) 1476AC_MSG_RESULT($with_colorfgbg) 1477test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code]) 1478 1479### use option --enable-fvisibility to turn on use of gcc-specific feature 1480AC_MSG_CHECKING(if you want to use gcc -fvisibility option) 1481AC_ARG_ENABLE(fvisibility, 1482 [ --enable-fvisibility compile with -fvisibility=hidden], 1483 [cf_with_fvisibility=$enableval], 1484 [cf_with_fvisibility=no]) 1485AC_MSG_RESULT($cf_with_fvisibility) 1486 1487NCURSES_IMPEXP= 1488NCURSES_CXX_IMPEXP= 1489if test "x$cf_with_fvisibility" = xyes; then 1490 CF_CHECK_FVISIBILITY($CC,CFLAGS,cf_cv_fvisibility_hidden) 1491 if test "x$cf_cv_fvisibility_hidden" = xyes 1492 then 1493 CF_ADD_CFLAGS([-fvisibility=hidden]) 1494 NCURSES_IMPEXP="__attribute__ ((visibility(\"default\")))" 1495 fi 1496 if test -n "$CXX" 1497 then 1498 AC_LANG_PUSH(C++) 1499 CF_CHECK_FVISIBILITY($CXX,CXXFLAGS,cf_cv_fvisibility_hidden2) 1500 if test "x$cf_cv_fvisibility_hidden2" = xyes 1501 then 1502 CF_ADD_CXXFLAGS([-fvisibility=hidden]) 1503 NCURSES_CXX_IMPEXP="__attribute__ ((visibility(\"default\")))" 1504 fi 1505 AC_LANG_POP 1506 fi 1507fi 1508AC_SUBST(NCURSES_IMPEXP) 1509AC_SUBST(NCURSES_CXX_IMPEXP) 1510 1511### use option --enable-interop to turn on use of bindings used for interop 1512AC_MSG_CHECKING(if you want interop bindings) 1513AC_ARG_ENABLE(interop, 1514 [ --enable-interop compile-in interop bindings], 1515 [with_exp_interop=$enableval], 1516 [with_exp_interop=$cf_dft_interop]) 1517AC_MSG_RESULT($with_exp_interop) 1518 1519NCURSES_INTEROP_FUNCS=0 1520test "x$with_exp_interop" = xyes && NCURSES_INTEROP_FUNCS=1 1521AC_SUBST(NCURSES_INTEROP_FUNCS) 1522 1523 1524AC_MSG_CHECKING(if you want experimental safe-sprintf code) 1525AC_ARG_ENABLE(safe-sprintf, 1526 [ --enable-safe-sprintf compile with experimental safe-sprintf code], 1527 [with_safe_sprintf=$enableval], 1528 [with_safe_sprintf=no]) 1529AC_MSG_RESULT($with_safe_sprintf) 1530 1531### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic 1532# when hashmap is used scroll hints are useless 1533if test "$with_hashmap" = no ; then 1534AC_MSG_CHECKING(if you want to experiment without scrolling-hints code) 1535AC_ARG_ENABLE(scroll-hints, 1536 [ --disable-scroll-hints compile without scroll-hints code], 1537 [with_scroll_hints=$enableval], 1538 [with_scroll_hints=yes]) 1539AC_MSG_RESULT($with_scroll_hints) 1540test "x$with_scroll_hints" = xyes && AC_DEFINE(USE_SCROLL_HINTS,1,[Define to 1 to compile without scroll-hints code]) 1541fi 1542 1543AC_MSG_CHECKING(if you want wgetch-events code) 1544AC_ARG_ENABLE(wgetch-events, 1545 [ --enable-wgetch-events compile with wgetch-events code], 1546 [with_wgetch_events=$enableval], 1547 [with_wgetch_events=no]) 1548AC_MSG_RESULT($with_wgetch_events) 1549if test "x$with_wgetch_events" = xyes ; then 1550 AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code]) 1551 NCURSES_WGETCH_EVENTS=1 1552else 1553 NCURSES_WGETCH_EVENTS=0 1554fi 1555AC_SUBST(NCURSES_WGETCH_EVENTS) 1556 1557case "$cf_cv_system_name" in 1558(*mingw32*|*mingw64*|*-msvc*) 1559 AC_MSG_CHECKING(if you want experimental-Windows driver) 1560 AC_ARG_ENABLE(exp-win32, 1561 [ --enable-exp-win32 compile with experimental-Windows driver], 1562 [with_exp_win32=$enableval], 1563 [with_exp_win32=no]) 1564 AC_MSG_RESULT($with_exp_win32) 1565 if test "x$with_exp_win32" = xyes 1566 then 1567 AC_DEFINE(EXP_WIN32_DRIVER,1,[Define to 1 to compile with experimental win32 driver]) 1568 EXP_WIN32_DRIVER=1 1569 INTERNALS_HDR='[$](INCDIR)/nc_win32.h' 1570 else 1571 INTERNALS_HDR='[$](INCDIR)/nc_mingw.h' 1572 EXP_WIN32_DRIVER=0 1573 fi 1574 ;; 1575(*) 1576 EXP_WIN32_DRIVER=0 1577 INTERNALS_HDR= 1578 ;; 1579esac 1580AC_SUBST(EXP_WIN32_DRIVER) 1581AC_SUBST(INTERNALS_HDR) 1582 1583############################################################################### 1584CF_HELP_MESSAGE(Testing/development Options:) 1585 1586### use option --disable-echo to suppress full display compiling commands 1587CF_DISABLE_ECHO 1588if test "x$enable_echo" = xyes; then 1589 ECHO_LINK= 1590else 1591 ECHO_LINK='@ echo linking $@ ... ;' 1592 test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" 1593 test -n "$LIBTOOL_CXX" && LIBTOOL_CXX="$LIBTOOL_CXX --silent" 1594fi 1595AC_SUBST(ECHO_LINK) 1596 1597# --disable-stripping is used for debugging 1598CF_INSTALL_OPTS 1599 1600# If we're avoiding relinking of shared libraries during install, that is to 1601# avoid modifying the build-tree. For the same reason, avoid doing ranlib if 1602# the install program has "-p" (for preserving timestamps). 1603cf_cv_do_reranlib=yes 1604if test "x$cf_cv_install_p" = xyes 1605then 1606 if test "x$cf_cv_do_relink" != xyes 1607 then 1608 cf_cv_do_reranlib=no 1609 INSTALL_OPT_P="-p" 1610 INSTALL_LIB="$INSTALL_LIB $INSTALL_OPT_P" 1611 fi 1612fi 1613AC_SUBST(INSTALL_OPT_P) 1614 1615### use option --enable-warnings to turn on all gcc warnings 1616CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes) 1617 1618if test "x$enable_warnings" = "xyes"; then 1619 CF_ADD_ADAFLAGS(-gnatg) 1620 if test "x$cf_with_cxx" = xyes ; then 1621 CF_GXX_WARNINGS(Wno-unused) 1622 fi 1623fi 1624CF_ENABLE_STRING_HACKS 1625 1626### use option --enable-assertions to turn on generation of assertion code 1627AC_MSG_CHECKING(if you want to enable runtime assertions) 1628AC_ARG_ENABLE(assertions, 1629 [ --enable-assertions test: turn on generation of assertion code], 1630 [with_assertions=$enableval], 1631 [with_assertions=no]) 1632AC_MSG_RESULT($with_assertions) 1633if test -n "$GCC" 1634then 1635 if test "$with_assertions" = no 1636 then 1637 CPPFLAGS="$CPPFLAGS -DNDEBUG" 1638 else 1639 CF_ADD_ADAFLAGS(-gnata) 1640 fi 1641fi 1642 1643### use option --disable-leaks to suppress "permanent" leaks, for testing 1644CF_DISABLE_LEAKS 1645AC_DEFINE(HAVE_NC_ALLOC_H,1,[Define to 1 if we have nc_alloc.h header]) 1646 1647### use option --enable-expanded to generate certain macros as functions 1648AC_ARG_ENABLE(expanded, 1649 [ --enable-expanded test: generate functions for certain macros], 1650 [test "x$enableval" = xyes && AC_DEFINE(NCURSES_EXPANDED,1,[Define to 1 to generate functions for certain macros])]) 1651 1652### use option --disable-macros to suppress macros in favor of functions 1653AC_ARG_ENABLE(macros, 1654 [ --disable-macros test: use functions rather than macros], 1655 [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS,1,[Define to 1 to use functions rather than macros])]) 1656 1657# Normally we only add trace() to the debug-library. Allow this to be 1658# extended to all models of the ncurses library: 1659cf_all_traces=no 1660case "$CFLAGS $CPPFLAGS" in 1661(*-DTRACE*) 1662 cf_all_traces=yes 1663 ;; 1664esac 1665 1666AC_MSG_CHECKING(whether to add trace feature to all models) 1667AC_ARG_WITH(trace, 1668[ --with-trace test: add trace() function to all models of ncurses], 1669[cf_with_trace=$withval], 1670[cf_with_trace=$cf_all_traces]) 1671AC_MSG_RESULT($cf_with_trace) 1672 1673if test "x$cf_with_trace" = xyes ; then 1674 LIB_TRACING=all 1675 ADA_TRACE=TRUE 1676 CF_ADD_CFLAGS(-DTRACE) 1677 AC_DEFINE(HAVE__TRACEF,1,[Define to 1 if we have _tracef function]) 1678else 1679 LIB_TRACING=DEBUG 1680 ADA_TRACE=FALSE 1681fi 1682 1683AC_SUBST(ADA_TRACE) 1684 1685CF_DISABLE_GNAT_PROJECTS 1686 1687### Checks for libraries. 1688case "$cf_cv_system_name" in 1689(*mingw32*|*mingw64*) 1690 if test "x$with_exp_win32" = xyes ; then 1691 CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN" 1692 else 1693 CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN" 1694 fi 1695 # Note: WINVER may be a problem with Windows 10 1696 ;; 1697(*) 1698AC_CHECK_FUNC(gettimeofday, 1699 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[ 1700 1701AC_CHECK_LIB(bsd, gettimeofday, 1702 AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]) 1703 CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday 1704 ;; 1705esac 1706 1707CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) 1708AC_SUBST(MATH_LIB) 1709 1710### Checks for header files. 1711AC_STDC_HEADERS 1712AC_HEADER_DIRENT 1713AC_HEADER_TIME 1714CF_REGEX 1715 1716dnl These are some other potentially nonportable headers. 1717AC_CHECK_HEADERS( \ 1718fcntl.h \ 1719getopt.h \ 1720limits.h \ 1721locale.h \ 1722math.h \ 1723poll.h \ 1724sys/ioctl.h \ 1725sys/param.h \ 1726sys/poll.h \ 1727sys/select.h \ 1728sys/time.h \ 1729sys/times.h \ 1730ttyent.h \ 1731unistd.h \ 1732wctype.h \ 1733) 1734 1735CF_GETOPT_HEADER 1736 1737CF_CHECK_ENVIRON(environ) 1738CF_CHECK_GETENV 1739if test "x$cf_cv_consistent_getenv" = xno && \ 1740 test "x$cf_with_trace" = xyes 1741then 1742 AC_MSG_WARN(The NCURSES_TRACE environment variable is not supported with this configuration) 1743fi 1744 1745CF_SYS_TIME_SELECT 1746 1747### checks for compiler characteristics 1748AC_LANG_C 1749AC_C_CONST 1750CF_C_INLINE(NCURSES_INLINE,1200) 1751CF_SIG_ATOMIC_T 1752 1753if test "$NCURSES_CHTYPE" = auto ; then 1754 CF_TYPEOF_CHTYPE 1755else 1756 cf_cv_typeof_chtype=$NCURSES_CHTYPE 1757fi 1758test "$cf_cv_typeof_chtype" = unsigned && cf_cv_typeof_chtype="" 1759AC_SUBST(cf_cv_typeof_chtype) 1760 1761CF_UNSIGNED_LITERALS 1762cf_cv_1UL="1" 1763test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U" 1764test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L" 1765AC_SUBST(cf_cv_1UL) 1766 1767if test "$NCURSES_MMASK_T" = auto ; then 1768 cf_cv_typeof_mmask_t=long 1769else 1770 cf_cv_typeof_mmask_t=$NCURSES_MMASK_T 1771fi 1772test "$cf_cv_typeof_mmask_t" = unsigned && cf_cv_typeof_mmask_t="" 1773AC_SUBST(cf_cv_typeof_mmask_t) 1774 1775### Checks for external-data 1776CF_ERRNO 1777CF_LINK_DATAONLY 1778 1779### Checks for library functions. 1780AC_CHECK_FUNCS( \ 1781getcwd \ 1782getegid \ 1783geteuid \ 1784getopt \ 1785getttynam \ 1786issetugid \ 1787localeconv \ 1788poll \ 1789putenv \ 1790remove \ 1791select \ 1792setbuf \ 1793setbuffer \ 1794setenv \ 1795setvbuf \ 1796sigaction \ 1797sigvec \ 1798snprintf \ 1799strdup \ 1800strstr \ 1801sysconf \ 1802tcgetpgrp \ 1803times \ 1804tsearch \ 1805vsnprintf \ 1806) 1807 1808if test "x$ac_cv_func_getopt" = xno && \ 1809 test "x$cf_with_progs$cf_with_tests" != xnono; then 1810 AC_MSG_ERROR(getopt is required for building programs) 1811fi 1812 1813if test "x$with_safe_sprintf" = xyes 1814then 1815 if test "x$ac_cv_func_vsnprintf" = xyes 1816 then 1817 AC_MSG_WARN(will use vsnprintf instead of safe-sprintf option) 1818 else 1819 AC_DEFINE(USE_SAFE_SPRINTF,1,[Define to 1 to compile with experimental safe-sprintf code]) 1820 fi 1821fi 1822 1823if test "x$with_getcap" = "xyes" ; then 1824 CF_CGETENT 1825fi 1826 1827CF_ISASCII 1828CF_STRUCT_SIGACTION 1829CF_FUNC_NANOSLEEP 1830CF_FUNC_TERMIOS 1831CF_FUNC_VSSCANF 1832CF_MKSTEMP 1833 1834# setup for prototype of fallback for vsscanf() 1835CF_SUBST_IF(["$cf_cv_func_vsscanf" = vsscanf], HAVE_VSSCANF, 1, 0) 1836 1837dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS 1838if test "x$cross_compiling" = xyes ; then 1839 AC_MSG_WARN(cross compiling: assume setvbuf params not reversed) 1840else 1841 AC_FUNC_SETVBUF_REVERSED 1842fi 1843AC_CHECK_TYPE(intptr_t, long) 1844AC_CHECK_TYPE(ssize_t, int) 1845CF_TYPE_SIGACTION 1846CF_SIZECHANGE 1847CF_FUNC_MEMMOVE 1848CF_FUNC_POLL 1849CF_VA_COPY 1850AC_FUNC_VFORK 1851CF_FOPEN_BIN_R 1852 1853# special check for test/ditto.c 1854CF_FUNC_OPENPTY 1855if test "$cf_cv_func_openpty" != no ; then 1856 AC_DEFINE_UNQUOTED(USE_OPENPTY_HEADER,<$cf_cv_func_openpty>,[Define to actual header for openpty function]) 1857 AC_DEFINE(USE_XTERM_PTY,1,[Define to 1 if we should assume xterm pseudoterminal interface]) 1858 if test "x$cf_cv_lib_util" = xyes ; then 1859 CF_ADD_LIB(util,TEST_LIBS) 1860 fi 1861fi 1862AC_SUBST(TEST_LIBS) 1863AC_SUBST(TEST_LIBS2) 1864 1865if test "$with_hashed_db" != no ; then 1866 AC_DEFINE(USE_HASHED_DB,1,[Define to 1 if we should build terminfo in hashed database]) 1867 CF_HASHED_DB($with_hashed_db) 1868fi 1869 1870dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS 1871if test -z "$cf_user_CFLAGS" && test "$enable_leaks" = yes ; then 1872 CF_STRIP_G_OPT(CFLAGS) 1873 CF_STRIP_G_OPT(CXXFLAGS) 1874fi 1875 1876# Just in case, check if the C compiler has a bool type. 1877CF_BOOL_DECL(cf_cv_cc_bool_type) 1878 1879# Check for C++ compiler characteristics (and ensure that it's there!) 1880if test -n "$CXX" ; then 1881 AC_LANG_CPLUSPLUS 1882 CF_STDCPP_LIBRARY 1883 CF_PROG_CC_C_O(CXX,[$CXXFLAGS $CPPFLAGS]) 1884 1885 case "$GXX_VERSION" in 1886 (1.*|2.[[0-6]]*|[[1-9]][[0-9]].*) 1887 cf_cxx_library=yes 1888 ;; 1889 (*-2.7*|2.7*) 1890 CF_GPP_LIBRARY 1891 ;; 1892 (*) 1893 cf_cxx_library=no 1894 ;; 1895 esac 1896 1897 AC_CHECK_HEADERS(typeinfo) 1898 CF_CXX_IOSTREAM_NAMESPACE 1899 CF_BOOL_DECL 1900 CF_BOOL_SIZE 1901 CF_ETIP_DEFINES 1902 CF_CPP_PARAM_INIT 1903 CF_CPP_STATIC_CAST 1904 CF_CXX_AR_FLAGS 1905else 1906 cf_cxx_library=no 1907 cf_cv_builtin_bool=1 1908 1909 # Just because we are not configuring against C++ right now does not 1910 # mean that a user will not want to use C++. Some distributors disable 1911 # the C++ portion of this configuration as a shortcut (or just to avoid 1912 # compiling the demo in the c++ directory). So we need a reasonable 1913 # default for the 'bool' type. 1914 # 1915 # Caveat: since the storage of the bool type is not standardized, it 1916 # may change. 1917 1918 if test "$NCURSES_BOOL" != auto ; then 1919 cf_cv_type_of_bool=$NCURSES_BOOL 1920 cf_cv_header_stdbool_h=0 1921 else 1922 if test "$cf_cv_header_stdbool_h" = 1 ; then 1923 CF_BOOL_SIZE 1924 else 1925 AC_MSG_CHECKING(for fallback type of bool) 1926 case "$host_cpu" in 1927 (i?86) cf_cv_type_of_bool=char ;; 1928 (*) cf_cv_type_of_bool=int ;; 1929 esac 1930 AC_MSG_RESULT($cf_cv_type_of_bool) 1931 fi 1932 fi 1933fi 1934AC_SUBST(CXXLIBS) 1935 1936# If the C compiler did not declare bool, and we did not determine that the C++ 1937# compiler does not declare bool, turn on an ifdef in curses.h that makes the 1938# ncurses library use the same type as C++ bool. Note that this allows one to 1939# specify the type of bool in a configure-script option and postpone 1940# integration with the C++ compiler provided that the types are compatible. 1941USE_CXX_BOOL=1 1942if test "$cf_cv_cc_bool_type" = 1 1943then 1944 # oops: C has a bool. Unlikely, but C++ could differ. 1945 USE_CXX_BOOL=0 1946elif test "$cf_cv_builtin_bool" = 0 1947then 1948 # C++ has no bool 1949 USE_CXX_BOOL=0 1950else 1951 # this is the normal case 1952 USE_CXX_BOOL='defined(__cplusplus)' 1953fi 1954AC_SUBST(USE_CXX_BOOL) 1955 1956CF_HELP_MESSAGE(Ada Binding Options:) 1957 1958dnl If the Ada95 source-tree is present, add that to the build unless it will 1959dnl not work, or was not requested. 1960if test -f "${srcdir}/Ada95/Makefile.in" ; then 1961 1962dnl libtool does not know anything about GNAT, though a change made in 1998 1963dnl provided for it "someday". Disable the ada subtree if we are using 1964dnl libtool -TD 20070714 1965 if test "$cf_with_ada" != "no" ; then 1966 if test "$with_libtool" != "no"; then 1967 AC_MSG_WARN(libtool does not support Ada - disabling feature) 1968 cf_with_ada=no 1969 fi 1970 fi 1971 1972dnl Check for availability of GNU Ada Translator (GNAT). 1973dnl At the moment we support no other Ada compiler. 1974 if test "$cf_with_ada" != "no" ; then 1975 CF_PROG_GNAT 1976 if test "x$cf_cv_prog_gnat_correct" = xyes; then 1977 CF_ADD_ADAFLAGS(-gnatpn) 1978 CF_FIXUP_ADAFLAGS 1979 1980 CF_GNATPREP_OPT_T 1981 1982 CF_GNAT_GENERICS 1983 CF_GNAT_SIGINT 1984 CF_GNAT_PROJECTS 1985 1986 CF_WITH_ADA_COMPILER 1987 1988 cf_ada_package=terminal_interface 1989 AC_SUBST(cf_ada_package) 1990 1991 CF_WITH_ADA_INCLUDE 1992 CF_WITH_ADA_OBJECTS 1993 CF_WITH_ADA_SHAREDLIB 1994 1995 # allow the Ada binding to be renamed 1996 CF_WITH_ADA_LIBNAME(AdaCurses) 1997 fi 1998 fi 1999else 2000 cf_with_ada=no 2001fi 2002 2003# do this "late" to avoid conflict with header-checks 2004if test "x$with_widec" = xyes ; then 2005 AC_CHECK_SIZEOF(wchar_t) 2006 # cross-compiling to mingw can run into the problem that attempting to 2007 # link with the regex library fails, causing the test to not set this to 2008 # a number. "recent" autoconf does not address this problem either -TD 2009 if test -z "$ac_cv_sizeof_wchar_t" 2010 then 2011 CF_VERBOSE(test failed (assume 2)) 2012 sed /SIZEOF_WCHAR_T/d confdefs.h >confdefs.tmp 2013 mv confdefs.tmp confdefs.h 2014 echo "#define SIZEOF_WCHAR_T 2" >>confdefs.h 2015 fi 2016fi 2017 2018### Construct the ncurses library-subsets, if any, from this set of keywords: 2019### none, base, ext_funcs, ext_tinfo, ticlib, termlib, widechar 2020### 2021### ticlib modules may be a separate library, otherwise contained in termlib. 2022### termlib modules may be a separate library, otherwise contained in ncurses. 2023### 2024### The of "+" or " " between the tokens controls the way the script 2025### chooses to split module lists into libraries. 2026### 2027### (see CF_LIB_RULES). 2028AC_MSG_CHECKING(for library subsets) 2029LIB_SUBSETS= 2030 2031if test "x$cf_with_progs" = xyes || test "$with_ticlib" != no || test "$with_termcap" != no; then 2032 LIB_SUBSETS="${LIB_SUBSETS}ticlib" 2033 if test "$with_ticlib" != no ; then 2034 LIB_SUBSETS="${LIB_SUBSETS} " 2035 else 2036 LIB_SUBSETS="${LIB_SUBSETS}+" 2037 fi 2038fi 2039 2040LIB_SUBSETS="${LIB_SUBSETS}termlib" 2041test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" 2042 2043if test "$with_termlib" != no ; then 2044 LIB_SUBSETS="${LIB_SUBSETS} " 2045else 2046 LIB_SUBSETS="${LIB_SUBSETS}+" 2047fi 2048 2049LIB_SUBSETS="${LIB_SUBSETS}base" 2050 2051# Most term-driver calls are to tinfo, but some like init_pair are to the 2052# base library (so it resides in base). 2053if test "$with_term_driver" != no ; then 2054 LIB_SUBSETS="${LIB_SUBSETS}+port_drivers" 2055 case "$cf_cv_system_name" in 2056 (*mingw32*|*mingw64*) 2057 if test "x$with_exp_win32" = xyes ; then 2058 LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32" 2059 else 2060 LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con" 2061 fi 2062 CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER" 2063 ;; 2064 (*) 2065 LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo" 2066 ;; 2067 esac 2068elif test "x$with_exp_win32" = xyes ; then 2069 case "$cf_cv_system_name" in 2070 (*mingw32*|*mingw64*) 2071 LIB_SUBSETS="${LIB_SUBSETS}+port_win32" 2072 ;; 2073 (*) 2074 ;; 2075 esac 2076fi 2077 2078test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" 2079test "x$with_ext_funcs" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" 2080 2081AC_MSG_RESULT($LIB_SUBSETS) 2082 2083### Construct the list of include-directories to be generated 2084CF_INCLUDE_DIRS 2085CF_ADA_INCLUDE_DIRS 2086 2087### Build up pieces for makefile rules 2088AC_MSG_CHECKING(default library suffix) 2089CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl 2090AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("") 2091AC_MSG_RESULT($DFT_ARG_SUFFIX) 2092 2093AC_MSG_CHECKING(default library-dependency suffix) 2094CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_LIB_SUFFIX,DFT_DEP_SUFFIX)dnl 2095AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a") 2096AC_MSG_RESULT($DFT_DEP_SUFFIX) 2097 2098AC_MSG_CHECKING(default object directory) 2099CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl 2100AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") 2101AC_MSG_RESULT($DFT_OBJ_SUBDIR) 2102 2103if test "x$cf_with_cxx" = xyes ; then 2104AC_MSG_CHECKING(c++ library-dependency suffix) 2105if test "$with_libtool" != "no"; then 2106 # libtool thinks it can make c++ shared libraries (perhaps only g++) 2107 CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX 2108elif test "$with_shared_cxx" != "no"; then 2109 # also for g++ users... 2110 CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX 2111else 2112 # we normally make a static library because C/C++ library rules differ 2113 CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX,CXX_DEP_SUFFIX) 2114fi 2115AC_MSG_RESULT($CXX_LIB_SUFFIX) 2116AC_SUBST(CXX_LIB_SUFFIX) 2117fi 2118 2119# do not want -ldl in build except as needed for -lncurses dependency 2120if test "x$with_dlsym" = xyes ; then 2121if test "$DFT_LWR_MODEL" = shared || \ 2122 test "$DFT_LWR_MODEL" = libtool ; then 2123 CF_REMOVE_LIB(LIBS,$LIBS,dl) 2124fi 2125fi 2126### Set up low-level terminfo dependencies for makefiles. 2127 2128# TICS_LIST and TINFO_LIST are needed to build libtic.so and libterm.so, but 2129# do not need libdl 2130TICS_LIST= 2131if test "x$with_dlsym" = xyes ; then 2132 CF_REMOVE_LIB(TINFO_LIST,$SHLIB_LIST,dl) 2133fi 2134 2135USE_ARG_SUFFIX="${DFT_ARG_SUFFIX}${EXTRA_SUFFIX}" 2136USE_LIB_SUFFIX="${LIB_SUFFIX}${EXTRA_SUFFIX}" 2137USE_CFG_SUFFIX=${DFT_ARG_SUFFIX}${cf_cv_abi_version} 2138if test -n "$EXTRA_SUFFIX" && test "x$EXTRA_SUFFIX" != "x${cf_cv_abi_version}" 2139then 2140 USE_CFG_SUFFIX="${USE_CFG_SUFFIX}${EXTRA_SUFFIX}" 2141fi 2142AC_SUBST(USE_ARG_SUFFIX) 2143AC_SUBST(USE_CFG_SUFFIX) 2144AC_SUBST(USE_LIB_SUFFIX) 2145 2146if test "$with_ticlib" != no ; then 2147 2148 if test "x$with_ticlib" != xyes ; then 2149 TICS_NAME=$with_ticlib 2150 TICS_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`" 2151 TICS_ARG_SUFFIX="${with_ticlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" 2152 TICS_DEP_SUFFIX="${with_ticlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" 2153 TICS_LIB_SUFFIX="${with_ticlib}" 2154 else 2155 TICS_SUFFIX=${DFT_LIB_SUFFIX} 2156 TICS_ARG_SUFFIX="${TICS_NAME}${USE_ARG_SUFFIX}" 2157 TICS_DEP_SUFFIX="${TICS_NAME}${DFT_DEP_SUFFIX}" 2158 TICS_LIB_SUFFIX="${TICS_NAME}${USE_LIB_SUFFIX}" 2159 fi 2160 TICS_LDFLAGS="-L${LIB_DIR}" 2161 TICS_LIBS="-l${TICS_ARG_SUFFIX}" 2162else 2163 TICS_SUFFIX=${DFT_LIB_SUFFIX} 2164 TICS_LDFLAGS="-L${LIB_DIR}" 2165 TICS_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX}" 2166fi 2167AC_SUBST(TICS_ARG_SUFFIX) 2168AC_SUBST(TICS_DEP_SUFFIX) 2169AC_SUBST(TICS_LIB_SUFFIX) 2170AC_SUBST(TICS_LDFLAGS) 2171AC_SUBST(TICS_LIBS) 2172 2173if test "$with_termlib" != no ; then 2174 2175 if test "x$with_termlib" != xyes ; then 2176 TINFO_NAME=$with_termlib 2177 TINFO_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`" 2178 TINFO_ARG_SUFFIX="${with_termlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" 2179 TINFO_DEP_SUFFIX="${with_termlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" 2180 TINFO_LIB_SUFFIX="${with_termlib}" 2181 else 2182 TINFO_SUFFIX=${DFT_LIB_SUFFIX} 2183 TINFO_ARG_SUFFIX="${TINFO_NAME}${USE_ARG_SUFFIX}" 2184 TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}" 2185 TINFO_LIB_SUFFIX="${TINFO_NAME}${USE_LIB_SUFFIX}" 2186 fi 2187 2188 TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}" 2189 TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}" 2190 if test "$DFT_LWR_MODEL" = "libtool"; then 2191 TEST_ARGS="${TEST_DEPS}" 2192 TEST_ARG2="${TEST_DEP2}" 2193 TINFO_LDFLAGS="-L${LIB_DIR}" 2194 TINFO_LIBS="$TEST_ARGS" 2195 TICS_LIST="$SHLIB_LIST $TEST_ARGS" 2196 SHLIB_LIST="${SHLIB_LIST} $TEST_ARGS" 2197 else 2198 TEST_ARGS="-l${TINFO_ARG_SUFFIX}" 2199 TEST_ARG2="-l${TINFO_ARG_SUFFIX}" 2200 if test "x$with_term_driver" != xno ; then 2201 TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${USE_ARG_SUFFIX}" 2202 TICS_LIBS="$TICS_LIBS -l${LIB_NAME}${USE_ARG_SUFFIX}" 2203 TINFO_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX} $TEST_ARGS" 2204 else 2205 TICS_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" 2206 TINFO_LIBS="$TEST_ARGS" 2207 fi 2208 TINFO_LDFLAGS="-L${LIB_DIR}" 2209 SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" 2210 fi 2211else 2212 # the next lines are needed for linking libtic over libncurses 2213 TINFO_NAME=${LIB_NAME} 2214 TINFO_SUFFIX=${DFT_LIB_SUFFIX} 2215 TINFO_ARG_SUFFIX=${LIB_NAME}${USE_ARG_SUFFIX} 2216 if test "x$with_tic_depends" = xyes ; then 2217 TICS_LIST="$SHLIB_LIST -l${LIB_NAME}${USE_ARG_SUFFIX}" 2218 else 2219 TICS_LIST="$SHLIB_LIST" 2220 fi 2221 2222 TINFO_LDFLAGS="-L${LIB_DIR}" 2223 TINFO_LIBS="-l${LIB_NAME}${USE_ARG_SUFFIX}" 2224fi 2225 2226if test "$DFT_LWR_MODEL" = shared ; then 2227 case "$cf_cv_system_name" in 2228 (cygwin*|msys*) 2229 # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" 2230 TINFO_SUFFIX=.dll 2231 ;; 2232 esac 2233fi 2234 2235AC_SUBST(TINFO_ARG_SUFFIX) 2236AC_SUBST(TINFO_DEP_SUFFIX) 2237AC_SUBST(TINFO_LIB_SUFFIX) 2238AC_SUBST(TINFO_LDFLAGS) 2239AC_SUBST(TINFO_LIBS) 2240 2241if test "x$with_dlsym" = xyes ; then 2242 CF_REMOVE_LIB(TICS_LIST,$TICS_LIST,dl) 2243fi 2244 2245if test "$DFT_LWR_MODEL" = "libtool"; then 2246 OBJEXT=lo 2247fi 2248 2249# needed for Ada95 2250TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` 2251AC_SUBST(TINFO_LDFLAGS2) 2252 2253case "$DFT_LWR_MODEL" in 2254(normal|debug|profile) 2255 CF_LDFLAGS_STATIC 2256 ;; 2257esac 2258 2259AC_MSG_CHECKING(where we will install curses.h) 2260AC_SUBST(includesubdir) 2261includesubdir= 2262if test "$with_overwrite" = no && \ 2263 { test "x$includedir" = 'x${prefix}/include' || \ 2264 test "x$includedir" = "x${prefix}/include"; } 2265then 2266 includesubdir="/ncurses${USE_LIB_SUFFIX}" 2267fi 2268AC_MSG_RESULT(${includedir}${includesubdir}) 2269 2270### Resolve a conflict between normal and wide-curses by forcing applications 2271### that will need libutf8 to add it to their configure script. 2272if test "$with_overwrite" != no ; then 2273if test "$NCURSES_LIBUTF8" = 1 ; then 2274 NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' 2275 AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h) 2276fi 2277fi 2278WITH_OVERWRITE=$with_overwrite 2279 2280### At least on MinGW a shared library build without libtool 2281### requires adding the additional libs to the link list. 2282case "$cf_cv_system_name" in 2283(*mingw32*|*mingw64*) 2284 if test "$DFT_LWR_MODEL" != "libtool"; then 2285 SHLIB_LIST="$SHLIB_LIST ${LIBS}" 2286 fi 2287 ;; 2288*) ;; 2289esac 2290 2291AC_SUBST(WITH_OVERWRITE) 2292AC_SUBST(TICS_LIST) 2293AC_SUBST(TINFO_LIST) 2294AC_SUBST(SHLIB_LIST) 2295 2296# used to separate tack out of the tree 2297NCURSES_TREE= 2298AC_SUBST(NCURSES_TREE) 2299 2300### predefined stuff for the test programs 2301AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs]) 2302 2303# pkgsrc uses these 2304CF_WITH_LIB_BASENAME(FORM_NAME,form) 2305CF_WITH_LIB_BASENAME(MENU_NAME,menu) 2306CF_WITH_LIB_BASENAME(PANEL_NAME,panel) 2307CF_WITH_LIB_BASENAME(CXX_NAME,cxx,ncurses++) 2308 2309### Construct the list of subdirectories for which we'll customize makefiles 2310### with the appropriate compile-rules. 2311 2312CF_SRC_MODULES($modules_to_build) 2313 2314if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then 2315 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/src/library.gpr:Ada95/src/library.gpr.in" 2316 SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${USE_CFG_SUFFIX}-config:Ada95/gen/adacurses-config.in" 2317 SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${USE_CFG_SUFFIX}-config.1:man/MKada_config.in" 2318fi 2319 2320CF_DIRS_TO_MAKE 2321 2322# symbols that differ when compiling Ada95 by itself. 2323NCURSES_SHLIB2=$SHELL' $(top_srcdir)/misc/shlib' 2324AC_SUBST(NCURSES_SHLIB2) 2325 2326# values to use as strings 2327AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as library path-separator]) 2328 2329AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic]) 2330 2331### Define substitutions for header files to avoid name-pollution 2332CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0) 2333CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0) 2334CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0) 2335CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0) 2336 2337################################################################################ 2338test "x$use_database" = xyes && \ 2339SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in" 2340 2341SUB_MAKEFILES="$SUB_MAKEFILES misc/ncurses-config:misc/ncurses-config.in" 2342SUB_MAKEFILES="$SUB_MAKEFILES man/ncurses${USE_CFG_SUFFIX}-config.1:man/MKncu_config.in" 2343 2344if test "x$enable_pc_files" = xyes && test -z "$MAKE_PC_FILES" ; then 2345SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in" 2346fi 2347AC_SUBST(cross_compiling) 2348 2349if test "x$cf_with_tests" != xno ; then 2350 MAKE_TESTS= 2351else 2352 MAKE_TESTS="#" 2353fi 2354AC_SUBST(MAKE_TESTS) 2355 2356ADAHTML_DIR=../../doc/html/ada 2357AC_SUBST(ADAHTML_DIR) 2358 2359# workaround for OS/2 (20151017) 2360case "$cf_cv_system_name" in 2361(os2*) 2362 LIBTOOL_OPTS_CXX="-os2dllname ncurs++" 2363 ;; 2364(*) 2365 LIBTOOL_OPTS_CXX= 2366 ;; 2367esac 2368AC_SUBST(LIBTOOL_OPTS_CXX) 2369 2370# workaround for g++ versus Solaris (20131116) 2371case "$cf_cv_system_name" in 2372(solaris2*) 2373 case "x$CPPFLAGS" in 2374 (*-D_XOPEN_SOURCE_EXTENDED*) 2375 CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem) 2376 CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED" 2377 CPPFLAGS=`echo "x$CPPFLAGS" | sed -e 's/^.//' -e 's/-D_XOPEN_SOURCE_EXTENDED//'` 2378 ;; 2379 esac 2380 ;; 2381esac 2382 2383# Help to automatically enable the extended curses features when using either 2384# the *-config or the ".pc" files by adding defines. 2385AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}-config script) 2386PKG_CFLAGS= 2387for cf_loop1 in $CPPFLAGS_after_XOPEN 2388do 2389 cf_found=no 2390 for cf_loop2 in $CPPFLAGS_before_XOPEN 2391 do 2392 if test "x$cf_loop1" = "x$cf_loop2" 2393 then 2394 cf_found=yes 2395 break 2396 fi 2397 done 2398 test "$cf_found" = no && PKG_CFLAGS="$PKG_CFLAGS $cf_loop1" 2399done 2400AC_MSG_RESULT($PKG_CFLAGS) 2401AC_SUBST(PKG_CFLAGS) 2402 2403# AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. 2404case "x$NCURSES_OSPEED" in 2405(*short*) 2406 cf_compatible=1 2407 ;; 2408(*) 2409 cf_compatible=0 2410 ;; 2411esac 2412AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short]) 2413 2414case "x$cf_cv_typeof_chtype" in 2415(xshort|xint|xlong) 2416 cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype" 2417 ;; 2418esac 2419 2420case "x$cf_cv_typeof_mmask_t" in 2421(xshort|xint|xlong) 2422 cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t" 2423 ;; 2424esac 2425 2426# substitute into misc/Makefile to suppress 2427# (un)install.data from the 2428# (un)install rules. 2429if test "x$cf_with_db_install" = "xno"; then 2430 MISC_INSTALL_DATA= 2431 MISC_UNINSTALL_DATA= 2432else 2433 MISC_INSTALL_DATA=install.data 2434 MISC_UNINSTALL_DATA=uninstall.data 2435fi 2436AC_SUBST(MISC_INSTALL_DATA) 2437AC_SUBST(MISC_UNINSTALL_DATA) 2438 2439if test "x$cf_with_db_install" = "xno" || test "x$TERMINFO_SRC" = "xno"; then 2440 MAKE_DATABASE="#" 2441else 2442 MAKE_DATABASE="$MAKE_TERMINFO" 2443fi 2444AC_SUBST(MAKE_DATABASE) 2445 2446dnl Override the package used for exported symbols 2447if test -n "$PACKAGE" 2448then 2449 PACKAGE="${PACKAGE}${DFT_ARG_SUFFIX}" 2450 export PACKAGE 2451 echo "package: $PACKAGE" 2452fi 2453 2454UNALTERED_SYMS= 2455cf_filter_syms=no 2456 2457if test -n "$RESULTING_SYMS" 2458then 2459 cf_filter_syms=$cf_dft_filter_syms 2460 CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_version) 2461fi 2462 2463if test "x$WILDCARD_SYMS" = xno 2464then 2465 cf_filter_syms=yes 2466fi 2467 2468test "x$cf_with_trace" = xyes && NCURSES_INLINE= 2469 2470UNALTERED_SYMS=`echo "$RESULTING_SYMS" | sed -e 's/\\$/\\\\$/g'` 2471if test "$cf_filter_syms" = yes 2472then 2473 RESULTING_SYMS=resulting.map 2474fi 2475AC_SUBST(UNALTERED_SYMS) 2476 2477if test "x$cross_compiling" = xyes ; then 2478 ADAGEN_LDFLAGS='$(CROSS_LDFLAGS)' 2479 CHECK_BUILD="#" 2480else 2481 ADAGEN_LDFLAGS='$(NATIVE_LDFLAGS)' 2482 CHECK_BUILD= 2483fi 2484AC_SUBST(ADAGEN_LDFLAGS) 2485AC_SUBST(CHECK_BUILD) 2486AC_SUBST(PRIVATE_LIBS) 2487 2488# This is used for the *-config script and *.pc data files. 2489CF_LD_SEARCHPATH 2490 2491AC_DEFINE(HAVE_CURSES_DATA_BOOLNAMES,1,[definition needed for in-tree build of tack]) 2492 2493AC_OUTPUT( \ 2494 include/MKterm.h.awk \ 2495 include/curses.head:include/curses.h.in \ 2496 include/ncurses_dll.h \ 2497 include/termcap.h \ 2498 include/unctrl.h \ 2499 $SUB_MAKEFILES \ 2500 Makefile,[ 2501if test "x$cf_with_tests" != xno ; then 2502 CF_PRG_RULES(["$srcdir/test/mk-test.awk" INSTALL=no ECHO_LINK="$ECHO_LD"], test) 2503fi 2504CF_LIB_RULES($SRC_SUBDIRS) 2505 2506if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then 2507if test -z "$USE_OLD_MAKERULES" ; then 2508 $AWK -f "$srcdir/Ada95/mk-1st.awk" <"$srcdir/Ada95/src/modules" >>Ada95/src/Makefile 2509fi 2510fi 2511],[ 2512### Special initialization commands, used to pass information from the 2513### configuration-run into config.status 2514 2515ALTERNATE_SYMS="$ALTERNATE_SYMS" 2516AWK="$AWK" 2517CXX_NAME="$CXX_NAME" 2518DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" 2519DFT_LWR_MODEL="$DFT_LWR_MODEL" 2520ECHO_LD="$ECHO_LD" 2521EXTRA_SUFFIX="$EXTRA_SUFFIX" 2522FORM_NAME="$FORM_NAME" 2523LDCONFIG="$LDCONFIG" 2524LIBTOOL_VERSION="$LIBTOOL_VERSION" 2525LIB_NAME="$LIB_NAME" 2526LIB_PREFIX="$LIB_PREFIX" 2527LIB_SUBSETS="$LIB_SUBSETS" 2528LIB_SUFFIX="$LIB_SUFFIX" 2529LIB_TRACING="$LIB_TRACING" 2530LN_S="$LN_S" 2531MAKE_TERMINFO="$MAKE_TERMINFO" 2532MENU_NAME="$MENU_NAME" 2533NCURSES_MAJOR="$NCURSES_MAJOR" 2534NCURSES_MINOR="$NCURSES_MINOR" 2535NCURSES_OSPEED="$NCURSES_OSPEED" 2536NCURSES_PATCH="$NCURSES_PATCH" 2537PANEL_NAME="$PANEL_NAME" 2538SRC_SUBDIRS="$SRC_SUBDIRS" 2539TERMINFO="$TERMINFO" 2540TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX" 2541TICS_LIB_SUFFIX="$TICS_LIB_SUFFIX" 2542TICS_NAME="$TICS_NAME" 2543TICS_SUFFIX="$TICS_SUFFIX" 2544TIC_PATH="$TIC_PATH" 2545TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX" 2546TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX" 2547TINFO_NAME="$TINFO_NAME" 2548TINFO_SUFFIX="$TINFO_SUFFIX" 2549UNALTERED_SYMS="$UNALTERED_SYMS" 2550USE_ARG_SUFFIX="$USE_ARG_SUFFIX" 2551USE_CFG_SUFFIX="$USE_CFG_SUFFIX" 2552USE_LIB_SUFFIX="$USE_LIB_SUFFIX" 2553USE_OLD_MAKERULES="$USE_OLD_MAKERULES" 2554WILDCARD_SYMS="$WILDCARD_SYMS" 2555WITH_CURSES_H="$with_curses_h" 2556WITH_ECHO="${enable_echo:=yes}" 2557WITH_OVERWRITE="$with_overwrite" 2558cf_LIST_MODELS="$cf_list_models" 2559cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE 2560cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD 2561cf_cv_abi_version="$cf_cv_abi_version" 2562cf_cv_do_relink="$cf_cv_do_relink" 2563cf_cv_do_reranlib="$cf_cv_do_reranlib" 2564cf_cv_do_symlinks="$cf_cv_do_symlinks" 2565cf_cv_enable_lp64="$cf_cv_enable_lp64" 2566cf_cv_enable_opaque="$cf_cv_enable_opaque" 2567cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o 2568cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o 2569cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct 2570cf_cv_rel_version="$cf_cv_rel_version" 2571cf_cv_rm_so_locs="$cf_cv_rm_so_locs" 2572cf_cv_shared_soname='$cf_cv_shared_soname' 2573cf_cv_shlib_version="$cf_cv_shlib_version" 2574cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" 2575cf_cv_system_name="$cf_cv_system_name" 2576cf_cv_term_driver="$with_term_driver" 2577cf_with_ada="$cf_with_ada" 2578cf_with_cxx_binding="$cf_with_cxx_binding" 2579cf_with_db_install="$cf_with_db_install" 2580cf_with_manpages="$cf_with_manpages" 2581cf_with_tests="$cf_with_tests" 2582host="$host" 2583target="$target" 2584with_shared_cxx="$with_shared_cxx" 2585 2586],cat)dnl 2587${MAKE:-make} preinstall 2588