dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.185 2021/10/17 15:16:03 tom Exp $
+dnl $Id: aclocal.m4,v 1.191 2021/11/20 19:58:23 tom Exp $
dnl Macros used in NCURSES Ada95 auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
esac
])
dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_LIBSSP version: 1 updated: 2021/10/30 10:40:19
+dnl ---------------
+dnl Check if libssp is needed, e.g., to work around misconfigured libraries
+dnl used in cross-compiling to MinGW.
+AC_DEFUN([CF_CHECK_LIBSSP],[
+AC_CACHE_CHECK(if ssp library is needed,cf_cv_need_libssp,[
+AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+],[
+ DIR *dp = opendir(".");
+],cf_cv_need_libssp=no,[
+ cf_save_LIBS="$LIBS"
+ LIBS="$LIBS -lssp"
+ AC_TRY_LINK([
+#include <sys/types.h>
+#include <dirent.h>
+ ],[
+ DIR *dp = opendir(".");
+ ],cf_cv_need_libssp=yes,
+ cf_cv_need_libssp=maybe)
+ LIBS="$cf_save_LIBS"
+])dnl
+])
+
+if test "x$cf_cv_need_libssp" = xyes
+then
+ CF_ADD_LIB(ssp)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_CLANG_COMPILER version: 8 updated: 2021/01/01 13:31:04
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
AC_SUBST($3)dnl
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PKG_CONFIG_LIBDIR version: 13 updated: 2021/10/17 11:12:47
+dnl CF_WITH_PKG_CONFIG_LIBDIR version: 19 updated: 2021/11/20 14:57:36
dnl -------------------------
dnl Allow the choice of the pkg-config library directory to be overridden.
dnl
;;
esac
+# if $PKG_CONFIG_LIBDIR is set, try to use that
cf_search_path=`echo "$PKG_CONFIG_LIBDIR" | sed -e 's/:/ /g' -e 's,^[[ ]]*,,'`
+
+# if the option is used, let that override. otherwise default to "libdir"
AC_ARG_WITH(pkg-config-libdir,
[ --with-pkg-config-libdir=XXX use given directory for installing pc-files],
[cf_search_path=$withval],
- [test "x$PKG_CONFIG" != xnone && cf_search_path=yes])
+ [test "x$PKG_CONFIG" != xnone && test -z "$cf_search_path" && cf_search_path=libdir])
case x$cf_search_path in
+(xlibdir)
+ PKG_CONFIG_LIBDIR='${libdir}/pkgconfig'
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
+ ;;
+(x)
+ ;;
(x/*)
+ PKG_CONFIG_LIBDIR="$cf_search_path"
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ cf_search_path=
;;
-(xyes)
+(xyes|xauto)
+ AC_MSG_RESULT(auto)
cf_search_path=
- CF_VERBOSE(auto...)
# Look for the library directory using the same prefix as the executable
AC_MSG_CHECKING(for search-list)
- if test "x$PKG_CONFIG" = xnone
+ if test "x$PKG_CONFIG" != xnone
then
- cf_path=$prefix
- else
- cf_path=`echo "$PKG_CONFIG" | sed -e 's,/[[^/]]*/[[^/]]*$,,'`
+ # works for pkg-config since version 0.24 (2009)
+ # works for pkgconf since version 0.8.3 (2012)
+ for cf_pkg_program in \
+ `echo "$PKG_CONFIG" | sed -e 's,^.*/,,'` \
+ pkg-config \
+ pkgconf
+ do
+ cf_search_path=`"$PKG_CONFIG" --variable=pc_path "$cf_pkg_program" 2>/dev/null | tr : ' '`
+ test -n "$cf_search_path" && break
+ done
+
+ # works for pkg-config since import in 2005 of original 2001 HP code.
+ test -z "$cf_search_path" && \
cf_search_path=`
- "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | awk "\
-/^Scanning directory #[1-9][0-9]* '.*'$/{ \
+ "$PKG_CONFIG" --debug --exists no-such-package 2>&1 | $AWK "\
+/^Scanning directory (#[1-9][0-9]* )?'.*'$/{ \
sub(\"^[[^']]*'\",\"\"); \
sub(\"'.*\",\"\"); \
printf \" %s\", \\[$]0; } \
-/trying path:/{
- sub(\"^.* trying path: \",\"\");
- sub(\" for no-such-package.*$\",\"\");
- printf \" %s\", \\[$]0;
-}
{ next; } \
"`
fi
- if test -z "$cf_search_path"
- then
- # 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
- (*64)
- cf_test_path="\
- $cf_path/lib/*64-linux-gnu \
- $cf_path/share \
- $cf_path/lib64 \
- $cf_path/lib32 \
- $cf_path/lib"
- ;;
- (*)
- cf_test_path="\
- $cf_path/lib/*-linux-gnu \
- $cf_path/share \
- $cf_path/lib32 \
- $cf_path/lib \
- $cf_path/libdata"
- ;;
- esac
- for cf_config in $cf_test_path
- do
- test -d "$cf_config/pkgconfig" && cf_search_path="$cf_search_path $cf_config/pkgconfig"
- done
- fi
-
AC_MSG_RESULT($cf_search_path)
-
;;
(*)
+ AC_MSG_ERROR(Unexpected option value: $cf_search_path)
;;
esac
-AC_MSG_CHECKING(for first directory)
-cf_pkg_config_path=none
-for cf_config in $cf_search_path
-do
- if test -d "$cf_config"
- then
- cf_pkg_config_path=$cf_config
- break
+if test -n "$cf_search_path"
+then
+ AC_MSG_CHECKING(for first directory)
+ cf_pkg_config_path=none
+ for cf_config in $cf_search_path
+ do
+ if test -d "$cf_config"
+ then
+ cf_pkg_config_path=$cf_config
+ break
+ fi
+ done
+ AC_MSG_RESULT($cf_pkg_config_path)
+
+ if test "x$cf_pkg_config_path" != xnone ; then
+ # limit this to the first directory found
+ PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
fi
-done
-AC_MSG_RESULT($cf_pkg_config_path)
-if test "x$cf_pkg_config_path" != xnone ; then
- # limit this to the first directory found
- PKG_CONFIG_LIBDIR="$cf_pkg_config_path"
+ if test -z "$PKG_CONFIG_LIBDIR" && test -n "$cf_search_path"
+ then
+ AC_MSG_CHECKING(for workaround)
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+ eval cf_libdir=$libdir
+ cf_libdir=`echo "$cf_libdir" | sed -e "s,^NONE,$cf_prefix,"`
+ cf_backup=
+ for cf_config in $cf_search_path
+ do
+ case $cf_config in
+ $cf_libdir/pkgconfig)
+ PKG_CONFIG_LIBDIR=$cf_libdir/pkgconfig
+ break
+ ;;
+ *)
+ test -z "$cf_backup" && cf_backup=$cf_config
+ ;;
+ esac
+ done
+ test -z "$PKG_CONFIG_LIBDIR" && PKG_CONFIG_LIBDIR=$cf_backup
+ AC_MSG_RESULT($PKG_CONFIG_LIBDIR)
+ fi
fi
AC_SUBST(PKG_CONFIG_LIBDIR)