]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 5.9 - patch 20150321
[ncurses.git] / aclocal.m4
index a0d375ec4e3a2e5cd3990d13142d46d08ac0bdc5..12c8f5acd76d0e9b4a9fd291b6d2c8e2895b9f27 100644 (file)
@@ -1,5 +1,5 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2013,2014 Free Software Foundation, Inc.              *
+dnl Copyright (c) 1998-2014,2015 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,7 +28,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.719 2014/12/06 13:37:21 tom Exp $
+dnl $Id: aclocal.m4,v 1.734 2015/01/22 01:13:38 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -1336,7 +1336,7 @@ if test "$cf_disable_rpath_hack" = no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_ENABLE_PC_FILES version: 9 updated: 2012/08/04 13:59:54
+dnl CF_ENABLE_PC_FILES version: 11 updated: 2015/01/10 17:03:43
 dnl ------------------
 dnl This is the "--enable-pc-files" option, which is available if there is a
 dnl pkg-config configuration on the local machine.
@@ -1344,20 +1344,35 @@ AC_DEFUN([CF_ENABLE_PC_FILES],[
 AC_REQUIRE([CF_PKG_CONFIG])
 AC_REQUIRE([CF_WITH_PKG_CONFIG_LIBDIR])
 
-if test "$PKG_CONFIG" != none ; then
+if test "x$PKG_CONFIG" != xnone
+then
        AC_MSG_CHECKING(if we should install .pc files for $PKG_CONFIG)
-       AC_ARG_ENABLE(pc-files,
-               [  --enable-pc-files       generate and install .pc files for pkg-config],
-               [enable_pc_files=$enableval],
-               [enable_pc_files=no])
-       AC_MSG_RESULT($enable_pc_files)
-       if test "$enable_pc_files" != no
-       then
+else
+       AC_MSG_CHECKING(if we should install .pc files)
+fi
+
+AC_ARG_ENABLE(pc-files,
+       [  --enable-pc-files       generate and install .pc files for pkg-config],
+       [enable_pc_files=$enableval],
+       [enable_pc_files=no])
+AC_MSG_RESULT($enable_pc_files)
+
+if test "x$enable_pc_files" != xno
+then
+       case "x$PKG_CONFIG_LIBDIR" in #(vi
+       xno|xyes) #(vi
+               AC_MSG_WARN(no PKG_CONFIG_LIBDIR was found)
+               MAKE_PC_FILES="#"
+               ;;
+       *)
                CF_PATH_SYNTAX(PKG_CONFIG_LIBDIR)
-       fi
+               MAKE_PC_FILES=
+               ;;
+       esac
 else
-       enable_pc_files=no
+       MAKE_PC_FILES="#"
 fi
+AC_SUBST(MAKE_PC_FILES)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_ENABLE_RPATH version: 2 updated: 2010/03/27 18:39:42
@@ -3176,7 +3191,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 75 updated: 2014/09/20 20:16:32
+dnl CF_LIB_RULES version: 78 updated: 2015/01/21 20:10:54
 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
@@ -3228,6 +3243,31 @@ do
 
                SHARED_LIB=
                Libs_To_Make=
+
+               cf_sed_options=
+               if test -n "${cf_cv_abi_version}" && test "x${cf_cv_abi_version}" != "x5"
+               then
+                       cf_sed_options="$cf_sed_options -e \"s/NCURSES\\([[WT]]\\+\\)\?_/NCURSES\\1${cf_cv_abi_version}_/g\""
+               fi
+
+               if test "x$WILDCARD_SYMS" = xno
+               then
+                       cf_sed_options="$cf_sed_options -e \"s/_\*;//g\""
+               fi
+
+               if test "x$cf_sed_options" != "x"
+               then
+                       cat >>$cf_dir/Makefile <<CF_EOF
+
+# Generated by CF_LIB_RULES
+resulting.map: $UNALTERED_SYMS
+       sed $cf_sed_options < $UNALTERED_SYMS >\[$]@
+
+clean::
+       rm -f resulting.map
+CF_EOF
+               fi
+
                for cf_item in $cf_LIST_MODELS
                do
                        CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
