remove deprecated v1 style function j2k_create_decompress and jp2_create_decompress
[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_LDFLAGS=${LDFLAGS}
25 save_LIBS=${LIBS}
26
27 if test "x${__opj_prefix}" = "x" ; then
28    CPPFLAGS="${CPPFLAGS} $UP[_CFLAGS]"
29    LDFLAGS="${LDFLAGS} $UP[_LIBS]"
30 else
31    CPPFLAGS="${CPPFLAGS} -I${__opj_prefix}/include"
32    LDFLAGS="${LDFLAGS} -L${__opj_prefix}/lib"
33    LIBS="${LIBS} -l${__opj_lib}"
34 fi
35
36 AC_LINK_IFELSE(
37    [AC_LANG_PROGRAM(
38        [[
39 #include <${__opj_header}>
40        ]],
41        [[
42 ${__opj_func}();
43        ]])],
44        [__opj_have_dep="yes"],
45        [__opj_have_dep="no"])
46
47 CPPFLAGS=${save_CPPFLAGS}
48 LDFLAGS=${save_LDFLAGS}
49 LIBS=${save_LIBS}
50
51 if test "x${__opj_prefix}" = "x" ; then
52    AC_MSG_CHECKING([whether ]UP[ library is available in standard or predefined directories])
53 else
54    AC_MSG_CHECKING([whether ]UP[ library is available in ${__opj_prefix}])
55 fi
56 AC_MSG_RESULT([${__opj_have_dep}])
57
58 if test "x${__opj_have_dep}" = "xyes" && ! test "x${__opj_prefix}" = "x"; then
59    if test "x${UP[]_CFLAGS}" = "x" ; then
60       UP[]_CFLAGS="-I${__opj_prefix}/include"
61    fi
62    if test "x${UP[]_LIBS}" = "x" ; then
63       UP[]_LIBS="-L${__opj_prefix}/lib -l${__opj_lib}"
64    fi
65 fi
66
67 AS_IF([test "x${__opj_have_dep}" = "xyes"], [$5], [$6])
68
69 m4_popdef([UP])
70 m4_popdef([DOWN])
71
72 ])
73
74 dnl Macro that check if a library is in a set of directories.
75
76 dnl Usage: OPJ_CHECK_LIB(header, lib, func [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
77
78 AC_DEFUN([OPJ_CHECK_LIB],
79 [
80
81 m4_pushdef([UP], m4_toupper([$2]))
82
83 __opj_have_dep="no"
84
85 OPJ_CHECK_LIB_WITH_PREFIX([],
86    [$1],
87    [$2],
88    [$3],
89    [__opj_have_dep="yes"],
90    [__opj_have_dep="no"])
91
92 if ! test "x${__opj_have_dep}" = "xyes" ; then
93    OPJ_CHECK_LIB_WITH_PREFIX([/usr],
94       [$1],
95       [$2],
96       [$3],
97       [__opj_have_dep="yes"],
98       [__opj_have_dep="no"])
99 fi
100
101 if ! test "x${__opj_have_dep}" = "xyes" ; then
102    OPJ_CHECK_LIB_WITH_PREFIX([/usr/local],
103       [$1],
104       [$2],
105       [$3],
106       [__opj_have_dep="yes"],
107       [__opj_have_dep="no"])
108 fi
109
110 if ! test "x${__opj_have_dep}" = "xyes" ; then
111    OPJ_CHECK_LIB_WITH_PREFIX([/opt/local],
112       [$1],
113       [$2],
114       [$3],
115       [__opj_have_dep="yes"],
116       [__opj_have_dep="no"])
117 fi
118
119 AC_ARG_VAR(UP[_CFLAGS], [preprocessor flags for lib$2])
120 AC_SUBST(UP[_CFLAGS])
121 AC_ARG_VAR(UP[_LIBS], [linker flags for lib$2])
122 AC_SUBST(UP[_LIBS])
123
124 AS_IF([test "x${__opj_have_dep}" = "xyes"], [$4], [$5])
125
126 m4_popdef([UP])
127
128 ])