diff options
-rw-r--r-- | common/gst-autogen.sh | 24 | ||||
-rw-r--r-- | common/gst.supp | 338 | ||||
-rw-r--r-- | common/gtk-doc.mak | 15 | ||||
-rw-r--r-- | common/m4/as-compiler-flag.m4 | 35 | ||||
-rw-r--r-- | common/m4/gst-arch.m4 | 2 | ||||
-rw-r--r-- | common/m4/gst-args.m4 | 85 | ||||
-rw-r--r-- | common/m4/gst-default.m4 | 82 | ||||
-rw-r--r-- | common/m4/gst-error.m4 | 104 | ||||
-rw-r--r-- | common/m4/gst-feature.m4 | 31 | ||||
-rw-r--r-- | common/m4/gst-glib2.m4 | 5 | ||||
-rw-r--r-- | common/m4/gst-plugin-docs.m4 | 32 | ||||
-rw-r--r-- | common/m4/gst-valgrind.m4 | 4 |
12 files changed, 643 insertions, 114 deletions
diff --git a/common/gst-autogen.sh b/common/gst-autogen.sh index 7b312124..ae60f7e1 100644 --- a/common/gst-autogen.sh +++ b/common/gst-autogen.sh @@ -227,31 +227,18 @@ autogen_options () echo "+ debug output enabled" shift ;; - --prefix=*) - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$optarg" - echo "+ passing --prefix=$optarg to configure" - shift - ;; - --prefix) - shift - echo "DEBUG: $1" - CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT --prefix=$1" - echo "+ passing --prefix=$1 to configure" - shift - ;; - -h|--help) echo "autogen.sh (autogen options) -- (configure options)" echo "autogen.sh help options: " echo " --noconfigure don't run the configure script" echo " --nocheck don't do version checks" echo " --debug debug the autogen process" - echo " --prefix will be passed on to configure" echo echo " --with-autoconf PATH use autoconf in PATH" echo " --with-automake PATH use automake in PATH" echo - echo "to pass options to configure, put them as arguments after -- " + echo "Any argument either not in the above list or after a '--' will be " + echo "passed to ./configure." exit 1 ;; --with-automake=*) @@ -266,13 +253,12 @@ autogen_options () CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF" shift ;; - --disable*|--enable*|--with*) - echo "+ passing option $1 to configure" + --) shift ; break ;; + *) + echo "+ passing argument $1 to configure" CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1" shift ;; - --) shift ; break ;; - *) echo "- ignoring unknown autogen.sh argument $1"; shift ;; esac done diff --git a/common/gst.supp b/common/gst.supp index ce0daa25..9b2a3a26 100644 --- a/common/gst.supp +++ b/common/gst.supp @@ -317,6 +317,321 @@ fun:setup_messaging } +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:_dl_sym + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlsym + fun:g_module_symbol + fun:g_module_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:iconv_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:iconv_open +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + <suppression for glibc 2.7 on debian> + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +# suppression for a glibc bug: +# http://valgrind.org/docs/manual/faq.html#faq.exit_errors> +{ + <Workaround for a glibc bug> + Memcheck:Free + fun:free + obj:*libc-*.so + fun:__libc_freeres + fun:* + fun:_Exit +} + # valgrind doesn't allow me to specify a suppression for Addr1, Addr2, Addr4 # as Addr*, so 3 copies for that; and then 2 of each for that pesky memcpy { @@ -1574,31 +1889,31 @@ <GLib caching the home dir> Memcheck:Leak fun:malloc - obj:/lib/libc-*.so + obj:*libc-*.so fun:__nss_database_lookup obj:* obj:* fun:getpwnam_r - fun:g_get_any_init_do + obj:/usr/lib*/libglib-2.0.so.* fun:g_get_home_dir } { <GLib caching the user name> Memcheck:Leak fun:malloc - obj:/lib/libc-*.so + obj:*libc-*.so fun:__nss_database_lookup obj:* obj:* fun:getpwnam_r - fun:g_get_any_init_do + obj:/usr/lib*/libglib-2.0.so.* fun:g_get_user_name } { <GLib caching the tmp dir> Memcheck:Leak fun:malloc - obj:/lib/libc-*.so + obj:*libc-*.so fun:__nss_database_lookup obj:* obj:* @@ -1607,6 +1922,19 @@ fun:g_get_tmp_dir } +{ + <GLib caching the host name> + Memcheck:Leak + fun:malloc + obj:*libc-*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getpwnam_r + obj:/usr/lib*/libglib-2.0.so.0.* + fun:g_get_host_name +} + ## Some Fontconfig errors. { diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak index ea203d87..1c9ece12 100644 --- a/common/gtk-doc.mak +++ b/common/gtk-doc.mak @@ -40,7 +40,12 @@ SCANOBJ_FILES = \ .libs/$(DOC_MODULE)-scan.o \ $(DOC_MODULE).signals -CLEANFILES = $(SCANOBJ_FILES) $(DOC_MODULE)-unused.txt $(DOC_STAMPS) +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) if ENABLE_GTK_DOC all-local: html-build.stamp @@ -103,7 +108,7 @@ tmpl.stamp: tmpl-build.stamp #### xml #### -### FIXME: make this error out again when docs are fixed for 0.9 +### FIXME: make this error out again when docs are complete sgml-build.stamp: tmpl.stamp $(CFILE_GLOB) @echo '*** Building XML ***' gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log @@ -125,6 +130,9 @@ html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) cp -pr xml html cp ../version.entities html cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) + mv html/index.sgml html/index.sgml.bak + $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml + rm -f html/index.sgml.bak rm -f html/$(DOC_MAIN_SGML_FILE) rm -rf html/xml rm -f html/version.entities @@ -151,8 +159,7 @@ maintainer-clean-local: clean distclean-local: clean rm -f $(DOC_MODULE)-decl-list.txt rm -f $(DOC_MODULE)-decl.txt - rm -f $(DOC_MODULE)-undocumented.txt - rm -f $(DOC_MODULE)-unused.txt + rm -f $(REPORT_FILES) rm -rf tmpl/*.sgml.bak rm -f $(DOC_MODULE).hierarchy rm -f *.stamp || true diff --git a/common/m4/as-compiler-flag.m4 b/common/m4/as-compiler-flag.m4 index aba31b1c..882a4c7f 100644 --- a/common/m4/as-compiler-flag.m4 +++ b/common/m4/as-compiler-flag.m4 @@ -3,8 +3,7 @@ dnl as-compiler-flag.m4 0.1.0 dnl autostars m4 macro for detection of compiler flags dnl David Schleef <ds@schleef.org> - -dnl $Id: as-compiler-flag.m4,v 1.1 2004/06/01 09:33:45 thomasvs Exp $ +dnl Tim-Philipp Müller <tim centricular net> dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) dnl Tries to compile with the given CFLAGS. @@ -31,3 +30,35 @@ AC_DEFUN([AS_COMPILER_FLAG], AC_MSG_RESULT([$flag_ok]) ]) +dnl AS_CXX_COMPILER_FLAG(CPPFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CPPFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_CXX_COMPILER_FLAG], +[ + AC_REQUIRE([AC_PROG_CXX]) + + AC_MSG_CHECKING([to see if c++ compiler understands $1]) + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $1" + + AC_LANG_PUSH(C++) + + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + $2 + true + else + $3 + true + fi + + AC_LANG_POP(C++) + + AC_MSG_RESULT([$flag_ok]) +]) + diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4 index 8a32bd23..6eadaf5c 100644 --- a/common/m4/gst-arch.m4 +++ b/common/m4/gst-arch.m4 @@ -91,7 +91,7 @@ AC_DEFUN([AG_GST_UNALIGNED_ACCESS], [ _AS_ECHO_N([(blacklisted) ]) as_cv_unaligned_access=no ;; - i?86*|powerpc*|m68k*|cris*) + i?86*|x86_64|amd64|powerpc*|m68k*|cris*) _AS_ECHO_N([(whitelisted) ]) as_cv_unaligned_access=yes ;; diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4 index a326f96f..56af66a9 100644 --- a/common/m4/gst-args.m4 +++ b/common/m4/gst-args.m4 @@ -12,6 +12,8 @@ dnl AG_GST_ARG_WITH_PACKAGE_NAME dnl AG_GST_ARG_WITH_PACKAGE_ORIGIN dnl AG_GST_ARG_WITH_PLUGINS +dnl AG_GST_CHECK_PLUGIN +dnl AG_GST_DISABLE_PLUGIN dnl AG_GST_ARG_ENABLE_EXTERNAL dnl AG_GST_ARG_ENABLE_EXPERIMENTAL @@ -60,9 +62,9 @@ AC_DEFUN([AG_GST_ARG_VALGRIND], esac ], [USE_VALGRIND="$USE_DEBUG"]) dnl Default value - VALGRIND_REQ="2.1" + VALGRIND_REQ="3.0" if test "x$USE_VALGRIND" = xyes; then - PKG_CHECK_MODULES(VALGRIND, valgrind > $VALGRIND_REQ, + PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, USE_VALGRIND="yes", [ USE_VALGRIND="no" @@ -211,28 +213,78 @@ AC_DEFUN([AG_GST_ARG_WITH_PACKAGE_ORIGIN], AC_SUBST(GST_PACKAGE_ORIGIN) ]) -dnl sets GST_PLUGINS_SELECTED to the list given as an argument, or to -dnl GST_PLUGINS_ALL +dnl sets WITH_PLUGINS to the list of plug-ins given as an argument +dnl also clears GST_PLUGINS_ALL and GST_PLUGINS_SELECTED AC_DEFUN([AG_GST_ARG_WITH_PLUGINS], [ AC_ARG_WITH(plugins, AC_HELP_STRING([--with-plugins], [comma-separated list of dependencyless plug-ins to compile]), + [WITH_PLUGINS=$withval], + [WITH_PLUGINS=]) + + GST_PLUGINS_ALL="" + GST_PLUGINS_SELECTED="" + + AC_SUBST(GST_PLUGINS_ALL) + AC_SUBST(GST_PLUGINS_SELECTED) +]) + +dnl AG_GST_CHECK_PLUGIN(PLUGIN-NAME) +dnl +dnl This macro adds the plug-in <PLUGIN-NAME> to GST_PLUGINS_ALL. Then it +dnl checks if WITH_PLUGINS is empty or the plugin is present in WITH_PLUGINS, +dnl and if so adds it to GST_PLUGINS_SELECTED. Then it checks if the plugin +dnl is present in WITHOUT_PLUGINS (ie. was disabled specifically) and if so +dnl removes it from GST_PLUGINS_SELECTED. +dnl +dnl The macro will call AM_CONDITIONAL(USE_PLUGIN_<PLUGIN-NAME>, ...) to allow +dnl control of what is built in Makefile.ams. +AC_DEFUN([AG_GST_CHECK_PLUGIN], +[ + GST_PLUGINS_ALL="$GST_PLUGINS_ALL [$1]" + + define([pname_def],translit([$1], -a-z, _a-z)) + + AC_ARG_ENABLE([$1], + AC_HELP_STRING([--disable-[$1]], [disable dependency-less $1 plugin]), [ - for i in `echo $withval | tr , ' '`; do - if echo $GST_PLUGINS_ALL | grep $i > /dev/null - then - GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i" - else - echo "plug-in $i not recognized, ignoring..." - fi - done], - [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL]) + case "${enableval}" in + yes) [gst_use_]pname_def=yes ;; + no) [gst_use_]pname_def=no ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-$1]) ;; + esac + ], + [[gst_use_]pname_def=yes]) dnl Default value + + if test x$[gst_use_]pname_def = xno; then + AC_MSG_NOTICE(disabling dependency-less plugin $1) + WITHOUT_PLUGINS="$WITHOUT_PLUGINS [$1]" + fi + undefine([pname_def]) + + if [[ -z "$WITH_PLUGINS" ]] || echo " [$WITH_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED [$1]" + fi + if echo " [$WITHOUT_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'` + fi + AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), echo " $GST_PLUGINS_SELECTED " | grep -i " [$1] " > /dev/null) +]) + +dnl AG_GST_DISABLE_PLUGIN(PLUGIN-NAME) +dnl +dnl This macro disables the plug-in <PLUGIN-NAME> by removing it from +dnl GST_PLUGINS_SELECTED. +AC_DEFUN([AG_GST_DISABLE_PLUGIN], +[ + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'` + AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), false) ]) AC_DEFUN([AG_GST_ARG_ENABLE_EXTERNAL], [ - AG_GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],, + AG_GST_CHECK_FEATURE(EXTERNAL, [building of plug-ins with external deps],, HAVE_EXTERNAL=yes, enabled, [ AC_MSG_NOTICE(building external plug-ins) @@ -249,8 +301,7 @@ dnl experimental plug-ins; stuff that hasn't had the dust settle yet dnl read 'builds, but might not work' AC_DEFUN([AG_GST_ARG_ENABLE_EXPERIMENTAL], [ - AG_GST_CHECK_FEATURE(EXPERIMENTAL, - [building of experimental plug-ins],, + AG_GST_CHECK_FEATURE(EXPERIMENTAL, [building of experimental plug-ins],, HAVE_EXPERIMENTAL=yes, disabled, [ AC_MSG_WARN(building experimental plug-ins) @@ -266,7 +317,7 @@ AC_DEFUN([AG_GST_ARG_ENABLE_EXPERIMENTAL], dnl broken plug-ins; stuff that doesn't seem to build at the moment AC_DEFUN([AG_GST_ARG_ENABLE_BROKEN], [ - AG_GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],, + AG_GST_CHECK_FEATURE(BROKEN, [building of broken plug-ins],, HAVE_BROKEN=yes, disabled, [ AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches ...]) diff --git a/common/m4/gst-default.m4 b/common/m4/gst-default.m4 index da1a81c9..c5d7cb42 100644 --- a/common/m4/gst-default.m4 +++ b/common/m4/gst-default.m4 @@ -5,7 +5,6 @@ dnl AG_GST_DEFAULT_ELEMENTS AC_DEFUN([AG_GST_DEFAULT_ELEMENTS], [ dnl decide on default elements - dnl FIXME: provide configure-time options for this dnl FIXME: describe where exactly this gets used dnl FIXME: decide if it's a problem that this could point to sinks from dnl depending plugin modules @@ -26,19 +25,98 @@ AC_DEFUN([AG_GST_DEFAULT_ELEMENTS], DEFAULT_VIDEOSINK="osxvideosink" ;; esac - + + dnl Default audio sink + AC_ARG_WITH(default-audiosink, + AC_HELP_STRING([--with-default-audiosink], [specify default audio sink]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosink) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosink) ;; + *) DEFAULT_AUDIOSINK="${withval}" ;; + esac + ], + [ + DEFAULT_AUDIOSINK="$DEFAULT_AUDIOSINK" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_AUDIOSINK as default audio sink) AC_SUBST(DEFAULT_AUDIOSINK) AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSINK, "$DEFAULT_AUDIOSINK", [Default audio sink]) + + dnl Default audio source + AC_ARG_WITH(default-audiosrc, + AC_HELP_STRING([--with-default-audiosrc], [specify default audio source]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosrc) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosrc) ;; + *) DEFAULT_AUDIOSRC="${withval}" ;; + esac + ], + [ + DEFAULT_AUDIOSRC="$DEFAULT_AUDIOSRC" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_AUDIOSRC as default audio source) AC_SUBST(DEFAULT_AUDIOSRC) AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSRC, "$DEFAULT_AUDIOSRC", [Default audio source]) + + dnl Default video sink + AC_ARG_WITH(default-videosink, + AC_HELP_STRING([--with-default-videosink], [specify default video sink]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-videosink) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-videosink) ;; + *) DEFAULT_VIDEOSINK="${withval}" ;; + esac + ], + [ + DEFAULT_VIDEOSINK="$DEFAULT_VIDEOSINK" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VIDEOSINK as default video sink) AC_SUBST(DEFAULT_VIDEOSINK) AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSINK, "$DEFAULT_VIDEOSINK", [Default video sink]) + + dnl Default video source + AC_ARG_WITH(default-videosrc, + AC_HELP_STRING([--with-default-videosrc], [specify default video source]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-videosrc) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-videosrc) ;; + *) DEFAULT_VIDEOSRC="${withval}" ;; + esac + ], + [ + DEFAULT_VIDEOSRC="$DEFAULT_VIDEOSRC" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VIDEOSRC as default video source) AC_SUBST(DEFAULT_VIDEOSRC) AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSRC, "$DEFAULT_VIDEOSRC", [Default video source]) + + dnl Default visualizer + AC_ARG_WITH(default-visualizer, + AC_HELP_STRING([--with-default-visualizer], [specify default visualizer]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-visualizer) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-visualizer) ;; + *) DEFAULT_VISUALIZER="${withval}" ;; + esac + ], + [ + DEFAULT_AUDIOSINK="$DEFAULT_VISUALIZER" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VISUALIZER as default visualizer) AC_SUBST(DEFAULT_VISUALIZER) AC_DEFINE_UNQUOTED(DEFAULT_VISUALIZER, "$DEFAULT_VISUALIZER", [Default visualizer]) diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4 index 4c3f12c4..f97f9a6f 100644 --- a/common/m4/gst-error.m4 +++ b/common/m4/gst-error.m4 @@ -1,10 +1,12 @@ -dnl handle various error-related things +Dnl handle various error-related things dnl Thomas Vander Stichele <thomas@apestaart.org> +dnl Tim-Philipp Müller <tim centricular net> -dnl Last modification: 2005-10-16 +dnl Last modification: 2008-02-18 dnl AG_GST_SET_ERROR_CFLAGS([ADD-WERROR]) +dnl AG_GST_SET_ERROR_CXXFLAGS([ADD-WERROR]) dnl AG_GST_SET_LEVEL_DEFAULT([IS-CVS-VERSION]) @@ -32,21 +34,28 @@ AC_DEFUN([AG_GST_SET_ERROR_CFLAGS], then AS_COMPILER_FLAG(-Werror, ERROR_CFLAGS="$ERROR_CFLAGS -Werror") - dnl if -Werror isn't suported + dnl if -Werror isn't suported, try -errwarn=%all (Sun Forte case) if test "x$ERROR_CFLAGS" == "x" then - dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED (Sun Forte case) - dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon - dnl "statement not reached" disabled because there is g_assert_not_reached () in some places - AS_COMPILER_FLAG([-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED], - [ERROR_CFLAGS="-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED"]) - - dnl if this also isn't suported, try only for -errwarn=%all - if test "x$ERROR_CFLAGS" == "x" - then - AS_COMPILER_FLAG(-errwarn=%all, - ERROR_CFLAGS="-errwarn=%all") - fi + AS_COMPILER_FLAG([-errwarn=%all], [ + ERROR_CFLAGS="-errwarn=%all" + dnl try -errwarn=%all,no%E_EMPTY_DECLARATION, + dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH, + dnl no%E_MACRO_REDEFINED (Sun Forte case) + dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon + dnl "statement not reached" disabled because there is g_assert_not_reached () in some places + dnl "macro redefined" because of gst/gettext.h + dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'? + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' + do + AS_COMPILER_FLAG([-errwarn=%all,$f], [ + ERROR_CFLAGS="$ERROR_CFLAGS,$f" + ]) + done + ]) fi fi @@ -54,6 +63,71 @@ AC_DEFUN([AG_GST_SET_ERROR_CFLAGS], AC_MSG_NOTICE([set ERROR_CFLAGS to $ERROR_CFLAGS]) ]) +dnl Sets ERROR_CXXFLAGS to something the compiler will accept. +dnl AC_SUBST them so they are available in Makefile + +dnl -Wall is added if it is supported +dnl -Werror is added if ADD-WERROR is not "no" + +dnl These flags can be overridden at make time: +dnl make ERROR_CXXFLAGS= +AC_DEFUN([AG_GST_SET_ERROR_CXXFLAGS], +[ + AC_REQUIRE([AC_PROG_CXX]) + AC_REQUIRE([AS_CXX_COMPILER_FLAG]) + + + dnl if we support -Wall, set it unconditionally + AS_CXX_COMPILER_FLAG(-Wall, [ + ERROR_CXXFLAGS="-Wall" + ], [ + ERROR_CXXFLAGS="" + ]) + + dnl if asked for, add -Werror if supported + if test "x$1" != "xno" + then + AS_CXX_COMPILER_FLAG(-Werror, werror_supported=yes, werror_supported=no) + + if test "x$werror_supported" = "xyes"; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror" + + dnl add exceptions + for f in '-Wno-non-virtual-dtor' + do + AS_CXX_COMPILER_FLAG([$f], ERROR_CXXFLAGS="$ERROR_CXXFLAGS $f") + done + else + dnl if -Werror isn't suported, try -errwarn=%all + AS_CXX_COMPILER_FLAG([-errwarn=%all], errwarnall=yes, errwarnall=no) + if test "x$errwarnall" = "xyes"; then + ERROR_CXXFLAGS="-errwarn=%all" + dnl try -errwarn=%all,no%E_EMPTY_DECLARATION, + dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH, + dnl no%E_MACRO_REDEFINED (Sun Forte case) + dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon + dnl "statement not reached" disabled because there is g_assert_not_reached () in some places + dnl "macro redefined" because of gst/gettext.h + dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'? + dnl FIXME: do any of these work with the c++ compiler? if not, why + dnl do we check at all? + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' + do + AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], [ + ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f" + ]) + done + fi + fi + fi + + AC_SUBST(ERROR_CXXFLAGS) + AC_MSG_NOTICE([set ERROR_CXXFLAGS to $ERROR_CXXFLAGS]) +]) + dnl Sets the default error level for debugging messages AC_DEFUN([AG_GST_SET_LEVEL_DEFAULT], [ diff --git a/common/m4/gst-feature.m4 b/common/m4/gst-feature.m4 index 510d228d..67770299 100644 --- a/common/m4/gst-feature.m4 +++ b/common/m4/gst-feature.m4 @@ -2,6 +2,7 @@ dnl Perform a check for a feature for GStreamer dnl Richard Boulton <richard-alsa@tartarus.org> dnl Thomas Vander Stichele <thomas@apestaart.org> added useful stuff dnl Last modification: 25/06/2001 +dnl dnl AG_GST_CHECK_FEATURE(FEATURE-NAME, FEATURE-DESCRIPTION, dnl DEPENDENT-PLUGINS, TEST-FOR-FEATURE, dnl DISABLE-BY-DEFAULT, ACTION-IF-USE, ACTION-IF-NOTUSE) @@ -18,7 +19,7 @@ dnl whether the feature is to be used. dnl Thomas changed this, so that when USE_<FEATURE-NAME> was already set dnl to no, then it stays that way. dnl -dnl The macro will call AM_CONDITIONAL(USE_<<FEATURE-NAME>, ...) to allow +dnl The macro will call AM_CONDITIONAL(USE_<FEATURE-NAME>, ...) to allow dnl the feature to control what is built in Makefile.ams. If you want dnl additional actions resulting from the test, you can add them with the dnl ACTION-IF-USE and ACTION-IF-NOTUSE parameters. @@ -109,7 +110,7 @@ if test x$USE_[$1] = xyes; then if test "x$3" != "x"; then GST_PLUGINS_YES="\t[$3]\n$GST_PLUGINS_YES" fi - AC_DEFINE(HAVE_[$1], , [support for features: $3]) + AC_DEFINE(HAVE_[$1], , [Define to enable $2]ifelse($3,,, [ (used by $3)]).) else ifelse([$3], , :, [AC_MSG_NOTICE(*** These plugins will not be built: [$3])]) if test "x$3" != "x"; then @@ -255,31 +256,31 @@ dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES, dnl GST_PLUGINS_NO, and BUILD_EXTERNAL AC_DEFUN([AG_GST_OUTPUT_PLUGINS], [ -echo "configure: *** Plug-ins without external dependencies that will be built:" -( for i in $GST_PLUGINS_SELECTED; do /bin/echo -e '\t'$i; done ) | sort -echo +printf "configure: *** Plug-ins without external dependencies that will be built:\n" +( for i in $GST_PLUGINS_SELECTED; do printf '\t'$i'\n'; done ) | sort +printf "\n" -echo "configure: *** Plug-ins without external dependencies that will NOT be built:" +printf "configure: *** Plug-ins without external dependencies that will NOT be built:\n" ( for i in $GST_PLUGINS_ALL; do case $GST_PLUGINS_SELECTED in *$i*) ;; *) - /bin/echo -e '\t'$i + printf '\t'$i'\n' ;; esac done ) | sort -echo +printf "\n" if test "x$BUILD_EXTERNAL" = "xno"; then - echo "configure: *** No plug-ins with external dependencies will be built" + printf "configure: *** No plug-ins with external dependencies will be built\n" else - /bin/echo -n "configure: *** Plug-ins with dependencies that will be built:" - /bin/echo -e "$GST_PLUGINS_YES" | sort - /bin/echo - /bin/echo -n "configure: *** Plug-ins with dependencies that will NOT be built:" - /bin/echo -e "$GST_PLUGINS_NO" | sort - /bin/echo + printf "configure: *** Plug-ins with dependencies that will be built:" + printf "$GST_PLUGINS_YES\n" | sort + printf "\n" + printf "configure: *** Plug-ins with dependencies that will NOT be built:" + printf "$GST_PLUGINS_NO\n" | sort + printf "\n" fi ]) diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 index 71e293b2..3060e5ea 100644 --- a/common/m4/gst-glib2.m4 +++ b/common/m4/gst-glib2.m4 @@ -13,9 +13,8 @@ AC_DEFUN([AG_GST_GLIB_CHECK], AC_SUBST(GLIB_REQ) dnl Check for glib with everything - PKG_CHECK_MODULES(GLIB, - glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0, - HAVE_GLIB=yes,HAVE_GLIB=no) + AG_GST_PKG_CHECK_MODULES(GLIB, + glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0) if test "x$HAVE_GLIB" = "xno"; then AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.]) diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4 index 29ebbd6d..a2853477 100644 --- a/common/m4/gst-plugin-docs.m4 +++ b/common/m4/gst-plugin-docs.m4 @@ -1,22 +1,3 @@ -dnl AG_GST_PYXML_CHECK([MINIMUM-PYTHON-VERSION]) - -AC_DEFUN([AG_GST_PYXML_CHECK], -[ - AC_BEFORE([AS_PATH_PYTHON],[$0])dnl find python first - - have_pyxml=no - if test "x$PYTHON" != x; then - AC_MSG_CHECKING([pyxml]) - if $PYTHON -c "from xml.dom.ext.reader import Sax2" 2>/dev/null \ - && $PYTHON -c "from xml.dom.NodeFilter import NodeFilter" 2>/dev/null; then - AC_MSG_RESULT(yes) - have_pyxml=yes - else - AC_MSG_RESULT(no) - fi - fi -]) - dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION]) dnl dnl checks for prerequisites for the common/mangle-tmpl.py script @@ -25,20 +6,13 @@ dnl used when building the plugin documentation AC_DEFUN([AG_GST_PLUGIN_DOCS], [ AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first - - if test x$enable_gtk_doc = xyes -a x$have_gtk_doc = xyes; then - AG_GST_PYXML_CHECK([$1]) - fi + AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first build_plugin_docs=no AC_MSG_CHECKING([whether to build plugin documentation]) if test x$enable_gtk_doc = xyes -a x$have_gtk_doc = xyes; then - if test "x$have_pyxml" != xyes; then - AC_MSG_RESULT([no (pyxml not installed)]) - else - build_plugin_docs=yes - AC_MSG_RESULT([yes]) - fi + build_plugin_docs=yes + AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no (gtk-doc disabled or not available)]) fi diff --git a/common/m4/gst-valgrind.m4 b/common/m4/gst-valgrind.m4 index 93c26357..eddedb35 100644 --- a/common/m4/gst-valgrind.m4 +++ b/common/m4/gst-valgrind.m4 @@ -13,9 +13,9 @@ AC_DEFUN([AG_GST_VALGRIND_CHECK], USE_VALGRIND="$USE_DEBUG" ]) dnl Default value - VALGRIND_REQ="2.1" + VALGRIND_REQ="3.0" if test "x$USE_VALGRIND" = xyes; then - PKG_CHECK_MODULES(VALGRIND, valgrind > $VALGRIND_REQ, + PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, USE_VALGRIND="yes", [ USE_VALGRIND="no" |