summaryrefslogtreecommitdiffstats
path: root/m4/gst-sid.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/gst-sid.m4')
-rw-r--r--m4/gst-sid.m4133
1 files changed, 133 insertions, 0 deletions
diff --git a/m4/gst-sid.m4 b/m4/gst-sid.m4
new file mode 100644
index 00000000..fa93086c
--- /dev/null
+++ b/m4/gst-sid.m4
@@ -0,0 +1,133 @@
+dnl FIXME: the longest macro for one of the small plugins ?
+dnl there must be a way to make this simpler !
+dnl sidplay stuff (taken from xmms)
+AC_DEFUN(AC_FIND_FILE,
+[
+ $3=NO
+ for i in $2; do
+ for j in $1; do
+ if test -r "$i/$j"; then
+ $3=$i
+ break 2
+ fi
+ done
+ done
+])
+
+AC_DEFUN(AC_PATH_LIBSIDPLAY,
+[
+AC_MSG_CHECKING([for SIDPLAY includes and library])
+ac_sidplay_cflags=NO
+ac_sidplay_library=NO
+sidplay_cflags=""
+sidplay_library=""
+AC_ARG_WITH(sidplay-includes,
+ [ --with-sidplay-includes=DIR
+ where the sidplay includes are located],
+ [ac_sidplay_cflags="$withval"
+ ])
+
+AC_ARG_WITH(sidplay-library,
+ [ --with-sidplay-library=DIR
+ where the sidplay library is installed],
+ [ac_sidplay_library="$withval"
+ ])
+
+if test "$ac_sidplay_cflags" = NO || test "$ac_sidplay_library" = NO; then
+
+#search common locations
+
+AC_CACHE_VAL(ac_cv_have_sidplay,
+[
+sidplay_incdirs="$ac_sidplay_cflags /usr/include /usr/local/include /usr/lib/sidplay/include /usr/local/lib/sidplay/include"
+AC_FIND_FILE(sidplay/sidtune.h,$sidplay_incdirs,sidplay_foundincdir)
+sidplay_libdirs="$ac_sidplay_library /usr/lib /usr/local/lib /usr/lib/sidplay /usr/local/lib/sidplay"
+AC_FIND_FILE(libsidplay.so libsidplay.so.1 libsidplay.so.1.36 libsidplay.so.1.37,$sidplay_libdirs,sidplay_foundlibdir)
+ac_sidplay_library=$sidplay_foundlibdir
+
+if test "$ac_sidplay_cflags" = NO || test "$ac_sidplay_library" = NO; then
+ ac_cv_have_sidplay="have_sidplay=no"
+ ac_sidplay_notfound=""
+ if test "$ac_sidplay_cflags" = NO; then
+ if test "$ac_sidplay_library" = NO; then
+ ac_sidplay_notfound="(headers and library)";
+ else
+ ac_sidplay_notfound="(headers)";
+ fi
+ else
+ ac_sidplay_notfound="(library)";
+ fi
+ eval "$ac_cv_have_sidplay"
+ AC_MSG_RESULT([$have_sidplay])
+else
+ have_sidplay=yes
+fi
+
+]) dnl AC_CACHE_VAL(ac_cv_have_sidplay,
+else
+ have_sidplay=yes
+fi dnl if (have_to_search)
+
+eval "$ac_cv_have_sidplay"
+if test "$have_sidplay" != yes; then
+ AC_MSG_RESULT([$have_sidplay]);
+else
+ ac_cv_have_sidplay="have_sidplay=yes \
+ ac_sidplay_cflags=$ac_sidplay_cflags
+ac_sidplay_library=$ac_sidplay_library"
+ AC_MSG_RESULT([library $ac_sidplay_library, headers $ac_sidplay_cflags])
+
+ sidplay_library=$ac_sidplay_library
+ sidplay_cflags=$ac_sidplay_cflags
+ SIDPLAY_LIBS="-L$sidplay_library -lsidplay"
+ all_libraries="$SIDPLAY_LIBS $all_libraries"
+ SIDPLAY_CFLAGS="-I$sidplay_cflags"
+ all_includes="$SIDPLAY_CFLAGS $all_includes"
+fi
+
+dnl Test compilation.
+
+AC_MSG_CHECKING([whether -lsidplay works])
+ac_cxxflags_safe=$CXXFLAGS
+ac_ldflags_safe=$LDFLAGS
+ac_libs_safe=$LIBS
+
+CXXFLAGS="$CXXFLAGS -I$sidplay_cflags"
+LDFLAGS="$LDFLAGS -L$sidplay_library"
+LIBS="-lsidplay"
+
+AC_CACHE_VAL(ac_cv_sidplay_works,
+[
+
+ AC_LANG_CPLUSPLUS
+ AC_TRY_RUN([
+ #include <sidplay/player.h>
+
+ int main()
+ {
+ sidTune tune = sidTune(0);
+ }
+ ],
+ ac_cv_sidplay_works="yes",
+ ac_cv_sidplay_works="no",
+ ac_cv_sidplay_works="no")
+ AC_LANG_C
+])
+
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+AC_MSG_RESULT([$ac_cv_sidplay_works])
+
+ have_sidplay=no
+fi
+
+AC_SUBST(SIDPLAY_CFLAGS)
+AC_SUBST(SIDPLAY_LIBS)
+
+AC_SUBST(sidplay_library)
+AC_SUBST(sidplay_cflags)
+
+])
+