chop chop, out with the cruft
[platform/upstream/gstreamer.git] / configure.ac
1 dnl Note: this file is now the main autoconf file
2 AC_INIT
3 AC_CONFIG_SRCDIR([gst/gstobject.h])
4
5 AC_CANONICAL_TARGET([])
6
7 AM_CONFIG_HEADER(config.h)
8
9 GST_VERSION_MAJOR=0
10 GST_VERSION_MINOR=3
11 GST_VERSION_MICRO=11
12
13 dnl we use a datestamped release tag during CVS development
14 GST_VERSION_RELEASE=`date +%Y%m%d`
15 dnl we use a normal release tag increased manually when releasing
16 dnl GST_VERSION_RELEASE=1
17
18 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO
19
20 PACKAGE=gstreamer
21 VERSION=$GST_VERSION
22
23 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
24 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
25 AC_SUBST(PACKAGE)
26 AC_SUBST(VERSION)
27 AC_DEFINE_UNQUOTED(GST_VERSION_RELEASE, "$GST_VERSION_RELEASE")
28 AC_SUBST(GST_VERSION_RELEASE)
29
30 dnl libtool
31 GST_CURRENT=2
32 GST_REVISION=0
33 GST_AGE=0
34 GST_LIBVERSION=$GST_CURRENT:$GST_REVISION:$GST_AGE
35
36 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
37 dnl Add parameters for aclocal
38 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
39 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
40
41 AC_SUBST(GST_VERSION_MAJOR)
42 AC_SUBST(GST_VERSION_MINOR)
43 AC_SUBST(GST_VERSION_MICRO)
44 AC_SUBST(GST_VERSION)
45
46 AC_SUBST(GST_CURRENT)
47 AC_SUBST(GST_REVISION)
48 AC_SUBST(GST_AGE)
49 AC_SUBST(GST_LIBVERSION)
50
51 AM_MAINTAINER_MODE
52
53 AC_PROG_CC
54 AM_PROG_CC_STDC
55 AM_PROG_AS
56 AS="${CC}"
57 AC_PROG_CXX
58 AC_PROG_CXXCPP
59 AC_ISC_POSIX
60
61 dnl We disable static building for development, for time savings
62 dnl *NOTE*: dnl this line before release, so release does static too
63 dnl AM_DISABLE_STATIC
64 AC_LIBTOOL_DLOPEN
65 AM_PROG_LIBTOOL
66
67 AC_HEADER_STDC([])
68
69
70 dnl ##############################
71 dnl # Do automated configuration #
72 dnl ##############################
73
74 dnl Check for tools:
75 dnl ================
76
77 dnl modify pkg-config path
78 AC_ARG_WITH(pkg-config-path, 
79    AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
80    [export PKG_CONFIG_PATH=${withval}])
81
82 dnl Check for nasm
83 AC_PATH_PROG(NASM_PATH, nasm, no)
84 AC_SUBST(NASM_PATH)
85 if test x$NASM_PATH = xno; then
86   AC_MSG_WARN(Couldn't find nasm)
87   HAVE_NASM="no"
88 else AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
89   HAVE_NASM="yes"
90 fi
91
92 dnl check for gtk-doc
93 AC_ARG_WITH(html-dir, AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]))
94
95 if test "x$with_html_dir" = "x" ; then
96   HTML_DIR='${datadir}/gst/html'
97 else
98   HTML_DIR=$with_html_dir
99 fi
100
101 AC_SUBST(HTML_DIR)
102
103 AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-mkdb, true, false)
104 gtk_doc_min_version=0.6
105 if $HAVE_GTK_DOC ; then 
106     gtk_doc_version=`gtkdoc-mkdb --version`
107     AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
108     if perl <<EOF ; then
109       exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
110             ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
111 EOF
112       AC_MSG_RESULT(yes)
113    else
114       AC_MSG_RESULT(no)
115       HAVE_GTK_DOC=false
116    fi
117 fi
118 GTK_DOC_SCANOBJ=gtkdoc-scanobj
119
120 AC_SUBST(HAVE_GTK_DOC)
121 AC_SUBST(GTK_DOC_SCANOBJ)
122
123 dnl check for docbook tools
124 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, true, false)
125 AC_CHECK_PROG(HAVE_PDFTOPS, pdftops, true, false)
126 dnl this does not yet work properly, at least on debian -- wingo
127 HAVE_PDFXMLTEX=false
128
129 dnl check for image conversion tool
130 AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, true, false)
131
132 dnl The following is a hack: if fig2dev doesn't display an error message
133 dnl for the desired type, we assume it supports it.
134 HAVE_FIG2DEV_PNG=false
135 if test "x$HAVE_FIG2DEV" = "xtrue" ; then
136   fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
137   if test "x$fig2dev_quiet" = "x" ; then
138     HAVE_FIG2DEV_PNG=true
139   fi
140 fi
141 HAVE_FIG2DEV_PDF=false
142 if test "x$HAVE_FIG2DEV" = "xtrue" ; then
143   fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
144   if test "x$fig2dev_quiet" = "x" ; then
145     HAVE_FIG2DEV_PDF=true
146   fi
147 fi
148
149
150 dnl Set up conditionals for (target) architecture:
151 dnl ==============================================
152
153 dnl Determine CPU
154 case "x${target_cpu}" in
155   xi?86 | k?) HAVE_CPU_I386=yes
156               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
157               dnl FIXME could use some better detection
158               dnl       (ie CPUID)
159               case "x${target_cpu}" in
160                 xi386 | xi486) ;;
161                 *)             AC_DEFINE(HAVE_RDTSC) ;;
162               esac ;;
163   xpowerpc)   HAVE_CPU_PPC=yes
164               AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
165   xalpha)     HAVE_CPU_ALPHA=yes
166               AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
167   xarm*)      HAVE_CPU_ARM=yes
168               AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
169   xsparc*)    HAVE_CPU_SPARC=yes
170               AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
171   xmips*)     HAVE_CPU_MIPS=yes
172               AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
173   xhppa*)     HAVE_CPU_HPPA=yes
174               AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
175 esac
176
177 dnl Determine endianness
178 AC_C_BIGENDIAN
179
180 dnl Check for MMX-capable compiler
181 AC_MSG_CHECKING(for MMX-capable compiler)
182 AC_TRY_RUN([
183 #include "include/mmx.h"
184
185 main()
186 { movq_r2r(mm0, mm1); return 0; }
187 ],
188 [
189 HAVE_LIBMMX="yes"
190 AC_MSG_RESULT(yes)
191 ],
192 HAVE_LIBMMX="no"
193 AC_MSG_RESULT(no)
194 ,
195 HAVE_LIBMMX="no"
196 AC_MSG_RESULT(no)
197 )
198
199 dnl
200 dnl We should really use AC_SYS_LARGEFILE, but the problem is
201 dnl many of the plugins don't include "config.h".  To assure
202 dnl binary compatibility, it is necessary that all gstreamer
203 dnl code be compiled with the same sizeof(off_t), so we use
204 dnl the following crude hack.
205 dnl
206
207 dnl
208 dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS
209 dnl same for libs
210 dnl this is so we can make GST_CFLAGS for external modules available
211 dnl without mixing in internal (uninstalled) CFLAGS
212 dnl
213
214 AC_MSG_CHECKING(for large file support)
215 AC_TRY_RUN([
216 #define _LARGEFILE_SOURCE
217 #define _FILE_OFFSET_BITS 64
218 #include <sys/types.h>
219 int main () { return !(sizeof(off_t) == 8); }
220 ],
221 [
222 AC_MSG_RESULT(yes)
223 GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
224 ],
225 [
226 AC_MSG_RESULT(no)
227 ],
228 [
229 AC_MSG_RESULT(no)
230 ])
231
232 dnl Check for essential libraries first:
233 dnl ====================================
234
235 dnl Check for glib2
236 translit(dnm, m, l) AM_CONDITIONAL(USE_GLIB2, true)
237 GST_CHECK_FEATURE(GLIB2, [use of glib-2.0 and GObject], , [
238   PKG_CHECK_MODULES(GLIB2, glib-2.0 gobject-2.0 gthread-2.0 gmodule-2.0,
239     HAVE_GLIB2=yes,HAVE_GLIB2=no)
240   GLIB_LIBS=$GLIB2_LIBS
241   GLIB_CFLAGS=$GLIB2_CFLAGS
242   AC_SUBST(GLIB_LIBS)
243   AC_SUBST(GLIB_CFLAGS)
244   # if we've gotten this far, the user has specifically asked that glib2 be
245   # used. if we have no glib2, that is an error.
246   if test "x$HAVE_GLIB2" = "xno"; then
247     AC_MSG_ERROR(no glib2 found)
248   fi
249 ], disabled, [
250   AC_DEFINE(USE_GLIB2)
251   GST_EXT_CFLAGS="$GST_EXT_CFLAGS -DUSE_GLIB2"
252 ])
253 AC_SUBST(USE_GLIB2)
254
255 if test x$USE_GLIB2 = xno; then
256   GST_PKG_DEPS="glib >= 1.2.0, gtk+ >= 1.2.0"
257   
258   dnl Check for glib and gtk
259   AM_PATH_GLIB(1.2.0,,
260               AC_MSG_ERROR(Cannot find glib: Is glib-config in path?),
261               glib gmodule gthread)
262   AM_PATH_GTK(1.2.0,,
263               AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
264   HAVE_GTK=yes
265
266   GLIB_LIBS="$GLIB_LIBS $GTK_LIBS"
267   GLIB_CFLAGS="$GLIB_CFLAGS $GTK_CFLAGS"
268 else
269   GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
270   
271   if $HAVE_GTK_DOC; then  
272     AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-scangobj, true, false)
273     if $HAVE_GTK_DOC; then
274       # don't you love undocumented command line options?
275       GTK_DOC_SCANOBJ="gtkdoc-scangobj --nogtkinit"
276     else
277       GTK_DOC_SCANOBJ=false
278     fi
279   fi
280 fi
281
282 AC_SUBST(GST_PKG_DEPS)
283
284 dnl Check for libxml
285 if test x$USE_GLIB2 = xno; then
286   LIBXML_PKG=', libxml >= 1.8.1'
287   AC_PATH_PROG(XML_CONFIG, xml-config, no)
288   if test x$XML_CONFIG = xno; then
289     AC_MSG_ERROR(Couldn't find $LIBXML_PKG)
290   fi
291   XML_LIBS="`xml-config --libs`"
292   XML_CFLAGS="`xml-config --cflags`"
293   AC_CHECK_LIB(xml, xmlDocGetRootElement, :,
294     [ AC_MSG_ERROR(Need version 1.8.1 or better of libxml) ],
295     $XML_LIBS)
296 else
297   LIBXML_PKG=', libxml-2.0'
298   PKG_CHECK_MODULES(XML, $LIBXML_PKG, XML_CONFIG=yes, XML_CONFIG=no)
299   AC_PATH_PROG(XML_CONFIG, xml-config, no)
300   AC_DEFINE(HAVE_LIBXML2)
301   GST_EXT_CFLAGS="$GST_EXT_CFLAGS -DHAVE_LIBXML2"
302 fi
303 AC_SUBST(LIBXML_PKG)
304 AC_SUBST(XML_LIBS)
305 AC_SUBST(XML_CFLAGS)
306
307 dnl Check for atomic.h
308 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
309 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
310 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
311 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
312 if test x$HAVE_ATOMIC_H = xyes; then
313   AC_TRY_RUN([
314 #include "asm/atomic.h"
315 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
316   ],, [
317     # Not successful
318     if test x$HAVE_ATOMIC_H = xyes; then
319       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
320     fi
321     HAVE_ATOMIC_H=no
322   ], [
323     # Cross compiling
324     AC_MSG_RESULT(yes)
325     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
326   ])
327 fi
328
329
330 dnl ######################################################################
331 dnl # Check command line parameters, and set shell variables accordingly #
332 dnl ######################################################################
333
334 AC_ARG_ENABLE(libmmx,
335 [  --enable-libmmx              use libmmx, if available],
336 [case "${enableval}" in
337   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
338   no)  USE_LIBMMX=no ;;
339   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
340 esac], 
341 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
342
343 AC_ARG_ENABLE(atomic,
344 [  --enable-atomic              use atomic reference counting header],
345 [case "${enableval}" in
346   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
347   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
348   no)  USE_ATOMIC_H=no;;
349   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
350 esac], 
351 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
352
353 AC_ARG_ENABLE(plugin-builddir,
354 [  --enable-plugin-builddir     allow tests/demos to use non-installed plugins ],
355 [case "${enableval}" in
356   yes) PLUGINS_USE_BUILDDIR=yes ;;
357   no)  PLUGINS_USE_BUILDDIR=no ;;
358   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
359 esac], 
360 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
361
362 AC_ARG_ENABLE(debug,
363 [  --enable-debug               compile with -g debugging info],
364 [case "${enableval}" in
365   yes) USE_DEBUG=yes ;;
366   no)  USE_DEBUG=no ;;
367   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
368 esac], 
369 [USE_DEBUG=no]) dnl Default value
370
371 AC_ARG_ENABLE(DEBUG,
372 [  --enable-DEBUG               compiles in a large number of debugging messages],
373 [case "${enableval}" in
374   yes) ENABLE_DEBUG=yes ;;
375   no)  ENABLE_DEBUG=no ;;
376   *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
377 esac], 
378 [ENABLE_DEBUG=no]) dnl Default value
379 if test x$ENABLE_DEBUG = xyes; then
380   AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
381 fi
382
383 AC_ARG_ENABLE(INFO,
384 [  --disable-INFO               disables compilation of informational messages],
385 [case "${enableval}" in
386   yes) ENABLE_INFO=yes ;;
387   no)  ENABLE_INFO=no ;;
388   *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
389 esac], 
390 [ENABLE_INFO=yes]) dnl Default value
391 if test x$ENABLE_INFO = xyes; then
392   AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
393 fi
394
395 AC_ARG_ENABLE(debug-color,
396 [  --disable-debug-color        disables color output of DEBUG and INFO output],
397 [case "${enableval}" in
398   yes) ENABLE_DEBUG_COLOR=yes ;;
399   no)  ENABLE_DEBUG_COLOR=no ;;
400   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
401 esac], 
402 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
403 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
404   AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
405 fi
406
407 AC_ARG_ENABLE(profiling,
408 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
409 [case "${enableval}" in
410   yes) USE_PROFILING=yes ;;
411   no)  UES_PROFILING=no ;;
412   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
413 esac], 
414 [USE_PROFILING=no]) dnl Default value
415
416 dnl default to building registry in the source tree if we are enabling plugin build dir
417 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
418   GST_CONFIG_DIR=`pwd`
419 else
420   GST_CONFIG_DIR=/etc/gstreamer
421 fi
422 AC_ARG_WITH(configdir,
423 [  --with-configdir             specify path to use for configdir],
424 [case "${withval}" in
425   yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
426   no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
427   *) GST_CONFIG_DIR="${withval}" ;;
428 esac], 
429 [:]) dnl Default value
430
431 AC_ARG_ENABLE(docs-build,
432 [  --enable-docs-build          enable building of documentation],
433 [case "${enableval}" in
434   yes) if $HAVE_GTK_DOC; then BUILD_DOCS=yes; else AC_MSG_ERROR([you don't have gtk-doc, so don't use --docs-build]); fi; ;;
435   no)  BUILD_DOCS=no ;;
436   *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
437 esac], 
438 [BUILD_DOCS=no]) dnl Default value
439
440 AC_ARG_ENABLE(plugin-docs,
441 [  --enable-plugin-docs         enable the building of plugin documentation
442                                (this is currently broken, so off by default)],
443 [case "${enableval}" in
444   yes) BUILD_PLUGIN_DOCS=yes ;;
445   no)  BUILD_PLUGIN_DOCS=no ;;
446   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
447 esac], 
448 [BUILD_PLUGIN_DOCS=no]) dnl Default value
449
450 AC_ARG_ENABLE(tests,
451 [  --disable-tests              disable building test apps],
452 [case "${enableval}" in
453   yes) BUILD_TESTS=yes ;;
454   no)  BUILD_TESTS=no ;;
455   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
456 esac], 
457 [BUILD_TESTS=yes]) dnl Default value
458
459 AC_ARG_ENABLE(examples,
460 [  --disable-examples           disable building examples],
461 [case "${enableval}" in
462   yes) BUILD_EXAMPLES=yes ;;
463   no)  BUILD_EXAMPLES=no ;;
464   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
465 esac], 
466 [BUILD_EXAMPLES=yes]) dnl Default value
467
468 dnl Next, check for the optional components:
469 dnl ========================================
470
471
472 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
473 [dnl
474 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
475 dnl
476 AC_ARG_ENABLE(translit([$1], A-Z, a-z), 
477 [  ]builtin(format, --disable-%-17s  disable %s, translit([$1], A-Z, a-z), $2),
478 [ case "${enableval}" in
479     yes) GST_DISABLE_[$1]=no ;;
480     no) GST_DISABLE_[$1]=yes ;;
481     *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
482   esac],
483 [GST_DISABLE_[$1]=no]) dnl Default value
484 if test x$GST_DISABLE_[$1] = xyes; then
485   AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
486   GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
487 fi
488 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
489 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
490 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
491 ])
492
493 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
494 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
495 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
496 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
497 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
498 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
499 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
500 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
501 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
502 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
503 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
504 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
505
506 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
507
508 dnl ################################################
509 dnl # Set defines according to variables set above #
510 dnl ################################################
511
512
513 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
514 dnl HAVE_ and it is likely to be easier to stick with the old name
515 if test "x$USE_LIBMMX" = xyes; then
516   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
517 fi
518
519 if test "x$USE_ATOMIC_H" = xyes; then
520   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
521 fi
522
523 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
524   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
525 fi
526
527 dnl if test "x$USE_DEBUG" = xyes; then
528 dnl   CFLAGS="$CFLAGS -g"
529 dnl fi
530
531 if test "x$USE_PROFILING" = xyes; then
532 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
533   FOMIT_FRAME_POINTER=""
534 else
535   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
536 fi
537
538 dnl
539 dnl AC_SUBST(FOMIT_FRAME_POINTER)
540 dnl
541
542 dnl #############################
543 dnl # Set automake conditionals #
544 dnl #############################
545
546 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
547 dnl HAVE_ and it is likely to be easier to stick with the old name
548 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
549 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
550 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
551 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
552 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
553 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
554
555 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
556
557 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
558 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
559
560 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
561 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
562 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
563 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
564 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
565 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
566 AM_CONDITIONAL(HAVE_PDFXMLTEX,      $HAVE_PDFXMLTEX)
567 AM_CONDITIONAL(HAVE_PDFTOPS,        $HAVE_PDFTOPS)
568 AM_CONDITIONAL(HAVE_XSLTPROC,       $HAVE_XSLTPROC)
569 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
570 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
571 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
572
573
574 dnl ############################
575 dnl # Set up some more defines #
576 dnl ############################
577
578 dnl Set location of configuration dir.
579 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
580 AC_SUBST(GST_CONFIG_DIR)
581
582 dnl Set location of plugin directory
583 if test "x${prefix}" = "xNONE"; then
584   PLUGINS_DIR=${ac_default_prefix}/lib/gst
585 else
586   PLUGINS_DIR=${prefix}/lib/gst
587 fi
588 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
589 AC_SUBST(PLUGINS_DIR)
590
591 dnl Set location of uninstalled plugin directory
592 PLUGINS_BUILDDIR=`pwd`
593 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
594 AC_SUBST(PLUGINS_BUILDDIR)
595
596 dnl finalize _CFLAGS and _LIBS
597 dnl add GLIB and XML if necessary to EXT_*
598 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
599 GST_EXT_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS"
600
601 dnl for pkg-config
602 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
603 GST_PKG_LIBS=$GST_EXT_LIBS
604 AC_SUBST(GST_PKG_CFLAGS)
605 AC_SUBST(GST_PKG_LIBS)
606
607 dnl Private vars for libgst only
608 LIBGST_LIBS="$GST_EXT_LIBS"
609 LIBGST_CFLAGS="$GST_EXT_CFLAGS -I\$(top_srcdir)"
610 AC_SUBST(LIBGST_LIBS)
611 AC_SUBST(LIBGST_CFLAGS)
612
613 dnl Vars for everyone else
614 GST_INT_LIBS="\$(top_builddir)/gst/libgst.la"
615 GST_INT_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir)/include -I\$(top_srcdir)"
616
617 AC_SUBST(GST_CFLAGS, "$GST_EXT_CFLAGS $GST_INT_CFLAGS")
618 AC_SUBST(GST_LIBS, "$GST_EXT_LIBS $GST_INT_LIBS")
619
620 dnl ##################################################
621 dnl # Prepare informative messages to display at end #
622 dnl ##################################################
623
624 infomessages=
625
626 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
627   infomessages="$infomessages
628 *** Warning: You have configured using the --enable-plugin-builddir option.
629
630 This option is for development purposes only: binaries built with
631 it should be used with code in the build tree only.  To build an
632 installable version, use ./configure without the --enable-plugin-builddir
633 option.  Note that the autogen.sh script supplies the plugin builddir
634 option automatically - it cannot be used to configure installable builds.
635
636 "
637 fi
638
639 dnl #########################
640 dnl # Make the output files #
641 dnl #########################
642
643 AC_OUTPUT(
644 Makefile
645 include/Makefile
646 m4/Makefile
647 gst/Makefile
648 gst/gstversion.h
649 gst/types/Makefile
650 gst/elements/Makefile
651 gst/autoplug/Makefile
652 gst/schedulers/Makefile
653 libs/Makefile
654 libs/gst/Makefile
655 libs/gst/bytestream/Makefile
656 libs/gst/getbits/Makefile
657 libs/gst/putbits/Makefile
658 libs/gst/control/Makefile
659 tests/Makefile
660 tests/bufspeed/Makefile
661 tests/memchunk/Makefile
662 tests/muxing/Makefile
663 tests/sched/Makefile
664 testsuite/Makefile
665 testsuite/bytestream/Makefile
666 testsuite/caps/Makefile
667 testsuite/cleanup/Makefile
668 testsuite/plugin/Makefile
669 examples/Makefile
670 examples/autoplug/Makefile
671 examples/helloworld/Makefile
672 examples/helloworld2/Makefile
673 examples/launch/Makefile
674 examples/queue/Makefile
675 examples/queue2/Makefile
676 examples/queue3/Makefile
677 examples/queue4/Makefile
678 examples/thread/Makefile
679 examples/mixer/Makefile
680 examples/cutter/Makefile
681 examples/launch/Makefile
682 examples/xml/Makefile
683 examples/plugins/Makefile
684 examples/typefind/Makefile
685 examples/mixer/Makefile
686 tools/Makefile
687 docs/Makefile
688 docs/gst/Makefile
689 docs/gst/gstreamer.types
690 docs/libs/Makefile
691 docs/plugins/Makefile
692 docs/plugins/gstreamer-plugins.types
693 docs/manual/Makefile
694 docs/fwg/Makefile
695 docs/xsl/Makefile
696 stamp.h
697 gstreamer.pc
698 gstreamer-uninstalled.pc
699 gstreamer.spec,
700 echo "$infomessages", infomessages="$infomessages"
701 )