diff --git a/.gitignore b/.gitignore index da9b99325d..32e6e3fceb 100644 --- a/.gitignore +++ b/.gitignore @@ -37,7 +37,6 @@ mkinstalldirs py-compile registry.* coverage-report.txt -gst-element-check.m4 .deps .libs *~ @@ -50,4 +49,4 @@ Build *.ipch *.sdf *.opensdf -*.DS_Store \ No newline at end of file +*.DS_Store diff --git a/Makefile.am b/Makefile.am index c8fe12a8e6..900342bb95 100644 --- a/Makefile.am +++ b/Makefile.am @@ -30,7 +30,7 @@ include $(top_srcdir)/common/win32.mak EXTRA_DIST = \ gstreamer.spec gstreamer.spec.in \ - gst-element-check.m4.in \ + gst-element-check.m4 \ configure.ac autogen.sh depcomp \ MAINTAINERS ABOUT-NLS RELEASE gstreamer.doap \ scripts/gst-uninstalled \ @@ -153,7 +153,7 @@ endif check: $(CHECK_EXPORTS) check-enum-gettypes gst-element-check-@GST_API_VERSION@.m4: gst-element-check.m4 - $(AM_V_GEN)cp gst-element-check.m4 gst-element-check-@GST_API_VERSION@.m4 + $(AM_V_GEN)cp $(srcdir)/gst-element-check.m4 gst-element-check-@GST_API_VERSION@.m4 # cruft: plugins that have been merged or moved or renamed diff --git a/configure.ac b/configure.ac index 1801641e4d..5bbaa5e9cd 100644 --- a/configure.ac +++ b/configure.ac @@ -796,7 +796,6 @@ pkgconfig/gstreamer-controller.pc pkgconfig/gstreamer-controller-uninstalled.pc pkgconfig/gstreamer-net.pc pkgconfig/gstreamer-net-uninstalled.pc -gst-element-check.m4 gstreamer.spec ) diff --git a/gst-element-check.m4 b/gst-element-check.m4 new file mode 100644 index 0000000000..49ddc61ce4 --- /dev/null +++ b/gst-element-check.m4 @@ -0,0 +1,33 @@ +dnl Perform a check for a GStreamer element using gst-inspect-x.y +dnl +dnl GST_ELEMENT_CHECK(ELEMENT-NAME, MIN-VERSION, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) +dnl +dnl ELEMENT-NAME : element factory name (mandatory) +dnl MIN-VERSION : minimum version required, e.g. 1.0 or 1.0.5 (mandatory) +dnl ACTION-IF_FOUND : action if element exists and is of the desired version +dnl ACTION-IF-NOT-FOUND : action if element does not exist or is too old +dnl +dnl gstapiversion=`echo $2 | tr '.' '\n' | head -n 2 | tr '\n' '.' | sed 's/\.$//'` + +AC_DEFUN([GST_ELEMENT_CHECK], +[ + AC_REQUIRE([PKG_PROG_PKG_CONFIG]) + + gstapiversion=`echo "$2" | while IFS=. read a b; do echo "$a.0"; done` + gsttoolsdir=`$PKG_CONFIG --variable=toolsdir gstreamer-$gstapiversion` + if test "x$gsttoolsdir" != "x"; then + gstinspect="$gsttoolsdir/gst-inspect-$gstapiversion" + AC_MSG_CHECKING(GStreamer $gstapiversion element $1 >= $2) + if [ $gstinspect --exists --atleast-version=$2 $1 ]; then + AC_MSG_RESULT([found]) + $2 + else + if [ $gstinspect --exists $1 ]; then + AC_MSG_RESULT([found, but too old]) + else + AC_MSG_RESULT([not found]) + fi + $3 + fi + fi +]) diff --git a/gst-element-check.m4.in b/gst-element-check.m4.in deleted file mode 100644 index e144490e3c..0000000000 --- a/gst-element-check.m4.in +++ /dev/null @@ -1,23 +0,0 @@ -dnl Perform a check for a GStreamer element using gst-inspect -dnl Thomas Vander Stichele -dnl Last modification: 25/01/2005 - -dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) - -AC_DEFUN([AM_GST_ELEMENT_CHECK], -[ - if test "x$GST_INSPECT" = "x"; then - AC_CHECK_PROG(GST_INSPECT, gst-inspect-@GST_API_VERSION@, gst-inspect-@GST_API_VERSION@, []) - fi - - if test "x$GST_INSPECT" != "x"; then - AC_MSG_CHECKING(GStreamer @GST_API_VERSION@ element $1) - if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then - AC_MSG_RESULT(found.) - $2 - else - AC_MSG_RESULT(not found.) - $3 - fi - fi -])