769a4713e0bb6579b3a28dec3a8826d3d680c965
[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, 1, 1, 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, 1, 0, 0)
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")
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 AS_COMPILER_FLAG(-Wall,GST_ERROR="$GST_ERROR -Wall",GST_ERROR="$GST_ERROR")
57 if test "x$GST_CVS" = "xyes"; then
58   AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
59   GST_ERROR="$GST_ERROR"
60 fi
61
62 dnl We disable static building for development, for time savings
63 dnl *NOTE*: dnl this line before release, so release does static too
64 dnl AM_DISABLE_STATIC
65
66 AC_HEADER_STDC([])
67 AC_C_INLINE
68
69 dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
70 dnl messages printed when running cvs builds
71 if test "x$GST_CVS" = "xyes"; then
72   AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
73 fi
74
75 dnl subsystems - can influence other decisions so needs to be high up
76 dnl we need to do AM_CONDITIONAL them here for automake 1.6.x compatibility
77 GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
78 AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes")
79 GST_CHECK_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
80 AM_CONDITIONAL(GST_DISABLE_LOADSAVE, test "x$GST_DISABLE_LOADSAVE" = "xyes")
81 GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
82 AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes")
83 GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
84 AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes")
85 GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing])
86 AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes")
87 GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
88 AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes")
89 GST_CHECK_SUBSYSTEM_DISABLE(ENUMTYPES,[enum types])
90 AM_CONDITIONAL(GST_DISABLE_ENUMTYPES, test "x$GST_DISABLE_ENUMTYPES" = "xyes")
91 GST_CHECK_SUBSYSTEM_DISABLE(INDEX,[index])
92 AM_CONDITIONAL(GST_DISABLE_INDEX, test "x$GST_DISABLE_INDEX" = "xyes")
93 GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin])
94 AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes")
95 GST_CHECK_SUBSYSTEM_DISABLE(URI,[uri handlers])
96 AM_CONDITIONAL(GST_DISABLE_URI, test "x$GST_DISABLE_URI" = "xyes")
97
98 dnl ##############################
99 dnl # Do automated configuration #
100 dnl ##############################
101
102 dnl Check for tools:
103 dnl ================
104
105 dnl allow for different autotools
106 AS_AUTOTOOLS_ALTERNATE()
107
108 dnl modify pkg-config path
109 AC_ARG_WITH(pkg-config-path, 
110    AC_HELP_STRING([--with-pkg-config-path],
111                   [colon-separated list of pkg-config(1) dirs]),
112    [export PKG_CONFIG_PATH=${withval}])
113
114 GST_DOC()
115 GST_ARCH()
116
117 dnl Perl is used in building documentation
118 AC_PATH_PROG(PERL_PATH, perl, no)
119 if test x$PERL_PATH = xno; then
120   AC_MSG_ERROR(Could not find perl)
121 fi
122
123 AC_PROG_AWK
124
125 dnl we require bison for building the parser
126 dnl FIXME: check if AC_PROG_YACC is suitable here
127 AC_PATH_PROG(BISON_PATH, bison, no)
128 if test x$BISON_PATH = xno; then
129   AC_MSG_ERROR(Could not find bison)
130 fi
131
132 dnl check bison version
133 AC_MSG_CHECKING([bison version])
134
135 if $BISON_PATH --version | head -n 1 | $AWK '{ if ($4 < 1.35) exit 1; else exit 0;}'; 
136 then 
137   AC_MSG_RESULT([ok])
138 else 
139   AC_MSG_RESULT([too old.])
140   AC_MSG_ERROR([Your bison version is too old, v1.35 or later is required.])
141 fi
142
143 dnl we require flex for building the parser
144 dnl FIXME: check if AC_PROG_LEX is suitable here
145 AC_PATH_PROG(FLEX_PATH, flex, no)
146 if test x$FLEX_PATH = xno; then
147   AC_MSG_ERROR(Could not find flex)
148 fi
149
150 dnl
151 dnl We should really use AC_SYS_LARGEFILE, but the problem is
152 dnl many of the plugins don't include "config.h".  To assure
153 dnl binary compatibility, it is necessary that all gstreamer
154 dnl code be compiled with the same sizeof(off_t), so we use
155 dnl the following crude hack.
156 dnl
157
158 dnl
159 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
160 dnl same for libs
161 dnl this is so we can make GST_CFLAGS for external modules available
162 dnl without mixing in internal (uninstalled) CFLAGS
163 dnl
164
165 dnl disable deprecated functions internally
166 GST_INT_CFLAGS="-DGST_DISABLE_DEPRECATED"
167
168 AC_MSG_CHECKING(for large file support)
169 AC_TRY_RUN([
170 #define _LARGEFILE_SOURCE
171 #define _FILE_OFFSET_BITS 64
172 #include <sys/types.h>
173 int main () { return !(sizeof(off_t) == 8); }
174 ],
175 [
176 AC_MSG_RESULT(yes)
177 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
178 ],
179 [
180 AC_MSG_RESULT(no)
181 ],
182 [
183 AC_MSG_RESULT(no)
184 ])
185
186 dnl check for mmap
187 AC_FUNC_MMAP()
188 if test "$ac_cv_func_mmap_fixed_mapped" = "yes" ; then
189   GST_DISABLE_OMEGA_COTHREADS=no
190 else
191   GST_DISABLE_OMEGA_COTHREADS=yes
192 fi
193 dnl for future --disabling, maybe.  Right now, it depends on HAVE_MMAP
194 AM_CONDITIONAL(GST_DISABLE_OMEGA_COTHREADS, test "x$GST_DISABLE_OMEGA_COTHREADS" = "xyes")
195
196 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
197 AC_CHECK_MCSC()
198 if test "$ac_cv_check_mcsc" = "yes"; then
199   AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT,
200                      [defined if we have makecontext ()])
201 fi
202
203 dnl Check for a way to display the function name in debug output
204 GST_CHECK_FUNCTION()
205
206 dnl check if we should use -Wa,-mregnames on PowerPC, so we can use
207 dnl symbolic register names in inline asm
208 if test x$HAVE_CPU_PPC = xyes ; then
209   AS_COMPILER_FLAG(["-Wa,-mregnames"],
210     [GST_INT_CFLAGS="$GST_INT_CFLAGS -Wa,-mregnames"],
211     true)
212 fi
213
214 AC_ARG_ENABLE(gcov,
215   AC_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),
216   enable_gcov=$enableval,enable_gcov=no)
217 if test x$enable_gcov = xyes ; then
218   AS_COMPILER_FLAG(["-fprofile-arcs"],
219     [GST_INT_CFLAGS="$GST_INT_CFLAGS -fprofile-arcs"],
220     true)
221   AS_COMPILER_FLAG(["-ftest-coverage"],
222     [GST_INT_CFLAGS="$GST_INT_CFLAGS -ftest-coverage"],
223     true)
224   GST_INT_CFLAGS=`echo "$GST_INT_CFLAGS" | sed -e 's/-O[0-9]*//g'`
225
226   AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
227 fi
228 AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes)
229
230 dnl Check for some compiler flags that optimize our code.
231 dnl Only enable this for CVS builds for now
232 if test "x$GST_CVS" = "xyes"; then
233   AS_COMPILER_FLAG(-fno-common,GST_INT_CFLAGS="$GST_INT_CFLAGS -fno-common",)
234 fi
235
236 dnl HAVE_WIN32 currently means "disable POSIXisms".
237 case "$host" in
238   *-*-mingw*)
239     AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
240     ;;
241   *)
242     ;;
243 esac
244
245 GST_UNALIGNED_ACCESS()
246
247 dnl Check for essential libraries first:
248 dnl ====================================
249
250 dnl === GLib 2 ===
251 dnl Minimum required version of GLib2
252 dnl required for compilation without warnings
253 GLIB2_REQ="2.2"
254 AC_SUBST(GLIB2_REQ)
255
256 dnl Check for glib2 with sugar on top
257 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no)
258 GLIB_LIBS=$GLIB2_LIBS
259 GLIB_CFLAGS=$GLIB2_CFLAGS
260 AC_SUBST(GLIB_LIBS)
261 AC_SUBST(GLIB_CFLAGS)
262
263 if test "x$HAVE_GLIB2" = "xno"; then
264   AC_MSG_ERROR([GStreamer requires GLib $GLIB2_REQ to compile.])
265 fi
266
267 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
268 AC_SUBST(GST_PKG_DEPS)
269
270 dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
271 PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB2_REQ)
272 AC_SUBST(GLIB_ONLY_CFLAGS)
273 AC_SUBST(GLIB_ONLY_LIBS)
274   
275 dnl === libxml 2 ===
276 if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes"
277 then
278   AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2])
279 else
280   dnl check for libxml2 with minimum req version
281   GST_LIBXML2_CHECK(2.4.9)
282 fi
283
284 dnl popt checks
285 dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2
286 dnl        causes segfaults on gst_init. Write a working test if possible.
287 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
288   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
289                 download the latest version from 
290                 ftp://ftp.rpm.org/pub/rpm/dist/])
291 )
292 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
293 AC_COMPILE_IFELSE([
294 #include <popt.h>
295 int main ()
296 {
297 #ifndef POPT_TABLEEND
298 #error
299 #else
300   return 0;
301 #endif
302 }
303 ],, [
304   dnl it failed
305   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
306                 download the latest version from 
307                 ftp://ftp.rpm.org/pub/rpm/dist/])
308 ])
309 AC_SUBST(POPT_LIBS)
310
311 dnl Check for ucontext.h
312 AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h]))
313
314 dnl ######################################################################
315 dnl # Check command line parameters, and set shell variables accordingly #
316 dnl ######################################################################
317
318 dnl FIXME: simplify all this down using a few m4 macros
319
320 AC_ARG_ENABLE(libmmx,
321 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
322 [case "${enableval}" in
323   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
324   no)  USE_LIBMMX=no ;;
325   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
326 esac], 
327 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
328
329 AC_ARG_ENABLE(fast-stack-trash,
330 AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]),
331 [case "${enableval}" in
332   yes) USE_FAST_STACK_TRASH=yes;;
333   noset) USE_FAST_STACK_TRASH=no;;
334   no)  USE_FAST_STACK_TRASH=no;;
335   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
336 esac], 
337 [USE_FAST_STACK_TRASH=yes]) dnl Default value
338
339 AC_ARG_ENABLE(plugin-builddir,
340 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
341 [case "${enableval}" in
342   yes) PLUGINS_USE_BUILDDIR=yes ;;
343   no)  PLUGINS_USE_BUILDDIR=no ;;
344   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
345 esac], 
346 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
347
348 AC_ARG_ENABLE(profiling,
349 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
350 [case "${enableval}" in
351   yes) USE_PROFILING=yes ;;
352   no)  USE_PROFILING=no ;;
353   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
354 esac], 
355 [USE_PROFILING=no]) dnl Default value
356
357 dnl use a cache dir for storing element registry info.
358 dnl default to building registry in the source tree if we are enabling plugin build dir
359 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
360   GST_CACHE_DIR=`pwd`
361 else
362   dnl ${localstatedir} points to PREFIX/var
363   GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
364 fi
365 AC_ARG_WITH(cachedir,
366 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
367 [case "${withval}" in
368   yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
369   no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
370   *) GST_CACHE_DIR="${withval}" ;;
371 esac], 
372 [:]) dnl Default value
373
374 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
375 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry])
376 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
377
378 dnl building of tests
379 AC_ARG_ENABLE(tests,
380 AC_HELP_STRING([--disable-tests],[disable building test apps]),
381 [case "${enableval}" in
382   yes) BUILD_TESTS=yes ;;
383   no)  BUILD_TESTS=no ;;
384   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
385 esac], 
386 [BUILD_TESTS=yes]) dnl Default value
387 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
388
389 dnl tests known to fail
390 AC_ARG_ENABLE(failing-tests,
391 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
392 [case "${enableval}" in
393   yes) BUILD_FAILING_TESTS=yes ;;
394   no)  BUILD_FAILING_TESTS=no ;;
395   *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
396 esac], 
397 [BUILD_FAILING_TESTS=no]) dnl Default value
398 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
399 if test x$BUILD_FAILING_TESTS = xyes; then
400   AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
401 else
402   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.])
403 fi
404
405 AC_ARG_ENABLE(examples,
406 AC_HELP_STRING([--disable-examples],[disable building examples]),
407 [case "${enableval}" in
408   yes) BUILD_EXAMPLES=yes ;;
409   no)  BUILD_EXAMPLES=no ;;
410   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
411 esac], 
412 [BUILD_EXAMPLES=yes]) dnl Default value
413 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
414
415 dnl poison destroyed objects
416 AC_ARG_ENABLE(poisoning,
417 AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
418 [case "${enableval}" in
419   yes) USE_POISONING=yes ;;
420   no)  USE_POISONING=no ;;
421   *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
422 esac], 
423 [USE_POISONING=no]) dnl Default value
424
425 dnl Next, check for the optional components:
426 dnl ========================================
427
428 dnl debugging stuff
429 AC_ARG_ENABLE(debug,
430 AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]),
431 [case "${enableval}" in
432   yes) USE_DEBUG=yes ;;
433   no)  USE_DEBUG=no ;;
434   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
435 esac],
436 [USE_DEBUG=yes]) dnl Default value
437
438 dnl valgrind inclusion
439 USE_VALGRIND="$USE_DEBUG"
440 if test "x$USE_VALGRIND" = xyes; then
441   PKG_CHECK_MODULES(VALGRIND, valgrind, 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 dnl package name in plugins
519 AC_ARG_WITH(package-name,
520 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
521 [case "${withval}" in
522   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
523   no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
524   *) GST_PACKAGE="${withval}" ;;
525 esac], 
526 [GST_PACKAGE="GStreamer"]) dnl Default value
527 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
528 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
529 dnl package origin URL
530 AC_ARG_WITH(package-origin,
531 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
532 [case "${withval}" in
533   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
534   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
535   *) GST_ORIGIN="${withval}" ;;
536 esac], 
537 [GST_ORIGIN="http://gstreamer.net/"]) dnl Default value
538 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
539 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
540
541 dnl Set location of plugin directory
542 AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
543 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
544 AC_SUBST(PLUGINS_DIR)
545 AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location])
546
547 dnl Set location of uninstalled plugin directory
548 PLUGINS_BUILDDIR=`pwd`
549 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
550 AC_SUBST(PLUGINS_BUILDDIR)
551
552 dnl since glib and xml are package deps, there's no need to include their cflags
553 dnl in the pkg-config file
554
555 dnl for pkg-config
556 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
557 GST_PKG_LIBS=$GST_EXT_LIBS
558 AC_SUBST(GST_PKG_CFLAGS)
559 AC_SUBST(GST_PKG_LIBS)
560
561 dnl finalize _CFLAGS and _LIBS
562 dnl add GLIB and XML if necessary to EXT_*
563 GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
564 GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
565
566 dnl Private vars for libgst only
567 LIBGST_LIBS="$GST_LIBS"
568 LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR"
569 AC_SUBST(LIBGST_LIBS)
570 AC_SUBST(LIBGST_CFLAGS)
571
572 dnl Vars for everyone else
573 GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
574 GST_INT_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
575
576 AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
577 AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
578
579 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*"
580 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
581
582
583 dnl ##################################################
584 dnl # deps for examples from manual                  #
585 dnl ##################################################
586
587 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
588                   HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
589 AC_SUBST(LIBGNOMEUI_CFLAGS)
590 AC_SUBST(LIBGNOMEUI_LIBS)
591 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
592
593 dnl ##################################################
594 dnl # Prepare informative messages to display at end #
595 dnl ##################################################
596
597 infomessages=
598
599 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
600   infomessages="$infomessages
601 *** Warning: You have configured using the --enable-plugin-builddir option.
602
603 This option is for development purposes only: binaries built with
604 it should be used with code in the build tree only.  To build an
605 installable version, use ./configure without the --enable-plugin-builddir
606 option.  Note that the autogen.sh script supplies the plugin builddir
607 option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
608 an installable build.
609
610 "
611 fi
612
613 dnl #########################
614 dnl # Make the output files #
615 dnl #########################
616
617 dnl libs/ext/Makefile
618 dnl nothing there yet !
619 AC_OUTPUT(
620 Makefile
621 include/Makefile
622 gst/Makefile
623 gst/gstconfig.h
624 gst/gstversion.h
625 gst/autoplug/Makefile
626 gst/indexers/Makefile
627 gst/elements/Makefile
628 gst/parse/Makefile
629 gst/schedulers/Makefile
630 gst/registries/Makefile
631 libs/Makefile
632 libs/gst/Makefile
633 libs/gst/bytestream/Makefile
634 libs/gst/control/Makefile
635 libs/gst/getbits/Makefile
636 po/Makefile.in
637 tests/Makefile
638 tests/bufspeed/Makefile
639 tests/instantiate/Makefile
640 tests/memchunk/Makefile
641 tests/muxing/Makefile
642 tests/seeking/Makefile
643 tests/sched/Makefile
644 tests/threadstate/Makefile
645 testsuite/Makefile
646 testsuite/bins/Makefile
647 testsuite/bytestream/Makefile
648 testsuite/caps/Makefile
649 testsuite/cleanup/Makefile
650 testsuite/clock/Makefile
651 testsuite/debug/Makefile
652 testsuite/dynparams/Makefile
653 testsuite/elements/Makefile
654 testsuite/ghostpads/Makefile
655 testsuite/indexers/Makefile
656 testsuite/parse/Makefile
657 testsuite/plugin/Makefile
658 testsuite/refcounting/Makefile
659 testsuite/tags/Makefile
660 testsuite/threads/Makefile
661 examples/Makefile
662 examples/cutter/Makefile
663 examples/helloworld/Makefile
664 examples/launch/Makefile
665 examples/manual/Makefile
666 examples/mixer/Makefile
667 examples/pingpong/Makefile
668 examples/plugins/Makefile
669 examples/queue/Makefile
670 examples/queue2/Makefile
671 examples/queue3/Makefile
672 examples/queue4/Makefile
673 examples/retag/Makefile
674 examples/thread/Makefile
675 examples/typefind/Makefile
676 examples/xml/Makefile
677 tools/Makefile
678 common/Makefile
679 common/m4/Makefile
680 docs/Makefile
681 docs/faq/Makefile
682 docs/gst/Makefile
683 docs/libs/Makefile
684 docs/manual/Makefile
685 docs/plugins/Makefile
686 docs/plugins/gstreamer-plugins.types
687 docs/pwg/Makefile
688 docs/xsl/Makefile
689 docs/version.entities
690 pkgconfig/Makefile
691 stamp.h
692 pkgconfig/gstreamer.pc
693 pkgconfig/gstreamer-uninstalled.pc
694 pkgconfig/gstreamer-control.pc
695 pkgconfig/gstreamer-control-uninstalled.pc
696 gstreamer.spec,
697 echo "$infomessages", infomessages="$infomessages"
698 )
699