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