]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 5.9 - patch 20120421
[ncurses.git] / aclocal.m4
index 3ce9ffe5cf6520e233fbab2a59ef1bc09881f780..4ea65c0988d1487d85a7da9b06e599d0ec1ad49c 100644 (file)
@@ -28,7 +28,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.605 2012/02/18 23:06:14 tom Exp $
+dnl $Id: aclocal.m4,v 1.611 2012/04/01 00:13:31 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>
@@ -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.
@@ -1846,7 +1933,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:
@@ -1944,6 +2031,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
@@ -2992,7 +3086,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
@@ -3010,10 +3104,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
@@ -3099,11 +3195,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
@@ -3512,7 +3615,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
@@ -3545,7 +3648,7 @@ AC_DEFUN([CF_LIB_SUFFIX],
                        $2='.a'
                        $3=[$]$2
                        ;;
-               cygwin*) #(vi
+               cygwin*|mingw*) #(vi
                        $2='.dll'
                        $3='.dll.a'
                        ;;
@@ -5218,7 +5321,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
@@ -5387,6 +5490,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)"
@@ -5528,6 +5652,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)