@@ -4841,7 +4881,7 @@ case ".[$]$1" in #(vi
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PKG_CONFIG version: 7 updated: 2011/04/29 04:53:22
+dnl CF_PKG_CONFIG version: 8 updated: 2014/12/13 18:48:46
 dnl -------------
 dnl Check for the package-config program, unless disabled by command-line.
 AC_DEFUN([CF_PKG_CONFIG],
@@ -4870,6 +4910,8 @@ esac
 test -z "$PKG_CONFIG" && PKG_CONFIG=none
 if test "$PKG_CONFIG" != none ; then
        CF_PATH_SYNTAX(PKG_CONFIG)
+else
+       AC_MSG_WARN(pkg-config is not installed)
 fi
 
 AC_SUBST(PKG_CONFIG)
@@ -5417,7 +5459,7 @@ CF_VERBOSE(...checked $1 [$]$1)
 AC_SUBST(EXTRA_LDFLAGS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 84 updated: 2013/11/03 06:26:10
+dnl CF_SHARED_OPTS version: 86 updated: 2015/01/21 20:10:54
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -5574,7 +5616,7 @@ CF_EOF
                fi
                ;;
        hpux[[7-8]]*) #(vi
-               # HP-UX 8.07 ld lacks "+b" option used for libdir search-list 
+               # HP-UX 8.07 ld lacks "+b" option used for libdir search-list
                if test "$GCC" != yes; then
                        CC_SHARED_OPTS='+Z'
                fi
@@ -5680,7 +5722,7 @@ CF_EOF
                        EXTRA_LDFLAGS="${cf_ld_rpath_opt}\${RPATH_LIST} $EXTRA_LDFLAGS"
                fi
                CF_SHARED_SONAME
-               MK_SHARED_LIB='${LD} -shared -Bshareable -soname=`basename $[@]` -o $[@]'
+               MK_SHARED_LIB='${CC} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
                ;;
        netbsd*) #(vi
                CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
@@ -6832,7 +6874,7 @@ if test "$with_dmalloc" = yes ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_EXPORT_SYMS version: 2 updated: 2014/11/15 19:05:29
+dnl CF_WITH_EXPORT_SYMS version: 3 updated: 2014/12/20 19:16:08
 dnl -------------------
 dnl Use this with libtool to specify the list of symbols that may be exported.
 dnl The input file contains one symbol per line; comments work with "#".
@@ -6853,7 +6895,7 @@ fi
 AC_MSG_RESULT($with_export_syms)
 if test "x$with_export_syms" != xno
 then
-       EXPORT_SYMS="$EXPORT_SYMS -export-symbols $with_export_syms"
+       EXPORT_SYMS="-export-symbols $with_export_syms"
        AC_SUBST(EXPORT_SYMS)
 fi
 ])dnl
