1 dnl configure-time options shared among gstreamer modules
4 dnl AG_GST_ARG_PROFILING
5 dnl AG_GST_ARG_VALGRIND
8 dnl AG_GST_ARG_EXAMPLES
10 dnl AG_GST_ARG_WITH_PKG_CONFIG_PATH
11 dnl AG_GST_ARG_WITH_PACKAGE_NAME
12 dnl AG_GST_ARG_WITH_PACKAGE_ORIGIN
14 dnl AG_GST_ARG_WITH_PLUGINS
15 dnl AG_GST_CHECK_PLUGIN
16 dnl AG_GST_DISABLE_PLUGIN
18 dnl AG_GST_ARG_ENABLE_EXTERNAL
19 dnl AG_GST_ARG_ENABLE_EXPERIMENTAL
20 dnl AG_GST_ARG_ENABLE_BROKEN
22 dnl AG_GST_ARG_DISABLE_FATAL_WARNINGS
23 AC_DEFUN([AG_GST_ARG_DEBUG],
27 AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]),
29 case "${enableval}" in
32 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
35 [USE_DEBUG=yes]) dnl Default value
38 AC_DEFUN([AG_GST_ARG_PROFILING],
40 AC_ARG_ENABLE(profiling,
41 AC_HELP_STRING([--enable-profiling],
42 [adds -pg to compiler commandline, for profiling]),
44 case "${enableval}" in
45 yes) USE_PROFILING=yes ;;
46 no) USE_PROFILING=no ;;
47 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
50 [USE_PROFILING=no]) dnl Default value
53 AC_DEFUN([AG_GST_ARG_VALGRIND],
55 dnl valgrind inclusion
56 AC_ARG_ENABLE(valgrind,
57 AC_HELP_STRING([--disable-valgrind],[disable run-time valgrind detection]),
59 case "${enableval}" in
60 yes) USE_VALGRIND="$USE_DEBUG" ;;
61 no) USE_VALGRIND=no ;;
62 *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind) ;;
65 [USE_VALGRIND="$USE_DEBUG"]) dnl Default value
67 if test "x$USE_VALGRIND" = xyes; then
68 PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ,
72 if test "x$USE_VALGRIND" = xyes; then
73 AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used])
74 AC_MSG_NOTICE(Using extra code paths for valgrind)
78 AC_DEFUN([AG_GST_ARG_GCOV],
81 AC_HELP_STRING([--enable-gcov],
82 [compile with coverage profiling instrumentation (gcc only)]),
83 enable_gcov=$enableval,
85 if test x$enable_gcov = xyes ; then
86 if test "x$GCC" != "xyes"
88 AC_MSG_ERROR([gcov only works if gcc is used])
91 AS_COMPILER_FLAG(["-fprofile-arcs"],
92 [GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs"],
94 AS_COMPILER_FLAG(["-ftest-coverage"],
95 [GCOV_CFLAGS="$GCOV_CFLAGS -ftest-coverage"],
97 dnl remove any -O flags - FIXME: is this needed ?
98 GCOV_CFLAGS=`echo "$GCOV_CFLAGS" | sed -e 's/-O[[0-9]]*//g'`
99 dnl libtool 1.5.22 and lower strip -fprofile-arcs from the flags
100 dnl passed to the linker, which is a bug; -fprofile-arcs implicitly
101 dnl links in -lgcov, so we do it explicitly here for the same effect
103 AC_SUBST(GCOV_CFLAGS)
105 GCOV=`echo $CC | sed s/gcc/gcov/g`
109 AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1,
110 [Defined if gcov is enabled to force a rebuild due to config.h changing])
111 dnl if gcov is used, we do not want default -O2 CFLAGS
112 if test "x$GST_GCOV_ENABLED" = "xyes"
116 CXXFLAGS="$CXXFLAGS -O0"
120 CCASFLAGS="$CCASFLAGS -O0"
122 AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS])
125 AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes)
128 AC_DEFUN([AG_GST_ARG_EXAMPLES],
130 AC_ARG_ENABLE(examples,
131 AC_HELP_STRING([--disable-examples], [disable building examples]),
133 case "${enableval}" in
134 yes) BUILD_EXAMPLES=yes ;;
135 no) BUILD_EXAMPLES=no ;;
136 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
139 [BUILD_EXAMPLES=yes]) dnl Default value
140 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
143 AC_DEFUN([AG_GST_ARG_WITH_PKG_CONFIG_PATH],
145 dnl possibly modify pkg-config path
146 AC_ARG_WITH(pkg-config-path,
147 AC_HELP_STRING([--with-pkg-config-path],
148 [colon-separated list of pkg-config(1) dirs]),
150 export PKG_CONFIG_PATH=${withval}
151 AC_MSG_NOTICE(Set PKG_CONFIG_PATH to $PKG_CONFIG_PATH)
156 dnl This macro requires that GST_GIT or GST_CVS is set to yes or no (release)
157 AC_DEFUN([AG_GST_ARG_WITH_PACKAGE_NAME],
159 dnl package name in plugins
160 AC_ARG_WITH(package-name,
161 AC_HELP_STRING([--with-package-name],
162 [specify package name to use in plugins]),
165 yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
166 no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
167 *) GST_PACKAGE_NAME="${withval}" ;;
177 if test "x$PACKAGE_VERSION_NANO" = "x0"
179 GST_PACKAGE_NAME="$P source release"
181 if test "x$PACKAGE_VERSION_NANO" = "x1"
183 GST_PACKAGE_NAME="$P git"
185 GST_PACKAGE_NAME="$P prerelease"
190 AC_MSG_NOTICE(Using $GST_PACKAGE_NAME as package name)
191 AC_DEFINE_UNQUOTED(GST_PACKAGE_NAME, "$GST_PACKAGE_NAME",
192 [package name in plugins])
193 AC_SUBST(GST_PACKAGE_NAME)
196 AC_DEFUN([AG_GST_ARG_WITH_PACKAGE_ORIGIN],
198 dnl package origin URL
199 AC_ARG_WITH(package-origin,
200 AC_HELP_STRING([--with-package-origin],
201 [specify package origin URL to use in plugins]),
204 yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
205 no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
206 *) GST_PACKAGE_ORIGIN="${withval}" ;;
209 [GST_PACKAGE_ORIGIN="[Unknown package origin]"] dnl Default value
211 AC_MSG_NOTICE(Using $GST_PACKAGE_ORIGIN as package origin)
212 AC_DEFINE_UNQUOTED(GST_PACKAGE_ORIGIN, "$GST_PACKAGE_ORIGIN",
214 AC_SUBST(GST_PACKAGE_ORIGIN)
217 dnl sets WITH_PLUGINS to the list of plug-ins given as an argument
218 dnl also clears GST_PLUGINS_ALL and GST_PLUGINS_SELECTED
219 AC_DEFUN([AG_GST_ARG_WITH_PLUGINS],
222 AC_HELP_STRING([--with-plugins],
223 [comma-separated list of dependencyless plug-ins to compile]),
224 [WITH_PLUGINS=$withval],
228 GST_PLUGINS_SELECTED=""
229 GST_PLUGINS_NONPORTED=""
231 AC_SUBST(GST_PLUGINS_ALL)
232 AC_SUBST(GST_PLUGINS_SELECTED)
233 AC_SUBST(GST_PLUGINS_NONPORTED)
236 dnl AG_GST_CHECK_PLUGIN(PLUGIN-NAME)
238 dnl This macro adds the plug-in <PLUGIN-NAME> to GST_PLUGINS_ALL. Then it
239 dnl checks if WITH_PLUGINS is empty or the plugin is present in WITH_PLUGINS,
240 dnl and if so adds it to GST_PLUGINS_SELECTED. Then it checks if the plugin
241 dnl is present in WITHOUT_PLUGINS (ie. was disabled specifically) and if so
242 dnl removes it from GST_PLUGINS_SELECTED.
244 dnl The macro will call AM_CONDITIONAL(USE_PLUGIN_<PLUGIN-NAME>, ...) to allow
245 dnl control of what is built in Makefile.ams.
246 AC_DEFUN([AG_GST_CHECK_PLUGIN],
248 GST_PLUGINS_ALL="$GST_PLUGINS_ALL [$1]"
250 define([pname_def],translit([$1], -a-z, _a-z))
253 AC_HELP_STRING([--disable-[$1]], [disable dependency-less $1 plugin]),
255 case "${enableval}" in
256 yes) [gst_use_]pname_def=yes ;;
257 no) [gst_use_]pname_def=no ;;
258 *) AC_MSG_ERROR([bad value ${enableval} for --enable-$1]) ;;
261 [[gst_use_]pname_def=yes]) dnl Default value
263 if test x$[gst_use_]pname_def = xno; then
264 AC_MSG_NOTICE(disabling dependency-less plugin $1)
265 WITHOUT_PLUGINS="$WITHOUT_PLUGINS [$1]"
267 undefine([pname_def])
269 dnl First check inclusion
270 if [[ -z "$WITH_PLUGINS" ]] || echo " [$WITH_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then
271 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED [$1]"
273 dnl Then check exclusion
274 if echo " [$WITHOUT_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then
275 GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'`
277 dnl Finally check if the plugin is ported or not
278 if echo " [$GST_PLUGINS_NONPORTED] " | tr , ' ' | grep -i " [$1] " > /dev/null; then
279 GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'`
281 AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), echo " $GST_PLUGINS_SELECTED " | grep -i " [$1] " > /dev/null)
284 dnl AG_GST_DISABLE_PLUGIN(PLUGIN-NAME)
286 dnl This macro disables the plug-in <PLUGIN-NAME> by removing it from
287 dnl GST_PLUGINS_SELECTED.
288 AC_DEFUN([AG_GST_DISABLE_PLUGIN],
290 GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'`
291 AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), false)
294 AC_DEFUN([AG_GST_ARG_ENABLE_EXTERNAL],
296 AG_GST_CHECK_FEATURE(EXTERNAL, [building of plug-ins with external deps],,
297 HAVE_EXTERNAL=yes, enabled,
299 AC_MSG_NOTICE(building external plug-ins)
302 AC_MSG_WARN(all plug-ins with external dependencies will not be built)
305 # make BUILD_EXTERNAL available to Makefile.am
306 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
309 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
310 dnl read 'builds, but might not work'
311 AC_DEFUN([AG_GST_ARG_ENABLE_EXPERIMENTAL],
313 AG_GST_CHECK_FEATURE(EXPERIMENTAL, [building of experimental plug-ins],,
314 HAVE_EXPERIMENTAL=yes, disabled,
316 AC_MSG_WARN(building experimental plug-ins)
317 BUILD_EXPERIMENTAL="yes"
319 AC_MSG_NOTICE(not building experimental plug-ins)
320 BUILD_EXPERIMENTAL="no"
322 # make BUILD_EXPERIMENTAL available to Makefile.am
323 AM_CONDITIONAL(BUILD_EXPERIMENTAL, test "x$BUILD_EXPERIMENTAL" = "xyes")
326 dnl broken plug-ins; stuff that doesn't seem to build at the moment
327 AC_DEFUN([AG_GST_ARG_ENABLE_BROKEN],
329 AG_GST_CHECK_FEATURE(BROKEN, [building of broken plug-ins],,
330 HAVE_BROKEN=yes, disabled,
332 AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches ...])
334 AC_MSG_NOTICE([not building broken plug-ins])
338 dnl allow people (or build tools) to override default behaviour
339 dnl for fatal compiler warnings
340 dnl Enable fatal warnings by default only for development versions
341 AC_DEFUN([AG_GST_ARG_DISABLE_FATAL_WARNINGS],
343 AC_ARG_ENABLE(fatal-warnings,
344 AC_HELP_STRING([--disable-fatal-warnings],
345 [Don't turn compiler warnings into fatal errors]),
347 case "${enableval}" in
348 yes) FATAL_WARNINGS=yes ;;
349 no) FATAL_WARNINGS=no ;;
350 *) AC_MSG_ERROR(bad value ${enableval} for --disable-fatal-warnings) ;;
354 if test "x`expr $PACKAGE_VERSION_MINOR % 2`" = "x1" -a "x`expr $PACKAGE_VERSION_MICRO '<' 90`" = "x1"; then