doc and configure updates, and the beginnings of gst-xmllaunch
[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   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
272
273   GTK_CFLAGS=$GTK2_CFLAGS
274   GTK_LIBS=$GTK2_LIBS
275   
276   if $HAVE_GTK_DOC; then  
277     AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-scangobj, true, false)
278     if $HAVE_GTK_DOC; then
279       # don't you love undocumented command line options?
280       GTK_DOC_SCANOBJ="gtkdoc-scangobj --nogtkinit"
281     else
282       GTK_DOC_SCANOBJ=false
283     fi
284   fi
285
286   dnl FIXME: check for  gnome2 - this conditional is currently
287   dnl always false.
288   AM_CONDITIONAL(USE_GNOME2, test "x$USE_GNOME2" = "xyes")
289   AC_SUBST(USE_GNOME2)
290 fi
291
292 AC_SUBST(GST_PKG_DEPS)
293 AC_SUBST(GTK_LIBS)
294 AC_SUBST(GTK_CFLAGS)
295
296 dnl Check for libxml
297 if test x$USE_GLIB2 = xno; then
298   LIBXML_PKG=', libxml >= 1.8.1'
299   AC_PATH_PROG(XML_CONFIG, xml-config, no)
300   if test x$XML_CONFIG = xno; then
301     AC_MSG_ERROR(Couldn't find $LIBXML_PKG)
302   fi
303   XML_LIBS="`xml-config --libs`"
304   XML_CFLAGS="`xml-config --cflags`"
305   AC_CHECK_LIB(xml, xmlDocGetRootElement, :,
306     [ AC_MSG_ERROR(Need version 1.8.1 or better of libxml) ],
307     $XML_LIBS)
308 else
309   LIBXML_PKG=', libxml-2.0'
310   PKG_CHECK_MODULES(XML, $LIBXML_PKG, XML_CONFIG=yes, XML_CONFIG=no)
311   AC_PATH_PROG(XML_CONFIG, xml-config, no)
312   AC_DEFINE(HAVE_LIBXML2)
313   GST_EXT_CFLAGS="$GST_EXT_CFLAGS -DHAVE_LIBXML2"
314 fi
315 AC_SUBST(LIBXML_PKG)
316 AC_SUBST(XML_LIBS)
317 AC_SUBST(XML_CFLAGS)
318
319 if test x$USE_GLIB2 = xyes; then
320   dnl we don't support gnome/gtk with glib2.0 yet
321   GNOME_LIBS=
322   GNOME_CFLAGS=
323   HAVE_GNOME=no
324   AC_MSG_WARN(gnome disabled for glib2.0)
325 else
326   dnl Check for libgnome
327   GST_CHECK_CONFIGPROG(GNOME, gnome-config, gnome gnomeui)
328 fi
329 AC_SUBST(GNOME_LIBS)
330 AC_SUBST(GNOME_CFLAGS)
331 AC_SUBST(HAVE_GNOME)
332
333 dnl Check for atomic.h
334 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
335 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
336 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
337 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
338 if test x$HAVE_ATOMIC_H = xyes; then
339   AC_TRY_RUN([
340 #include "asm/atomic.h"
341 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
342   ],, [
343     # Not successful
344     if test x$HAVE_ATOMIC_H = xyes; then
345       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
346     fi
347     HAVE_ATOMIC_H=no
348   ], [
349     # Cross compiling
350     AC_MSG_RESULT(yes)
351     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
352   ])
353 fi
354
355
356 dnl ######################################################################
357 dnl # Check command line parameters, and set shell variables accordingly #
358 dnl ######################################################################
359
360 AC_ARG_ENABLE(libmmx,
361 [  --enable-libmmx              use libmmx, if available],
362 [case "${enableval}" in
363   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
364   no)  USE_LIBMMX=no ;;
365   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
366 esac], 
367 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
368
369 AC_ARG_ENABLE(atomic,
370 [  --enable-atomic              use atomic reference counting header],
371 [case "${enableval}" in
372   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
373   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
374   no)  USE_ATOMIC_H=no;;
375   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
376 esac], 
377 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
378
379 AC_ARG_ENABLE(plugin-builddir,
380 [  --enable-plugin-builddir     allow tests/demos to use non-installed plugins ],
381 [case "${enableval}" in
382   yes) PLUGINS_USE_BUILDDIR=yes ;;
383   no)  PLUGINS_USE_BUILDDIR=no ;;
384   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
385 esac], 
386 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
387
388 AC_ARG_ENABLE(debug,
389 [  --enable-debug               compile with -g debugging info],
390 [case "${enableval}" in
391   yes) USE_DEBUG=yes ;;
392   no)  USE_DEBUG=no ;;
393   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
394 esac], 
395 [USE_DEBUG=no]) dnl Default value
396
397 AC_ARG_ENABLE(DEBUG,
398 [  --enable-DEBUG               compiles in a large number of debugging messages],
399 [case "${enableval}" in
400   yes) ENABLE_DEBUG=yes ;;
401   no)  ENABLE_DEBUG=no ;;
402   *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
403 esac], 
404 [ENABLE_DEBUG=no]) dnl Default value
405 if test x$ENABLE_DEBUG = xyes; then
406   AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
407 fi
408
409 AC_ARG_ENABLE(INFO,
410 [  --disable-INFO               disables compilation of informational messages],
411 [case "${enableval}" in
412   yes) ENABLE_INFO=yes ;;
413   no)  ENABLE_INFO=no ;;
414   *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
415 esac], 
416 [ENABLE_INFO=yes]) dnl Default value
417 if test x$ENABLE_INFO = xyes; then
418   AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
419 fi
420
421 AC_ARG_ENABLE(debug-color,
422 [  --disable-debug-color        disables color output of DEBUG and INFO output],
423 [case "${enableval}" in
424   yes) ENABLE_DEBUG_COLOR=yes ;;
425   no)  ENABLE_DEBUG_COLOR=no ;;
426   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
427 esac], 
428 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
429 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
430   AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
431 fi
432
433 AC_ARG_ENABLE(profiling,
434 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
435 [case "${enableval}" in
436   yes) USE_PROFILING=yes ;;
437   no)  UES_PROFILING=no ;;
438   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
439 esac], 
440 [USE_PROFILING=no]) dnl Default value
441
442 dnl default to building registry in the source tree if we are enabling plugin build dir
443 if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then
444   GST_CONFIG_DIR=`pwd`
445 else
446   GST_CONFIG_DIR=/etc/gstreamer
447 fi
448 AC_ARG_WITH(configdir,
449 [  --with-configdir             specify path to use for configdir],
450 [case "${withval}" in
451   yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
452   no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
453   *) GST_CONFIG_DIR="${withval}" ;;
454 esac], 
455 [:]) dnl Default value
456
457 AC_ARG_ENABLE(docs-build,
458 [  --enable-docs-build          enable building of documentation],
459 [case "${enableval}" in
460   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; ;;
461   no)  BUILD_DOCS=no ;;
462   *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
463 esac], 
464 [BUILD_DOCS=no]) dnl Default value
465
466 AC_ARG_ENABLE(plugin-docs,
467 [  --enable-plugin-docs         enable the building of plugin documentation
468                                (this is currently broken, so off by default)],
469 [case "${enableval}" in
470   yes) BUILD_PLUGIN_DOCS=yes ;;
471   no)  BUILD_PLUGIN_DOCS=no ;;
472   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
473 esac], 
474 [BUILD_PLUGIN_DOCS=no]) dnl Default value
475
476 AC_ARG_ENABLE(tests,
477 [  --disable-tests              disable building test apps],
478 [case "${enableval}" in
479   yes) BUILD_TESTS=yes ;;
480   no)  BUILD_TESTS=no ;;
481   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
482 esac], 
483 [BUILD_TESTS=yes]) dnl Default value
484
485 AC_ARG_ENABLE(examples,
486 [  --disable-examples           disable building examples],
487 [case "${enableval}" in
488   yes) BUILD_EXAMPLES=yes ;;
489   no)  BUILD_EXAMPLES=no ;;
490   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
491 esac], 
492 [BUILD_EXAMPLES=yes]) dnl Default value
493
494 dnl Next, check for the optional components:
495 dnl ========================================
496
497
498 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
499 [dnl
500 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
501 dnl
502 AC_ARG_ENABLE(translit([$1], A-Z, a-z), 
503 [  ]builtin(format, --disable-%-17s  disable %s, translit([$1], A-Z, a-z), $2),
504 [ case "${enableval}" in
505     yes) GST_DISABLE_[$1]=no ;;
506     no) GST_DISABLE_[$1]=yes ;;
507     *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
508   esac],
509 [GST_DISABLE_[$1]=no]) dnl Default value
510 if test x$GST_DISABLE_[$1] = xyes; then
511   AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
512   GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
513 fi
514 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
515 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
516 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
517 ])
518
519 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
520 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
521 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
522 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
523 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
524 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
525 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
526 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
527 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
528 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
529 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
530 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
531
532 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
533
534 dnl ################################################
535 dnl # Set defines according to variables set above #
536 dnl ################################################
537
538
539 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
540 dnl HAVE_ and it is likely to be easier to stick with the old name
541 if test "x$USE_LIBGHTTP" = xyes; then
542   AC_DEFINE(HAVE_LIBGHTTP, 1, [Define if ghttp library is available])
543 fi
544
545 if test "x$USE_LIBMMX" = xyes; then
546   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
547 fi
548
549 if test "x$USE_ATOMIC_H" = xyes; then
550   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
551 fi
552
553 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
554   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
555 fi
556
557 dnl if test "x$USE_DEBUG" = xyes; then
558 dnl   CFLAGS="$CFLAGS -g"
559 dnl fi
560
561 if test "x$USE_PROFILING" = xyes; then
562 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
563   FOMIT_FRAME_POINTER=""
564 else
565   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
566 fi
567
568 dnl
569 dnl AC_SUBST(FOMIT_FRAME_POINTER)
570 dnl
571
572 if test "x$HAVE_LIBXV" = xyes; then
573   AC_DEFINE(HAVE_LIBXV)
574 fi
575
576 dnl #############################
577 dnl # Set automake conditionals #
578 dnl #############################
579
580 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
581 dnl HAVE_ and it is likely to be easier to stick with the old name
582 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
583 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
584 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
585 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
586 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
587 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
588
589 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
590
591 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
592 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
593
594 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
595 AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
596 AM_CONDITIONAL(HAVE_LIBXV,          test "x$HAVE_LIBXV" = "xyes")
597 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
598 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
599 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
600 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
601 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
602 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
603 AM_CONDITIONAL(HAVE_PDFXMLTEX,      $HAVE_PDFXMLTEX)
604 AM_CONDITIONAL(HAVE_PDFTOPS,        $HAVE_PDFTOPS)
605 AM_CONDITIONAL(HAVE_XSLTPROC,       $HAVE_XSLTPROC)
606 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
607 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
608 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
609
610
611 dnl ############################
612 dnl # Set up some more defines #
613 dnl ############################
614
615 dnl Set location of configuration dir.
616 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
617 AC_SUBST(GST_CONFIG_DIR)
618
619 dnl Set location of plugin directory
620 if test "x${prefix}" = "xNONE"; then
621   PLUGINS_DIR=${ac_default_prefix}/lib/gst
622 else
623   PLUGINS_DIR=${prefix}/lib/gst
624 fi
625 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
626 AC_SUBST(PLUGINS_DIR)
627
628 dnl Set location of uninstalled plugin directory
629 PLUGINS_BUILDDIR=`pwd`
630 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
631 AC_SUBST(PLUGINS_BUILDDIR)
632
633 dnl finalize _CFLAGS and _LIBS
634 dnl add GLIB and XML if necessary to EXT_*
635 GST_EXT_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
636 GST_EXT_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS"
637
638 dnl for pkg-config
639 GST_PKG_CFLAGS=$GST_EXT_CFLAGS
640 GST_PKG_LIBS=$GST_EXT_LIBS
641 AC_SUBST(GST_PKG_CFLAGS)
642 AC_SUBST(GST_PKG_LIBS)
643
644 dnl Private vars for libgst only
645 LIBGST_LIBS="$GST_EXT_LIBS"
646 LIBGST_CFLAGS="$GST_EXT_CFLAGS -I\$(top_srcdir)"
647 AC_SUBST(LIBGST_LIBS)
648 AC_SUBST(LIBGST_CFLAGS)
649
650 dnl Vars for everyone else
651 GST_INT_LIBS="\$(top_builddir)/gst/libgst.la"
652 GST_INT_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir)/include -I\$(top_srcdir)"
653
654 AC_SUBST(GST_CFLAGS, "$GST_EXT_CFLAGS $GST_INT_CFLAGS")
655 AC_SUBST(GST_LIBS, "$GST_EXT_LIBS $GST_INT_LIBS")
656
657 dnl ##################################################
658 dnl # Prepare informative messages to display at end #
659 dnl ##################################################
660
661 infomessages=
662
663 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
664   infomessages="$infomessages
665 *** Warning: You have configured using the --enable-plugin-builddir option.
666
667 This option is for development purposes only: binaries built with
668 it should be used with code in the build tree only.  To build an
669 installable version, use ./configure without the --enable-plugin-builddir
670 option.  Note that the autogen.sh script supplies the plugin builddir
671 option automatically - it cannot be used to configure installable builds.
672
673 "
674 fi
675
676 dnl #########################
677 dnl # Make the output files #
678 dnl #########################
679
680 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
681 dnl components/bonobo-gstmediaplay/Makefile
682 dnl someone should fix this test/misc/Makefile
683 dnl wtay fix this: testsuite/threads/Makefile
684 dnl testsuite/refcounting/Makefile
685 dnl testsuite/cleanup/Makefile
686 AC_OUTPUT(
687 Makefile
688 include/Makefile
689 m4/Makefile
690 gst/Makefile
691 gst/gstversion.h
692 gst/types/Makefile
693 gst/elements/Makefile
694 gst/autoplug/Makefile
695 gst/schedulers/Makefile
696 libs/Makefile
697 libs/gst/Makefile
698 libs/gst/bytestream/Makefile
699 libs/gst/getbits/Makefile
700 libs/gst/putbits/Makefile
701 libs/gst/control/Makefile
702 tests/Makefile
703 tests/bufspeed/Makefile
704 tests/memchunk/Makefile
705 tests/muxing/Makefile
706 tests/sched/Makefile
707 testsuite/Makefile
708 testsuite/bytestream/Makefile
709 testsuite/caps/Makefile
710 testsuite/capsnego/Makefile
711 testsuite/cleanup/Makefile
712 testsuite/plugin/Makefile
713 examples/Makefile
714 examples/autoplug/Makefile
715 examples/helloworld/Makefile
716 examples/helloworld2/Makefile
717 examples/launch/Makefile
718 examples/queue/Makefile
719 examples/queue2/Makefile
720 examples/queue3/Makefile
721 examples/queue4/Makefile
722 examples/thread/Makefile
723 examples/mixer/Makefile
724 examples/cutter/Makefile
725 examples/launch/Makefile
726 examples/xml/Makefile
727 examples/plugins/Makefile
728 examples/typefind/Makefile
729 examples/mixer/Makefile
730 tools/Makefile
731 docs/Makefile
732 docs/gst/Makefile
733 docs/gst/gstreamer.types
734 docs/libs/Makefile
735 docs/plugins/Makefile
736 docs/plugins/gstreamer-plugins.types
737 docs/manual/Makefile
738 docs/fwg/Makefile
739 docs/xsl/Makefile
740 stamp.h
741 gstreamer.pc
742 gstreamer-uninstalled.pc
743 gstreamer.spec,
744 echo "$infomessages", infomessages="$infomessages"
745 )