X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=configure.in;h=4ad5523521c1906fa672ba04b83185d570c92ce5;hb=aef6681d538d4bd02cfdf9f52aeefec62488efd6;hp=b71ad8efe406f96c78771ebefed4c89e99cc24bc;hpb=63d26709472433a4660c88461162252bf0e5fde8;p=ncurses.git diff --git a/configure.in b/configure.in index b71ad8ef..4ad55235 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright 2018-2020,2021 Thomas E. Dickey * +dnl Copyright 2018-2022,2023 Thomas E. Dickey * dnl Copyright 1998-2017,2018 Free Software Foundation, Inc. * dnl * dnl Permission is hereby granted, free of charge, to any person obtaining a * @@ -29,7 +29,7 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.737 2021/10/30 14:14:11 tom Exp $ +dnl $Id: configure.in,v 1.765 2023/07/22 17:20:35 tom Exp $ dnl Process this file with autoconf to produce a configure script. dnl dnl For additional information, see @@ -38,7 +38,7 @@ dnl https://invisible-island.net/autoconf/my-autoconf.html dnl dnl --------------------------------------------------------------------------- AC_PREREQ(2.52.20210101) -AC_REVISION($Revision: 1.737 $) +AC_REVISION($Revision: 1.765 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) @@ -61,6 +61,9 @@ CF_CFG_DEFAULTS ### Defaults for ncurses ABI CF_ABI_DEFAULTS +### override ABI version, e.g., packagers +CF_WITH_ABI_ALTERED + ### Checks for programs. AC_ARG_WITH(ada, [ --without-ada suppress check for Ada compiler, don't build demo], @@ -183,22 +186,6 @@ AC_ARG_WITH(progs, [cf_with_progs=yes]) AC_MSG_RESULT($cf_with_progs) -if test -f "$srcdir/tack/tack.h" ; then - if test "x$cross_compiling" = xyes ; then - CF_VERBOSE(ignoring tack because we are cross-compiling) - cf_with_tack=no - else - AC_MSG_CHECKING(if you want to build the tack program) - AC_ARG_WITH(tack, - [ --without-tack suppress build/install with tack program], - [cf_with_tack=$withval], - [cf_with_tack=$cf_with_progs]) - AC_MSG_RESULT($cf_with_tack) - fi -else - cf_with_tack=no -fi - AC_MSG_CHECKING(if you want to build test-programs) AC_ARG_WITH(tests, [ --without-tests suppress build/install with test-programs], @@ -215,7 +202,6 @@ AC_MSG_RESULT($with_curses_h) modules_to_build="ncurses" test "X$cf_with_progs" != Xno && modules_to_build="$modules_to_build progs" -test "X$cf_with_tack" != Xno && modules_to_build="$modules_to_build tack" modules_to_build="$modules_to_build panel menu form" AC_ARG_PROGRAM @@ -420,6 +406,10 @@ LIB_SUFFIX= AC_SUBST(LIB_SUFFIX) CF_PATHSEP +# headers needed for checks... +AC_CHECK_DECL(exit) +AC_HEADER_DIRENT + ############################################################################### AC_MSG_CHECKING(if you want to build a separate terminfo library) @@ -693,11 +683,20 @@ AC_MSG_RESULT($with_xterm_new) WHICH_XTERM=$with_xterm_new AC_SUBST(WHICH_XTERM) +case $host_os in +(*linux-gnu|*cygwin|*mingw32|*msys) + want_xterm_kbs=DEL + ;; +(*) + want_xterm_kbs=BS + ;; +esac + AC_MSG_CHECKING(if xterm backspace sends BS or DEL) AC_ARG_WITH(xterm-kbs, [ --with-xterm-kbs=XXX specify if xterm backspace sends BS or DEL], [with_xterm_kbs=$withval], - [with_xterm_kbs=BS]) + [with_xterm_kbs=auto]) case x$with_xterm_kbs in (xyes|xno|xBS|xbs|x8) with_xterm_kbs=BS @@ -705,6 +704,9 @@ case x$with_xterm_kbs in (xDEL|xdel|x127) with_xterm_kbs=DEL ;; +(xauto) + with_xterm_kbs=$want_xterm_kbs + ;; (*) with_xterm_kbs=$withval ;; @@ -713,6 +715,11 @@ AC_MSG_RESULT($with_xterm_kbs) XTERM_KBS=$with_xterm_kbs AC_SUBST(XTERM_KBS) +if test "x$with_xterm_kbs" != "x$want_xterm_kbs" +then + AC_MSG_WARN([expected --with-xterm-kbs=$want_xterm_kbs for $host_os, have $with_xterm_kbs]) +fi + MAKE_TERMINFO= if test "$use_database" = no ; then TERMINFO="${datadir}/terminfo" @@ -851,16 +858,24 @@ AC_ARG_ENABLE(root-environ, [with_root_environ=$enableval], [with_root_environ=yes]) AC_MSG_RESULT($with_root_environ) -test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if root is allowed to use ncurses environment]) +test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if root/setuid application is allowed to use ncurses environment]) AC_MSG_CHECKING(if you want to permit setuid programs to access all files) -AC_ARG_ENABLE(root-environ, +AC_ARG_ENABLE(root-access, [ --disable-root-access restrict file-access when running setuid], [with_root_access=$enableval], [with_root_access=yes]) AC_MSG_RESULT($with_root_access) test "x$with_root_access" = xyes && AC_DEFINE(USE_ROOT_ACCESS,1,[Define to 1 if setuid is allowed all file-access]) +AC_MSG_CHECKING(if you want to permit setuid use of ncurses environment variables) +AC_ARG_ENABLE(setuid-environ, + [ --disable-setuid-environ restrict setuid use of ncurses environment variables], + [with_setuid_environ=$enableval], + [with_setuid_environ=$with_root_environ]) +AC_MSG_RESULT($with_setuid_environ) +test "x$with_setuid_environ" = xyes && AC_DEFINE(USE_SETUID_ENVIRON,1,[Define to 1 if setuid/setgid application is allowed to use ncurses environment]) + ### Use option --enable-symlinks to make tic use symlinks, not hard links ### to reduce storage requirements for the terminfo database. CF_LINK_FUNCS @@ -946,6 +961,15 @@ if test "x$with_widec" = xyes ; then fi AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code]) AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code]) + case "$CPPFLAGS" in + (*_XOPEN_SOURCE=*) + ;; + (*) + AC_MSG_WARN(_XOPEN_SOURCE feature test macro appears to be predefined) + # CPPFLAGS="$CPPFLAGS -DNCURSES_WIDECHAR" + CPPFLAGS_after_XOPEN="$CPPFLAGS_after_XOPEN -DNCURSES_WIDECHAR" + ;; + esac CF_CHECK_WCHAR_H CF_CHECK_WCWIDTH_GRAPHICS @@ -953,7 +977,7 @@ if test "x$with_widec" = xyes ; then # with_overwrite=no NCURSES_CH_T=cchar_t - AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) + AC_CHECK_FUNCS(putwc btowc wctob wmemchr mbtowc wctomb mblen mbrlen mbrtowc wcsrtombs mbsrtowcs wcstombs mbstowcs) if test "x$ac_cv_func_putwc" != xyes ; then CF_UTF8_LIB if test "$cf_cv_utf8_lib" != no ; then @@ -1050,7 +1074,11 @@ AC_ARG_WITH(caps, [ --with-caps=alt compile with alternate Caps file], [TERMINFO_CAPS=Caps.$withval], [TERMINFO_CAPS=Caps]) -test -f "${srcdir}/include/${TERMINFO_CAPS}" || TERMINFO_CAPS=Caps +if test ! -f "${srcdir}/include/${TERMINFO_CAPS}" +then + AC_MSG_WARN(file not found: "${srcdir}/include/${TERMINFO_CAPS}") + TERMINFO_CAPS=Caps +fi AC_MSG_RESULT($TERMINFO_CAPS) AC_SUBST(TERMINFO_CAPS) @@ -1084,7 +1112,7 @@ AC_MSG_CHECKING(for size CCHARW_MAX) AC_ARG_WITH(ccharw-max, [ --with-ccharw-max=XXX override size CCHARW_MAX], [NCURSES_CCHARW_MAX="$withval"], - [NCURSES_CCHARW_MAX=5]) + [NCURSES_CCHARW_MAX=$cf_dft_ccharw_max]) AC_MSG_RESULT($NCURSES_CCHARW_MAX) AC_SUBST(NCURSES_CCHARW_MAX) @@ -1098,7 +1126,7 @@ AC_MSG_CHECKING(if you want to use signed Boolean array in term.h) AC_ARG_ENABLE(signed-char, [ --enable-signed-char compile using signed Boolean's in term.h], [with_signed_char=$enableval], - [with_signed_char=no]) + [with_signed_char=$cf_dft_signed_char]) AC_MSG_RESULT($with_signed_char) test "x$with_signed_char" != xyes && NCURSES_SBOOL="char" AC_SUBST(NCURSES_SBOOL) @@ -1144,7 +1172,6 @@ if test "x$with_ext_funcs" = xyes ; then AC_DEFINE(HAVE_RESIZE_TERM,1,[Define to 1 to enable resize_term() function in test-programs]) AC_DEFINE(HAVE_TERM_ENTRY_H,1,[Define to 1 to enable term_entry() function in test-programs]) AC_DEFINE(HAVE_USE_DEFAULT_COLORS,1,[Define to 1 to enable use_default_colors() function in test-programs]) - AC_DEFINE(HAVE_USE_EXTENDED_NAMES,1,[Define to 1 to enable use_extended_names() function in test-programs]) AC_DEFINE(HAVE_USE_SCREEN,1,[Define to 1 to enable use_screen() function in test-programs]) AC_DEFINE(HAVE_USE_WINDOW,1,[Define to 1 to enable use_window() function in test-programs]) AC_DEFINE(HAVE_WRESIZE,1,[Define to 1 to enable wresize() function in test-programs]) @@ -1234,11 +1261,18 @@ AC_ARG_ENABLE(ext-mouse, [with_ext_mouse=$enableval], [with_ext_mouse=$cf_dft_ext_mouse]) AC_MSG_RESULT($with_ext_mouse) -NCURSES_MOUSE_VERSION=1 if test "x$with_ext_mouse" = xyes ; then - NCURSES_MOUSE_VERSION=2 CF_NCURSES_ABI_6 fi + +if test $cf_cv_abi_default -le 5 ; then + NCURSES_MOUSE_VERSION=1 +elif test $cf_cv_abi_default -le 6 ; then + NCURSES_MOUSE_VERSION=2 +else + NCURSES_MOUSE_VERSION=3 +fi + AC_SUBST(NCURSES_MOUSE_VERSION) ### use option --enable-ext-putwin to turn on extended screendumps @@ -1277,7 +1311,10 @@ AC_ARG_ENABLE(tcap-names, [with_tcap_names=$with_ext_funcs]) AC_MSG_RESULT($with_tcap_names) NCURSES_XNAMES=0 -test "x$with_tcap_names" = xyes && NCURSES_XNAMES=1 +if test "x$with_tcap_names" = xyes; then + NCURSES_XNAMES=1 + AC_DEFINE(NCURSES_XNAMES,1,[Define to 1 to compile with user-definable terminal capabilities]) +fi AC_SUBST(NCURSES_XNAMES) ############################################################################## @@ -1367,7 +1404,7 @@ if test "x$with_reentrant" = xyes ; then else cf_cv_enable_reentrant=0 cf_cv_enable_opaque="NCURSES_OPAQUE" - NCURSES_SIZE_T=short + NCURSES_SIZE_T=$cf_dft_ordinate_type fi AC_SUBST(cf_cv_enable_reentrant) AC_SUBST(cf_cv_enable_opaque) @@ -1379,7 +1416,7 @@ CF_ARG_ENABLE(opaque-curses, [ --enable-opaque-curses make curses WINDOW, etc., "opaque"], [enable_opaque_curses=yes],[ test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes - test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=no + test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=$cf_dft_opaque_curses ]) AC_MSG_RESULT($enable_opaque_curses) @@ -1625,7 +1662,7 @@ AC_SUBST(INSTALL_OPT_P) CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes) if test "x$enable_warnings" = "xyes"; then - CF_ADD_ADAFLAGS(-gnatg) + CF_ADD_ADAFLAGS(-gnatwa -gnatyg) if test "x$cf_with_cxx" = xyes ; then CF_GXX_WARNINGS(Wno-unused) fi @@ -1705,12 +1742,6 @@ case "$cf_cv_system_name" in CF_CHECK_LIBSSP ;; (*) -AC_CHECK_FUNC(gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]),[ - -AC_CHECK_LIB(bsd, gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY,1,[Define to 1 if we have gettimeofday function]) - CF_ADD_LIB(bsd))])dnl CLIX: bzero, select, gettimeofday ;; esac @@ -1718,8 +1749,6 @@ CF_MATH_LIB(MATH_LIB,pow(sin(x),x)) AC_SUBST(MATH_LIB) ### Checks for header files. -AC_STDC_HEADERS -AC_HEADER_DIRENT AC_HEADER_TIME CF_REGEX @@ -1731,13 +1760,13 @@ limits.h \ locale.h \ math.h \ poll.h \ +sys/auxv.h \ sys/ioctl.h \ sys/param.h \ sys/poll.h \ sys/select.h \ sys/time.h \ sys/times.h \ -ttyent.h \ unistd.h \ wctype.h \ ) @@ -1787,12 +1816,15 @@ CF_ERRNO CF_LINK_DATAONLY ### Checks for library functions. +CF_FUNC_GETTIME AC_CHECK_FUNCS( \ +fpathconf \ getcwd \ +getauxval \ getegid \ geteuid \ getopt \ -getttynam \ +getuid \ issetugid \ localeconv \ poll \ @@ -1816,6 +1848,8 @@ tsearch \ vsnprintf \ ) +CF_FUNC_GETTTYNAM + if test "x$ac_cv_func_getopt" = xno && \ test "x$cf_with_progs$cf_with_tests" != xnono; then AC_MSG_ERROR(getopt is required for building programs) @@ -1910,6 +1944,7 @@ if test -n "$CXX" ; then CF_BOOL_DECL CF_BOOL_SIZE CF_ETIP_DEFINES + CF_CPP_OVERRIDE CF_CPP_PARAM_INIT CF_CPP_STATIC_CAST CF_CXX_AR_FLAGS @@ -2304,10 +2339,6 @@ AC_SUBST(TICS_LIST) AC_SUBST(TINFO_LIST) AC_SUBST(SHLIB_LIST) -# used to separate tack out of the tree -NCURSES_TREE= -AC_SUBST(NCURSES_TREE) - ### predefined stuff for the test programs AC_DEFINE(HAVE_SLK_COLOR,1,[Define to 1 if we have slk_color for test-programs]) @@ -2468,7 +2499,7 @@ cf_filter_syms=no if test -n "$RESULTING_SYMS" then cf_filter_syms=$cf_dft_filter_syms - CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_version) + CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_default) fi if test "x$WILDCARD_SYMS" = xno @@ -2499,20 +2530,20 @@ AC_SUBST(PRIVATE_LIBS) # This is used for the *-config script and *.pc data files. CF_LD_SEARCHPATH -AC_DEFINE(HAVE_CURSES_DATA_BOOLNAMES,1,[definition needed for in-tree build of tack]) - AC_OUTPUT( \ include/MKterm.h.awk \ include/curses.head:include/curses.h.in \ include/ncurses_dll.h \ include/termcap.h \ include/unctrl.h \ + man/man_db.renames \ $SUB_MAKEFILES \ Makefile,[ if test "x$cf_with_tests" != xno ; then CF_PRG_RULES(["$srcdir/test/mk-test.awk" INSTALL=no ECHO_LINK="$ECHO_LD"], test) fi CF_LIB_RULES($SRC_SUBDIRS) +CF_OUTPUT_MANPAGE_RENAMES if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then if test -z "$USE_OLD_MAKERULES" ; then @@ -2540,6 +2571,7 @@ LIB_SUFFIX="$LIB_SUFFIX" LIB_TRACING="$LIB_TRACING" LN_S="$LN_S" MAKE_TERMINFO="$MAKE_TERMINFO" +MANPAGE_RENAMES="$MANPAGE_RENAMES" MENU_NAME="$MENU_NAME" NCURSES_MAJOR="$NCURSES_MAJOR" NCURSES_MINOR="$NCURSES_MINOR" @@ -2569,6 +2601,7 @@ WITH_OVERWRITE="$with_overwrite" cf_LIST_MODELS="$cf_list_models" cf_cv_VERSION_GNATMAKE=$cf_cv_VERSION_GNATMAKE cf_cv_VERSION_GPRBUILD=$cf_cv_VERSION_GPRBUILD +cf_cv_abi_default="$cf_cv_abi_default" cf_cv_abi_version="$cf_cv_abi_version" cf_cv_do_relink="$cf_cv_do_relink" cf_cv_do_reranlib="$cf_cv_do_reranlib" @@ -2593,6 +2626,7 @@ cf_with_manpages="$cf_with_manpages" cf_with_tests="$cf_with_tests" host="$host" target="$target" +verbose="$verbose" with_shared_cxx="$with_shared_cxx" ],cat)dnl