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