releasing 0.7.6
[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, 7, 6, 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 for the release candidate
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, 0, 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_VERSION_MAJOR.$GST_VERSION_MINOR
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 dnl we require bison for building the parser
124 dnl FIXME: check if AC_PROG_YACC is suitable here
125 AC_PATH_PROG(BISON_PATH, bison, no)
126 if test x$BISON_PATH = xno; then
127   AC_MSG_ERROR(Could not find bison)
128 fi
129
130 dnl we require flex for building the parser
131 dnl FIXME: check if AC_PROG_LEX is suitable here
132 AC_PATH_PROG(FLEX_PATH, flex, no)
133 if test x$FLEX_PATH = xno; then
134   AC_MSG_ERROR(Could not find flex)
135 fi
136
137 dnl
138 dnl We should really use AC_SYS_LARGEFILE, but the problem is
139 dnl many of the plugins don't include "config.h".  To assure
140 dnl binary compatibility, it is necessary that all gstreamer
141 dnl code be compiled with the same sizeof(off_t), so we use
142 dnl the following crude hack.
143 dnl
144
145 dnl
146 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
147 dnl same for libs
148 dnl this is so we can make GST_CFLAGS for external modules available
149 dnl without mixing in internal (uninstalled) CFLAGS
150 dnl
151
152 dnl disable deprecated functions internally
153 GST_INT_CFLAGS="-DGST_DISABLE_DEPRECATED"
154
155 AC_MSG_CHECKING(for large file support)
156 AC_TRY_RUN([
157 #define _LARGEFILE_SOURCE
158 #define _FILE_OFFSET_BITS 64
159 #include <sys/types.h>
160 int main () { return !(sizeof(off_t) == 8); }
161 ],
162 [
163 AC_MSG_RESULT(yes)
164 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
165 ],
166 [
167 AC_MSG_RESULT(no)
168 ],
169 [
170 AC_MSG_RESULT(no)
171 ])
172
173 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
174 AC_CHECK_MCSC()
175 if test "$ac_cv_check_mcsc" = "yes"; then
176   AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT,
177                      [defined if we have makecontext ()])
178 fi
179
180 dnl Check for a way to display the function name in debug output
181 GST_CHECK_FUNCTION()
182
183 dnl check if we should use -Wa,-mregnames on PowerPC, so we can use
184 dnl symbolic register names in inline asm
185 if test x$HAVE_CPU_PPC = xyes ; then
186   AS_COMPILER_FLAG(["-Wa,-mregnames"],
187     [GST_INT_CFLAGS="$GST_INT_CFLAGS -Wa,-mregnames"],
188     true)
189 fi
190
191 AC_ARG_ENABLE(gcov,
192   AC_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]),
193   enable_gcov=$enableval,enable_gcov=no)
194 if test x$enable_gcov = xyes ; then
195   AS_COMPILER_FLAG(["-fprofile-arcs"],
196     [GST_INT_CFLAGS="$GST_INT_CFLAGS -fprofile-arcs"],
197     true)
198   AS_COMPILER_FLAG(["-ftest-coverage"],
199     [GST_INT_CFLAGS="$GST_INT_CFLAGS -ftest-coverage"],
200     true)
201   GST_INT_CFLAGS=`echo "$GST_INT_CFLAGS" | sed -e 's/-O[0-9]*//g'`
202
203   AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing])
204 fi
205 AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes)
206
207
208 dnl Check for essential libraries first:
209 dnl ====================================
210
211 dnl === GLib 2 ===
212 dnl Minimum required version of GLib2
213 dnl required for compilation without warnings
214 GLIB2_REQ="2.2"
215 AC_SUBST(GLIB2_REQ)
216
217 dnl Check for glib2 with sugar on top
218 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no)
219 GLIB_LIBS=$GLIB2_LIBS
220 GLIB_CFLAGS=$GLIB2_CFLAGS
221 AC_SUBST(GLIB_LIBS)
222 AC_SUBST(GLIB_CFLAGS)
223
224 if test "x$HAVE_GLIB2" = "xno"; then
225   AC_MSG_ERROR([GStreamer requires GLib $GLIB2_REQ to compile.])
226 fi
227
228 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
229 AC_SUBST(GST_PKG_DEPS)
230
231 dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
232 PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB2_REQ)
233 AC_SUBST(GLIB_ONLY_CFLAGS)
234 AC_SUBST(GLIB_ONLY_LIBS)
235   
236 dnl === libxml 2 ===
237 if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes"
238 then
239   AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2])
240 else
241   dnl check for libxml2 with minimum req version
242   GST_LIBXML2_CHECK(2.4.9)
243 fi
244
245 dnl popt checks
246 dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2
247 dnl        causes segfaults on gst_init. Write a working test if possible.
248 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
249   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
250                 download the latest version from 
251                 ftp://ftp.rpm.org/pub/rpm/dist/])
252 )
253 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
254 AC_COMPILE_IFELSE([
255 #include <popt.h>
256 int main ()
257 {
258 #ifndef POPT_TABLEEND
259 #error
260 #else
261   return 0;
262 #endif
263 }
264 ],, [
265   dnl it failed
266   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
267                 download the latest version from 
268                 ftp://ftp.rpm.org/pub/rpm/dist/])
269 ])
270 AC_SUBST(POPT_LIBS)
271
272 dnl Check for atomic.h
273 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
274 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
275 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
276 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
277 if test x$HAVE_ATOMIC_H = xyes; then
278   AC_LINK_IFELSE([
279 #include "asm/atomic.h"
280 main() {atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
281   ],, [
282     # Not successful
283     if test x$HAVE_ATOMIC_H = xyes; then
284       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
285     fi
286     HAVE_ATOMIC_H=no
287   ])
288 fi
289
290 dnl Check for ucontext.h
291 AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h]))
292
293 dnl ######################################################################
294 dnl # Check command line parameters, and set shell variables accordingly #
295 dnl ######################################################################
296
297 dnl FIXME: simplify all this down using a few m4 macros
298
299 AC_ARG_ENABLE(libmmx,
300 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
301 [case "${enableval}" in
302   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
303   no)  USE_LIBMMX=no ;;
304   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
305 esac], 
306 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
307
308 AC_ARG_ENABLE(atomic,
309 AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
310 [case "${enableval}" in
311   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
312   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
313   no)  USE_ATOMIC_H=no;;
314   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
315 esac], 
316 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
317
318 AC_ARG_ENABLE(fast-stack-trash,
319 AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]),
320 [case "${enableval}" in
321   yes) USE_FAST_STACK_TRASH=yes;;
322   noset) USE_FAST_STACK_TRASH=no;;
323   no)  USE_FAST_STACK_TRASH=no;;
324   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
325 esac], 
326 [USE_FAST_STACK_TRASH=yes]) dnl Default value
327
328 AC_ARG_ENABLE(plugin-builddir,
329 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
330 [case "${enableval}" in
331   yes) PLUGINS_USE_BUILDDIR=yes ;;
332   no)  PLUGINS_USE_BUILDDIR=no ;;
333   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
334 esac], 
335 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
336
337 AC_ARG_ENABLE(profiling,
338 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
339 [case "${enableval}" in
340   yes) USE_PROFILING=yes ;;
341   no)  UES_PROFILING=no ;;
342   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
343 esac], 
344 [USE_PROFILING=no]) dnl Default value
345
346 dnl use a cache dir for storing element registry info.
347 dnl default to building registry in the source tree if we are enabling plugin build dir
348 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
349   GST_CACHE_DIR=`pwd`
350 else
351   dnl ${localstatedir} points to PREFIX/var
352   GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
353 fi
354 AC_ARG_WITH(cachedir,
355 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
356 [case "${withval}" in
357   yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
358   no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
359   *) GST_CACHE_DIR="${withval}" ;;
360 esac], 
361 [:]) dnl Default value
362
363 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
364 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry])
365 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
366
367 dnl building of tests
368 AC_ARG_ENABLE(tests,
369 AC_HELP_STRING([--disable-tests],[disable building test apps]),
370 [case "${enableval}" in
371   yes) BUILD_TESTS=yes ;;
372   no)  BUILD_TESTS=no ;;
373   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
374 esac], 
375 [BUILD_TESTS=yes]) dnl Default value
376 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
377
378 dnl tests known to fail
379 AC_ARG_ENABLE(failing-tests,
380 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
381 [case "${enableval}" in
382   yes) BUILD_FAILING_TESTS=yes ;;
383   no)  BUILD_FAILING_TESTS=no ;;
384   *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
385 esac], 
386 [BUILD_FAILING_TESTS=no]) dnl Default value
387 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
388 if test x$BUILD_FAILING_TESTS = xyes; then
389   AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
390 else
391   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.])
392 fi
393
394 AC_ARG_ENABLE(examples,
395 AC_HELP_STRING([--disable-examples],[disable building examples]),
396 [case "${enableval}" in
397   yes) BUILD_EXAMPLES=yes ;;
398   no)  BUILD_EXAMPLES=no ;;
399   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
400 esac], 
401 [BUILD_EXAMPLES=yes]) dnl Default value
402 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
403
404 dnl poison destroyed objects
405 AC_ARG_ENABLE(poisoning,
406 AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
407 [case "${enableval}" in
408   yes) USE_POISONING=yes ;;
409   no)  USE_POISONING=no ;;
410   *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
411 esac], 
412 [USE_POISONING=no]) dnl Default value
413
414 dnl Next, check for the optional components:
415 dnl ========================================
416
417 dnl debugging stuff
418 AC_ARG_ENABLE(debug,
419 AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]),
420 [case "${enableval}" in
421   yes) USE_DEBUG=yes ;;
422   no)  USE_DEBUG=no ;;
423   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
424 esac],
425 [USE_DEBUG=yes]) dnl Default value
426
427 dnl ################################################
428 dnl # Set defines according to variables set above #
429 dnl ################################################
430
431
432 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
433 dnl HAVE_ and it is likely to be easier to stick with the old name
434 if test "x$USE_LIBMMX" = xyes; then
435   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
436 fi
437
438 if test "x$USE_ATOMIC_H" = xyes; then
439   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
440 fi
441
442 if test "x$USE_FAST_STACK_TRASH" = xyes; then
443   AC_DEFINE(USE_FAST_STACK_TRASH, 1, [Define if we should use i586 optimized stack functions])
444 fi
445
446 if test "x$USE_POISONING" = xyes; then
447   AC_DEFINE(USE_POISONING, 1, [Define if we should poison deallocated memory])
448 fi
449
450 dnl test for sigaction()
451 AC_CHECK_FUNC(sigaction,
452    AC_DEFINE(HAVE_SIGACTION, 1,
453              [Defined if we have sigaction ()]))
454
455 dnl test for register_printf_function
456 AC_CHECK_FUNC(register_printf_function,
457   [
458     GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
459     AC_DEFINE(HAVE_PRINTF_EXTENSION, 1,
460              [Defined if we have register_printf_function ()])
461   ],
462   GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
463 )
464 AC_SUBST(GST_PRINTF_EXTENSION_FORMAT_DEFINE)
465
466 dnl test if we have dladdr(); we use it for debugging
467 save_cflags="$CFLAGS"
468 CFLAGS="$CFLAGS -D_GNU_SOURCE"
469 AC_CHECK_LIB(dl, dladdr,
470    AC_DEFINE(HAVE_DLADDR, 1,
471              [Defined if we have dladdr ()]))
472 CFLAGS="$save_cflags"
473
474 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
475   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
476 fi
477
478 if test "x$USE_DEBUG" = xyes; then
479    GST_INT_CFLAGS="$GST_INT_CFLAGS -g"
480 fi
481
482 dnl #############################
483 dnl # Set automake conditionals #
484 dnl #############################
485
486 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
487 dnl HAVE_ and it is likely to be easier to stick with the old name
488 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
489 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
490 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
491 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
492
493
494 dnl ############################
495 dnl # Set up some more defines #
496 dnl ############################
497
498 dnl set license and copyright notice
499 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
500 dnl package name in plugins
501 AC_ARG_WITH(package-name,
502 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
503 [case "${withval}" in
504   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
505   no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
506   *) GST_PACKAGE="${withval}" ;;
507 esac], 
508 [GST_PACKAGE="GStreamer"]) dnl Default value
509 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
510 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
511 dnl package origin URL
512 AC_ARG_WITH(package-origin,
513 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
514 [case "${withval}" in
515   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
516   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
517   *) GST_ORIGIN="${withval}" ;;
518 esac], 
519 [GST_ORIGIN="http://gstreamer.net/"]) dnl Default value
520 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
521 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
522
523 dnl Set location of plugin directory
524 AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
525 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
526 AC_SUBST(PLUGINS_DIR)
527 AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location])
528
529 dnl Set location of uninstalled plugin directory
530 PLUGINS_BUILDDIR=`pwd`
531 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
532 AC_SUBST(PLUGINS_BUILDDIR)
533
534 dnl since glib and xml are package deps, there's no need to include their cflags
535 dnl in the pkg-config file
536
537 dnl for pkg-config
538 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
539 GST_PKG_LIBS=$GST_EXT_LIBS
540 AC_SUBST(GST_PKG_CFLAGS)
541 AC_SUBST(GST_PKG_LIBS)
542
543 dnl finalize _CFLAGS and _LIBS
544 dnl add GLIB and XML if necessary to EXT_*
545 GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
546 GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt"
547
548 dnl Private vars for libgst only
549 LIBGST_LIBS="$GST_LIBS"
550 LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR"
551 AC_SUBST(LIBGST_LIBS)
552 AC_SUBST(LIBGST_CFLAGS)
553
554 dnl Vars for everyone else
555 GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
556 GST_INT_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)/include"
557
558 AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS")
559 AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS")
560
561 GST_PLUGIN_LDFLAGS="-module -avoid-version"
562 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
563
564
565 dnl ##################################################
566 dnl # deps for examples from manual                  #
567 dnl ##################################################
568
569 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
570                   HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
571 AC_SUBST(LIBGNOMEUI_CFLAGS)
572 AC_SUBST(LIBGNOMEUI_LIBS)
573 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
574
575 dnl ##################################################
576 dnl # Prepare informative messages to display at end #
577 dnl ##################################################
578
579 infomessages=
580
581 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
582   infomessages="$infomessages
583 *** Warning: You have configured using the --enable-plugin-builddir option.
584
585 This option is for development purposes only: binaries built with
586 it should be used with code in the build tree only.  To build an
587 installable version, use ./configure without the --enable-plugin-builddir
588 option.  Note that the autogen.sh script supplies the plugin builddir
589 option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
590 an installable build.
591
592 "
593 fi
594
595 dnl #########################
596 dnl # Make the output files #
597 dnl #########################
598
599 dnl libs/ext/Makefile
600 dnl nothing there yet !
601 AC_OUTPUT(
602 Makefile
603 include/Makefile
604 gst/Makefile
605 gst/gstconfig.h
606 gst/gstversion.h
607 gst/autoplug/Makefile
608 gst/indexers/Makefile
609 gst/elements/Makefile
610 gst/parse/Makefile
611 gst/schedulers/Makefile
612 gst/registries/Makefile
613 libs/Makefile
614 libs/gst/Makefile
615 libs/gst/bytestream/Makefile
616 libs/gst/control/Makefile
617 libs/gst/getbits/Makefile
618 po/Makefile.in
619 tests/Makefile
620 tests/bufspeed/Makefile
621 tests/instantiate/Makefile
622 tests/memchunk/Makefile
623 tests/muxing/Makefile
624 tests/seeking/Makefile
625 tests/sched/Makefile
626 tests/threadstate/Makefile
627 testsuite/Makefile
628 testsuite/bins/Makefile
629 testsuite/bytestream/Makefile
630 testsuite/caps/Makefile
631 testsuite/cleanup/Makefile
632 testsuite/clock/Makefile
633 testsuite/debug/Makefile
634 testsuite/dynparams/Makefile
635 testsuite/elements/Makefile
636 testsuite/ghostpads/Makefile
637 testsuite/indexers/Makefile
638 testsuite/parse/Makefile
639 testsuite/plugin/Makefile
640 testsuite/refcounting/Makefile
641 testsuite/tags/Makefile
642 testsuite/threads/Makefile
643 examples/Makefile
644 examples/cutter/Makefile
645 examples/helloworld/Makefile
646 examples/launch/Makefile
647 examples/manual/Makefile
648 examples/mixer/Makefile
649 examples/pingpong/Makefile
650 examples/plugins/Makefile
651 examples/queue/Makefile
652 examples/queue2/Makefile
653 examples/queue3/Makefile
654 examples/queue4/Makefile
655 examples/retag/Makefile
656 examples/thread/Makefile
657 examples/typefind/Makefile
658 examples/xml/Makefile
659 tools/Makefile
660 docs/Makefile
661 docs/faq/Makefile
662 docs/gst/Makefile
663 docs/libs/Makefile
664 docs/manual/Makefile
665 docs/plugins/Makefile
666 docs/plugins/gstreamer-plugins.types
667 docs/pwg/Makefile
668 docs/xsl/Makefile
669 docs/version.entities
670 pkgconfig/Makefile
671 stamp.h
672 pkgconfig/gstreamer.pc
673 pkgconfig/gstreamer-uninstalled.pc
674 pkgconfig/gstreamer-control.pc
675 pkgconfig/gstreamer-control-uninstalled.pc
676 gstreamer.spec,
677 echo "$infomessages", infomessages="$infomessages"
678 )
679