1dnl AC_SEARCH_LIBS_VAR(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
2dnl            [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES [, VAR]]]])
3dnl Search for a library defining FUNC, if it's not already available.
4dnl If a library is needed, add it to VAR (typically prog_LDADD) but
5dnl not to LIBS
6
7AC_DEFUN([AC_SEARCH_LIBS_VAR],
8[AC_PREREQ([2.13])
9AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
10[ac_func_search_save_LIBS="$LIBS"
11ac_cv_search_$1="no"
12AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
13test "$ac_cv_search_$1" = "no" && for i in $2; do
14LIBS="-l$i $5 $ac_func_search_save_LIBS"
15AC_TRY_LINK_FUNC([$1],
16[ac_cv_search_$1="-l$i"
17break])
18done
19LIBS="$ac_func_search_save_LIBS"])
20if test "$ac_cv_search_$1" != "no"; then
21  test "$ac_cv_search_$1" = "none required" || $6="$$6 $ac_cv_search_$1"
22  $3
23else :
24  $4
25fi])
26
27
28dnl AC_FUNC_MKFIFO
29dnl Test whether mkfifo(const char* pathname, mode_t mode) works
30dnl This is necessary to detect Cygwin mkfifo() which is a nonfunctional
31dnl stub
32AC_DEFUN([AC_FUNC_MKFIFO], [
33AC_MSG_CHECKING(for working mkfifo)
34AC_TRY_RUN(
35changequote(<<, >>)dnl
36<<#include <stdlib.h>
37#include <sys/types.h>
38#include <sys/stat.h>
39int main(){
40int error = 0;
41if (mkfifo("test_the_fifo", 0777) != 0) {
42error=1;
43}
44else {
45unlink("test_the_fifo");
46}
47exit (error);
48}
49>>,
50changequote([, ])dnl
51ac_cv_func_mkfifo=yes,
52ac_cv_func_mkfifo=no,
53ac_cv_func_mkfifo=no
54)
55AC_MSG_RESULT($ac_cv_func_mkfifo)
56if test $ac_cv_func_mkfifo = yes ; then
57  AC_DEFINE(HAVE_MKFIFO)
58fi
59])
60
61dnl Check for a required version of Perl.  The separate shell variable and
62dnl the changequotes are necessary for autoconf 2.13; autoconf 2.50 will
63dnl provide a different interface that will allow this to work correctly.
64dnl stolen from Russ Allbery <rra@stanford.edu>
65dnl REFDB_PERL_VERSION(perlbin, requiredversion)
66AC_DEFUN([REFDB_PERL_VERSION],
67[AC_CACHE_CHECK(for Perl version, refdb_perl_version,
68[if $1 -e 'require $2;' > /dev/null 2>&1 ; then
69    refdb_perl_version=`$1 -e "$refdb_perl_command"`
70else
71    AC_MSG_WARN(Perl $2 or greater is required for some scripts)
72fi])])
73
74dnl Dito, but check for the existence of a Perl module
75dnl REFDB_PERL_MODULE(perlbin,modulename,varname)
76AC_DEFUN([REFDB_PERL_MODULE],
77[AC_CACHE_CHECK(for Perl module $2, $3,
78[if $1 -e 'use $2;' > /dev/null 2>&1 ; then
79    $3=$2
80else
81    AC_MSG_WARN(Perl module $2 is required for some scripts)
82fi])])
83
84dnl Try to locate a stylesheet using xmlcatalog
85AC_DEFUN([REFDB_XML_FILE],
86[if test -r /etc/xml/catalog; then
87    refdb_xml_catalog="/etc/xml/catalog"
88else
89    refdb_xml_catalog=$XML_CATALOG_FILES
90fi
91
92AC_MSG_CHECKING(for XML file $2)
93xml_file=`$1 $refdb_xml_catalog $2`
94xml_file=`echo $xml_file | sed 's%file://%%'`
95AC_CHECK_FILE($xml_file,[
96AC_MSG_RESULT(XML file found)],[
97AC_MSG_RESULT(XML file not found, you may wish to check your XML catalog)]
98)])
99