X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=configure.in;h=b27e83cef958ec8212d8f423ea212daaf90aeda0;hp=b2a55082be132fad024c432133c53eb2695d8010;hb=22b110664918b4fba48ae4237bafb81621bc5f5b;hpb=44963481f15221316cbf9f7289a710f54cab2c84 diff --git a/configure.in b/configure.in index b2a55082..b27e83ce 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,6 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * +dnl Copyright 2018-2021,2022 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 * @@ -28,17 +29,21 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.672 2018/11/24 22:37:01 tom Exp $ +dnl $Id: configure.in,v 1.741 2022/01/23 00:11:08 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.672 $) +AC_PREREQ(2.52.20210101) +AC_REVISION($Revision: 1.741 $) 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) @@ -58,7 +63,7 @@ CF_ABI_DEFAULTS ### 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]) @@ -139,10 +144,10 @@ else fi CF_GXX_VERSION -case $GXX_VERSION in -(1*|2.[[0-6]]*) - # GXX=""; CXX=""; ac_cv_prog_gxx=no - # cf_cxx_library=no +case "$GXX_VERSION" in +([[1-9]][[0-9]].*) + ;; +(1.*|2.[[0-6]]*) AC_MSG_WARN(templates do not work) ;; esac @@ -154,7 +159,7 @@ AC_ARG_WITH(cxx-binding, [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) @@ -178,7 +183,7 @@ AC_ARG_WITH(progs, [cf_with_progs=yes]) AC_MSG_RESULT($cf_with_progs) -if test -f $srcdir/tack/tack.h; then +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 @@ -216,7 +221,6 @@ modules_to_build="$modules_to_build panel menu form" AC_ARG_PROGRAM CF_PROG_AWK -CF_PROG_EGREP CF_PROG_INSTALL CF_PROG_LINT CF_PROG_LN_S @@ -276,6 +280,7 @@ fi # do this after mixed-case option (tags/TAGS is not as important as tic). AC_PROG_MAKE_SET +CF_MAKE_PHONY CF_MAKE_TAGS CF_MAKEFLAGS @@ -306,6 +311,14 @@ CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-c # If we're cross-compiling, allow the user to override the tools and their # options. The configure script is oriented toward identifying the host # compiler, etc., but we need a build compiler to generate parts of the source. + +case "$cf_cv_system_name" in +(*-msvc*) + LDFLAGS="$LDFLAGS user32.lib" + export LDFLAGS + ;; +esac + CF_BUILD_CC ############################################################################### @@ -438,7 +451,7 @@ fi AC_SUBST(CXX_G_OPT) AC_MSG_CHECKING(for default loader flags) -case $DFT_LWR_MODEL in +case "$DFT_LWR_MODEL" in (libtool) LD_MODEL='' ;; (normal) LD_MODEL='' ;; (debug) LD_MODEL=$CC_G_OPT ;; @@ -448,7 +461,7 @@ esac AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg) AC_MSG_RESULT($LD_MODEL) -case $DFT_LWR_MODEL in +case "$DFT_LWR_MODEL" in (shared) CF_ENABLE_RPATH AC_MSG_CHECKING(if shared libraries should be relinked during install) @@ -463,8 +476,8 @@ esac # we will build libraries one-level down. rel_builddir=.. CF_SHARED_OPTS -for model in $cf_list_models; do - case $model in +for model in $cf_list_models ; do + case "$model" in (libtool) CF_WITH_LIBTOOL_OPTS CF_WITH_EXPORT_SYMS @@ -477,7 +490,7 @@ for model in $cf_list_models; do AC_MSG_CHECKING(if current CFLAGS link properly) AC_TRY_LINK( [#include ], - [printf("Hello work\n");], + [printf("Hello work\\n");], [cf_cflags_work=yes], [cf_cflags_work=no]) AC_MSG_RESULT($cf_cflags_work) @@ -538,6 +551,23 @@ if test "$DFT_LWR_MODEL" = "shared" && test "x$cf_cv_enable_rpath" != xno; then CF_DISABLE_RPATH_HACK fi +### Depending on the system, someone may use rpath to build ncurses but not +# want users of the package to rely upon that feature. Give those people an +# option to suppress that detail from EXTRA_LDFLAGS. +EXTRA_PKG_LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS" +if test -n "$EXTRA_PKG_LDFLAGS" +then + AC_MSG_CHECKING(if you want to disable extra LDFLAGS for package-scripts) + CF_ARG_DISABLE(pkg-ldflags, + [ --disable-pkg-ldflags disable extra LDFLAGS for package-scripts], + [disable_pkg_ldflags=yes], + [disable_pkg_ldflags=no], + no) + AC_MSG_RESULT($disable_pkg_ldflags) + test "$disable_pkg_ldflags" = yes && EXTRA_PKG_LDFLAGS= +fi +AC_SUBST(EXTRA_PKG_LDFLAGS) + ############################################################################### CF_HELP_MESSAGE(Fine-Tuning Your Configuration:) @@ -547,7 +577,7 @@ EXTRA_SUFFIX= AC_ARG_WITH(extra-suffix, [ --with-extra-suffix=X append extra suffix to header/library paths], [case x$withval in - (no) + (xno) ;; (xyes|x) EXTRA_SUFFIX=$cf_cv_abi_version @@ -575,7 +605,7 @@ AC_ARG_ENABLE(database, [use_database=yes]) AC_MSG_RESULT($use_database) -case $host_os in +case "$host_os" in (os2*) TERMINFO_SRC='${top_srcdir}/misc/emx.src' ;; @@ -624,6 +654,27 @@ case ".$with_fallback" in ;; esac +# 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. +AC_CHECK_TOOL(TIC, tic) +AC_CHECK_TOOL(INFOCMP, infocmp) +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) + test -z "$TIC" && FALLBACK_LIST= + test -z "$INFOCMP" && FALLBACK_LIST= + if test -z "$FALLBACK_LIST" + then + AC_MSG_WARN(ignoring fallback option because tic/infocmp are not available) + fi +fi +AC_SUBST(TIC) +AC_SUBST(INFOCMP) + USE_FALLBACKS= test -z "$FALLBACK_LIST" && USE_FALLBACKS="#" AC_SUBST(FALLBACK_LIST) @@ -634,7 +685,7 @@ AC_ARG_WITH(xterm-new, [ --without-xterm-new specify if xterm terminfo should be old version], [with_xterm_new=$withval], [with_xterm_new=yes]) -case $with_xterm_new in +case "$with_xterm_new" in (no) with_xterm_new=xterm-old;; (*) with_xterm_new=xterm-new;; esac @@ -794,13 +845,21 @@ AC_ARG_ENABLE(home-terminfo, AC_MSG_RESULT($with_home_terminfo) test "x$with_home_terminfo" = "xyes" && AC_DEFINE(USE_HOME_TERMINFO,1,[Define to 1 if $HOME/.terminfo feature is wanted]) -AC_MSG_CHECKING(if you want to use restricted environment when running as root) +AC_MSG_CHECKING(if you want to permit root to use ncurses environment variables) AC_ARG_ENABLE(root-environ, - [ --disable-root-environ restrict environment when running as root], + [ --disable-root-environ restrict root use of ncurses environment variables], [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 environment should be restricted for root user]) +test "x$with_root_environ" = xyes && AC_DEFINE(USE_ROOT_ENVIRON,1,[Define to 1 if root 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, + [ --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]) ### Use option --enable-symlinks to make tic use symlinks, not hard links ### to reduce storage requirements for the terminfo database. @@ -836,27 +895,7 @@ test "x$with_links" = xyes && AC_DEFINE(USE_LINKS,1,[Define to 1 if hardlinks sh 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) @@ -980,18 +1019,18 @@ else with_tic_depends=no fi -### use option --disable-wattr-macros to suppress wattr* macros from curses.h -AC_MSG_CHECKING(if you want to suppress wattr* macros to help with ncurses5/ncurses6 transition) +### use option --enable-wattr-macros to enable wattr* macros in curses.h +AC_MSG_CHECKING(if you want to enable wattr* macros) AC_ARG_ENABLE(wattr-macros, - [ --disable-wattr-macros suppress wattr* macros to help with ncurses5/ncurses6 transition], + [ --enable-wattr-macros enable wattr* macros], [with_wattr_macros=$enableval], - [with_wattr_macros=yes]) + [with_wattr_macros=no]) if [[ "x$with_wattr_macros" != xyes ]]; then NCURSES_WATTR_MACROS=0 - AC_MSG_RESULT(yes) + AC_MSG_RESULT(no) else NCURSES_WATTR_MACROS=1 - AC_MSG_RESULT(no) + AC_MSG_RESULT(yes) fi AC_SUBST(NCURSES_WATTR_MACROS) @@ -1011,7 +1050,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) @@ -1045,11 +1088,11 @@ 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) -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 @@ -1059,7 +1102,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) @@ -1195,11 +1238,22 @@ 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 + +case $cf_cv_abi_version in +(5) + NCURSES_MOUSE_VERSION=1 + ;; +(6) + NCURSES_MOUSE_VERSION=2 + ;; +([789]) + NCURSES_MOUSE_VERSION=3 + ;; +esac + AC_SUBST(NCURSES_MOUSE_VERSION) ### use option --enable-ext-putwin to turn on extended screendumps @@ -1328,7 +1382,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) @@ -1340,7 +1394,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) @@ -1446,6 +1500,38 @@ AC_ARG_ENABLE(colorfgbg, AC_MSG_RESULT($with_colorfgbg) test "x$with_colorfgbg" = xyes && AC_DEFINE(USE_COLORFGBG,1,[Define to 1 to compile-in experimental $COLORFGBG code]) +### use option --enable-fvisibility to turn on use of gcc-specific feature +AC_MSG_CHECKING(if you want to use gcc -fvisibility option) +AC_ARG_ENABLE(fvisibility, + [ --enable-fvisibility compile with -fvisibility=hidden], + [cf_with_fvisibility=$enableval], + [cf_with_fvisibility=no]) +AC_MSG_RESULT($cf_with_fvisibility) + +NCURSES_IMPEXP= +NCURSES_CXX_IMPEXP= +if test "x$cf_with_fvisibility" = xyes; then + CF_CHECK_FVISIBILITY($CC,CFLAGS,cf_cv_fvisibility_hidden) + if test "x$cf_cv_fvisibility_hidden" = xyes + then + CF_ADD_CFLAGS([-fvisibility=hidden]) + NCURSES_IMPEXP="__attribute__ ((visibility(\"default\")))" + fi + if test -n "$CXX" + then + AC_LANG_PUSH(C++) + CF_CHECK_FVISIBILITY($CXX,CXXFLAGS,cf_cv_fvisibility_hidden2) + if test "x$cf_cv_fvisibility_hidden2" = xyes + then + CF_ADD_CXXFLAGS([-fvisibility=hidden]) + NCURSES_CXX_IMPEXP="__attribute__ ((visibility(\"default\")))" + fi + AC_LANG_POP + fi +fi +AC_SUBST(NCURSES_IMPEXP) +AC_SUBST(NCURSES_CXX_IMPEXP) + ### use option --enable-interop to turn on use of bindings used for interop AC_MSG_CHECKING(if you want interop bindings) AC_ARG_ENABLE(interop, @@ -1484,7 +1570,39 @@ AC_ARG_ENABLE(wgetch-events, [with_wgetch_events=$enableval], [with_wgetch_events=no]) AC_MSG_RESULT($with_wgetch_events) -test "x$with_wgetch_events" = xyes && AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code]) +if test "x$with_wgetch_events" = xyes ; then + AC_DEFINE(NCURSES_WGETCH_EVENTS,1,[Define to 1 to compile with wgetch-events code]) + NCURSES_WGETCH_EVENTS=1 +else + NCURSES_WGETCH_EVENTS=0 +fi +AC_SUBST(NCURSES_WGETCH_EVENTS) + +case "$cf_cv_system_name" in +(*mingw32*|*mingw64*|*-msvc*) + AC_MSG_CHECKING(if you want experimental-Windows driver) + AC_ARG_ENABLE(exp-win32, + [ --enable-exp-win32 compile with experimental-Windows driver], + [with_exp_win32=$enableval], + [with_exp_win32=no]) + AC_MSG_RESULT($with_exp_win32) + if test "x$with_exp_win32" = xyes + then + AC_DEFINE(EXP_WIN32_DRIVER,1,[Define to 1 to compile with experimental win32 driver]) + EXP_WIN32_DRIVER=1 + INTERNALS_HDR='[$](INCDIR)/nc_win32.h' + else + INTERNALS_HDR='[$](INCDIR)/nc_mingw.h' + EXP_WIN32_DRIVER=0 + fi + ;; +(*) + EXP_WIN32_DRIVER=0 + INTERNALS_HDR= + ;; +esac +AC_SUBST(EXP_WIN32_DRIVER) +AC_SUBST(INTERNALS_HDR) ############################################################################### CF_HELP_MESSAGE(Testing/development Options:) @@ -1519,20 +1637,14 @@ 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, - [ --enable-warnings build: turn on GCC compiler warnings], - [with_warnings=$enableval]) -AC_MSG_RESULT($with_warnings) +CF_ENABLE_WARNINGS(Wno-unknown-pragmas Wswitch-enum,yes) -if test "x$with_warnings" = "xyes"; then +if test "x$enable_warnings" = "xyes"; then CF_ADD_ADAFLAGS(-gnatg) - CF_GCC_WARNINGS(Wno-unknown-pragmas Wswitch-enum) if test "x$cf_with_cxx" = xyes ; then CF_GXX_WARNINGS(Wno-unused) fi fi -CF_GCC_ATTRIBUTES CF_ENABLE_STRING_HACKS ### use option --enable-assertions to turn on generation of assertion code @@ -1597,10 +1709,15 @@ AC_SUBST(ADA_TRACE) CF_DISABLE_GNAT_PROJECTS ### Checks for libraries. -case $cf_cv_system_name in +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 + if test "x$with_exp_win32" = xyes ; then + CPPFLAGS="$CPPFLAGS -DWINVER=0x0600 -DWIN32_LEAN_AND_MEAN" + else + CPPFLAGS="$CPPFLAGS -DWINVER=0x0501 -DWIN32_LEAN_AND_MEAN" + fi + CF_CHECK_LIBSSP ;; (*) AC_CHECK_FUNC(gettimeofday, @@ -1629,25 +1746,24 @@ limits.h \ locale.h \ math.h \ poll.h \ -sys/bsdtypes.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 \ ) CF_GETOPT_HEADER -# check for ISC (this may also define _POSIX_SOURCE) -# Note: even non-Posix ISC needs to declare fd_set -if test "x$ISC" = xyes ; then - AC_CHECK_LIB(cposix,main) - AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()' +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 CF_SYS_TIME_SELECT @@ -1658,7 +1774,7 @@ AC_C_CONST CF_C_INLINE(NCURSES_INLINE,1200) CF_SIG_ATOMIC_T -if test $NCURSES_CHTYPE = auto ; then +if test "$NCURSES_CHTYPE" = auto ; then CF_TYPEOF_CHTYPE else cf_cv_typeof_chtype=$NCURSES_CHTYPE @@ -1672,7 +1788,7 @@ test ".$cf_cv_unsigned_literals" = .yes && cf_cv_1UL="${cf_cv_1UL}U" test ".$cf_cv_typeof_chtype" = .long && cf_cv_1UL="${cf_cv_1UL}L" AC_SUBST(cf_cv_1UL) -if test $NCURSES_MMASK_T = auto ; then +if test "$NCURSES_MMASK_T" = auto ; then cf_cv_typeof_mmask_t=long else cf_cv_typeof_mmask_t=$NCURSES_MMASK_T @@ -1690,8 +1806,8 @@ getcwd \ getegid \ geteuid \ getopt \ -getttynam \ issetugid \ +localeconv \ poll \ putenv \ remove \ @@ -1699,19 +1815,22 @@ select \ setbuf \ setbuffer \ setenv \ +setfsuid \ setvbuf \ sigaction \ sigvec \ +snprintf \ strdup \ strstr \ sysconf \ tcgetpgrp \ -tdestroy \ times \ 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) @@ -1755,6 +1874,7 @@ CF_FUNC_MEMMOVE CF_FUNC_POLL CF_VA_COPY AC_FUNC_VFORK +CF_FOPEN_BIN_R # special check for test/ditto.c CF_FUNC_OPENPTY @@ -1774,7 +1894,7 @@ if test "$with_hashed_db" != no ; then fi dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS -if test -z "$cf_user_CFLAGS" && test "$with_no_leaks" = no ; then +if test -z "$cf_user_CFLAGS" && test "$enable_leaks" = yes ; then CF_STRIP_G_OPT(CFLAGS) CF_STRIP_G_OPT(CXXFLAGS) fi @@ -1788,8 +1908,8 @@ if test -n "$CXX" ; then CF_STDCPP_LIBRARY CF_PROG_CC_C_O(CXX,[$CXXFLAGS $CPPFLAGS]) - case $GXX_VERSION in - (1*|2.[0-6]*) + case "$GXX_VERSION" in + (1.*|2.[[0-6]]*|[[1-9]][[0-9]].*) cf_cxx_library=yes ;; (*-2.7*|2.7*) @@ -1845,11 +1965,11 @@ AC_SUBST(CXXLIBS) # specify the type of bool in a configure-script option and postpone # integration with the C++ compiler provided that the types are compatible. USE_CXX_BOOL=1 -if test $cf_cv_cc_bool_type = 1 +if test "$cf_cv_cc_bool_type" = 1 then # oops: C has a bool. Unlikely, but C++ could differ. USE_CXX_BOOL=0 -elif test $cf_cv_builtin_bool = 0 +elif test "$cf_cv_builtin_bool" = 0 then # C++ has no bool USE_CXX_BOOL=0 @@ -1859,7 +1979,7 @@ else 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. @@ -1876,7 +1996,7 @@ dnl libtool -TD 20070714 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 @@ -1897,6 +2017,9 @@ dnl At the moment we support no other Ada95 compiler. 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 @@ -1906,6 +2029,16 @@ fi # 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: @@ -1945,15 +2078,27 @@ LIB_SUBSETS="${LIB_SUBSETS}base" # base library (so it resides in base). if test "$with_term_driver" != no ; then LIB_SUBSETS="${LIB_SUBSETS}+port_drivers" - case $cf_cv_system_name in + case "$cf_cv_system_name" in (*mingw32*|*mingw64*) - LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con" + if test "x$with_exp_win32" = xyes ; then + LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32" + else + LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con" + fi CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER" ;; (*) LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo" ;; esac +elif test "x$with_exp_win32" = xyes ; then + case "$cf_cv_system_name" in + (*mingw32*|*mingw64*) + LIB_SUBSETS="${LIB_SUBSETS}+port_win32" + ;; + (*) + ;; + esac fi test "x$with_widec" = xyes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" @@ -1999,8 +2144,8 @@ fi # do not want -ldl in build except as needed for -lncurses dependency if test "x$with_dlsym" = xyes ; then -if test $DFT_LWR_MODEL = shared || \ - test $DFT_LWR_MODEL = libtool ; then +if test "$DFT_LWR_MODEL" = shared || \ + test "$DFT_LWR_MODEL" = libtool ; then CF_REMOVE_LIB(LIBS,$LIBS,dl) fi fi @@ -2028,9 +2173,9 @@ if test "$with_ticlib" != no ; then if test "x$with_ticlib" != xyes ; then TICS_NAME=$with_ticlib - TICS_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`" - TICS_ARG_SUFFIX="${with_ticlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TICS_DEP_SUFFIX="${with_ticlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TICS_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`" + TICS_ARG_SUFFIX="${with_ticlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" + TICS_DEP_SUFFIX="${with_ticlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" TICS_LIB_SUFFIX="${with_ticlib}" else TICS_SUFFIX=${DFT_LIB_SUFFIX} @@ -2055,9 +2200,9 @@ if test "$with_termlib" != no ; then if test "x$with_termlib" != xyes ; then TINFO_NAME=$with_termlib - TINFO_SUFFIX="`echo ${DFT_LIB_SUFFIX}|sed -e "s/^${USE_LIB_SUFFIX}//"`" - TINFO_ARG_SUFFIX="${with_termlib}`echo ${USE_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" + TINFO_SUFFIX="`echo "${DFT_LIB_SUFFIX}" |sed -e "s/^${USE_LIB_SUFFIX}//"`" + TINFO_ARG_SUFFIX="${with_termlib}`echo "${USE_ARG_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" + TINFO_DEP_SUFFIX="${with_termlib}`echo "${DFT_DEP_SUFFIX}" |sed -e "s/^${LIB_SUFFIX}//"`" TINFO_LIB_SUFFIX="${with_termlib}" else TINFO_SUFFIX=${DFT_LIB_SUFFIX} @@ -2105,7 +2250,7 @@ else fi if test "$DFT_LWR_MODEL" = shared ; then - case $cf_cv_system_name in + case "$cf_cv_system_name" in (cygwin*|msys*) # "lib" files have ".dll.a" suffix, "cyg"or "msys-" files have ".dll" TINFO_SUFFIX=.dll @@ -2131,7 +2276,7 @@ fi TINFO_LDFLAGS2=`echo "$TINFO_LDFLAGS" | sed -e 's,-L\.\./,-L../../,'` AC_SUBST(TINFO_LDFLAGS2) -case $DFT_LWR_MODEL in +case "$DFT_LWR_MODEL" in (normal|debug|profile) CF_LDFLAGS_STATIC ;; @@ -2141,8 +2286,8 @@ AC_MSG_CHECKING(where we will install curses.h) AC_SUBST(includesubdir) includesubdir= if test "$with_overwrite" = no && \ - ( test "x$includedir" = 'x${prefix}/include' || \ - test "x$includedir" = "x${prefix}/include" ) + { test "x$includedir" = 'x${prefix}/include' || \ + test "x$includedir" = "x${prefix}/include"; } then includesubdir="/ncurses${USE_LIB_SUFFIX}" fi @@ -2158,6 +2303,17 @@ fi fi WITH_OVERWRITE=$with_overwrite +### At least on MinGW a shared library build without libtool +### requires adding the additional libs to the link list. +case "$cf_cv_system_name" in +(*mingw32*|*mingw64*) + if test "$DFT_LWR_MODEL" != "libtool"; then + SHLIB_LIST="$SHLIB_LIST ${LIBS}" + fi + ;; +*) ;; +esac + AC_SUBST(WITH_OVERWRITE) AC_SUBST(TICS_LIST) AC_SUBST(TINFO_LIST) @@ -2170,12 +2326,19 @@ 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_WITH_LIB_BASENAME(FORM_NAME,form) +CF_WITH_LIB_BASENAME(MENU_NAME,menu) +CF_WITH_LIB_BASENAME(PANEL_NAME,panel) +CF_WITH_LIB_BASENAME(CXX_NAME,cxx,ncurses++) + ### Construct the list of subdirectories for which we'll customize makefiles ### with the appropriate compile-rules. 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 @@ -2191,9 +2354,6 @@ AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATH_SEPARATOR',[Define to override ':' as AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}",[Define to 1 if machine has ample memory for tic]) -### Now that we're done running tests, add the compiler-warnings, if any -CF_ADD_CFLAGS($EXTRA_CFLAGS) - ### Define substitutions for header files to avoid name-pollution CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0) CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0) @@ -2212,16 +2372,6 @@ SUB_MAKEFILES="$SUB_MAKEFILES misc/gen-pkgconfig:misc/gen-pkgconfig.in" 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 @@ -2232,19 +2382,8 @@ AC_SUBST(MAKE_TESTS) ADAHTML_DIR=../../doc/html/ada AC_SUBST(ADAHTML_DIR) -# these could be configurable, but are not currently -PANEL_NAME=panel -MENU_NAME=menu -FORM_NAME=form -CXX_NAME=ncurses++ - -AC_SUBST(PANEL_NAME) -AC_SUBST(MENU_NAME) -AC_SUBST(FORM_NAME) -AC_SUBST(CXX_NAME) - # workaround for OS/2 (20151017) -case $cf_cv_system_name in +case "$cf_cv_system_name" in (os2*) LIBTOOL_OPTS_CXX="-os2dllname ncurs++" ;; @@ -2255,7 +2394,7 @@ esac AC_SUBST(LIBTOOL_OPTS_CXX) # workaround for g++ versus Solaris (20131116) -case $cf_cv_system_name in +case "$cf_cv_system_name" in (solaris2*) case "x$CPPFLAGS" in (*-D_XOPEN_SOURCE_EXTENDED*) @@ -2323,7 +2462,12 @@ fi 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" @@ -2350,7 +2494,7 @@ fi test "x$cf_with_trace" = xyes && NCURSES_INLINE= UNALTERED_SYMS=`echo "$RESULTING_SYMS" | sed -e 's/\\$/\\\\$/g'` -if test $cf_filter_syms = yes +if test "$cf_filter_syms" = yes then RESULTING_SYMS=resulting.map fi @@ -2367,6 +2511,9 @@ AC_SUBST(ADAGEN_LDFLAGS) 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( \ @@ -2375,29 +2522,30 @@ 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_PRG_RULES([$srcdir/test/mk-test.awk INSTALL=no ECHO_LINK="$ECHO_LD"], test) + CF_PRG_RULES(["$srcdir/test/mk-test.awk" INSTALL=no ECHO_LINK="$ECHO_LD"], test) fi CF_LIB_RULES($SRC_SUBDIRS) if test "x$cf_with_ada" = "xyes" && test "x$cf_cv_prog_gnat_correct" = "xyes"; then if test -z "$USE_OLD_MAKERULES" ; then - $AWK -f $srcdir/Ada95/mk-1st.awk <$srcdir/Ada95/src/modules >>Ada95/src/Makefile + $AWK -f "$srcdir/Ada95/mk-1st.awk" <"$srcdir/Ada95/src/modules" >>Ada95/src/Makefile fi fi ],[ ### Special initialization commands, used to pass information from the ### configuration-run into config.status -AWK="$AWK" ALTERNATE_SYMS="$ALTERNATE_SYMS" +AWK="$AWK" +CXX_NAME="$CXX_NAME" DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" DFT_LWR_MODEL="$DFT_LWR_MODEL" ECHO_LD="$ECHO_LD" EXTRA_SUFFIX="$EXTRA_SUFFIX" +FORM_NAME="$FORM_NAME" LDCONFIG="$LDCONFIG" LIBTOOL_VERSION="$LIBTOOL_VERSION" LIB_NAME="$LIB_NAME" @@ -2407,10 +2555,12 @@ LIB_SUFFIX="$LIB_SUFFIX" LIB_TRACING="$LIB_TRACING" LN_S="$LN_S" MAKE_TERMINFO="$MAKE_TERMINFO" +MENU_NAME="$MENU_NAME" NCURSES_MAJOR="$NCURSES_MAJOR" NCURSES_MINOR="$NCURSES_MINOR" NCURSES_OSPEED="$NCURSES_OSPEED" NCURSES_PATCH="$NCURSES_PATCH" +PANEL_NAME="$PANEL_NAME" SRC_SUBDIRS="$SRC_SUBDIRS" TERMINFO="$TERMINFO" TICS_ARG_SUFFIX="$TICS_ARG_SUFFIX" @@ -2432,12 +2582,15 @@ WITH_CURSES_H="$with_curses_h" WITH_ECHO="${enable_echo:=yes}" 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_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" +cf_cv_make_PHONY="$cf_cv_make_PHONY" cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o cf_cv_prog_gnat_correct=$cf_cv_prog_gnat_correct