]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - configure.in
ncurses 6.2 - patch 20200816
[ncurses.git] / configure.in
index 5983876f1b46a908fe495ad5ec3b910b0dbf441d..38ef3d3589bef120e5aee905568b1a35fe3ca44a 100644 (file)
@@ -29,7 +29,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: configure.in,v 1.700 2020/03/08 00:53:28 tom Exp $
+dnl $Id: configure.in,v 1.716 2020/08/16 16:21:37 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.20200111)
-AC_REVISION($Revision: 1.700 $)
+AC_REVISION($Revision: 1.716 $)
 AC_INIT(ncurses/base/lib_initscr.c)
 AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
 
@@ -145,9 +145,9 @@ fi
 
 CF_GXX_VERSION
 case $GXX_VERSION in
-(1*|2.[[0-6]]*)
-       # GXX=""; CXX=""; ac_cv_prog_gxx=no
-       # cf_cxx_library=no
+([[1-9]][[0-9]].*)
+       ;;
+(1.*|2.[[0-6]]*)
        AC_MSG_WARN(templates do not work)
        ;;
 esac
@@ -311,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
 
 ###############################################################################
@@ -543,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="$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:)
 
@@ -629,27 +654,32 @@ case ".$with_fallback" in
        ;;
 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.
+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)
-else
-       : ${TIC:=tic}
-       : ${INFOCMP:=infocmp}
+       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)
+AC_SUBST(USE_FALLBACKS)
+
 AC_MSG_CHECKING(if you want modern xterm or antique)
 AC_ARG_WITH(xterm-new,
        [  --without-xterm-new     specify if xterm terminfo should be old version],
@@ -1447,6 +1477,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,
@@ -1630,7 +1692,6 @@ limits.h \
 locale.h \
 math.h \
 poll.h \
-sys/bsdtypes.h \
 sys/ioctl.h \
 sys/param.h \
 sys/poll.h \
@@ -1652,13 +1713,6 @@ 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
-       AC_CHECK_LIB(cposix,main)
-       AC_CHECK_LIB(inet,bzero,CF_ADD_LIB(inet))dnl also 'select()'
-fi
-
 CF_SYS_TIME_SELECT
 
 ###    checks for compiler characteristics
@@ -1712,6 +1766,7 @@ setenv \
 setvbuf \
 sigaction \
 sigvec \
+snprintf \
 strdup \
 strstr \
 sysconf \
@@ -1799,7 +1854,7 @@ if test -n "$CXX" ; then
        CF_PROG_CC_C_O(CXX,[$CXXFLAGS $CPPFLAGS])
 
        case $GXX_VERSION in
-       (1*|2.[0-6]*)
+       (1.*|2.[[0-6]]*|[[1-9]][[0-9]].*)
                cf_cxx_library=yes
                ;;
        (*-2.7*|2.7*)
@@ -2181,6 +2236,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)