dnl***************************************************************************
-dnl Copyright 2018-2021,2022 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 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 *
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.752 2022/10/22 19:19:52 tom Exp $
+dnl $Id: configure.in,v 1.779 2024/04/10 08:04:00 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl For additional information, see
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.52.20210101)
-AC_REVISION($Revision: 1.752 $)
+AC_REVISION($Revision: 1.779 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
### 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],
[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],
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
# of package conflict.
cf_config_suffix=
AC_ARG_WITH(config-suffix,
- [ --with-config-suffix=X suffixes ncursesXX-config file],
+ [ --with-config-suffix=X name ncurses*X-config file with X],
[case "x$withval" in
(xyes|xno)
AC_MSG_WARN(expected a value for config-suffix option)
CF_ENABLE_PC_FILES
if test -z "$MAKE_PC_FILES"
then
- AC_MSG_CHECKING(for suffix to add to pc-files)
+ AC_MSG_CHECKING(for suffix to add to pkg-config files)
AC_ARG_WITH(pc-suffix,
- [ --with-pc-suffix suffixes pc-files],
+ [[ --with-pc-suffix[=XXX] suffix pkg-config files with XXX]],
[case "x$withval" in
(xyes|xno)
PC_MODULE_SUFFIX=
dnl Special option for use by system-builders: the install-prefix is used to
dnl adjust the location into which the actual install is done, so that an
dnl archive can be built without modifying the host system's configuration.
-AC_MSG_CHECKING(if you have specified an install-prefix)
+AC_MSG_CHECKING(for an installation directory prefix)
AC_ARG_WITH(install-prefix,
- [ --with-install-prefix prefixes actual install-location ($DESTDIR)],
+ [ --with-install-prefix=DESTDIR use DESTDIR as installation directory prefix],
[case "x$withval" in
(xyes|xno)
;;
(*) DESTDIR="$withval"
;;
esac])
-AC_MSG_RESULT($DESTDIR)
+AC_MSG_RESULT([${DESTDIR:-(none)}])
AC_SUBST(DESTDIR)
###############################################################################
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)
(shared) LD_MODEL='' ;;
esac
AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg)
-AC_MSG_RESULT($LD_MODEL)
+AC_MSG_RESULT([${LD_MODEL:-(none)}])
case "$DFT_LWR_MODEL" in
(shared)
CF_HELP_MESSAGE(Fine-Tuning Your Configuration:)
### use option --with-extra-suffix to append suffix to headers and libraries
-AC_MSG_CHECKING(if you wish to append extra suffix to header/library paths)
+AC_MSG_CHECKING(for extra suffix to append to header/library paths)
EXTRA_SUFFIX=
AC_ARG_WITH(extra-suffix,
- [ --with-extra-suffix=X append extra suffix to header/library paths],
+ [[ --with-extra-suffix[=X] append extra suffix X to header/library paths]],
[case x$withval in
(xno)
;;
;;
esac
])
-AC_MSG_RESULT($EXTRA_SUFFIX)
+AC_MSG_RESULT([${EXTRA_SUFFIX:-(none)}])
AC_SUBST(EXTRA_SUFFIX)
### use option --disable-overwrite to leave out the link to -lcurses
fi
AC_SUBST(NCURSES_USE_DATABASE)
-AC_MSG_CHECKING(for list of fallback descriptions)
+AC_MSG_CHECKING(for list of fallback terminal descriptions)
AC_ARG_WITH(fallbacks,
[ --with-fallbacks=XXX specify list of fallback terminal descriptions],
[with_fallback=$withval],
[with_fallback=])
-AC_MSG_RESULT($with_fallback)
+AC_MSG_RESULT([${with_fallback:-(none)}])
case ".$with_fallback" in
(.|.no)
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[=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
(xDEL|xdel|x127)
with_xterm_kbs=DEL
;;
+(xauto)
+ with_xterm_kbs=$want_xterm_kbs
+ ;;
(*)
with_xterm_kbs=$withval
;;
if test "x$with_xterm_kbs" != "x$want_xterm_kbs"
then
- AC_MSG_WARN(expected --with-xterm-kbs=$want_xterm_kbs for $host_os)
+ AC_MSG_WARN([expected --with-xterm-kbs=$want_xterm_kbs for $host_os, have $with_xterm_kbs])
fi
MAKE_TERMINFO=
[AC_TRY_RUN([
#include <stdlib.h>
#include <string.h>
-int main() {
+int main(void) {
unsigned long n = 6000000L;
char *s = malloc(n);
if (s != 0)
[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
AC_MSG_CHECKING(if you want wide-character code)
AC_ARG_ENABLE(widec,
- [ --enable-widec compile with wide-char/UTF-8 code],
+ [ --disable-widec compile without wide character and UTF-8 support],
[with_widec=$enableval],
- [with_widec=no])
+ [with_widec=$cf_dft_widec])
AC_MSG_RESULT($with_widec)
NCURSES_WCWIDTH_GRAPHICS=1
if test "x$disable_lib_suffixes" = xno ; then
LIB_SUFFIX="w${LIB_SUFFIX}"
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])
+ AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide character and UTF-8 support])
+ AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide character and UTF-8 support])
case "$CPPFLAGS" in
(*_XOPEN_SOURCE=*)
;;
CF_WITH_X11_RGB
### use option --with-bool to override bool's type
-AC_MSG_CHECKING(for type of bool)
-AC_ARG_WITH(bool,
- [ --with-bool=TYPE override fallback type of bool variable],
- [NCURSES_BOOL="$withval"],
- [NCURSES_BOOL=auto])
-AC_MSG_RESULT($NCURSES_BOOL)
-AC_SUBST(NCURSES_BOOL)
+CF_WITH_TYPE(bool,
+ [ --with-bool=TYPE fall back to TYPE for curses 'bool' typedef],
+ NCURSES_BOOL,
+ auto)
AC_MSG_CHECKING(for alternate terminal capabilities file)
AC_ARG_WITH(caps,
AC_SUBST(TERMINFO_CAPS)
### use option --with-chtype to override chtype's type
-AC_MSG_CHECKING(for type of chtype)
-AC_ARG_WITH(chtype,
+CF_WITH_TYPE(chtype,
[ --with-chtype=TYPE override type of chtype],
- [NCURSES_CHTYPE="$withval"],
- [NCURSES_CHTYPE=$cf_dft_chtype])
-AC_MSG_RESULT($NCURSES_CHTYPE)
+ NCURSES_CHTYPE,
+ $cf_dft_chtype)
### use option --with-ospeed to override ospeed's type
-AC_MSG_CHECKING(for type of ospeed)
-AC_ARG_WITH(ospeed,
+CF_WITH_TYPE(ospeed,
[ --with-ospeed=TYPE override type of ospeed variable],
- [NCURSES_OSPEED="$withval"],
- [NCURSES_OSPEED=short])
-AC_MSG_RESULT($NCURSES_OSPEED)
-AC_SUBST(NCURSES_OSPEED)
+ NCURSES_OSPEED,
+ short)
### use option --with-mmask-t to override mmask_t's type
-AC_MSG_CHECKING(for type of mmask_t)
-AC_ARG_WITH(mmask-t,
+CF_WITH_TYPE(mmask-t,
[ --with-mmask-t=TYPE override type of mmask_t],
- [NCURSES_MMASK_T="$withval"],
- [NCURSES_MMASK_T=$cf_dft_mmask_t])
-AC_MSG_RESULT($NCURSES_MMASK_T)
+ NCURSES_MMASK_T,
+ $cf_dft_mmask_t)
### use option --with-ccharw-max to override CCHARW_MAX size
AC_MSG_CHECKING(for size CCHARW_MAX)
else
NCURSES_SBOOL="char"
fi
-AC_MSG_CHECKING(if you want to use signed Boolean array in term.h)
+AC_MSG_CHECKING(whether to use signed chars for Boolean array in term.h)
AC_ARG_ENABLE(signed-char,
- [ --enable-signed-char compile using signed Boolean's in term.h],
+ [ --enable-signed-char use signed chars for Boolean array in term.h],
[with_signed_char=$enableval],
[with_signed_char=$cf_dft_signed_char])
AC_MSG_RESULT($with_signed_char)
AC_SUBST(NCURSES_SBOOL)
### use option --with-tparm-arg to override tparm's argument type
-AC_MSG_CHECKING(for type of tparm args)
-AC_ARG_WITH(tparm-arg,
+CF_WITH_TYPE(tparm-arg,
[ --with-tparm-arg=TYPE override parameter type of tparm],
- [NCURSES_TPARM_ARG="$withval"],
- [NCURSES_TPARM_ARG=$cf_dft_tparm_arg])
-AC_MSG_RESULT($NCURSES_TPARM_ARG)
-AC_SUBST(NCURSES_TPARM_ARG)
+ NCURSES_TPARM_ARG,
+ $cf_dft_tparm_arg)
### Enable compiling-in rcs id's
AC_MSG_CHECKING(if RCS identifiers should be compiled-in)
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])
CF_NCURSES_ABI_6
fi
-case $cf_cv_abi_version in
-(5)
+if test $cf_cv_abi_default -le 5 ; then
NCURSES_MOUSE_VERSION=1
- ;;
-(6)
+elif test $cf_cv_abi_default -le 6 ; then
NCURSES_MOUSE_VERSION=2
- ;;
-([[789]])
+else
NCURSES_MOUSE_VERSION=3
- ;;
-esac
+fi
AC_SUBST(NCURSES_MOUSE_VERSION)
[with_sigwinch=$enableval],
[with_sigwinch=$with_ext_funcs])
AC_MSG_RESULT($with_sigwinch)
-test "x$with_sigwinch" = xyes && AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
+if test "x$with_sigwinch" = xyes
+then
+ AC_DEFINE(USE_SIGWINCH,1,[Define to 1 to compile with SIGWINCH handler])
+ cf_cv_enable_sigwinch=1
+else
+ cf_cv_enable_sigwinch=0
+fi
+AC_SUBST(cf_cv_enable_sigwinch)
### use option --enable-tcap-names to allow user to define new capabilities
AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap)
[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)
##############################################################################
AC_SUBST(NCURSES_SIZE_T)
-AC_MSG_CHECKING(if you want opaque curses-library structures)
-CF_ARG_ENABLE(opaque-curses,
- [ --enable-opaque-curses make curses WINDOW, etc., "opaque"],
- [enable_opaque_curses=yes],[
+AC_MSG_CHECKING(whether curses library structures should be opaque)
+CF_ARG_DISABLE(opaque-curses,
+ [ --disable-opaque-curses do not make WINDOW, etc., structures opaque],
+ [enable_opaque_curses=no],[
test "$cf_cv_enable_reentrant" = 1 && enable_opaque_curses=yes
test "$cf_cv_enable_reentrant" = 1 || enable_opaque_curses=$cf_dft_opaque_curses
])
test "$enable_opaque_curses" = no && \
AC_MSG_ERROR(reentrant configuration requires opaque library)
-AC_MSG_CHECKING(if you want opaque form-library structures)
-AC_ARG_ENABLE(opaque-form,
- [ --enable-opaque-form make form-library structures "opaque"],
- [enable_opaque_form=yes],[enable_opaque_form=no])
+AC_MSG_CHECKING(whether form library structures should be opaque)
+CF_ARG_DISABLE(opaque-form,
+ [ --disable-opaque-form do not make form library structures opaque],
+ [enable_opaque_form=no],[enable_opaque_form=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_form)
-AC_MSG_CHECKING(if you want opaque menu-library structures)
-AC_ARG_ENABLE(opaque-menu,
- [ --enable-opaque-menu make menu-library structures "opaque"],
- [enable_opaque_menu=yes],[enable_opaque_menu=no])
+AC_MSG_CHECKING(whether menu library structures should be opaque)
+CF_ARG_DISABLE(opaque-menu,
+ [ --disable-opaque-menu do not make menu library structures opaque],
+ [enable_opaque_menu=no],[enable_opaque_menu=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_menu)
-AC_MSG_CHECKING(if you want opaque panel-library structures)
-AC_ARG_ENABLE(opaque-panel,
- [ --enable-opaque-panel make panel-library structures "opaque"],
- [enable_opaque_panel=yes],[enable_opaque_panel=no])
+AC_MSG_CHECKING(whether panel library structures should be opaque)
+CF_ARG_DISABLE(opaque-panel,
+ [ --disable-opaque-panel do not make panel library structures opaque],
+ [enable_opaque_panel=no],[enable_opaque_panel=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_panel)
NCURSES_OPAQUE=0; test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1
[with_develop=no])
AC_MSG_RESULT($with_develop)
+### use option --enable-check-size to detect screensize with CPR
+AC_MSG_CHECKING(if you want to check screensize of serial terminals)
+AC_ARG_ENABLE(check-size,
+ [ --enable-check-size compile-in code to detect screensize of serial terminals],,
+ [enable_check_size=$with_develop])
+AC_MSG_RESULT($enable_check_size)
+test "x$enable_check_size" = xyes && AC_DEFINE(USE_CHECK_SIZE,1,[Define to 1 to compile-in code to detect screensize])
+
### use option --enable-hard-tabs to turn on use of hard-tabs optimize
AC_MSG_CHECKING(if you want hard-tabs code)
AC_ARG_ENABLE(hard-tabs,
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
AC_SUBST(MATH_LIB)
### Checks for header files.
-AC_STDC_HEADERS
-AC_HEADER_DIRENT
AC_HEADER_TIME
CF_REGEX
locale.h \
math.h \
poll.h \
+sys/auxv.h \
sys/ioctl.h \
sys/param.h \
sys/poll.h \
CF_LINK_DATAONLY
### Checks for library functions.
+CF_FUNC_GETTIME
AC_CHECK_FUNCS( \
fpathconf \
getcwd \
+getauxval \
getegid \
geteuid \
getopt \
+getuid \
issetugid \
localeconv \
poll \
-putenv \
remove \
select \
setbuf \
setbuffer \
-setenv \
setfsuid \
setvbuf \
sigaction \
CF_SIZECHANGE
CF_FUNC_MEMMOVE
CF_FUNC_POLL
+CF_MB_LEN_MAX
CF_VA_COPY
AC_FUNC_VFORK
CF_FOPEN_BIN_R
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])
# pkgsrc uses these
+CF_HELP_MESSAGE(Library basenames for pkgsrc:)
CF_WITH_LIB_BASENAME(FORM_NAME,form)
CF_WITH_LIB_BASENAME(MENU_NAME,menu)
CF_WITH_LIB_BASENAME(PANEL_NAME,panel)
# Help to automatically enable the extended curses features when using either
# the *-config or the ".pc" files by adding defines.
-AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}-config script)
+AC_MSG_CHECKING(for defines to add to ncurses${USE_CFG_SUFFIX}${cf_config_suffix}-config script)
PKG_CFLAGS=
for cf_loop1 in $CPPFLAGS_after_XOPEN
do
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
# 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 \
DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
DFT_LWR_MODEL="$DFT_LWR_MODEL"
ECHO_LD="$ECHO_LD"
-EGREP="${EGREP-grep -E}"
EXTRA_SUFFIX="$EXTRA_SUFFIX"
-FGREP="${FGREP-grep -F}"
FORM_NAME="$FORM_NAME"
LDCONFIG="$LDCONFIG"
LIBTOOL_VERSION="$LIBTOOL_VERSION"
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"