ncurses 5.6 - patch 20070526
[ncurses.git] / aclocal.m4
index ad3da3e178698cb68a8a13d164b5c6644f3be8d3..7b1660733373473f8c42ee8796808a62d9907902 100644 (file)
@@ -28,7 +28,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.420 2007/02/17 21:50:10 tom Exp $
+dnl $Id: aclocal.m4,v 1.433 2007/04/28 19:26:13 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -612,6 +612,50 @@ fi
 
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_GPM_WGETCH version: 1 updated: 2007/04/28 14:38:06
+dnl -------------------
+dnl Check if GPM is already linked with curses.  If so - and if the linkage
+dnl is not "weak" - warn about this because it can create problems linking
+dnl applications with ncurses.
+AC_DEFUN([CF_CHECK_GPM_WGETCH],[
+AC_CHECK_LIB(gpm,Gpm_Wgetch,[
+
+AC_CACHE_CHECK(if GPM is weakly bound to curses library, cf_cv_check_gpm_wgetch,[
+cf_cv_check_gpm_wgetch=unknown
+if test "$cross_compiling" != yes ; then
+
+cat >conftest.$ac_ext <<CF_EOF
+#include <gpm.h>
+int main()
+{
+       Gpm_Wgetch();
+       ${cf_cv_main_return:-return}(0);
+}
+CF_EOF
+
+       cf_save_LIBS="$LIBS"
+       # This only works if we can look at the symbol table.  If a shared
+       # library is stripped for install, we cannot use that.  So we're forced
+       # to rely on the static library, noting that some packagers may not
+       # include it.
+       LIBS="-static -lgpm -dynamic $LIBS"
+       if AC_TRY_EVAL(ac_compile) ; then
+               if AC_TRY_EVAL(ac_link) ; then
+                       cf_cv_check_gpm_wgetch=`nm conftest$ac_exeext | egrep '\<wgetch\>' | egrep '\<[[vVwW]]\>'`
+                       test -n "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=yes
+                       test -z "$cf_cv_check_gpm_wgetch" && cf_cv_check_gpm_wgetch=no
+               fi
+       fi
+       rm -f conftest*
+       LIBS="$cf_save_LIBS"
+fi
+])
+
+if test "$cf_cv_check_gpm_wgetch" != yes ; then
+       AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
+fi
+])])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18
 dnl -----------------
 dnl Check if the C++ compiler accepts duplicate parameter initialization.  This
@@ -703,6 +747,35 @@ fi
 test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_C_INLINE version: 1 updated: 2007/04/28 15:03:44
