c7396cb176fe282b9c4f81118b9c1d3c6592f0c4
[platform/upstream/gst-plugins-good.git] / m4 / a52.m4
1 dnl
2 dnl A52_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(A52_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     check_libheader_save_CPPFLAGS=$CPPFLAGS
25     CPPFLAGS="[$8] $CPPFLAGS"
26     AC_CHECK_HEADER([$4], :, HAVE_[$1]=no)
27     CPPFLAGS=$check_libheader_save_CPPFLAGS
28   fi
29
30   if test "x$HAVE_[$1]" = "xyes"; then
31     ifelse([$5], , :, [$5])
32   else
33     ifelse([$6], , :, [$6])
34   fi
35 ]
36 )
37
38 dnl
39 dnl AC_CHECK_A52DEC(ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
40 dnl
41 dnl ACTION-IF-FOUND     - when feature is found then execute given action
42 dnl ACTION-IF-NOT-FOUND - when feature is not found then execute given action
43 dnl
44 dnl Defines HAVE_A52DEC to yes if liba52 is found
45 dnl
46 dnl CFLAGS and LDFLAGS for the library are stored in A52DEC_CFLAGS and
47 dnl A52DEC_LIBS, respectively
48 dnl
49 dnl Based on GST_CHECK_A52DEC from gstreamer plugins 0.3.3.1
50 dnl Thomas Vander Stichele <thomas@apestaart.org>, Andy Wingo <wingo@pobox.com>
51 dnl
52 AC_DEFUN(AC_CHECK_A52DEC, 
53 [dnl
54 AC_ARG_WITH(a52dec-prefix,
55     AC_HELP_STRING([--with-a52dec-prefix=PFX],
56                    [prefix where a52dec is installed (optional)]),
57     a52dec_config_prefix="$withval", a52dec_config_prefix="")
58
59 if test x$a52dec_config_prefix = x ; then
60     A52_CHECK_LIBHEADER(A52DEC, a52, a52_init, a52dec/a52.h,
61         A52DEC_LIBS="-la52 -lm", , -lm)
62 else
63     A52_CHECK_LIBHEADER(A52DEC, a52, a52_init, a52dec/a52.h, [
64             A52DEC_LIBS="-la52 -L$a52dec_config_prefix/lib -lm"
65             A52DEC_CFLAGS="-I$a52dec_config_prefix/include"
66         ], , -L$a52dec_config_prefix/lib, -I$a52dec_config_prefix/include)
67 fi
68
69 if test $HAVE_A52DEC = "yes"; then
70     ac_save_CFLAGS="$CFLAGS"
71     ac_save_LIBS="$LIBS"
72     CFLAGS="$CFLAGS $A52DEC_CFLAGS"
73     LIBS="$A52DEC_LIBS $LIBS"
74     AC_TRY_RUN([
75 #include <inttypes.h>
76 #include <a52dec/a52.h>
77
78 int 
79 main ()
80 {
81   a52_state_t *state;
82   return 0;
83 }
84         ],, HAVE_A52DEC=no, [echo $ac_n "cross compiling; assumed OK... $ac_c"])
85
86     if test HAVE_A52DEC = "no"; then
87         echo "*** Your a52dec is borked somehow. Please update to 0.7.3."
88     else
89         AC_TRY_RUN([
90 #include <inttypes.h>
91 #include <a52dec/a52.h>
92
93 int 
94 main ()
95 {
96   int i = sizeof (a52_state_t);
97   return 0;
98 }
99             ], HAVE_A52DEC=no,, [echo $ac_n "cross compiling; assumed OK... $ac_c"])
100
101         if test HAVE_A52DEC = "no"; then
102             echo "*** Your a52dec is too old. Please update to 0.7.3."
103         fi
104     fi
105     CFLAGS="$ac_save_CFLAGS"
106     LIBS="$ac_save_LIBS"
107 fi
108
109 if test HAVE_A52DEC = "no"; then
110     A52DEC_CFLAGS=""
111     A52DEC_LIBS=""
112 fi
113
114 if test "x$HAVE_A52DEC" = "xyes"; then
115   ifelse([$1], , :, [$1])
116 else
117   ifelse([$2], , :, [$2])
118 fi
119
120 AC_SUBST(A52DEC_CFLAGS)
121 AC_SUBST(A52DEC_LIBS)
122 ])