]>
Commit | Line | Data |
---|---|---|
762f9ef3 RK |
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 FIND_SYSTEM_LIBRARY(VARIABLE-PREFIX, MODULE, HEADER, HEADER-PREFIXES, LIBRARY, FUNCTIONS, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) | |
8 | ||
9 | AC_DEFUN([FIND_SYSTEM_LIBRARY], [ | |
10 | AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | |
11 | ||
12 | _library_found= | |
13 | ||
14 | PKG_CHECK_MODULES([$1], [$2], [_library_found=1], [ | |
15 | AS_IF([test -f /usr/include/[$3]], [ | |
16 | AC_SUBST([$1][_CFLAGS], []) | |
17 | AC_SUBST([$1][_LIBS], ["-l[$5]]") | |
18 | _library_found=1 | |
19 | ],[ AS_IF([test -f /usr/local/include/[$3]], [ | |
20 | AC_SUBST([$1][_CFLAGS], ["-I/usr/local/include"]) | |
21 | AC_SUBST([$1][_LIBS], ["-L/usr/local -l[$5]]") | |
22 | _library_found=1 | |
23 | ],[dnl ELSE | |
24 | m4_foreach([prefix], [$4], [ | |
25 | AS_IF([test "x$_library_found" != "x1"], [ | |
26 | AS_IF([test -f [/usr/include/]prefix[/][$3]], [ | |
27 | AC_SUBST([$1][_CFLAGS], ["[-I/usr/include/]prefix["]]) | |
28 | AC_SUBST([$1][_LIBS], ["-l[$5]]") | |
29 | _library_found=1 | |
30 | ],[ AS_IF([test -f [/usr/local/include/]prefix[/][$3]], [ | |
31 | AC_SUBST([$1][_CFLAGS], ["[-I/usr/local/include/]prefix["]]) | |
32 | AC_SUBST([$1][_LIBS], ["-L/usr/local -l[$5]"]) | |
33 | _library_found=1 | |
34 | ])]) | |
35 | ]) | |
36 | ]) | |
37 | ])]) | |
38 | ||
39 | AS_IF([test -z "$_library_found"], [ | |
40 | AC_MSG_WARN([cannot find [$2] via pkg-config or in the standard locations]) | |
41 | ]) | |
42 | ]) | |
43 | ||
44 | dnl do some further sanity checks | |
45 | ||
46 | AS_IF([test -n "$_library_found"], [ | |
47 | AX_SAVE_FLAGS | |
48 | ||
49 | CPPFLAGS="$CPPFLAGS $(echo $[$1][_CFLAGS] | sed 's/-include */-include-/g; s/^/ /; s/ [^-][^ ]*//g; s/ -[^Ii][^ ]*//g; s/-include-/-include /g; s/^ //;')" | |
50 | CFLAGS="$CFLAGS $[$1][_CFLAGS]" | |
51 | LDFLAGS="$LDFLAGS $[$1][_LIBS]" | |
52 | ||
53 | AC_CHECK_HEADER([$3], [], [ | |
54 | AC_MSG_WARN([header [$3] for library [$2] is not usable]) | |
55 | _library_found= | |
56 | ]) | |
57 | ||
58 | m4_foreach([func], [$6], [ | |
59 | AC_CHECK_LIB([$5], func, [], [ | |
60 | AC_MSG_WARN([cannot find ]func[ in library [$5]]) | |
61 | _library_found= | |
62 | ]) | |
63 | ]) | |
64 | ||
65 | AX_RESTORE_FLAGS | |
66 | ]) | |
67 | ||
68 | AS_IF([test -n "$_library_found"], [ | |
69 | :;$7 | |
70 | ],[dnl ELSE | |
71 | :;$8 | |
72 | ]) | |
73 | ]) |