| dnl pkg-config-based checks for GStreamer modules and dependency modules |
| |
| dnl generic: |
| dnl AG_GST_PKG_CHECK_MODULES([PREFIX], [WHICH], [REQUIRED]) |
| dnl sets HAVE_[$PREFIX], [$PREFIX]_* |
| dnl AG_GST_CHECK_MODULES([PREFIX], [MODULE], [MINVER], [NAME], [REQUIRED]) |
| dnl sets HAVE_[$PREFIX], [$PREFIX]_* |
| |
| dnl specific: |
| dnl AG_GST_CHECK_GST([MAJMIN], [MINVER], [REQUIRED]) |
| dnl also sets/ACSUBSTs GST_TOOLS_DIR and GST_PLUGINS_DIR |
| dnl AG_GST_CHECK_GST_BASE([MAJMIN], [MINVER], [REQUIRED]) |
| dnl AG_GST_CHECK_GST_CONTROLLER([MAJMIN], [MINVER], [REQUIRED]) |
| dnl AG_GST_CHECK_GST_NET([MAJMIN], [MINVER], [REQUIRED]) |
| dnl AG_GST_CHECK_GST_CHECK([MAJMIN], [MINVER], [REQUIRED]) |
| dnl AG_GST_CHECK_GST_PLUGINS_BASE([MAJMIN], [MINVER], [REQUIRED]) |
| dnl also sets/ACSUBSTs GSTPB_PLUGINS_DIR |
| |
| AC_DEFUN([AG_GST_PKG_CHECK_MODULES], |
| [ |
| which="[$2]" |
| dnl not required by default, since we use this mostly for plugin deps |
| required=ifelse([$3], , "no", [$3]) |
| |
| PKG_CHECK_MODULES([$1], $which, |
| [ |
| HAVE_[$1]="yes" |
| ], |
| [ |
| HAVE_[$1]="no" |
| if test "x$required" = "xyes"; then |
| AC_MSG_ERROR($[$1]_PKG_ERRORS) |
| else |
| AC_MSG_NOTICE($[$1]_PKG_ERRORS) |
| fi |
| ]) |
| |
| dnl AC_SUBST of CFLAGS and LIBS was not done before automake 1.7 |
| dnl It gets done automatically in automake >= 1.7, which we now require |
| ])) |
| |
| AC_DEFUN([AG_GST_CHECK_MODULES], |
| [ |
| module=[$2] |
| minver=[$3] |
| name="[$4]" |
| required=ifelse([$5], , "yes", [$5]) dnl required by default |
| |
| PKG_CHECK_MODULES([$1], $module >= $minver, |
| [ |
| HAVE_[$1]="yes" |
| ], |
| [ |
| HAVE_[$1]="no" |
| AC_MSG_NOTICE($[$1]_PKG_ERRORS) |
| if test "x$required" = "xyes"; then |
| AC_MSG_ERROR([no $module >= $minver ($name) found]) |
| else |
| AC_MSG_NOTICE([no $module >= $minver ($name) found]) |
| fi |
| ]) |
| |
| dnl AC_SUBST of CFLAGS and LIBS was not done before automake 1.7 |
| dnl It gets done automatically in automake >= 1.7, which we now require |
| ])) |
| |
| AC_DEFUN([AG_GST_CHECK_GST], |
| [ |
| AG_GST_CHECK_MODULES(GST, gstreamer-[$1], [$2], [GStreamer], [$3]) |
| dnl allow setting before calling this macro to override |
| if test -z $GST_TOOLS_DIR; then |
| GST_TOOLS_DIR=`$PKG_CONFIG --variable=toolsdir gstreamer-[$1]` |
| if test -z $GST_TOOLS_DIR; then |
| AC_MSG_ERROR( |
| [no tools dir set in GStreamer pkg-config file, core upgrade needed.]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer tools in $GST_TOOLS_DIR]) |
| AC_SUBST(GST_TOOLS_DIR) |
| |
| dnl check for where core plug-ins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GST_PLUGINS_DIR; then |
| GST_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-[$1]` |
| if test -z $GST_PLUGINS_DIR; then |
| AC_MSG_ERROR( |
| [no pluginsdir set in GStreamer pkg-config file, core upgrade needed.]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer plug-ins in $GST_PLUGINS_DIR]) |
| AC_SUBST(GST_PLUGINS_DIR) |
| ]) |
| |
| AC_DEFUN([AG_GST_CHECK_GST_BASE], |
| [ |
| AG_GST_CHECK_MODULES(GST_BASE, gstreamer-base-[$1], [$2], |
| [GStreamer Base Libraries], [$3]) |
| ]) |
| |
| AC_DEFUN([AG_GST_CHECK_GST_CONTROLLER], |
| [ |
| AG_GST_CHECK_MODULES(GST_CONTROLLER, gstreamer-controller-[$1], [$2], |
| [GStreamer Controller Library], [$3]) |
| ]) |
| |
| AC_DEFUN([AG_GST_CHECK_GST_NET], |
| [ |
| AG_GST_CHECK_MODULES(GST_NET, gstreamer-net-[$1], [$2], |
| [GStreamer Network Library], [$3]) |
| ]) |
| |
| AC_DEFUN([AG_GST_CHECK_GST_CHECK], |
| [ |
| AG_GST_CHECK_MODULES(GST_CHECK, gstreamer-check-[$1], [$2], |
| [GStreamer Check unittest Library], [$3]) |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_UNINSTALLED_SETUP([ACTION-IF-UNINSTALLED], [ACTION-IF-NOT]) |
| dnl |
| dnl ACTION-IF-UNINSTALLED (optional) extra actions to perform if the setup |
| dnl is an uninstalled setup |
| dnl ACTION-IF-NOT (optional) extra actions to perform if the setup |
| dnl is not an uninstalled setup |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_UNINSTALLED_SETUP], |
| [ |
| AC_MSG_CHECKING([whether this is an uninstalled GStreamer setup]) |
| AC_CACHE_VAL(gst_cv_is_uninstalled_setup,[ |
| gst_cv_is_uninstalled_setup=no |
| if (set -u; : $GST_PLUGIN_SYSTEM_PATH) 2>/dev/null ; then |
| if test -z "$GST_PLUGIN_SYSTEM_PATH" \ |
| -a -n "$GST_PLUGIN_SCANNER" \ |
| -a -n "$GST_PLUGIN_PATH" \ |
| -a -n "$GST_REGISTRY" \ |
| -a -n "$DYLD_LIBRARY_PATH" \ |
| -a -n "$LD_LIBRARY_PATH"; then |
| gst_cv_is_uninstalled_setup=yes; |
| fi |
| fi |
| ]) |
| AC_MSG_RESULT($gst_cv_is_uninstalled_setup) |
| if test "x$gst_cv_is_uninstalled_setup" = "xyes"; then |
| ifelse([$1], , :, [$1]) |
| else |
| ifelse([$2], , :, [$2]) |
| fi |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_GST_PLUGINS_BASE([GST-API_VERSION], [MIN-VERSION], [REQUIRED]) |
| dnl |
| dnl Sets GST_PLUGINS_BASE_CFLAGS and GST_PLUGINS_BASE_LIBS. |
| dnl |
| dnl Also sets GSTPB_PLUGINS_DIR (and for consistency also GST_PLUGINS_BASE_DIR) |
| dnl for use in Makefile.am. This is only really needed/useful in uninstalled |
| dnl setups, since in an installed setup all plugins will be found in |
| dnl GST_PLUGINS_DIR anyway. |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BASE], |
| [ |
| AG_GST_CHECK_MODULES(GST_PLUGINS_BASE, gstreamer-plugins-base-[$1], [$2], |
| [GStreamer Base Plugins], [$3]) |
| |
| if test "x$HAVE_GST_PLUGINS_BASE" = "xyes"; then |
| dnl check for where base plugins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GSTPB_PLUGINS_DIR; then |
| GSTPB_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-base-[$1]` |
| if test -z $GSTPB_PLUGINS_DIR; then |
| AC_MSG_ERROR( |
| [no pluginsdir set in GStreamer Base Plugins pkg-config file]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR]) |
| GST_PLUGINS_BASE_DIR="$GSTPB_PLUGINS_DIR/gst:$GSTPB_PLUGINS_DIR/sys:$GSTPB_PLUGINS_DIR/ext" |
| AC_SUBST(GST_PLUGINS_BASE_DIR) |
| AC_SUBST(GSTPB_PLUGINS_DIR) |
| fi |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_GST_PLUGINS_GOOD([GST-API_VERSION], [MIN-VERSION]) |
| dnl |
| dnl Will set GST_PLUGINS_GOOD_DIR for use in Makefile.am. Note that this will |
| dnl only be set in an uninstalled setup, since -good ships no .pc file and in |
| dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_GOOD], |
| [ |
| AG_GST_CHECK_MODULES(GST_PLUGINS_GOOD, gstreamer-plugins-good-[$1], [$2], |
| [GStreamer Good Plugins], [no]) |
| |
| if test "x$HAVE_GST_PLUGINS_GOOD" = "xyes"; then |
| dnl check for where good plugins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GST_PLUGINS_GOOD_DIR; then |
| GST_PLUGINS_GOOD_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-good-[$1]` |
| if test -z $GST_PLUGINS_GOOD_DIR; then |
| AC_MSG_ERROR([no pluginsdir set in GStreamer Good Plugins pkg-config file]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer Good Plugins in $GST_PLUGINS_GOOD_DIR]) |
| GST_PLUGINS_GOOD_DIR="$GST_PLUGINS_GOOD_DIR/gst:$GST_PLUGINS_GOOD_DIR/sys:$GST_PLUGINS_GOOD_DIR/ext" |
| AC_SUBST(GST_PLUGINS_GOOD_DIR) |
| fi |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_GST_PLUGINS_UGLY([GST-API_VERSION], [MIN-VERSION]) |
| dnl |
| dnl Will set GST_PLUGINS_UGLY_DIR for use in Makefile.am. Note that this will |
| dnl only be set in an uninstalled setup, since -bad ships no .pc file and in |
| dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_UGLY], |
| [ |
| AG_GST_CHECK_MODULES(GST_PLUGINS_UGLY, gstreamer-plugins-ugly-[$1], [$2], |
| [GStreamer Ugly Plugins], [no]) |
| |
| if test "x$HAVE_GST_PLUGINS_UGLY" = "xyes"; then |
| dnl check for where ugly plugins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GST_PLUGINS_UGLY_DIR; then |
| GST_PLUGINS_UGLY_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ugly-[$1]` |
| if test -z $GST_PLUGINS_UGLY_DIR; then |
| AC_MSG_ERROR([no pluginsdir set in GStreamer Ugly Plugins pkg-config file]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer Ugly Plugins in $GST_PLUGINS_UGLY_DIR]) |
| GST_PLUGINS_UGLY_DIR="$GST_PLUGINS_UGLY_DIR/gst:$GST_PLUGINS_UGLY_DIR/sys:$GST_PLUGINS_UGLY_DIR/ext" |
| AC_SUBST(GST_PLUGINS_UGLY_DIR) |
| fi |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_GST_PLUGINS_BAD([GST-API_VERSION], [MIN-VERSION]) |
| dnl |
| dnl Will set GST_PLUGINS_BAD_DIR for use in Makefile.am. Note that this will |
| dnl only be set in an uninstalled setup, since -ugly ships no .pc file and in |
| dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BAD], |
| [ |
| AG_GST_CHECK_MODULES(GST_PLUGINS_BAD, gstreamer-plugins-bad-[$1], [$2], |
| [GStreamer Bad Plugins], [no]) |
| |
| if test "x$HAVE_GST_PLUGINS_BAD" = "xyes"; then |
| dnl check for where bad plugins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GST_PLUGINS_BAD_DIR; then |
| GST_PLUGINS_BAD_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-bad-[$1]` |
| if test -z $GST_PLUGINS_BAD_DIR; then |
| AC_MSG_ERROR([no pluginsdir set in GStreamer Bad Plugins pkg-config file]) |
| fi |
| fi |
| AC_MSG_NOTICE([using GStreamer Bad Plugins in $GST_PLUGINS_BAD_DIR]) |
| GST_PLUGINS_BAD_DIR="$GST_PLUGINS_BAD_DIR/gst:$GST_PLUGINS_BAD_DIR/sys:$GST_PLUGINS_BAD_DIR/ext" |
| AC_SUBST(GST_PLUGINS_BAD_DIR) |
| fi |
| ]) |
| |
| dnl =========================================================================== |
| dnl AG_GST_CHECK_GST_PLUGINS_LIBAV([GST-API_VERSION], [MIN-VERSION]) |
| dnl |
| dnl Will set GST_PLUGINS_LIBAV_DIR for use in Makefile.am. Note that this will |
| dnl only be set in an uninstalled setup, since -libav ships no .pc file and in |
| dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. |
| dnl =========================================================================== |
| AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_LIBAV], |
| [ |
| AG_GST_CHECK_MODULES(GST_PLUGINS_LIBAV, gstreamer-plugins-libav-[$1], [$2], |
| [GStreamer Libav Plugins], [no]) |
| |
| if test "x$HAVE_GST_PLUGINS_LIBAV" = "xyes"; then |
| dnl check for where libav plugins got installed |
| dnl this is used for unit tests |
| dnl allow setting before calling this macro to override |
| if test -z $GST_PLUGINS_LIBAV_DIR; then |
| GST_PLUGINS_LIBAV_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-libav-[$1]` |
| if test -z $GST_PLUGINS_LIBAV_DIR; then |
| AC_MSG_ERROR([no pluginsdir set in GStreamer Libav Plugins pkg-config file]) |
| fi |
| fi |
| GST_PLUGINS_LIBAV_DIR="$GST_PLUGINS_LIBAV_DIR/ext/libav" |
| AC_MSG_NOTICE([using GStreamer Libav Plugins in $GST_PLUGINS_LIBAV_DIR]) |
| AC_SUBST(GST_PLUGINS_LIBAV_DIR) |
| fi |
| ]) |