fa93086c4baf3cfab42dc2efbb6fe27d3b80907f
[platform/upstream/gstreamer.git] / m4 / gst-sid.m4
1 dnl FIXME: the longest macro for one of the small plugins ?
2 dnl there must be a way to make this simpler !
3 dnl sidplay stuff (taken from xmms)
4 AC_DEFUN(AC_FIND_FILE,
5
6   $3=NO
7   for i in $2; do
8     for j in $1; do
9       if test -r "$i/$j"; then
10         $3=$i
11         break 2
12       fi
13     done
14   done
15 ])
16
17 AC_DEFUN(AC_PATH_LIBSIDPLAY,
18 [
19 AC_MSG_CHECKING([for SIDPLAY includes and library])
20 ac_sidplay_cflags=NO
21 ac_sidplay_library=NO
22 sidplay_cflags=""
23 sidplay_library=""
24 AC_ARG_WITH(sidplay-includes,
25   [  --with-sidplay-includes=DIR
26                           where the sidplay includes are located],
27   [ac_sidplay_cflags="$withval"
28   ])
29
30 AC_ARG_WITH(sidplay-library,
31   [  --with-sidplay-library=DIR
32                           where the sidplay library is installed],
33   [ac_sidplay_library="$withval"
34   ])
35   
36 if test "$ac_sidplay_cflags" = NO || test "$ac_sidplay_library" = NO; then
37
38 #search common locations
39     
40 AC_CACHE_VAL(ac_cv_have_sidplay,
41 [
42 sidplay_incdirs="$ac_sidplay_cflags /usr/include /usr/local/include /usr/lib/sidplay/include /usr/local/lib/sidplay/include"
43 AC_FIND_FILE(sidplay/sidtune.h,$sidplay_incdirs,sidplay_foundincdir)
44 sidplay_libdirs="$ac_sidplay_library /usr/lib /usr/local/lib /usr/lib/sidplay /usr/local/lib/sidplay"
45 AC_FIND_FILE(libsidplay.so libsidplay.so.1 libsidplay.so.1.36 libsidplay.so.1.37,$sidplay_libdirs,sidplay_foundlibdir)
46 ac_sidplay_library=$sidplay_foundlibdir
47
48 if test "$ac_sidplay_cflags" = NO || test "$ac_sidplay_library" = NO; then
49   ac_cv_have_sidplay="have_sidplay=no"
50   ac_sidplay_notfound=""
51   if test "$ac_sidplay_cflags" = NO; then
52     if test "$ac_sidplay_library" = NO; then
53       ac_sidplay_notfound="(headers and library)";
54     else
55       ac_sidplay_notfound="(headers)";
56     fi
57   else
58     ac_sidplay_notfound="(library)";
59   fi
60   eval "$ac_cv_have_sidplay"
61   AC_MSG_RESULT([$have_sidplay])
62 else
63   have_sidplay=yes
64 fi
65       
66 ])  dnl AC_CACHE_VAL(ac_cv_have_sidplay,
67 else  
68   have_sidplay=yes
69 fi  dnl if (have_to_search)
70   
71 eval "$ac_cv_have_sidplay"
72 if test "$have_sidplay" != yes; then
73   AC_MSG_RESULT([$have_sidplay]);
74 else  
75   ac_cv_have_sidplay="have_sidplay=yes \
76     ac_sidplay_cflags=$ac_sidplay_cflags 
77 ac_sidplay_library=$ac_sidplay_library"
78   AC_MSG_RESULT([library $ac_sidplay_library, headers $ac_sidplay_cflags])
79
80   sidplay_library=$ac_sidplay_library
81   sidplay_cflags=$ac_sidplay_cflags
82   SIDPLAY_LIBS="-L$sidplay_library -lsidplay"
83   all_libraries="$SIDPLAY_LIBS $all_libraries"
84   SIDPLAY_CFLAGS="-I$sidplay_cflags"
85   all_includes="$SIDPLAY_CFLAGS $all_includes"
86 fi
87   
88 dnl Test compilation.
89   
90 AC_MSG_CHECKING([whether -lsidplay works])
91 ac_cxxflags_safe=$CXXFLAGS
92 ac_ldflags_safe=$LDFLAGS
93 ac_libs_safe=$LIBS
94   
95 CXXFLAGS="$CXXFLAGS -I$sidplay_cflags"
96 LDFLAGS="$LDFLAGS -L$sidplay_library"
97 LIBS="-lsidplay"
98
99 AC_CACHE_VAL(ac_cv_sidplay_works,
100 [
101
102   AC_LANG_CPLUSPLUS
103   AC_TRY_RUN([
104     #include <sidplay/player.h>
105   
106     int main()
107     {
108       sidTune tune = sidTune(0);
109     }
110     ],
111     ac_cv_sidplay_works="yes",
112     ac_cv_sidplay_works="no",
113     ac_cv_sidplay_works="no")
114   AC_LANG_C
115 ])
116     
117 CXXFLAGS="$ac_cxxflags_safe"
118 LDFLAGS="$ac_ldflags_safe"
119 LIBS="$ac_libs_safe"
120       
121 AC_MSG_RESULT([$ac_cv_sidplay_works])
122
123   have_sidplay=no
124 fi
125   
126 AC_SUBST(SIDPLAY_CFLAGS)  
127 AC_SUBST(SIDPLAY_LIBS)
128       
129 AC_SUBST(sidplay_library)
130 AC_SUBST(sidplay_cflags)
131   
132 ])
133