[1.5] Add missing changes files
[openjpeg.git] / m4 / opj_check_lib.m4
1 dnl Copyright (C) 2011 Vincent Torri <vtorri at univ-evry dot fr>
2 dnl That code is public domain and can be freely used or copied.
3
4 dnl Macro that check if a library is in a specified directory.
5
6 dnl Usage: OPJ_CHECK_LIB_WITH_PREFIX(prefix, header, lib, func [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
7 dnl Call AC_SUBST(THELIB_CFLAGS)
8 dnl Call AC_SUBST(THELIB_LIBS)
9 dnl where THELIB is the uppercase value of 'lib'
10
11 AC_DEFUN([OPJ_CHECK_LIB_WITH_PREFIX],
12 [
13
14 m4_pushdef([UP], m4_toupper([$3]))
15 m4_pushdef([DOWN], m4_tolower([$3]))
16
17 __opj_prefix=$1
18 __opj_header=$2
19 __opj_lib=$3
20 __opj_func=$4
21 __opj_have_dep="no"
22
23 save_CPPFLAGS=${CPPFLAGS}
24 save_LIBS=${LIBS}
25
26 if test "x$UP[_CFLAGS]" != "x"; then
27    CPPFLAGS="${CPPFLAGS} $UP[_CFLAGS]"
28 else
29    if test "x${__opj_prefix}" != "x" ; then
30      __opj_CPPFLAGS="-I${__opj_prefix}/include"
31    else
32      __opj_CPPFLAGS=""
33    fi
34    CPPFLAGS="${CPPFLAGS} ${__opj_CPPFLAGS}"
35 fi
36
37 if test "x$UP[_LIBS]" != "x"; then
38    LIBS="${LIBS} $UP[_LIBS]"
39 else
40    if test "x${__opj_prefix}" != "x" ; then
41      __opj_LIBS="-L${__opj_prefix}/lib -l${__opj_lib}"
42    else
43      __opj_LIBS="-l${__opj_lib}"
44    fi
45    LIBS="${LIBS} ${__opj_LIBS}"
46 fi
47
48 AC_LINK_IFELSE(
49    [AC_LANG_PROGRAM(
50        [[
51 #include <${__opj_header}>
52        ]],
53        [[
54 ${__opj_func}();
55        ]])],
56        [__opj_have_dep="yes"],
57        [__opj_have_dep="no"])
58
59 CPPFLAGS=${save_CPPFLAGS}
60 LIBS=${save_LIBS}
61
62 if test "x${__opj_prefix}" = "x" ; then
63    AC_MSG_CHECKING([whether ]UP[ library is available in standard or predefined directories])
64 else
65    AC_MSG_CHECKING([whether ]UP[ library is available in ${__opj_prefix}])
66 fi
67 AC_MSG_RESULT([${__opj_have_dep}])
68
69 if test "x${__opj_have_dep}" = "xyes"; then
70    if test "x${UP[]_CFLAGS}" = "x" ; then
71       UP[]_CFLAGS="${__opj_CPPFLAGS}"
72    fi
73    if test "x${UP[]_LIBS}" = "x" ; then
74       UP[]_LIBS="${__opj_LIBS}"
75    fi
76 fi
77
78 AS_IF([test "x${__opj_have_dep}" = "xyes"], [$5], [$6])
79
80 m4_popdef([UP])
81 m4_popdef([DOWN])
82
83 ])
84
85 dnl Macro that check if a library is in a set of directories.
86
87 dnl Usage: OPJ_CHECK_LIB(header, lib, func [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
88
89 AC_DEFUN([OPJ_CHECK_LIB],
90 [
91
92 m4_pushdef([UP], m4_toupper([$2]))
93
94 __opj_have_dep="no"
95
96 OPJ_CHECK_LIB_WITH_PREFIX([],
97    [$1],
98    [$2],
99    [$3],
100    [__opj_have_dep="yes"],
101    [__opj_have_dep="no"])
102
103 if ! test "x${__opj_have_dep}" = "xyes" ; then
104    OPJ_CHECK_LIB_WITH_PREFIX([/usr],
105       [$1],
106       [$2],
107       [$3],
108       [__opj_have_dep="yes"],
109       [__opj_have_dep="no"])
110 fi
111
112 if ! test "x${__opj_have_dep}" = "xyes" ; then
113    OPJ_CHECK_LIB_WITH_PREFIX([/usr/local],
114       [$1],
115       [$2],
116       [$3],
117       [__opj_have_dep="yes"],
118       [__opj_have_dep="no"])
119 fi
120
121 if ! test "x${__opj_have_dep}" = "xyes" ; then
122    OPJ_CHECK_LIB_WITH_PREFIX([/opt/local],
123       [$1],
124       [$2],
125       [$3],
126       [__opj_have_dep="yes"],
127       [__opj_have_dep="no"])
128 fi
129
130 AC_ARG_VAR(UP[_CFLAGS], [preprocessor flags for lib$2])
131 AC_SUBST(UP[_CFLAGS])
132 AC_ARG_VAR(UP[_LIBS], [linker flags for lib$2])
133 AC_SUBST(UP[_LIBS])
134
135 AS_IF([test "x${__opj_have_dep}" = "xyes"], [$4], [$5])
136
137 m4_popdef([UP])
138
139 ])