1 AC_INIT
2 AC_CANONICAL_TARGET
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AS_VERSION(gstreamer, GST_VERSION, 0, 8, 7, 1, GST_CVS="no", GST_CVS="yes")
8 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
9 AM_MAINTAINER_MODE
10 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
12 dnl our libraries and install dirs use major.minor as a version
13 GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
14 dnl we override it here for release candidates
15 #GST_MAJORMINOR=0.8
16 AC_SUBST(GST_MAJORMINOR)
18 AC_PROG_CC
19 dnl For interactive UNIX (a Sun thing)
20 AC_ISC_POSIX
22 dnl CURRENT, REVISION, AGE
23 dnl - library source changed -> increment REVISION
24 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
25 dnl - interfaces added -> increment AGE
26 dnl - interfaces removed -> AGE = 0
27 AS_LIBTOOL(GST, 5, 0, 4)
28 AM_PROG_LIBTOOL
30 AC_CONFIG_SRCDIR([gst/gst.c])
31 AM_CONFIG_HEADER(config.h)
33 dnl Add parameters for aclocal
34 AC_SUBST(ACLOCAL_AMFLAGS, "-I common/m4 -I .")
36 AM_PROG_CC_STDC
37 AM_PROG_AS
38 AS="${CC}"
40 dnl the gettext stuff needed
41 AM_GNU_GETTEXT_VERSION(0.11.5)
42 AM_GNU_GETTEXT([external])
44 GETTEXT_PACKAGE=gstreamer-$GST_MAJORMINOR
45 AC_SUBST(GETTEXT_PACKAGE)
46 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE",
47 [gettext package name])
49 dnl define LOCALEDIR in config.h
50 AS_AC_EXPAND(LOCALEDIR, $datadir/locale)
51 AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR",
52 [gettext locale dir])
54 dnl define LIBDIR so we can inform people where we live
55 AS_AC_EXPAND(LIBDIR, $libdir)
56 AC_DEFINE_UNQUOTED([LIBDIR], "$LIBDIR",
57 [library dir])
59 dnl decide on error flags
60 dnl if we support -Wall, set it unconditionally
61 AS_COMPILER_FLAG(-Wall,
62 GST_ERROR_CFLAGS="-Wall",
63 GST_ERROR_CFLAGS="")
64 dnl if we're in nano >= 1, add -Werror if supported
65 if test "x$GST_CVS" = "xyes"
66 then
67 AS_COMPILER_FLAG(-Werror, GST_ERROR_CFLAGS="$GST_ERROR_CFLAGS -Werror")
68 fi
70 dnl We disable static building for development, for time savings
71 dnl *NOTE*: dnl this line before release, so release does static too
72 dnl AM_DISABLE_STATIC
74 AC_HEADER_STDC([])
75 AC_C_INLINE
77 dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
78 dnl messages printed when running cvs builds
79 if test "x$GST_CVS" = "xyes"; then
80 AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
81 fi
83 dnl subsystems - can influence other decisions so needs to be high up
84 dnl we need to do AM_CONDITIONAL them here for automake 1.6.x compatibility
85 GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
86 AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes")
87 GST_CHECK_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
88 AM_CONDITIONAL(GST_DISABLE_LOADSAVE, test "x$GST_DISABLE_LOADSAVE" = "xyes")
89 GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
90 AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes")
91 GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
92 AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes")
93 GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing])
94 AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes")
95 GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
96 AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes")
97 GST_CHECK_SUBSYSTEM_DISABLE(ENUMTYPES,[enum types])
98 AM_CONDITIONAL(GST_DISABLE_ENUMTYPES, test "x$GST_DISABLE_ENUMTYPES" = "xyes")
99 GST_CHECK_SUBSYSTEM_DISABLE(INDEX,[index])
100 AM_CONDITIONAL(GST_DISABLE_INDEX, test "x$GST_DISABLE_INDEX" = "xyes")
101 GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin])
102 AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes")
103 GST_CHECK_SUBSYSTEM_DISABLE(URI,[uri handlers])
104 AM_CONDITIONAL(GST_DISABLE_URI, test "x$GST_DISABLE_URI" = "xyes")
106 dnl ##############################
107 dnl # Do automated configuration #
108 dnl ##############################
110 dnl Check for tools:
111 dnl ================
113 dnl allow for different autotools
114 AS_AUTOTOOLS_ALTERNATE()
116 dnl modify pkg-config path
117 AC_ARG_WITH(pkg-config-path,
118 AC_HELP_STRING([--with-pkg-config-path],
119 [colon-separated list of pkg-config(1) dirs]),
120 [export PKG_CONFIG_PATH=${withval}])
122 GST_DOC()
123 GST_ARCH()
125 dnl Perl is used in building documentation
126 AC_PATH_PROG(PERL_PATH, perl, no)
127 if test x$PERL_PATH = xno; then
128 AC_MSG_ERROR(Could not find perl)
129 fi
131 AC_PROG_AWK
133 dnl we require bison for building the parser
134 dnl FIXME: check if AC_PROG_YACC is suitable here
135 AC_PATH_PROG(BISON_PATH, bison, no)
136 if test x$BISON_PATH = xno; then
137 AC_MSG_ERROR(Could not find bison)
138 fi
140 dnl check bison version
141 AC_MSG_CHECKING([bison version])
143 if $BISON_PATH --version | head -n 1 | $AWK '{ if ($4 < 1.35) exit 1; else exit 0;}';
144 then
145 AC_MSG_RESULT([ok])
146 else
147 AC_MSG_RESULT([too old.])
148 AC_MSG_ERROR([Your bison version is too old, v1.35 or later is required.])
149 fi
151 dnl we require flex for building the parser
152 dnl FIXME: check if AC_PROG_LEX is suitable here
153 AC_PATH_PROG(FLEX_PATH, flex, no)
154 if test x$FLEX_PATH = xno; then
155 AC_MSG_ERROR(Could not find flex)
156 fi
158 dnl
159 dnl We should really use AC_SYS_LARGEFILE, but the problem is
160 dnl many of the plugins don't include "config.h". To assure
161 dnl binary compatibility, it is necessary that all gstreamer
162 dnl code be compiled with the same sizeof(off_t), so we use
163 dnl the following crude hack.
164 dnl
166 AC_MSG_CHECKING(for large file support)
167 AC_TRY_RUN([
168 #define _LARGEFILE_SOURCE
169 #define _FILE_OFFSET_BITS 64
170 #include <sys/types.h>
171 int main () { return !(sizeof(off_t) == 8); }
172 ],
173 [
174 AC_MSG_RESULT(yes)
175 GST_PKG_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
176 ],
177 [
178 AC_MSG_RESULT(no)
179 ],
180 [
181 AC_MSG_RESULT(no)
182 ])
184 dnl check for mmap
185 AC_FUNC_MMAP()
186 if test "$ac_cv_func_mmap_fixed_mapped" = "yes" ; then
187 GST_DISABLE_OMEGA_COTHREADS=no
188 else
189 GST_DISABLE_OMEGA_COTHREADS=yes
190 fi
191 dnl for future --disabling, maybe. Right now, it depends on HAVE_MMAP
192 AM_CONDITIONAL(GST_DISABLE_OMEGA_COTHREADS, test "x$GST_DISABLE_OMEGA_COTHREADS" = "xyes")
194 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
195 AC_CHECK_MCSC()
196 if test "$ac_cv_check_mcsc" = "yes"; then
197 AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT,
198 [defined if we have makecontext ()])
199 fi
201 dnl Check for a way to display the function name in debug output
202 GST_CHECK_FUNCTION()
204 dnl check if we should use -Wa,-mregnames on PowerPC, so we can use
205 dnl symbolic register names in inline asm
206 if test x$HAVE_CPU_PPC = xyes ; then
207 AS_COMPILER_FLAG(["-Wa,-mregnames"],
208 [GST_INT_CFLAGS="$GST_INT_CFLAGS -Wa,-mregnames"],
209 true)
210 fi
212 AC_ARG_ENABLE(gcov,
213 AC_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),
214 enable_gcov=$enableval,enable_gcov=no)
215 if test x$enable_gcov = xyes ; then
216 AS_COMPILER_FLAG(["-fprofile-arcs"],
217 [GST_INT_CFLAGS="$GST_INT_CFLAGS -fprofile-arcs"],
218 true)
219 AS_COMPILER_FLAG(["-ftest-coverage"],
220 [GST_INT_CFLAGS="$GST_INT_CFLAGS -ftest-coverage"],
221 true)
222 GST_INT_CFLAGS=`echo "$GST_INT_CFLAGS" | sed -e 's/-O[0-9]*//g'`
224 AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
225 fi
226 AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes)
228 dnl Check for some compiler flags that optimize our code.
229 if test "x$GCC" = xyes; then
230 AS_COMPILER_FLAG(-fno-common,GST_INT_CFLAGS="$GST_INT_CFLAGS -fno-common",)
231 fi
233 dnl HAVE_WIN32 currently means "disable POSIXisms".
234 case "$host" in
235 *-*-mingw*)
236 AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
237 ;;
238 *)
239 ;;
240 esac
242 GST_UNALIGNED_ACCESS()
243 if test x${as_cv_unaligned_access} = xyes ; then
244 GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1"
245 else
246 GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0"
247 fi
248 AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE)
250 dnl Check for essential libraries first:
251 dnl ====================================
253 dnl === GLib 2 ===
254 dnl Minimum required version of GLib2
255 dnl required for compilation without warnings
256 GLIB2_REQ="2.2"
257 AC_SUBST(GLIB2_REQ)
259 dnl Check for glib2 with sugar on top
260 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no)
261 dnl for the poor souls who for example have glib in /usr/local
262 AS_SCRUB_INCLUDE(GLIB2_CFLAGS)
263 GLIB_LIBS=$GLIB2_LIBS
264 GLIB_CFLAGS=$GLIB2_CFLAGS
265 AC_SUBST(GLIB_LIBS)
266 AC_SUBST(GLIB_CFLAGS)
268 if test "x$HAVE_GLIB2" = "xno"; then
269 AC_MSG_ERROR([GStreamer requires GLib $GLIB2_REQ to compile.])
270 fi
272 dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
273 PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB2_REQ)
274 AC_SUBST(GLIB_ONLY_CFLAGS)
275 AC_SUBST(GLIB_ONLY_LIBS)
277 dnl === libxml 2 ===
278 if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes"
279 then
280 AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2])
281 else
282 dnl check for libxml2 with minimum req version
283 GST_LIBXML2_CHECK(2.4.9)
284 fi
286 dnl popt checks
287 dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2
288 dnl causes segfaults on gst_init. Write a working test if possible.
289 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
290 AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
291 download the latest version from
292 ftp://ftp.rpm.org/pub/rpm/dist/])
293 )
294 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
295 AC_COMPILE_IFELSE([
296 #include <popt.h>
297 int main ()
298 {
299 #ifndef POPT_TABLEEND
300 #error
301 #else
302 return 0;
303 #endif
304 }
305 ],, [
306 dnl it failed
307 AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
308 download the latest version from
309 ftp://ftp.rpm.org/pub/rpm/dist/])
310 ])
311 AC_SUBST(POPT_LIBS)
313 dnl Check for ucontext.h
314 AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h]))
316 dnl ######################################################################
317 dnl # Check command line parameters, and set shell variables accordingly #
318 dnl ######################################################################
320 dnl FIXME: simplify all this down using a few m4 macros
322 AC_ARG_ENABLE(fast-stack-trash,
323 AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]),
324 [case "${enableval}" in
325 yes) USE_FAST_STACK_TRASH=yes;;
326 noset) USE_FAST_STACK_TRASH=no;;
327 no) USE_FAST_STACK_TRASH=no;;
328 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
329 esac],
330 [USE_FAST_STACK_TRASH=yes]) dnl Default value
332 AC_ARG_ENABLE(plugin-builddir,
333 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
334 [case "${enableval}" in
335 yes) PLUGINS_USE_BUILDDIR=yes ;;
336 no) PLUGINS_USE_BUILDDIR=no ;;
337 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
338 esac],
339 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
341 AC_ARG_ENABLE(profiling,
342 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
343 [case "${enableval}" in
344 yes) USE_PROFILING=yes ;;
345 no) USE_PROFILING=no ;;
346 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
347 esac],
348 [USE_PROFILING=no]) dnl Default value
350 dnl use a cache dir for storing element registry info.
351 dnl default to building registry in the source tree if we are enabling plugin build dir
352 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
353 GST_CACHE_DIR=`pwd`
354 else
355 dnl ${localstatedir} points to PREFIX/var
356 GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
357 fi
358 AC_ARG_WITH(cachedir,
359 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
360 [case "${withval}" in
361 yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
362 no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
363 *) GST_CACHE_DIR="${withval}" ;;
364 esac],
365 [:]) dnl Default value
367 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
368 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry])
369 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
371 dnl building of tests
372 AC_ARG_ENABLE(tests,
373 AC_HELP_STRING([--disable-tests],[disable building test apps]),
374 [case "${enableval}" in
375 yes) BUILD_TESTS=yes ;;
376 no) BUILD_TESTS=no ;;
377 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
378 esac],
379 [BUILD_TESTS=yes]) dnl Default value
380 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
382 dnl tests known to fail
383 AC_ARG_ENABLE(failing-tests,
384 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
385 [case "${enableval}" in
386 yes) BUILD_FAILING_TESTS=yes ;;
387 no) BUILD_FAILING_TESTS=no ;;
388 *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
389 esac],
390 [BUILD_FAILING_TESTS=no]) dnl Default value
391 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
392 if test x$BUILD_FAILING_TESTS = xyes; then
393 AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
394 else
395 AC_MSG_WARN([Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support. If you do not agree with this EULA, please press Ctrl-C before the next line is printed. By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA.])
396 fi
398 AC_ARG_ENABLE(examples,
399 AC_HELP_STRING([--disable-examples],[disable building examples]),
400 [case "${enableval}" in
401 yes) BUILD_EXAMPLES=yes ;;
402 no) BUILD_EXAMPLES=no ;;
403 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
404 esac],
405 [BUILD_EXAMPLES=yes]) dnl Default value
406 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
408 dnl poison destroyed objects
409 AC_ARG_ENABLE(poisoning,
410 AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
411 [case "${enableval}" in
412 yes) USE_POISONING=yes ;;
413 no) USE_POISONING=no ;;
414 *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
415 esac],
416 [USE_POISONING=no]) dnl Default value
418 dnl Next, check for the optional components:
419 dnl ========================================
421 dnl debugging stuff
422 AC_ARG_ENABLE(debug,
423 AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]),
424 [case "${enableval}" in
425 yes) USE_DEBUG=yes ;;
426 no) USE_DEBUG=no ;;
427 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
428 esac],
429 [USE_DEBUG=yes]) dnl Default value
431 dnl valgrind inclusion
432 USE_VALGRIND="$USE_DEBUG"
433 VALGRIND_REQ="2.1"
434 if test "x$USE_VALGRIND" = xyes; then
436 PKG_CHECK_MODULES(VALGRIND, valgrind > $VALGRIND_REQ, USE_VALGRIND="yes", USE_VALGRIND="no")
437 fi
438 if test "x$USE_VALGRIND" = xyes; then
439 AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used])
440 AC_MSG_NOTICE(Using extra code paths for valgrind)
441 fi
442 AC_SUBST(VALGRIND_CFLAGS)
443 AC_SUBST(VALGRIND_LIBS)
445 dnl ################################################
446 dnl # Set defines according to variables set above #
447 dnl ################################################
450 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
451 dnl HAVE_ and it is likely to be easier to stick with the old name
452 if test "x$USE_FAST_STACK_TRASH" = xyes; then
453 AC_DEFINE(USE_FAST_STACK_TRASH, 1, [Define if we should use i586 optimized stack functions])
454 fi
456 if test "x$USE_POISONING" = xyes; then
457 AC_DEFINE(USE_POISONING, 1, [Define if we should poison deallocated memory])
458 fi
460 dnl test for sigaction()
461 AC_CHECK_FUNC(sigaction,
462 AC_DEFINE(HAVE_SIGACTION, 1,
463 [Defined if we have sigaction ()]))
465 dnl test for register_printf_function
466 AC_CHECK_FUNC(register_printf_function,
467 [
468 GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
469 AC_DEFINE(HAVE_PRINTF_EXTENSION, 1,
470 [Defined if we have register_printf_function ()])
471 ],
472 GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
473 )
474 AC_SUBST(GST_PRINTF_EXTENSION_FORMAT_DEFINE)
476 dnl test if we have dladdr(); we use it for debugging
477 save_cflags="$CFLAGS"
478 CFLAGS="$CFLAGS -D_GNU_SOURCE"
479 AC_CHECK_LIB(dl, dladdr,
480 AC_DEFINE(HAVE_DLADDR, 1,
481 [Defined if we have dladdr ()]))
482 CFLAGS="$save_cflags"
484 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
485 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
486 fi
488 if test "x$USE_DEBUG" = xyes; then
489 GST_INT_CFLAGS="$GST_INT_CFLAGS -g"
490 fi
492 dnl #############################
493 dnl # Set automake conditionals #
494 dnl #############################
496 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
497 dnl HAVE_ and it is likely to be easier to stick with the old name
498 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
499 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
500 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
503 dnl ############################
504 dnl # Set up some more defines #
505 dnl ############################
507 dnl set license and copyright notice
508 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
510 dnl package name in plugins
511 AC_ARG_WITH(package-name,
512 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
513 [case "${withval}" in
514 yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
515 no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
516 *) GST_PACKAGE="${withval}" ;;
517 esac],
518 [
519 dnl default value
520 if test "x$GST_CVS" = "xyes"
521 then
522 dnl nano >= 1
523 GST_PACKAGE="GStreamer CVS/prerelease"
524 else
525 GST_PACKAGE="GStreamer source release"
526 fi
527 ]
528 )
529 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
530 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
532 dnl package origin URL
533 AC_ARG_WITH(package-origin,
534 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
535 [case "${withval}" in
536 yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
537 no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
538 *) GST_ORIGIN="${withval}" ;;
539 esac],
540 [GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value
541 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
542 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
544 dnl Set location of plugin directory
545 AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
546 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
547 AC_SUBST(PLUGINS_DIR)
548 AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location])
550 dnl Set location of uninstalled plugin directory
551 PLUGINS_BUILDDIR=`pwd`
552 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
553 AC_SUBST(PLUGINS_BUILDDIR)
555 dnl LDFLAGS modifier defining exported symbols from built objects
556 EXPORT_LDFLAGS="-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*"
558 dnl GST_PKG_*: the flags we use that are also used
559 dnl for external applications/.pc file
560 dnl GST_LIB_*: used for the main library
561 dnl GST_OBJ_*: the flags we use for all the objects internal to the core
562 dnl GST_PLUGIN_*: additional flags we use for all plugins
564 dnl finalize _CFLAGS and _LIBS
565 dnl flags exported for external applications and use in our pkg-config .pc files
566 dnl since glib and xml are package deps, there's no need to include their cflags
567 dnl in the pkg-config file
569 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
570 AC_SUBST(GST_PKG_CFLAGS)
571 AC_SUBST(GST_PKG_LIBS)
572 AC_SUBST(GST_PKG_DEPS)
574 dnl flags shared for all internal objects (core libs, elements, applications)
575 dnl we disable deprecated internally
576 dnl XML, GLib, popt, GST_INT, VALGRIND, and the right include for CFLAGS
577 dnl no need to add XML, GLib, popt explicitly since libgstreamer pulls them in
578 GST_INT_CFLAGS="$GLIB_CFLAGS $XML_CFLAGS $GST_PKG_CFLAGS \
579 $GST_INT_CFLAGS $GST_ERROR_CFLAGS -DGST_DISABLE_DEPRECATED"
581 dnl Private vars for libgst only
582 GST_LIB_CFLAGS="$GST_PKG_CFLAGS $GST_INT_CFLAGS \
583 $VALGRIND_CFLAGS -I\$(top_srcdir)"
584 GST_LIB_LIBS="$XML_LIBS $GLIB_LIBS -lpopt $GST_PKG_LIBS $LTLIBINTL $VALGRIND_LIBS"
585 GST_LIB_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION $EXPORT_LDFLAGS"
586 AC_SUBST(GST_LIB_CFLAGS)
587 AC_SUBST(GST_LIB_LIBS)
588 AC_SUBST(GST_LIB_LDFLAGS)
590 dnl Vars for all internal objects built on libgstreamer
591 GST_OBJ_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)"
592 GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
594 AC_SUBST(GST_OBJ_CFLAGS, "$GST_OBJ_CFLAGS")
595 AC_SUBST(GST_OBJ_LIBS, "$GST_OBJ_LIBS")
597 dnl specific additional LDFLAGS for plugins
598 GST_PLUGIN_LDFLAGS="-module -avoid-version $EXPORT_LDFLAGS"
599 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
601 plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
602 AC_SUBST(plugindir)
604 dnl ##################################################
605 dnl # deps for examples from manual #
606 dnl ##################################################
608 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
609 HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
610 AC_SUBST(LIBGNOMEUI_CFLAGS)
611 AC_SUBST(LIBGNOMEUI_LIBS)
612 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
614 dnl ##################################################
615 dnl # Prepare informative messages to display at end #
616 dnl ##################################################
618 infomessages=
620 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
621 infomessages="$infomessages
622 *** Warning: You have configured using the --enable-plugin-builddir option.
624 This option is for development purposes only: binaries built with
625 it should be used with code in the build tree only. To build an
626 installable version, use ./configure without the --enable-plugin-builddir
627 option. Note that the autogen.sh script supplies the plugin builddir
628 option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
629 an installable build.
631 "
632 fi
634 dnl #########################
635 dnl # Make the output files #
636 dnl #########################
638 dnl libs/ext/Makefile
639 dnl nothing there yet !
640 AC_OUTPUT(
641 Makefile
642 include/Makefile
643 gst/Makefile
644 gst/gstconfig.h
645 gst/gstversion.h
646 gst/autoplug/Makefile
647 gst/indexers/Makefile
648 gst/elements/Makefile
649 gst/parse/Makefile
650 gst/schedulers/Makefile
651 gst/registries/Makefile
652 libs/Makefile
653 libs/gst/Makefile
654 libs/gst/bytestream/Makefile
655 libs/gst/control/Makefile
656 libs/gst/dataprotocol/Makefile
657 libs/gst/getbits/Makefile
658 po/Makefile.in
659 tests/Makefile
660 tests/bufspeed/Makefile
661 tests/instantiate/Makefile
662 tests/memchunk/Makefile
663 tests/muxing/Makefile
664 tests/seeking/Makefile
665 tests/sched/Makefile
666 tests/threadstate/Makefile
667 testsuite/Makefile
668 testsuite/bins/Makefile
669 testsuite/bytestream/Makefile
670 testsuite/caps/Makefile
671 testsuite/cleanup/Makefile
672 testsuite/clock/Makefile
673 testsuite/debug/Makefile
674 testsuite/dlopen/Makefile
675 testsuite/dynparams/Makefile
676 testsuite/elements/Makefile
677 testsuite/ghostpads/Makefile
678 testsuite/indexers/Makefile
679 testsuite/negotiation/Makefile
680 testsuite/parse/Makefile
681 testsuite/plugin/Makefile
682 testsuite/refcounting/Makefile
683 testsuite/schedulers/Makefile
684 testsuite/states/Makefile
685 testsuite/tags/Makefile
686 testsuite/threads/Makefile
687 examples/Makefile
688 examples/cutter/Makefile
689 examples/helloworld/Makefile
690 examples/launch/Makefile
691 examples/manual/Makefile
692 examples/mixer/Makefile
693 examples/pingpong/Makefile
694 examples/plugins/Makefile
695 examples/queue/Makefile
696 examples/queue2/Makefile
697 examples/queue3/Makefile
698 examples/queue4/Makefile
699 examples/retag/Makefile
700 examples/thread/Makefile
701 examples/typefind/Makefile
702 examples/xml/Makefile
703 tools/Makefile
704 common/Makefile
705 common/m4/Makefile
706 docs/Makefile
707 docs/faq/Makefile
708 docs/gst/Makefile
709 docs/libs/Makefile
710 docs/manual/Makefile
711 docs/plugins/Makefile
712 docs/plugins/gstreamer-plugins.types
713 docs/pwg/Makefile
714 docs/xsl/Makefile
715 docs/version.entities
716 pkgconfig/Makefile
717 stamp.h
718 pkgconfig/gstreamer.pc
719 pkgconfig/gstreamer-uninstalled.pc
720 pkgconfig/gstreamer-control.pc
721 pkgconfig/gstreamer-control-uninstalled.pc
722 gstreamer.spec,
723 echo "$infomessages", infomessages="$infomessages"
724 )