@@ -7154,45 +7196,71 @@ AC_SUBST($3)dnl
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PKG_CONFIG_LIBDIR version: 2 updated: 2011/12/10 18:58:47
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 5 updated: 2015/01/21 20:10:54
 dnl -------------------------
 dnl Allow the choice of the pkg-config library directory to be overridden.
 AC_DEFUN([CF_WITH_PKG_CONFIG_LIBDIR],[
-if test "$PKG_CONFIG" != none ; then
-       AC_MSG_CHECKING(for $PKG_CONFIG library directory)
-       AC_ARG_WITH(pkg-config-libdir,
-               [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
-               [PKG_CONFIG_LIBDIR=$withval],
-               [PKG_CONFIG_LIBDIR=yes])
-
-       case x$PKG_CONFIG_LIBDIR in #(vi
-       x/*) #(vi
-               ;;
-       xyes) #(vi
-               # look for the library directory using the same prefix as the executable
+AC_MSG_CHECKING(for $PKG_CONFIG library directory)
+AC_ARG_WITH(pkg-config-libdir,
+       [  --with-pkg-config-libdir=XXX use given directory for installing pc-files],
+       [PKG_CONFIG_LIBDIR=$withval],
+       [PKG_CONFIG_LIBDIR=yes])
+
+case x$PKG_CONFIG_LIBDIR in #(vi
+x/*) #(vi
+       ;;
+xyes) #(vi
+       # Look for the library directory using the same prefix as the executable
+       if test "x$PKG_CONFIG" = xnone
+       then
+               cf_path=$prefix
+       else
                cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
-               case x`(arch) 2>/dev/null` in #(vi
-               *64) #(vi
-                       for cf_config in $cf_path/share $cf_path/lib64 $cf_path/lib32 $cf_path/lib
-                       do
-                               if test -d $cf_config/pkgconfig
-                               then
-                                       PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
-                                       break
-                               fi
-                       done
-                       ;;
-               *)
-                       PKG_CONFIG_LIBDIR=$cf_path/lib/pkgconfig
-                       ;;
-               esac
+       fi
+
+       # If you don't like using the default architecture, you have to specify the
+       # intended library directory and corresponding compiler/linker options.
+       #
+       # This case allows for Debian's 2014-flavor of multiarch, along with the
+       # most common variations before that point.  Some other variants spell the
+       # directory differently, e.g., "pkg-config", and put it in unusual places.
+       # pkg-config has always been poorly standardized, which is ironic...
+       case x`(arch) 2>/dev/null` in #(vi
+       *64) #(vi
+               cf_search_path="\
+                       $cf_path/lib/*64-linux-gnu \
+                       $cf_path/share \
+                       $cf_path/lib64 \
+                       $cf_path/lib32 \
+                       $cf_path/lib"
                ;;
        *)
+               cf_search_path="\
+                       $cf_path/lib/*-linux-gnu \
+                       $cf_path/share \
+                       $cf_path/lib32 \
+                       $cf_path/lib \
+                       $cf_path/libdata"
                ;;
        esac
 
-       AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
-fi
+       CF_VERBOSE(list...)
+       for cf_config in $cf_search_path
+       do
+               CF_VERBOSE(checking $cf_config/pkgconfig)
+               if test -d $cf_config/pkgconfig
+               then
+                       PKG_CONFIG_LIBDIR=$cf_config/pkgconfig
+                       AC_MSG_CHECKING(done)
+                       break
+               fi
+       done
+       ;;
+*)
+       ;;
+esac
+
+AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
 
 AC_SUBST(PKG_CONFIG_LIBDIR)
 ])dnl
@@ -7322,13 +7390,13 @@ CF_NO_LEAKS_OPTION(valgrind,
        [USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_VERSIONED_SYMS version: 2 updated: 2014/11/15 19:05:29
+dnl CF_WITH_VERSIONED_SYMS version: 4 updated: 2015/01/21 20:10:54
 dnl ----------------------
 dnl Use this when building shared library with ELF, to markup symbols with the
 dnl version identifier from the given input file.  Generally that identifier is
 dnl the same as the SONAME at which the symbol was first introduced.
 dnl
-dnl $1 = basename of the ".sym" file (default $PACKAGE)
+dnl $1 = basename of the ".map" file (default $PACKAGE)
 AC_DEFUN([CF_WITH_VERSIONED_SYMS],
 [
 AC_MSG_CHECKING(if versioned-symbols file should be used)
@@ -7343,17 +7411,21 @@ then
 fi
 AC_MSG_RESULT($with_versioned_syms)
 
+RESULTING_SYMS=
+VERSIONED_SYMS=
+WILDCARD_SYMS=
+
 if test "x$with_versioned_syms" != xno
 then
-       AC_SUBST(VERSIONED_SYMS)
+       RESULTING_SYMS=$with_versioned_syms
        case "x$MK_SHARED_LIB" in
        *-Wl,*) #(vi
-               VERSIONED_SYMS="-Wl,--version-script,$with_versioned_syms"
+               VERSIONED_SYMS="-Wl,--version-script,\${RESULTING_SYMS}"
                MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-Wl,%\\[$]{VERSIONED_SYMS} -Wl,%"`
                CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
                ;;
-       *-dy*) #(vi
-               VERSIONED_SYMS="-Wl,-M,$with_versioned_syms"
+       *-dy*) #(vi
+               VERSIONED_SYMS="-Wl,-M,\${RESULTING_SYMS}"
                MK_SHARED_LIB=`echo "$MK_SHARED_LIB" | sed -e "s%-dy%\\[$]{VERSIONED_SYMS} -dy%"`
                CF_VERBOSE(MK_SHARED_LIB:  $MK_SHARED_LIB)
                ;;
@@ -7361,7 +7433,88 @@ then
                AC_MSG_WARN(this system does not support versioned-symbols)
                ;;
        esac
+
+       # Linux ld can selectively override scope, e.g., of symbols beginning with
+       # "_" by first declaring some as global, and then using a wildcard to
+       # declare the others as local.  Some other loaders cannot do this.  Check
+       # by constructing a (very) simple shared library and inspecting its
+       # symbols.
+       if test "x$VERSIONED_SYMS" != "x"
+       then
+               AC_MSG_CHECKING(if wildcards can be used to selectively omit symbols)
+               WILDCARD_SYMS=no
+
+               # make sources
+               rm -f conftest.*
+
+               cat >conftest.ver <<EOF
+module_1.0 {
+global:
+       globalf1;
+local:
+       localf1;
+};
+module_2.0 {
+global:
+       globalf2;
+local:
+       localf2;
+       _*;
+} module_1.0;
+submodule_1.0 {
+global:
+       subglobalf1;
+       _ismissing;
+local:
+       sublocalf1;
+};
+submodule_2.0 {
+global:
+       subglobalf2;
+local:
+       sublocalf2;
+       _*;
+} submodule_1.0;
+EOF
+               cat >conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int    _ismissing(void) { return 1; }
+int    _localf1(void) { return 1; }
+int    _localf2(void) { return 2; }
+int    globalf1(void) { return 1; }
+int    globalf2(void) { return 2; }
+int    _sublocalf1(void) { return 1; }
+int    _sublocalf2(void) { return 2; }
+int    subglobalf1(void) { return 1; }
+int    subglobalf2(void) { return 2; }
+EOF
+               cat >conftest.mk <<EOF
+CC=${CC}
+CFLAGS=${CFLAGS}
+CPPFLAGS=${CPPFLAGS}
+LDFLAGS=${LDFLAGS}
+LIBS=${LIBS}
+VERSIONED_SYMS=${VERSIONED_SYMS}
+RESULTING_SYMS=conftest.ver
+MK_SHARED_LIB=${MK_SHARED_LIB}
+conftest.so: conftest.$ac_cv_objext
+               \$(MK_SHARED_LIB) conftest.$ac_cv_objext
+EOF
+
+               # compile source, make library
+               if make -f conftest.mk 2>&AC_FD_CC >/dev/null
+               then
+                       # test for missing symbol
+                       cf_missing=`nm -P conftest.so 2>&AC_FD_CC |fgrep _ismissing | egrep '[[         ]]T[[   ]]'`
+                       test -n "$cf_missing" && WILDCARD_SYMS=yes
+               fi
+               AC_MSG_RESULT($WILDCARD_SYMS)
+               rm -f conftest.*
+       fi
 fi
+AC_SUBST(RESULTING_SYMS)
+AC_SUBST(VERSIONED_SYMS)
+AC_SUBST(WILDCARD_SYMS)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_XOPEN_SOURCE version: 48 updated: 2014/09/01 12:29:14