+dnl -----------
+dnl Check if the C compiler supports "inline".
+dnl $1 is the name of a shell variable to set if inline is supported
+dnl $2 is the threshold for gcc 4.x's option controlling maximum inline size
+AC_DEFUN([CF_C_INLINE],[
+AC_C_INLINE
+$1=
+if test "$ac_cv_c_inline" != no ; then
+       $1=inline
+       if test "$GCC" = yes
+       then
+               AC_CACHE_CHECK(if gcc supports options to tune inlining,cf_cv_gcc_inline,[
+                       cf_save_CFLAGS=$CFLAGS
+                       CFLAGS="$CFLAGS --param max-inline-insns-single=$2"
+                       AC_TRY_COMPILE([inline int foo(void) { return 1; }],
+                       [${cf_cv_main_return:-return} foo()],
+                       [cf_cv_gcc_inline=yes],
+                       [cf_cv_gcc_inline=no])
+                       CFLAGS=$cf_save_CFLAGS
+               ])
+               if test "$cf_cv_gcc_inline" = yes ; then
+                       CF_ADD_CFLAGS([--param max-inline-insns-single=$2])
+               fi
+       fi
+fi
+AC_SUBST($1)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52
 dnl ----------
 dnl "dirname" is not portable, so we fake it with a shell script.
@@ -1738,6 +1811,48 @@ ifdef([AC_FUNC_FSEEKO],[
 ])
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_LDFLAGS_STATIC version: 2 updated: 2007/04/28 15:25:27
+dnl -----------------
+dnl Check for compiler/linker flags used to temporarily force usage of static
+dnl libraries.  This depends on the compiler and platform.  Use this to help
+dnl ensure that the linker picks up a given library based on its position in
+dnl the list of linker options and libraries.
+AC_DEFUN([CF_LDFLAGS_STATIC],[
+
+if test "$GCC" = yes ; then
+       LDFLAGS_STATIC=-static
+       LDFLAGS_SHARED=-dynamic
+else
+       case $cf_cv_system_name in #(
+       aix[[45]]*)     #( from ld manpage
+               LDFLAGS_STATIC=-bstatic
+               LDFLAGS_SHARED=-bdynamic
+               ;;
+       hpux*)          #( from ld manpage for hpux10.20, hpux11.11
+               # We could also use just "archive" and "shared".
+               LDFLAGS_STATIC=-Wl,-a,archive_shared
+               LDFLAGS_SHARED=-Wl,-a,shared_archive
+               ;;
+       irix*)          #( from ld manpage IRIX64
+               LDFLAGS_STATIC=-Bstatic
+               LDFLAGS_SHARED=-Bdynamic
+               ;;
+       osf[[45]]*)     #( from ld manpage osf4.0d, osf5.1
+               # alternative "-oldstyle_liblookup" (not in cc manpage)
+               LDFLAGS_STATIC=-noso 
+               LDFLAGS_SHARED=-so_archive
+               ;;
+       solaris2*)
+               LDFLAGS_STATIC=-Bstatic
+               LDFLAGS_SHARED=-Bdynamic
+               ;;
+       esac
+fi
+
+AC_SUBST(LDFLAGS_STATIC)
+AC_SUBST(LDFLAGS_SHARED)
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
 dnl ----------
 dnl Check for libutf8
@@ -1774,11 +1889,11 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 46 updated: 2007/02/17 16:49:32
+dnl CF_LIB_RULES version: 50 updated: 2007/03/24 18:26:59
 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
-dnl subdirectory is a library-source directory, modify the LIBRARIES list in
+dnl subdirectory is a library-source directory, modify the LIBS_TO_MAKE list in
 dnl the corresponding makefile to list the models that we'll generate.
 dnl
 dnl For shared libraries, make a list of symbolic links to construct when
@@ -1797,7 +1912,6 @@ do
                continue
        elif test -f $srcdir/$cf_dir/modules; then
 
-               IMPORT_LIB=
                SHARED_LIB=
                LIBS_TO_MAKE=
                for cf_item in $cf_LIST_MODELS
@@ -1844,9 +1958,7 @@ do
                        # 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
-                               SHARED_LIB="cyg${cf_dir}\${ABI_VERSION}.dll"
-                               IMPORT_LIB="${cf_prefix}${cf_dir}.dll.a"
-                               LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/\${SHARED_LIB} ../lib/\${IMPORT_LIB}"
+                               LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/cyg${cf_dir}\${ABI_VERSION}.dll"
                                continue
                        fi
                        fi
@@ -1883,7 +1995,6 @@ do
                fi
 
                sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \
-                   -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \
                    -e "s%@SHARED_LIB@%$SHARED_LIB%" \
                        $cf_dir/Makefile >$cf_dir/Makefile.out
                mv $cf_dir/Makefile.out $cf_dir/Makefile
@@ -1963,6 +2074,7 @@ do
                                suffix=$cf_suffix \
                                subset=$cf_subset \
                                TermlibRoot=$TINFO_NAME \
+                               TermlibSuffix=$TINFO_SUFFIX \
                                ShlibVer=$cf_cv_shlib_version \
                                ShlibVerInfix=$cf_cv_shlib_version_infix \
                                ReLink=${cf_cv_do_relink-no} \
@@ -2062,7 +2174,7 @@ uninstall.man ::
 
 distclean ::
        rm -f config.cache config.log config.status Makefile include/ncurses_cfg.h
-       rm -f headers.sh headers.sed
+       rm -f headers.sh headers.sed mk_shared_lib.sh
        rm -rf \${DIRS_TO_MAKE}
 CF_EOF
 
