The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/config/find_system_library.m4

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # find_system_lib.m4 - Macros to search for a system library.   -*- Autoconf -*-
    2 
    3 dnl requires pkg.m4 from pkg-config
    4 dnl requires ax_save_flags.m4 from autoconf-archive
    5 dnl requires ax_restore_flags.m4 from autoconf-archive
    6 
    7 dnl ZFS_AC_FIND_SYSTEM_LIBRARY(VARIABLE-PREFIX, MODULE, HEADER, HEADER-PREFIXES, LIBRARY, FUNCTIONS, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
    8 
    9 AC_DEFUN([ZFS_AC_FIND_SYSTEM_LIBRARY], [
   10     AC_REQUIRE([PKG_PROG_PKG_CONFIG])
   11 
   12     _header_found=
   13     _library_found=
   14     _pc_found=
   15 
   16     AS_IF([test -n "$2"], [PKG_CHECK_MODULES([$1], [$2], [
   17         _header_found=1
   18         _library_found=1
   19         _pc_found=1
   20     ], [:])])
   21 
   22     # set _header_found/_library_found if the user passed in CFLAGS/LIBS
   23     AS_IF([test "x$[$1][_CFLAGS]" != x], [_header_found=1])
   24     AS_IF([test "x$[$1][_LIBS]" != x], [_library_found=1])
   25 
   26     AX_SAVE_FLAGS
   27 
   28     orig_CFLAGS="$CFLAGS"
   29 
   30     for _prefixdir in /usr /usr/local
   31     do
   32         AS_VAR_PUSHDEF([header_cache], [ac_cv_header_$3])
   33         AS_IF([test "x$_prefixdir" != "x/usr"], [
   34             [$1][_CFLAGS]="-I$lt_sysroot$_prefixdir/include"
   35             AS_IF([test "x$_library_found" = x], [
   36                 [$1][_LIBS]="-L$lt_sysroot$_prefixdir/lib"
   37             ])
   38         ])
   39         CFLAGS="$orig_CFLAGS $[$1][_CFLAGS]"
   40         AS_UNSET([header_cache])
   41         AC_CHECK_HEADER([$3], [
   42             _header_found=1
   43             break
   44         ], [AS_IF([test "x$_header_found" = "x1"], [
   45             # if pkg-config or the user set CFLAGS, fail if the header is unusable
   46             AC_MSG_FAILURE([header [$3] for library [$5] is not usable])
   47         ])], [AC_INCLUDES_DEFAULT])
   48         # search for header under HEADER-PREFIXES
   49         m4_foreach_w([prefix], [$4], [
   50             [$1][_CFLAGS]=["-I$lt_sysroot$_prefixdir/include/]prefix["]
   51             CFLAGS="$orig_CFLAGS $[$1][_CFLAGS]"
   52             AS_UNSET([header_cache])
   53             AC_CHECK_HEADER([$3], [
   54                 _header_found=1
   55                 break
   56             ], [], [AC_INCLUDES_DEFAULT])
   57         ])
   58         AS_VAR_POPDEF([header_cache])
   59     done
   60 
   61     AS_IF([test "x$_header_found" = "x1"], [
   62         AS_IF([test "x$_library_found" = x], [
   63             [$1][_LIBS]="$[$1]_LIBS -l[$5]"
   64         ])
   65         LDFLAGS="$LDFLAGS $[$1][_LIBS]"
   66 
   67         _libcheck=1
   68         m4_ifval([$6],
   69             [m4_foreach_w([func], [$6], [AC_CHECK_LIB([$5], func, [:], [_libcheck=])])],
   70             [AC_CHECK_LIB([$5], [main], [:], [_libcheck=])])
   71 
   72         AS_IF([test "x$_libcheck" = "x1"], [_library_found=1],
   73             [test "x$_library_found" = "x1"], [
   74             # if pkg-config or the user set LIBS, fail if the library is unusable
   75             AC_MSG_FAILURE([library [$5] is not usable])
   76         ])
   77     ], [test "x$_library_found" = "x1"], [
   78         # if the user set LIBS, fail if we didn't find the header
   79         AC_MSG_FAILURE([cannot find header [$3] for library [$5]])
   80     ])
   81 
   82     AX_RESTORE_FLAGS
   83 
   84     AS_IF([test "x$_header_found" = "x1" && test "x$_library_found" = "x1"], [
   85         AC_SUBST([$1]_CFLAGS)
   86         AC_SUBST([$1]_LIBS)
   87         AS_IF([test "x$_pc_found" = "x1"], [
   88             AC_SUBST([$1]_PC, [$2])
   89         ])
   90         AC_DEFINE([HAVE_][$1], [1], [Define if you have [$5]])
   91         $7
   92     ],[dnl ELSE
   93         AC_SUBST([$1]_CFLAGS, [])
   94         AC_SUBST([$1]_LIBS, [])
   95         AC_MSG_WARN([cannot find [$5] via pkg-config or in the standard locations])
   96         $8
   97     ])
   98 ])

Cache object: 668290dc0f4f67c3f87b0a966676c019


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.