]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 5.9 - patch 20120608
[ncurses.git] / aclocal.m4
index 0ddc3de43724df8adfc661a6459f6e1226710f00..f5a726009a2432c7b6e2c0cb093c691e84dca502 100644 (file)
@@ -28,7 +28,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.604 2012/01/22 00:30:35 tom Exp $
+dnl $Id: aclocal.m4,v 1.612 2012/06/08 16:25:28 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -1193,6 +1193,43 @@ done
 AC_SUBST(DIRS_TO_MAKE)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
+dnl ---------------
+dnl You can always use "make -n" to see the actual options, but it's hard to
+dnl pick out/analyze warning messages when the compile-line is long.
+dnl
+dnl Sets:
+dnl    ECHO_LT - symbol to control if libtool is verbose
+dnl    ECHO_LD - symbol to prefix "cc -o" lines
+dnl    RULE_CC - symbol to put before implicit "cc -c" lines (e.g., .c.o)
+dnl    SHOW_CC - symbol to put before explicit "cc -c" lines
+dnl    ECHO_CC - symbol to put before any "cc" line
+dnl
+AC_DEFUN([CF_DISABLE_ECHO],[
+AC_MSG_CHECKING(if you want to see long compiling messages)
+CF_ARG_DISABLE(echo,
+       [  --disable-echo          display "compiling" commands],
+       [
+    ECHO_LT='--silent'
+    ECHO_LD='@echo linking [$]@;'
+    RULE_CC='@echo compiling [$]<'
+    SHOW_CC='@echo compiling [$]@'
+    ECHO_CC='@'
+],[
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC=''
+    SHOW_CC=''
+    ECHO_CC=''
+])
+AC_MSG_RESULT($enableval)
+AC_SUBST(ECHO_LT)
+AC_SUBST(ECHO_LD)
+AC_SUBST(RULE_CC)
+AC_SUBST(SHOW_CC)
+AC_SUBST(ECHO_CC)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_DISABLE_LEAKS version: 6 updated: 2010/07/23 04:14:32
 dnl ----------------
 dnl Combine no-leak checks with the libraries or tools that are used for the
@@ -1298,6 +1335,37 @@ AC_ARG_ENABLE(rpath,
 AC_MSG_RESULT($cf_cv_enable_rpath)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_STRING_HACKS version: 1 updated: 2012/02/25 06:33:21
+dnl ----------------------
+dnl On a few platforms, the compiler and/or loader nags with untruthful
+dnl comments stating that "most" uses of strcat/strcpy/sprintf are incorrect,
+dnl and implying that most uses of the recommended alternatives are correct.
+dnl
+dnl Factually speaking, no one has actually counted the number of uses of these
+dnl functions versus the total of incorrect uses.  Samples of a few thousand
+dnl instances are meaningless compared to the hundreds of millions of lines of
+dnl existing C code.
+dnl
+dnl strlcat/strlcpy are (as of 2012) non-standard, and are available on some
+dnl platforms, in implementations of varying quality.  Likewise, snprintf is
+dnl standard - but evolved through phases, and older implementations are likely
+dnl to yield surprising results, as documented in manpages on various systems.
+AC_DEFUN([CF_ENABLE_STRING_HACKS],
+[
+AC_MSG_CHECKING(if you want to work around bogus compiler/loader warnings)
+AC_ARG_ENABLE(string-hacks,
+       [  --enable-string-hacks  work around bogus compiler/loader warnings],
+       [with_string_hacks=$enableval],
+       [with_string_hacks=no])
+AC_MSG_RESULT($with_string_hacks)
+
+if test "x$with_string_hacks" = "xyes"; then
+       AC_DEFINE(USE_STRING_HACKS)
+       AC_MSG_WARN(enabling string-hacks to work around bogus compiler/loader warnings)
+       AC_CHECK_FUNCS( strlcat strlcpy snprintf )
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39
 dnl --------
 dnl Check if 'errno' is declared in <errno.h>
@@ -1306,7 +1374,7 @@ AC_DEFUN([CF_ERRNO],
 CF_CHECK_ERRNO(errno)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ETIP_DEFINES version: 4 updated: 2011/12/03 16:54:03
+dnl CF_ETIP_DEFINES version: 5 updated: 2012/02/18 17:51:07
 dnl ---------------
 dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between
 dnl math.h and builtin.h, only for ncurses
@@ -1334,7 +1402,7 @@ AC_TRY_COMPILE([
        test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math})
        test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp})
        cf_result="$cf_math $cf_excp"
-       break
+       break 2
 ],[])
 done
 done
@@ -1472,6 +1540,25 @@ ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$5])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_FIXUP_ADAFLAGS version: 1 updated: 2012/03/31 18:48:10
+dnl -----------------
+dnl make ADAFLAGS consistent with CFLAGS
+AC_DEFUN([CF_FIXUP_ADAFLAGS],[
+       AC_MSG_CHECKING(optimization options for ADAFLAGS)
+       case "$CFLAGS" in
+       *-g*)
+               CF_ADD_ADAFLAGS(-g)
+               ;;
+       esac
+       case "$CFLAGS" in
+       *-O*)
+               cf_O_flag=`echo "$CFLAGS" |sed -e 's/^.*-O/-O/' -e 's/[[        ]].*//'`
+               CF_ADD_ADAFLAGS($cf_O_flag)
+               ;;
+       esac
+       AC_MSG_RESULT($ADAFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_FUNC_DLSYM version: 2 updated: 2010/05/29 16:31:02
 dnl -------------
 dnl Test for dlsym() and related functions, as well as libdl.
@@ -1600,14 +1687,17 @@ AC_CACHE_CHECK(for openpty header,cf_cv_func_openpty,[
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_POLL version: 4 updated: 2006/12/16 12:33:30
+dnl CF_FUNC_POLL version: 6 updated: 2012/06/08 12:22:55
 dnl ------------
 dnl See if the poll function really works.  Some platforms have poll(), but
 dnl it does not work for terminals or files.
 AC_DEFUN([CF_FUNC_POLL],[
 AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[
 AC_TRY_RUN([
+#include <stdlib.h>
 #include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
 #ifdef HAVE_POLL_H
 #include <poll.h>
 #else
@@ -1617,11 +1707,34 @@ int main() {
        struct pollfd myfds;
        int ret;
 
-       myfds.fd = 0;
+       /* check for Darwin bug with respect to "devices" */
+       myfds.fd = open("/dev/null", 1);
+       if (myfds.fd < 0)
+               myfds.fd = 0;
        myfds.events = POLLIN;
+       myfds.revents = 0;
 
        ret = poll(&myfds, 1, 100);
-       ${cf_cv_main_return:-return}(ret != 0);
+
+       if (ret < 0 || (myfds.revents & POLLNVAL)) {
+               ret = -1;
+       } else {
+               int fd = 0;
+               if (!isatty(fd)) {
+                       fd = open("/dev/tty", O_RDWR);
+               }
+
+               /* also check with standard input */
+               myfds.fd = fd;
+               myfds.events = POLLIN;
+               myfds.revents = 0;
+
+               ret = poll(&myfds, 1, 100);
+               if (ret < 0) {
+                       ret = 0;
+               }
+       }
+       ${cf_cv_main_return:-return}(ret < 0);
 }],
        [cf_cv_working_poll=yes],
        [cf_cv_working_poll=no],
@@ -1827,7 +1940,7 @@ if test "$GCC" = yes ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
+dnl CF_GCC_WARNINGS version: 28 updated: 2012/03/31 20:10:46
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -1925,6 +2038,13 @@ then
                                        continue;;
                                esac
                                ;;
+                       Wpointer-arith) #(vi
+                               case $GCC_VERSION in
+                               [[12]].*)
+                                       CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
+                                       continue;;
+                               esac
+                               ;;
                        esac
                        EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
                fi
@@ -2973,7 +3093,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 63 updated: 2012/01/21 19:28:10
+dnl CF_LIB_RULES version: 64 updated: 2012/02/25 15:20:07
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
@@ -2991,10 +3111,12 @@ AC_DEFUN([CF_LIB_RULES],
 cf_prefix=$LIB_PREFIX
 AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
 
-if test $cf_cv_shlib_version = cygdll ; then
+case $cf_cv_shlib_version in #(vi
+cygdll|mingw)
        TINFO_NAME=$TINFO_ARG_SUFFIX
        TINFO_SUFFIX=.dll
-fi
+       ;;
+esac
 
 if test -n "$TINFO_SUFFIX" ; then
        case $TINFO_SUFFIX in
@@ -3080,11 +3202,18 @@ do
                        # cygwin needs import library, and has unique naming convention
                        # use autodetected ${cf_prefix} for import lib and static lib, but
                        # use 'cyg' prefix for shared lib.
-                       if test $cf_cv_shlib_version = cygdll ; then
+                       case $cf_cv_shlib_version in #(vi
+                       cygdll) #(vi
                                cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
                                LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}${cf_cygsuf}"
                                continue
-                       fi
+                               ;;
+                       mingw)
+                               cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
+                               LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/lib${cf_dir}${cf_cygsuf}"
+                               continue
+                               ;;
+                       esac
                        fi
                        LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}"
                done
@@ -3493,7 +3622,7 @@ fi
 ])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 17 updated: 2011/07/02 15:36:04
