- CHECK_LIBHEADER macro, which is based on GST_CHECK_LIBHEADER the main difference...
[platform/upstream/gst-plugins-good.git] / m4 / check-libheader.m4
1 dnl
2 dnl CHECK-LIBHEADER(FEATURE-NAME, LIB-NAME, LIB-FUNCTION, HEADER-NAME,
3 dnl                 ACTION-IF-FOUND, ACTION-IF-NOT-FOUND,
4 dnl                 EXTRA-LDFLAGS, EXTRA-CPPFLAGS)
5 dnl
6 dnl FEATURE-NAME        - feature name; library and header files are treated
7 dnl                       as feature, which we look for
8 dnl LIB-NAME            - library name as in AC_CHECK_LIB macro
9 dnl LIB-FUNCTION        - library symbol as in AC_CHECK_LIB macro
10 dnl HEADER-NAME         - header file name as in AC_CHECK_HEADER
11 dnl ACTION-IF-FOUND     - when feature is found then execute given action
12 dnl ACTION-IF-NOT-FOUND - when feature is not found then execute given action
13 dnl EXTRA-LDFLAGS       - extra linker flags (-L or -l)
14 dnl EXTRA-CPPFLAGS      - extra C preprocessor flags, i.e. -I/usr/X11R6/include
15 dnl
16 dnl Based on GST_CHECK_LIBHEADER from gstreamer plugins 0.3.1.
17 dnl
18 AC_DEFUN(CHECK_LIBHEADER,
19 [
20   AC_CHECK_LIB([$2], [$3], HAVE_[$1]=yes, HAVE_[$1]=no, [$7])
21   check_libheader_feature_name=translit([$1], A-Z, a-z)
22
23   if test "x$HAVE_[$1]" = "xyes"; then
24
25     check_libheader_save_CPPFLAGS=$CPPFLAGS
26     CPPFLAGS="[$8] $CPPFLAGS"
27     AC_CHECK_HEADER([$4], :, HAVE_[$1]=no)
28     CPPFLAGS=$check_libheader_save_CPPFLAGS
29
30     if test "x$HAVE_[$1]" = "xyes"; then
31       dnl execute what needs to be
32       ifelse([$5], , :, [$5])
33       AC_MSG_NOTICE(feature $check_libheader_feature_name is found)
34     else
35       ifelse([$6], , :, [$6])
36     fi
37   else
38     AC_MSG_WARN($check_libheader_feature_name not found)
39   fi
40   AC_SUBST(HAVE_[$1])
41 ]
42 )