@@ -2694,7 +2806,7 @@ AC_ARG_WITH(manpage-tbl,
 AC_MSG_RESULT($MANPAGE_TBL)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 32 updated: 2006/12/24 15:18:27
+dnl CF_MAN_PAGES version: 35 updated: 2007/03/31 11:47:29
 dnl ------------
 dnl Try to determine if the man-pages on the system are compressed, and if
 dnl so, what format is used.  Use this information to construct a script that
@@ -2760,7 +2872,7 @@ NCURSES_PATCH="$NCURSES_PATCH"
 NCURSES_OSPEED="$NCURSES_OSPEED"
 TERMINFO="$TERMINFO"
 
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+MKDIRS="sh `cd $srcdir && pwd`/mkdirs.sh"
 
 INSTALL="$INSTALL"
 INSTALL_DATA="$INSTALL_DATA"
@@ -2812,12 +2924,12 @@ case \$i in #(vi
        # replace variables in man page
        if test ! -f $cf_man_alias ; then
 cat >>$cf_man_alias <<-CF_EOF2
-               s,@DATADIR@,\$datadir,
-               s,@TERMINFO@,\$TERMINFO,
-               s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,
-               s,@NCURSES_MINOR@,\$NCURSES_MINOR,
-               s,@NCURSES_PATCH@,\$NCURSES_PATCH,
-               s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,
+               s,@DATADIR@,\$datadir,g
+               s,@TERMINFO@,\$TERMINFO,g
+               s,@NCURSES_MAJOR@,\$NCURSES_MAJOR,g
+               s,@NCURSES_MINOR@,\$NCURSES_MINOR,g
+               s,@NCURSES_PATCH@,\$NCURSES_PATCH,g
+               s,@NCURSES_OSPEED@,\$NCURSES_OSPEED,g
 CF_EOF
        ifelse($1,,,[
        for cf_name in $1
@@ -2934,6 +3046,7 @@ cat >>$cf_edit_man <<CF_EOF
        if test \$verb = installing ; then
                echo \$verb \$cf_target
                \$INSTALL_DATA \$TMP \$cf_target
+               test -d \$cf_subdir\${section} &&
                test -n "\$aliases" && (
                        cd \$cf_subdir\${section} && (
                                cf_source=\`echo \$cf_target |sed -e 's%^.*/\([[^/]][[^/]]*/[[^/]][[^/]]*$\)%\1%'\`
@@ -2975,8 +3088,11 @@ cat >>$cf_edit_man <<CF_EOF
                        )
                )
        elif test \$verb = removing ; then
-               echo \$verb \$cf_target
-               rm -f \$cf_target
+               test -f \$cf_target && (
+                       echo \$verb \$cf_target
+                       rm -f \$cf_target
+               )
+               test -d \$cf_subdir\${section} &&
                test -n "\$aliases" && (
                        cd \$cf_subdir\${section} && (
                                for cf_alias in \$aliases
@@ -3615,7 +3731,7 @@ define([CF_REMOVE_LIB],
 $1=`echo "$2" | sed -e 's/-l$3[[       ]]//g' -e 's/-l$3[$]//'`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 43 updated: 2007/02/17 13:35:29
+dnl CF_SHARED_OPTS version: 46 updated: 2007/02/24 18:58:09
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -3692,9 +3808,22 @@ AC_DEFUN([CF_SHARED_OPTS],
                ;;
        cygwin*)
                CC_SHARED_OPTS=
-               MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,--out-implib=../lib/${IMPORT_LIB} -Wl,--export-all-symbols -o ../lib/${SHARED_LIB}'
+               MK_SHARED_LIB='sh ../mk_shared_lib.sh [$]@ [$]{CC} [$]{CFLAGS}'
                cf_cv_shlib_version=cygdll
                cf_cv_shlib_version_infix=cygdll
+               cat >mk_shared_lib.sh <<-CF_EOF
+               #!/bin/sh
+               SHARED_LIB=\[$]1
+               IMPORT_LIB=\`echo "\[$]1" | sed -e 's/cyg/lib/' -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 
                ;;
        darwin*)
                EXTRA_CFLAGS="-no-cpp-precomp"
@@ -3978,6 +4107,41 @@ done
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_SIG_ATOMIC_T version: 2 updated: 2005/09/18 17:27:12
+dnl ---------------
+dnl signal handler, but there are some gcc depedencies in that recommendation.
+dnl Try anyway.
+AC_DEFUN([CF_SIG_ATOMIC_T],
+[
+AC_MSG_CHECKING(for signal global datatype)
+AC_CACHE_VAL(cf_cv_sig_atomic_t,[
+       for cf_type in \
+               "volatile sig_atomic_t" \
+               "sig_atomic_t" \
+               "int"
+       do
+       AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <signal.h>
+#include <stdio.h>
+
+extern $cf_type x;
+$cf_type x;
+static void handler(int sig)
+{
+       x = 5;
+}],
+               [signal(SIGINT, handler);
+                x = 1],
+               [cf_cv_sig_atomic_t=$cf_type],
+               [cf_cv_sig_atomic_t=no])
+               test "$cf_cv_sig_atomic_t" != no && break
+       done
+       ])
+AC_MSG_RESULT($cf_cv_sig_atomic_t)
+test "$cf_cv_sig_atomic_t" != no && AC_DEFINE_UNQUOTED(SIG_ATOMIC_T, $cf_cv_sig_atomic_t)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16
 dnl -------------
 dnl Check for definitions & structures needed for window size-changing
@@ -4578,7 +4742,7 @@ if test "$with_gpm" != no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_LIBTOOL version: 13 updated: 2007/01/27 17:52:16
+dnl CF_WITH_LIBTOOL version: 18 updated: 2007/04/08 20:02:38
 dnl ---------------
 dnl Provide a configure option to incorporate libtool.  Define several useful
 dnl symbols for the makefile rules.
@@ -4627,7 +4791,7 @@ LIB_PREP="$RANLIB"
 # doing:
 LIB_CLEAN=
 LIB_COMPILE=
-LIB_LINK=
+LIB_LINK='${CC}'
 LIB_INSTALL=
 LIB_UNINSTALL=
 
@@ -4653,12 +4817,12 @@ ifdef([AC_PROG_LIBTOOL],[
                AC_MSG_ERROR(Cannot find libtool)
        fi
 ])dnl
-       LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` -o'
-       LIB_OBJECT='${OBJECTS}.o=.lo)'
+       LIB_CREATE='${LIBTOOL} --mode=link ${CC} -rpath ${DESTDIR}${libdir} -version-info `cut -f1 ${srcdir}/VERSION` ${LIBTOOL_OPTS} -o'
+       LIB_OBJECT='${OBJECTS:.o=.lo}'
        LIB_SUFFIX=.la
        LIB_CLEAN='${LIBTOOL} --mode=clean'
        LIB_COMPILE='${LIBTOOL} --mode=compile'
-       LIB_LINK='${LIBTOOL} --mode=link'
+       LIB_LINK='${LIBTOOL} --mode=link ${CC} ${LIBTOOL_OPTS}'
        LIB_INSTALL='${LIBTOOL} --mode=install'
        LIB_UNINSTALL='${LIBTOOL} --mode=uninstall'
        LIB_PREP=:
@@ -4672,7 +4836,7 @@ ifdef([AC_PROG_LIBTOOL],[
        cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '/^$/d' |sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'`
        AC_MSG_RESULT($cf_cv_libtool_version)
        if test -z "$cf_cv_libtool_version" ; then
-               AC_MSG_ERROR(This is not libtool)
+               AC_MSG_ERROR(This is not GNU libtool)
        fi
 
        # special hack to add --tag option for C++ compiler
@@ -4693,6 +4857,7 @@ test -z "$LIBTOOL" && ECHO_LT=
 
 AC_SUBST(LIBTOOL)
 AC_SUBST(LIBTOOL_CXX)
+AC_SUBST(LIBTOOL_OPTS)
 
 AC_SUBST(LIB_CREATE)
 AC_SUBST(LIB_OBJECT)