+dnl CF_LIB_SUFFIX version: 18 updated: 2012/02/25 15:20:07
 dnl -------------
 dnl Compute the library file-suffix from the given model name
 dnl $1 = model name
@@ -3526,7 +3655,7 @@ AC_DEFUN([CF_LIB_SUFFIX],
                        $2='.a'
                        $3=[$]$2
                        ;;
-               cygwin*) #(vi
+               cygwin*|mingw*) #(vi
                        $2='.dll'
                        $3='.dll.a'
                        ;;
@@ -4394,7 +4523,7 @@ fi
 test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 7 updated: 2010/08/14 18:25:37
+dnl CF_MKSTEMP version: 8 updated: 2012/02/13 20:34:56
 dnl ----------
 dnl Check for a working mkstemp.  This creates two files, checks that they are
 dnl successfully created and distinct (AmigaOS apparently fails on the last).
@@ -4436,9 +4565,11 @@ int main()
 }
 ],[cf_cv_func_mkstemp=yes
 ],[cf_cv_func_mkstemp=no
-],[AC_CHECK_FUNC(mkstemp)
-])
+],[cf_cv_func_mkstemp=maybe])
 ])
+if test "x$cf_cv_func_mkstemp" = xmaybe ; then
+       AC_CHECK_FUNC(mkstemp)
+fi
 if test "x$cf_cv_func_mkstemp" = xyes || test "x$ac_cv_func_mkstemp" = xyes ; then
        AC_DEFINE(HAVE_MKSTEMP)
 fi
