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