prerel
[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, 3, 2, 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, 3, 0, 2)
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 dnl Only enable this for CVS builds for now
226 if test "x$GST_CVS" = "xyes"; then
227   AS_COMPILER_FLAG(-fno-common,GST_INT_CFLAGS="$GST_INT_CFLAGS -fno-common",)
228 fi
229
230 dnl HAVE_WIN32 currently means "disable POSIXisms".
231 case "$host" in
232   *-*-mingw*)
233     AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
234     ;;
235   *)
236     ;;
237 esac
238
239 GST_UNALIGNED_ACCESS()
240 if test x${as_cv_unaligned_access} = xyes ; then
241   GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1"
242 else
243   GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0"
244 fi
245 AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE)
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 dnl for the poor souls who for example have glib in /usr/local
259 AS_SCRUB_INCLUDE(GLIB2_CFLAGS)
260 GLIB_LIBS=$GLIB2_LIBS
261 GLIB_CFLAGS=$GLIB2_CFLAGS
262 AC_SUBST(GLIB_LIBS)
263 AC_SUBST(GLIB_CFLAGS)
264
265 if test "x$HAVE_GLIB2" = "xno"; then
266   AC_MSG_ERROR([GStreamer requires GLib $GLIB2_REQ to compile.])
267 fi
268
269 dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
270 PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB2_REQ)
271 AC_SUBST(GLIB_ONLY_CFLAGS)
272 AC_SUBST(GLIB_ONLY_LIBS)
273   
274 dnl === libxml 2 ===
275 if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes"
276 then
277   AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2])
278 else
279   dnl check for libxml2 with minimum req version
280   GST_LIBXML2_CHECK(2.4.9)
281 fi
282
283 dnl popt checks
284 dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2
285 dnl        causes segfaults on gst_init. Write a working test if possible.
286 GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt",
287   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
288                 download the latest version from 
289                 ftp://ftp.rpm.org/pub/rpm/dist/])
290 )
291 AC_MSG_NOTICE(Checking for POPT_TABLEEND)
292 AC_COMPILE_IFELSE([
293 #include <popt.h>
294 int main ()
295 {
296 #ifndef POPT_TABLEEND
297 #error
298 #else
299   return 0;
300 #endif
301 }
302 ],, [
303   dnl it failed
304   AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
305                 download the latest version from 
306                 ftp://ftp.rpm.org/pub/rpm/dist/])
307 ])
308 AC_SUBST(POPT_LIBS)
309
310 dnl Check for ucontext.h
311 AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h]))
312
313 dnl ######################################################################
314 dnl # Check command line parameters, and set shell variables accordingly #
315 dnl ######################################################################
316
317 dnl FIXME: simplify all this down using a few m4 macros
318
319 AC_ARG_ENABLE(libmmx,
320 AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
321 [case "${enableval}" in
322   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
323   no)  USE_LIBMMX=no ;;
324   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
325 esac], 
326 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
327
328 AC_ARG_ENABLE(fast-stack-trash,
329 AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]),
330 [case "${enableval}" in
331   yes) USE_FAST_STACK_TRASH=yes;;
332   noset) USE_FAST_STACK_TRASH=no;;
333   no)  USE_FAST_STACK_TRASH=no;;
334   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
335 esac], 
336 [USE_FAST_STACK_TRASH=yes]) dnl Default value
337
338 AC_ARG_ENABLE(plugin-builddir,
339 AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]),
340 [case "${enableval}" in
341   yes) PLUGINS_USE_BUILDDIR=yes ;;
342   no)  PLUGINS_USE_BUILDDIR=no ;;
343   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
344 esac], 
345 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
346
347 AC_ARG_ENABLE(profiling,
348 AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
349 [case "${enableval}" in
350   yes) USE_PROFILING=yes ;;
351   no)  USE_PROFILING=no ;;
352   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
353 esac], 
354 [USE_PROFILING=no]) dnl Default value
355
356 dnl use a cache dir for storing element registry info.
357 dnl default to building registry in the source tree if we are enabling plugin build dir
358 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
359   GST_CACHE_DIR=`pwd`
360 else
361   dnl ${localstatedir} points to PREFIX/var
362   GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR
363 fi
364 AC_ARG_WITH(cachedir,
365 AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]),
366 [case "${withval}" in
367   yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
368   no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;;
369   *) GST_CACHE_DIR="${withval}" ;;
370 esac], 
371 [:]) dnl Default value
372
373 AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR)
374 AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry])
375 AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir)
376
377 dnl building of tests
378 AC_ARG_ENABLE(tests,
379 AC_HELP_STRING([--disable-tests],[disable building test apps]),
380 [case "${enableval}" in
381   yes) BUILD_TESTS=yes ;;
382   no)  BUILD_TESTS=no ;;
383   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
384 esac], 
385 [BUILD_TESTS=yes]) dnl Default value
386 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
387
388 dnl tests known to fail
389 AC_ARG_ENABLE(failing-tests,
390 AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
391 [case "${enableval}" in
392   yes) BUILD_FAILING_TESTS=yes ;;
393   no)  BUILD_FAILING_TESTS=no ;;
394   *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;;
395 esac], 
396 [BUILD_FAILING_TESTS=no]) dnl Default value
397 AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes")
398 if test x$BUILD_FAILING_TESTS = xyes; then
399   AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable])
400 else
401   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.])
402 fi
403
404 AC_ARG_ENABLE(examples,
405 AC_HELP_STRING([--disable-examples],[disable building examples]),
406 [case "${enableval}" in
407   yes) BUILD_EXAMPLES=yes ;;
408   no)  BUILD_EXAMPLES=no ;;
409   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
410 esac], 
411 [BUILD_EXAMPLES=yes]) dnl Default value
412 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
413
414 dnl poison destroyed objects
415 AC_ARG_ENABLE(poisoning,
416 AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
417 [case "${enableval}" in
418   yes) USE_POISONING=yes ;;
419   no)  USE_POISONING=no ;;
420   *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
421 esac], 
422 [USE_POISONING=no]) dnl Default value
423
424 dnl Next, check for the optional components:
425 dnl ========================================
426
427 dnl debugging stuff
428 AC_ARG_ENABLE(debug,
429 AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]),
430 [case "${enableval}" in
431   yes) USE_DEBUG=yes ;;
432   no)  USE_DEBUG=no ;;
433   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
434 esac],
435 [USE_DEBUG=yes]) dnl Default value
436
437 dnl valgrind inclusion
438 USE_VALGRIND="$USE_DEBUG"
439 VALGRIND_REQ="2.1"
440 if test "x$USE_VALGRIND" = xyes; then
441
442   PKG_CHECK_MODULES(VALGRIND, valgrind > $VALGRIND_REQ, USE_VALGRIND="yes", USE_VALGRIND="no")
443 fi
444 if test "x$USE_VALGRIND" = xyes; then
445   AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used])
446   AC_MSG_NOTICE(Using extra code paths for valgrind)
447 fi
448 AC_SUBST(VALGRIND_CFLAGS)
449 AC_SUBST(VALGRIND_LIBS)
450
451 dnl ################################################
452 dnl # Set defines according to variables set above #
453 dnl ################################################
454
455
456 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
457 dnl HAVE_ and it is likely to be easier to stick with the old name
458 if test "x$USE_LIBMMX" = xyes; then
459   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
460 fi
461
462 if test "x$USE_FAST_STACK_TRASH" = xyes; then
463   AC_DEFINE(USE_FAST_STACK_TRASH, 1, [Define if we should use i586 optimized stack functions])
464 fi
465
466 if test "x$USE_POISONING" = xyes; then
467   AC_DEFINE(USE_POISONING, 1, [Define if we should poison deallocated memory])
468 fi
469
470 dnl test for sigaction()
471 AC_CHECK_FUNC(sigaction,
472    AC_DEFINE(HAVE_SIGACTION, 1,
473              [Defined if we have sigaction ()]))
474
475 dnl test for register_printf_function
476 AC_CHECK_FUNC(register_printf_function,
477   [
478     GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
479     AC_DEFINE(HAVE_PRINTF_EXTENSION, 1,
480              [Defined if we have register_printf_function ()])
481   ],
482   GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
483 )
484 AC_SUBST(GST_PRINTF_EXTENSION_FORMAT_DEFINE)
485
486 dnl test if we have dladdr(); we use it for debugging
487 save_cflags="$CFLAGS"
488 CFLAGS="$CFLAGS -D_GNU_SOURCE"
489 AC_CHECK_LIB(dl, dladdr,
490    AC_DEFINE(HAVE_DLADDR, 1,
491              [Defined if we have dladdr ()]))
492 CFLAGS="$save_cflags"
493
494 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
495   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
496 fi
497
498 if test "x$USE_DEBUG" = xyes; then
499    GST_INT_CFLAGS="$GST_INT_CFLAGS -g"
500 fi
501
502 dnl #############################
503 dnl # Set automake conditionals #
504 dnl #############################
505
506 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
507 dnl HAVE_ and it is likely to be easier to stick with the old name
508 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
509 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
510 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
511
512
513 dnl ############################
514 dnl # Set up some more defines #
515 dnl ############################
516
517 dnl set license and copyright notice
518 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
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 [GST_PACKAGE="GStreamer"]) dnl Default value
528 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
529 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
530 dnl package origin URL
531 AC_ARG_WITH(package-origin,
532 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
533 [case "${withval}" in
534   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
535   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
536   *) GST_ORIGIN="${withval}" ;;
537 esac], 
538 [GST_ORIGIN="http://gstreamer.net/"]) dnl Default value
539 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
540 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
541
542 dnl Set location of plugin directory
543 AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
544 AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
545 AC_SUBST(PLUGINS_DIR)
546 AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location])
547
548 dnl Set location of uninstalled plugin directory
549 PLUGINS_BUILDDIR=`pwd`
550 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory])
551 AC_SUBST(PLUGINS_BUILDDIR)
552
553 dnl LDFLAGS modifier defining exported symbols from built objects
554 EXPORT_LDFLAGS="-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*"
555
556 dnl GST_PKG_*:    the flags we use that are also used
557 dnl               for external applications/.pc file
558 dnl GST_LIB_*:    used for the main library
559 dnl GST_OBJ_*:    the flags we use for all the objects internal to the core
560 dnl GST_PLUGIN_*: additional flags we use for all plugins
561
562 dnl finalize _CFLAGS and _LIBS
563 dnl flags exported for external applications and use in our pkg-config .pc files
564 dnl since glib and xml are package deps, there's no need to include their cflags
565 dnl in the pkg-config file
566
567 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
568 AC_SUBST(GST_PKG_CFLAGS)
569 AC_SUBST(GST_PKG_LIBS)
570 AC_SUBST(GST_PKG_DEPS)
571
572 dnl flags shared for all internal objects (core libs, elements, applications)
573 dnl we disable deprecated internally
574 dnl XML, GLib, popt, GST_INT, VALGRIND, and the right include for CFLAGS
575 dnl no need to add XML, GLib, popt explicitly since libgstreamer pulls them in
576 GST_INT_CFLAGS="$GLIB_CFLAGS $XML_CFLAGS $GST_PKG_CFLAGS \
577  $GST_INT_CFLAGS $GST_ERROR_CFLAGS -DGST_DISABLE_DEPRECATED"
578
579 dnl Private vars for libgst only
580 GST_LIB_CFLAGS="$GST_PKG_CFLAGS $GST_INT_CFLAGS \
581   $VALGRIND_CFLAGS -I\$(top_srcdir)"
582 GST_LIB_LIBS="$XML_LIBS $GLIB_LIBS -lpopt $GST_PKG_LIBS $LTLIBINTL $VALGRIND_LIBS"
583 GST_LIB_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION $EXPORT_LDFLAGS"
584 AC_SUBST(GST_LIB_CFLAGS)
585 AC_SUBST(GST_LIB_LIBS)
586 AC_SUBST(GST_LIB_LDFLAGS)
587
588 dnl Vars for all internal objects built on libgstreamer
589 GST_OBJ_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)"
590 GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la"
591
592 AC_SUBST(GST_OBJ_CFLAGS, "$GST_OBJ_CFLAGS")
593 AC_SUBST(GST_OBJ_LIBS, "$GST_OBJ_LIBS")
594
595 dnl specific additional LDFLAGS for plugins
596 GST_PLUGIN_LDFLAGS="-module -avoid-version $EXPORT_LDFLAGS"
597 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
598
599 plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
600 AC_SUBST(plugindir)
601
602 dnl ##################################################
603 dnl # deps for examples from manual                  #
604 dnl ##################################################
605
606 PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0,
607                   HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no")
608 AC_SUBST(LIBGNOMEUI_CFLAGS)
609 AC_SUBST(LIBGNOMEUI_LIBS)
610 AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
611
612 dnl ##################################################
613 dnl # Prepare informative messages to display at end #
614 dnl ##################################################
615
616 infomessages=
617
618 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
619   infomessages="$infomessages
620 *** Warning: You have configured using the --enable-plugin-builddir option.
621
622 This option is for development purposes only: binaries built with
623 it should be used with code in the build tree only.  To build an
624 installable version, use ./configure without the --enable-plugin-builddir
625 option.  Note that the autogen.sh script supplies the plugin builddir
626 option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
627 an installable build.
628
629 "
630 fi
631
632 dnl #########################
633 dnl # Make the output files #
634 dnl #########################
635
636 dnl libs/ext/Makefile
637 dnl nothing there yet !
638 AC_OUTPUT(
639 Makefile
640 include/Makefile
641 gst/Makefile
642 gst/gstconfig.h
643 gst/gstversion.h
644 gst/autoplug/Makefile
645 gst/indexers/Makefile
646 gst/elements/Makefile
647 gst/parse/Makefile
648 gst/schedulers/Makefile
649 gst/registries/Makefile
650 libs/Makefile
651 libs/gst/Makefile
652 libs/gst/bytestream/Makefile
653 libs/gst/control/Makefile
654 libs/gst/dataprotocol/Makefile
655 libs/gst/getbits/Makefile
656 po/Makefile.in
657 tests/Makefile
658 tests/bufspeed/Makefile
659 tests/instantiate/Makefile
660 tests/memchunk/Makefile
661 tests/muxing/Makefile
662 tests/seeking/Makefile
663 tests/sched/Makefile
664 tests/threadstate/Makefile
665 testsuite/Makefile
666 testsuite/bins/Makefile
667 testsuite/bytestream/Makefile
668 testsuite/caps/Makefile
669 testsuite/cleanup/Makefile
670 testsuite/clock/Makefile
671 testsuite/debug/Makefile
672 testsuite/dlopen/Makefile
673 testsuite/dynparams/Makefile
674 testsuite/elements/Makefile
675 testsuite/enumcaps/Makefile
676 testsuite/ghostpads/Makefile
677 testsuite/indexers/Makefile
678 testsuite/negotiation/Makefile
679 testsuite/parse/Makefile
680 testsuite/plugin/Makefile
681 testsuite/refcounting/Makefile
682 testsuite/schedulers/Makefile
683 testsuite/states/Makefile
684 testsuite/tags/Makefile
685 testsuite/threads/Makefile
686 examples/Makefile
687 examples/cutter/Makefile
688 examples/helloworld/Makefile
689 examples/launch/Makefile
690 examples/manual/Makefile
691 examples/mixer/Makefile
692 examples/pingpong/Makefile
693 examples/plugins/Makefile
694 examples/queue/Makefile
695 examples/queue2/Makefile
696 examples/queue3/Makefile
697 examples/queue4/Makefile
698 examples/retag/Makefile
699 examples/thread/Makefile
700 examples/typefind/Makefile
701 examples/xml/Makefile
702 tools/Makefile
703 common/Makefile
704 common/m4/Makefile
705 docs/Makefile
706 docs/faq/Makefile
707 docs/gst/Makefile
708 docs/libs/Makefile
709 docs/manual/Makefile
710 docs/plugins/Makefile
711 docs/plugins/gstreamer-plugins.types
712 docs/pwg/Makefile
713 docs/xsl/Makefile
714 docs/version.entities
715 pkgconfig/Makefile
716 stamp.h
717 pkgconfig/gstreamer.pc
718 pkgconfig/gstreamer-uninstalled.pc
719 pkgconfig/gstreamer-control.pc
720 pkgconfig/gstreamer-control-uninstalled.pc
721 gstreamer.spec,
722 echo "$infomessages", infomessages="$infomessages"
723 )
724