@@ -5197,7 +5328,7 @@ CF_VERBOSE(...checked $1 [$]$1)
 AC_SUBST(EXTRA_LDFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 69 updated: 2011/07/30 19:31:39
+dnl CF_SHARED_OPTS version: 70 updated: 2012/02/25 15:20:07
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -5366,6 +5497,27 @@ CF_EOF
                CF_SHARED_SONAME
                MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
+       mingw*) #(vi
+               cf_cv_shlib_version=mingw
+               cf_cv_shlib_version_infix=mingw
+               CC_SHARED_OPTS=
+               MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
+               #MK_SHARED_LIB='${CC} ${CFLAGS} -mdll -Wl,-soname,'$cf_cv_shared_soname',-stats -o $[@]'
+               #MK_SHARED_LIB='${DLLTOOL} --export-all-symbols --output-exp --output-lib $[@]'
+               cat >mk_shared_lib.sh <<-CF_EOF
+               #!/bin/sh
+               SHARED_LIB=\[$]1
+               IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.a/'\`
+               shift
+               cat <<-EOF
+               Linking shared library
+               ** SHARED_LIB \[$]SHARED_LIB
+               ** IMPORT_LIB \[$]IMPORT_LIB
+EOF
+               exec \[$]* -shared -Wl,--out-implib=../lib/\[$]{IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/\[$]{SHARED_LIB}
+CF_EOF
+               chmod +x mk_shared_lib.sh
+               ;;
        openbsd[[2-9]].*|mirbsd*) #(vi
                if test "$DFT_LWR_MODEL" = "shared" ; then
                        LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)"
@@ -5507,6 +5659,9 @@ CF_EOF
        test -n "$cf_ld_rpath_opt" && MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\${RPATH_LIST}"
        test -z "$RPATH_LIST" && RPATH_LIST="\${libdir}"
 
+       CF_VERBOSE(CC_SHARED_OPTS: $CC_SHARED_OPTS)
+       CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
+
        AC_SUBST(CC_SHARED_OPTS)
        AC_SUBST(LD_RPATH_OPT)
        AC_SUBST(LD_SHARED_OPTS)