dnl***************************************************************************
-dnl Copyright 2018-2021,2022 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 *
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.746 2022/07/28 20:14:30 tom Exp $
+dnl $Id: configure.in,v 1.769 2023/10/21 15:43:56 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.746 $)
+AC_REVISION($Revision: 1.769 $)
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
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)
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
(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=
[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 do not compile with wide-char/UTF-8 code],
[with_widec=$enableval],
- [with_widec=no])
+ [with_widec=$cf_dft_widec])
AC_MSG_RESULT($with_widec)
NCURSES_WCWIDTH_GRAPHICS=1
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
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_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_MSG_CHECKING(if you want opaque curses-library structures)
CF_ARG_ENABLE(opaque-curses,
- [ --enable-opaque-curses make curses WINDOW, etc., "opaque"],
+ [ --disable-opaque-curses do not 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=$cf_dft_opaque_curses
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])
+ [ --disable-opaque-form do not make form-library structures "opaque"],
+ [enable_opaque_form=yes],[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])
+ [ --disable-opaque-menu do not make menu-library structures "opaque"],
+ [enable_opaque_menu=yes],[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])
+ [ --disable-opaque-panel do not make panel-library structures "opaque"],
+ [enable_opaque_panel=yes],[enable_opaque_panel=$cf_dft_opaque_curses])
AC_MSG_RESULT($enable_opaque_panel)
NCURSES_OPAQUE=0; test "$enable_opaque_curses" = yes && NCURSES_OPAQUE=1
AC_MSG_RESULT($with_hashmap)
test "x$with_hashmap" = xyes && AC_DEFINE(USE_HASHMAP,1,[Define to 1 to compile with hashmap scrolling-optimization])
+### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+AC_MSG_CHECKING(if you want code to check screensize)
+AC_ARG_ENABLE(check-size,
+ [ --enable-check-size compile-in code to detect screensize],
+ [with_check_size=$enableval],
+ [with_check_size=no])
+AC_MSG_RESULT($with_check_size)
+test "x$with_check_size" = xyes && AC_DEFINE(USE_CHECK_SIZE,1,[Define to 1 to compile-in code to detect screensize])
+
### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
AC_MSG_CHECKING(if you want colorfgbg code)
AC_ARG_ENABLE(colorfgbg,
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 \
CF_BOOL_DECL
CF_BOOL_SIZE
CF_ETIP_DEFINES
+ CF_CPP_OVERRIDE
CF_CPP_PARAM_INIT
CF_CPP_STATIC_CAST
CF_CXX_AR_FLAGS
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])
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 \
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
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"
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"
cf_with_tests="$cf_with_tests"
host="$host"
target="$target"
+verbose="$verbose"
with_shared_cxx="$with_shared_cxx"
],cat)dnl