dnl***************************************************************************
-dnl Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
+dnl Copyright 2018-2019,2020 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 copy of this software and associated documentation files (the *
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.659 2018/06/16 21:26:41 tom Exp $
+dnl $Id: configure.in,v 1.697 2020/02/08 20:56:13 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
-dnl See https://invisible-island.net/autoconf/ for additional information.
+dnl For additional information, see
+dnl https://invisible-island.net/autoconf/
+dnl https://invisible-island.net/autoconf/my-autoconf.html
dnl
dnl ---------------------------------------------------------------------------
-AC_PREREQ(2.52.20170501)
-AC_REVISION($Revision: 1.659 $)
+AC_PREREQ(2.52.20200111)
+AC_REVISION($Revision: 1.697 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
+AC_DEFUN([AC_PATH_XTRA],[])dnl ignore dependencies on this
+
CF_TOP_BUILDDIR
CF_SUBST_NCURSES_VERSION
CF_VERSION_INFO(NCURSES,ncurses)
### Checks for programs.
AC_ARG_WITH(ada,
- [ --without-ada suppress check for Ada95, don't build demo],
+ [ --without-ada suppress check for Ada compiler, don't build demo],
[cf_with_ada=$withval],
[cf_with_ada=yes])
+
if test "x$cf_with_ada" = xyes
then
- cf_PROG_CC="gnatgcc gcc cc"
+ cf_prog_cc="gnatgcc gcc cc"
else
- cf_PROG_CC="gcc cc"
+ cf_prog_cc="gcc cc"
fi
-
-CF_PROG_CC($cf_PROG_CC)
+CF_PROG_CC($cf_prog_cc)
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
[cf_with_cxx_binding=$cf_with_cxx])
AC_MSG_RESULT($cf_with_cxx_binding)
-AC_MSG_CHECKING(if you want to build with Ada95)
+AC_MSG_CHECKING(if you want to build with Ada)
AC_MSG_RESULT($cf_with_ada)
AC_MSG_CHECKING(if you want to install terminal database)
CF_CHECK_GPM_WGETCH
fi
+CF_WITH_PCRE2
CF_WITH_SYSMOUSE
# pretend that ncurses==ncursesw==ncursest
AC_MSG_RESULT($disable_lib_suffixes)
### If we're building with rpath, try to link non-standard libs that way too.
-if test "$DFT_LWR_MODEL" = "shared"; then
+if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then
CF_DISABLE_RPATH_HACK
fi
[with_fallback=$withval],
[with_fallback=])
AC_MSG_RESULT($with_fallback)
-FALLBACK_LIST=`test "$with_fallback" != no && echo "$with_fallback" | sed -e 's/,/ /g'`
+
+case ".$with_fallback" in
+(.|.no)
+ FALLBACK_LIST=
+ ;;
+(.yes)
+ AC_MSG_WARN(expected a list of terminal descriptions)
+ ;;
+(*)
+ FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+ ;;
+esac
+
+USE_FALLBACKS=
+test -z "$FALLBACK_LIST" && USE_FALLBACKS="#"
AC_SUBST(FALLBACK_LIST)
+AC_SUBST(USE_FALLBACKS)
+
+# The fallback feature in ncurses relies upon tic/infocmp outside the build
+# tree for generating the terminal descriptions that will be compiled into the
+# library. If your toolchain is old, it may not handle current terminal
+# databases. Use configure-options to point to the tools which will be used,
+# rather than the first ones found on the $PATH.
+if test -n "$FALLBACK_LIST"
+then
+ CF_WITH_PATH_PROG(TIC, tic, [for fallbacks], $PATH:/usr/local/ncurses/bin)
+ CF_WITH_PATH_PROG(INFOCMP, infocmp, [for fallbacks], $PATH:/usr/local/ncurses/bin)
+else
+ : ${TIC:=tic}
+ : ${INFOCMP:=infocmp}
+fi
+AC_SUBST(TIC)
+AC_SUBST(INFOCMP)
AC_MSG_CHECKING(if you want modern xterm or antique)
AC_ARG_WITH(xterm-new,
AC_MSG_RESULT($TERMINFO_DIRS)
test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS",[Define as needed to predefine the TERMINFO_DIR searchlist])
+case "x$TERMINFO" in
+x???:*)
+ AC_MSG_WARN(ignoring non-directory/file TERMINFO value)
+ unset TERMINFO
+ ;;
+esac
+
AC_MSG_CHECKING(for default terminfo directory)
CF_WITH_PATH(default-terminfo-dir,
[ --with-default-terminfo-dir=DIR default terminfo directory],
test "x$with_symlinks" = xyes && AC_DEFINE(USE_SYMLINKS,1,[Define to 1 if symbolic links should be used in terminfo database])
### use option --enable-broken-linker to force on use of broken-linker support
-AC_MSG_CHECKING(if you want broken-linker support code)
-AC_ARG_ENABLE(broken_linker,
- [ --enable-broken_linker compile with broken-linker support code],
- [with_broken_linker=$enableval],
- [with_broken_linker=${BROKEN_LINKER:-no}])
-AC_MSG_RESULT($with_broken_linker)
-
-BROKEN_LINKER=0
-if test "x$with_broken_linker" = xyes ; then
- AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
- BROKEN_LINKER=1
-elif test "$DFT_LWR_MODEL" = shared ; then
- case $cf_cv_system_name in
- (cygwin*)
- AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
- BROKEN_LINKER=1
- CF_VERBOSE(cygwin linker is broken anyway)
- ;;
- esac
-fi
-AC_SUBST(BROKEN_LINKER)
+CF_ENABLE_BROKEN_LINKER
### use option --enable-bsdpad to have tputs process BSD-style prefix padding
AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
AC_MSG_RESULT($NCURSES_CCHARW_MAX)
AC_SUBST(NCURSES_CCHARW_MAX)
-AC_CHECK_SIZEOF([signed char], 0)
+AC_CHECK_SIZEOF([signed char])
if test "$ac_cv_sizeof_signed_char" = 1 ; then
NCURSES_SBOOL="signed char"
else
# --disable-stripping is used for debugging
CF_INSTALL_OPTS
+# If we're avoiding relinking of shared libraries during install, that is to
+# avoid modifying the build-tree. For the same reason, avoid doing ranlib if
+# the install program has "-p" (for preserving timestamps).
+cf_cv_do_reranlib=yes
+if test "x$cf_cv_install_p" = xyes
+then
+ if test "x$cf_cv_do_relink" != xyes
+ then
+ cf_cv_do_reranlib=no
+ INSTALL_OPT_P="-p"
+ INSTALL_LIB="$INSTALL_LIB $INSTALL_OPT_P"
+ fi
+fi
+AC_SUBST(INSTALL_OPT_P)
+
### use option --enable-warnings to turn on all gcc warnings
AC_MSG_CHECKING(if you want to see compiler warnings)
AC_ARG_ENABLE(warnings,
case $cf_cv_system_name in
(*mingw32*|*mingw64*)
CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN"
- LIBS=" -lpsapi $LIBS"
+ # Note: WINVER may be a problem with Windows 10
;;
(*)
AC_CHECK_FUNC(gettimeofday,
CF_GETOPT_HEADER
+CF_CHECK_ENVIRON(environ)
+CF_CHECK_GETENV
+if test "x$cf_cv_consistent_getenv" = xno && \
+ test "x$cf_with_trace" = xyes
+then
+ AC_MSG_WARN(The NCURSES_TRACE environment variable is not supported with this configuration)
+fi
+
# check for ISC (this may also define _POSIX_SOURCE)
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
if test "x$ISC" = xyes ; then
getopt \
getttynam \
issetugid \
+localeconv \
poll \
putenv \
remove \
sigvec \
strdup \
strstr \
+sysconf \
tcgetpgrp \
-tdestroy \
times \
tsearch \
vsnprintf \
CF_FUNC_POLL
CF_VA_COPY
AC_FUNC_VFORK
+CF_FOPEN_BIN_R
# special check for test/ditto.c
CF_FUNC_OPENPTY
fi
AC_SUBST(USE_CXX_BOOL)
-CF_HELP_MESSAGE(Ada95 Binding Options:)
+CF_HELP_MESSAGE(Ada Binding Options:)
dnl If the Ada95 source-tree is present, add that to the build unless it will
dnl not work, or was not requested.
fi
dnl Check for availability of GNU Ada Translator (GNAT).
-dnl At the moment we support no other Ada95 compiler.
+dnl At the moment we support no other Ada compiler.
if test "$cf_with_ada" != "no" ; then
CF_PROG_GNAT
if test "x$cf_cv_prog_gnat_correct" = xyes; then
CF_WITH_ADA_INCLUDE
CF_WITH_ADA_OBJECTS
CF_WITH_ADA_SHAREDLIB
+
+ # allow the Ada binding to be renamed
+ CF_WITH_ADA_LIBNAME(AdaCurses)
fi
fi
else
# do this "late" to avoid conflict with header-checks
if test "x$with_widec" = xyes ; then
AC_CHECK_SIZEOF(wchar_t)
+ # cross-compiling to mingw can run into the problem that attempting to
+ # link with the regex library fails, causing the test to not set this to
+ # a number. "recent" autoconf does not address this problem either -TD
+ if test -z "$ac_cv_sizeof_wchar_t"
+ then
+ CF_VERBOSE(test failed (assume 2))
+ sed /SIZEOF_WCHAR_T/d confdefs.h >confdefs.tmp
+ mv confdefs.tmp confdefs.h
+ echo "#define SIZEOF_WCHAR_T 2" >>confdefs.h
+ fi
fi
### Construct the ncurses library-subsets, if any, from this set of keywords:
CF_SRC_MODULES($modules_to_build)
if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then
+ SUB_MAKEFILES="$SUB_MAKEFILES Ada95/src/library.gpr:Ada95/src/library.gpr.in"
SUB_MAKEFILES="$SUB_MAKEFILES Ada95/gen/adacurses${USE_CFG_SUFFIX}-config:Ada95/gen/adacurses-config.in"
SUB_MAKEFILES="$SUB_MAKEFILES man/adacurses${USE_CFG_SUFFIX}-config.1:man/MKada_config.in"
fi
fi
AC_SUBST(cross_compiling)
-AC_PATH_PROG(TIC_PATH,tic,unknown,$PATH:/usr/local/ncurses/bin)
-if test -n "$FALLBACK_LIST"
-then
- if test "$TIC_PATH" = unknown
- then
- AC_MSG_WARN(no tic program found for fallbacks)
- fi
-fi
-AC_SUBST(TIC_PATH)
-
if test "x$cf_with_tests" != xno ; then
MAKE_TESTS=
else
AC_SUBST(MISC_INSTALL_DATA)
AC_SUBST(MISC_UNINSTALL_DATA)
-SUB_SCRIPTS=
+if test "x$cf_with_db_install" = "xno" || test "x$TERMINFO_SRC" = "xno"; then
+ MAKE_DATABASE="#"
+else
+ MAKE_DATABASE="$MAKE_TERMINFO"
+fi
+AC_SUBST(MAKE_DATABASE)
dnl Override the package used for exported symbols
if test -n "$PACKAGE"
AC_SUBST(CHECK_BUILD)
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/ncurses_dll.h \
include/termcap.h \
include/unctrl.h \
- $SUB_SCRIPTS \
$SUB_MAKEFILES \
Makefile,[
if test "x$cf_with_tests" != xno ; then
cf_LIST_MODELS="$cf_list_models"
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_cv_do_symlinks="$cf_cv_do_symlinks"
cf_cv_enable_lp64="$cf_cv_enable_lp64"
cf_cv_enable_opaque="$cf_cv_enable_opaque"