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, 9, 0, GST_CVS="no", GST_CVS="yes") |
---|
7 | |
---|
8 | dnl AM_MAINTAINER_MODE only provides the option to configure to enable it |
---|
9 | AM_MAINTAINER_MODE |
---|
10 | AM_INIT_AUTOMAKE($PACKAGE,$VERSION) |
---|
11 | |
---|
12 | dnl our libraries and install dirs use major.minor as a version |
---|
13 | GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR |
---|
14 | dnl we override it 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, 5, 0, 4) |
---|
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 | dnl define LIBDIR so we can inform people where we live |
---|
55 | AS_AC_EXPAND(LIBDIR, $libdir) |
---|
56 | AC_DEFINE_UNQUOTED([LIBDIR], "$LIBDIR", |
---|
57 | [library dir]) |
---|
58 | |
---|
59 | dnl decide on error flags |
---|
60 | dnl if we support -Wall, set it unconditionally |
---|
61 | AS_COMPILER_FLAG(-Wall, |
---|
62 | GST_ERROR_CFLAGS="-Wall", |
---|
63 | GST_ERROR_CFLAGS="") |
---|
64 | dnl if we're in nano >= 1, add -Werror if supported |
---|
65 | if test "x$GST_CVS" = "xyes" |
---|
66 | then |
---|
67 | AS_COMPILER_FLAG(-Werror, GST_ERROR_CFLAGS="$GST_ERROR_CFLAGS -Werror") |
---|
68 | fi |
---|
69 | |
---|
70 | dnl We disable static building for development, for time savings |
---|
71 | dnl *NOTE*: dnl this line before release, so release does static too |
---|
72 | dnl AM_DISABLE_STATIC |
---|
73 | |
---|
74 | AC_HEADER_STDC([]) |
---|
75 | AC_C_INLINE |
---|
76 | |
---|
77 | dnl define correct errorlevel for debugging messages. We want to have GST_ERROR |
---|
78 | dnl messages printed when running cvs builds |
---|
79 | if test "x$GST_CVS" = "xyes"; then |
---|
80 | AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use]) |
---|
81 | fi |
---|
82 | |
---|
83 | dnl subsystems - can influence other decisions so needs to be high up |
---|
84 | dnl we need to do AM_CONDITIONAL them here for automake 1.6.x compatibility |
---|
85 | GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem]) |
---|
86 | AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes") |
---|
87 | GST_CHECK_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save]) |
---|
88 | AM_CONDITIONAL(GST_DISABLE_LOADSAVE, test "x$GST_DISABLE_LOADSAVE" = "xyes") |
---|
89 | GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser]) |
---|
90 | AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes") |
---|
91 | GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem]) |
---|
92 | AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes") |
---|
93 | GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing]) |
---|
94 | AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes") |
---|
95 | GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry]) |
---|
96 | AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes") |
---|
97 | GST_CHECK_SUBSYSTEM_DISABLE(ENUMTYPES,[enum types]) |
---|
98 | AM_CONDITIONAL(GST_DISABLE_ENUMTYPES, test "x$GST_DISABLE_ENUMTYPES" = "xyes") |
---|
99 | GST_CHECK_SUBSYSTEM_DISABLE(INDEX,[index]) |
---|
100 | AM_CONDITIONAL(GST_DISABLE_INDEX, test "x$GST_DISABLE_INDEX" = "xyes") |
---|
101 | GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin]) |
---|
102 | AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes") |
---|
103 | GST_CHECK_SUBSYSTEM_DISABLE(URI,[uri handlers]) |
---|
104 | AM_CONDITIONAL(GST_DISABLE_URI, test "x$GST_DISABLE_URI" = "xyes") |
---|
105 | |
---|
106 | dnl ############################## |
---|
107 | dnl # Do automated configuration # |
---|
108 | dnl ############################## |
---|
109 | |
---|
110 | dnl Check for tools: |
---|
111 | dnl ================ |
---|
112 | |
---|
113 | dnl allow for different autotools |
---|
114 | AS_AUTOTOOLS_ALTERNATE() |
---|
115 | |
---|
116 | dnl modify pkg-config path |
---|
117 | AC_ARG_WITH(pkg-config-path, |
---|
118 | AC_HELP_STRING([--with-pkg-config-path], |
---|
119 | [colon-separated list of pkg-config(1) dirs]), |
---|
120 | [export PKG_CONFIG_PATH=${withval}]) |
---|
121 | |
---|
122 | GST_DOC() |
---|
123 | GST_ARCH() |
---|
124 | |
---|
125 | dnl Perl is used in building documentation |
---|
126 | AC_PATH_PROG(PERL_PATH, perl, no) |
---|
127 | if test x$PERL_PATH = xno; then |
---|
128 | AC_MSG_ERROR(Could not find perl) |
---|
129 | fi |
---|
130 | |
---|
131 | AC_PROG_AWK |
---|
132 | |
---|
133 | dnl we require bison for building the parser |
---|
134 | dnl FIXME: check if AC_PROG_YACC is suitable here |
---|
135 | AC_PATH_PROG(BISON_PATH, bison, no) |
---|
136 | if test x$BISON_PATH = xno; then |
---|
137 | AC_MSG_ERROR(Could not find bison) |
---|
138 | fi |
---|
139 | |
---|
140 | dnl check bison version |
---|
141 | AC_MSG_CHECKING([bison version]) |
---|
142 | |
---|
143 | if $BISON_PATH --version | head -n 1 | $AWK '{ if ($4 < 1.35) exit 1; else exit 0;}'; |
---|
144 | then |
---|
145 | AC_MSG_RESULT([ok]) |
---|
146 | else |
---|
147 | AC_MSG_RESULT([too old.]) |
---|
148 | AC_MSG_ERROR([Your bison version is too old, v1.35 or later is required.]) |
---|
149 | fi |
---|
150 | |
---|
151 | dnl we require flex for building the parser |
---|
152 | dnl FIXME: check if AC_PROG_LEX is suitable here |
---|
153 | AC_PATH_PROG(FLEX_PATH, flex, no) |
---|
154 | if test x$FLEX_PATH = xno; then |
---|
155 | AC_MSG_ERROR(Could not find flex) |
---|
156 | fi |
---|
157 | |
---|
158 | dnl |
---|
159 | dnl We should really use AC_SYS_LARGEFILE, but the problem is |
---|
160 | dnl many of the plugins don't include "config.h". To assure |
---|
161 | dnl binary compatibility, it is necessary that all gstreamer |
---|
162 | dnl code be compiled with the same sizeof(off_t), so we use |
---|
163 | dnl the following crude hack. |
---|
164 | dnl |
---|
165 | |
---|
166 | AC_MSG_CHECKING(for large file support) |
---|
167 | AC_TRY_RUN([ |
---|
168 | #define _LARGEFILE_SOURCE |
---|
169 | #define _FILE_OFFSET_BITS 64 |
---|
170 | #include <sys/types.h> |
---|
171 | int main () { return !(sizeof(off_t) == 8); } |
---|
172 | ], |
---|
173 | [ |
---|
174 | AC_MSG_RESULT(yes) |
---|
175 | GST_PKG_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" |
---|
176 | ], |
---|
177 | [ |
---|
178 | AC_MSG_RESULT(no) |
---|
179 | ], |
---|
180 | [ |
---|
181 | AC_MSG_RESULT(no) |
---|
182 | ]) |
---|
183 | |
---|
184 | dnl check for mmap |
---|
185 | AC_FUNC_MMAP() |
---|
186 | if test "$ac_cv_func_mmap_fixed_mapped" = "yes" ; then |
---|
187 | GST_DISABLE_OMEGA_COTHREADS=no |
---|
188 | else |
---|
189 | GST_DISABLE_OMEGA_COTHREADS=yes |
---|
190 | fi |
---|
191 | dnl for future --disabling, maybe. Right now, it depends on HAVE_MMAP |
---|
192 | AM_CONDITIONAL(GST_DISABLE_OMEGA_COTHREADS, test "x$GST_DISABLE_OMEGA_COTHREADS" = "xyes") |
---|
193 | |
---|
194 | dnl check for makecontext and define HAVE_MAKECONTEXT if we have it |
---|
195 | AC_CHECK_MCSC() |
---|
196 | if test "$ac_cv_check_mcsc" = "yes"; then |
---|
197 | AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT, |
---|
198 | [defined if we have makecontext ()]) |
---|
199 | fi |
---|
200 | |
---|
201 | dnl Check for a way to display the function name in debug output |
---|
202 | GST_CHECK_FUNCTION() |
---|
203 | |
---|
204 | dnl check if we should use -Wa,-mregnames on PowerPC, so we can use |
---|
205 | dnl symbolic register names in inline asm |
---|
206 | if test x$HAVE_CPU_PPC = xyes ; then |
---|
207 | AS_COMPILER_FLAG(["-Wa,-mregnames"], |
---|
208 | [GST_INT_CFLAGS="$GST_INT_CFLAGS -Wa,-mregnames"], |
---|
209 | true) |
---|
210 | fi |
---|
211 | |
---|
212 | AC_ARG_ENABLE(gcov, |
---|
213 | AC_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]), |
---|
214 | enable_gcov=$enableval,enable_gcov=no) |
---|
215 | if test x$enable_gcov = xyes ; then |
---|
216 | AS_COMPILER_FLAG(["-fprofile-arcs"], |
---|
217 | [GST_INT_CFLAGS="$GST_INT_CFLAGS -fprofile-arcs"], |
---|
218 | true) |
---|
219 | AS_COMPILER_FLAG(["-ftest-coverage"], |
---|
220 | [GST_INT_CFLAGS="$GST_INT_CFLAGS -ftest-coverage"], |
---|
221 | true) |
---|
222 | GST_INT_CFLAGS=`echo "$GST_INT_CFLAGS" | sed -e 's/-O[0-9]*//g'` |
---|
223 | |
---|
224 | AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing]) |
---|
225 | fi |
---|
226 | AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes) |
---|
227 | |
---|
228 | dnl Check for some compiler flags that optimize our code. |
---|
229 | if test "x$GCC" = xyes; then |
---|
230 | AS_COMPILER_FLAG(-fno-common,GST_INT_CFLAGS="$GST_INT_CFLAGS -fno-common",) |
---|
231 | fi |
---|
232 | |
---|
233 | dnl HAVE_WIN32 currently means "disable POSIXisms". |
---|
234 | case "$host" in |
---|
235 | *-*-mingw*) |
---|
236 | AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows]) |
---|
237 | ;; |
---|
238 | *) |
---|
239 | ;; |
---|
240 | esac |
---|
241 | |
---|
242 | GST_UNALIGNED_ACCESS() |
---|
243 | if test x${as_cv_unaligned_access} = xyes ; then |
---|
244 | GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1" |
---|
245 | else |
---|
246 | GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0" |
---|
247 | fi |
---|
248 | AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE) |
---|
249 | |
---|
250 | dnl Check for essential libraries first: |
---|
251 | dnl ==================================== |
---|
252 | |
---|
253 | dnl === GLib 2 === |
---|
254 | dnl Minimum required version of GLib2 |
---|
255 | dnl required for compilation without warnings |
---|
256 | GLIB2_REQ="2.2" |
---|
257 | AC_SUBST(GLIB2_REQ) |
---|
258 | |
---|
259 | dnl Check for glib2 with sugar on top |
---|
260 | PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no) |
---|
261 | dnl for the poor souls who for example have glib in /usr/local |
---|
262 | AS_SCRUB_INCLUDE(GLIB2_CFLAGS) |
---|
263 | GLIB_LIBS=$GLIB2_LIBS |
---|
264 | GLIB_CFLAGS=$GLIB2_CFLAGS |
---|
265 | AC_SUBST(GLIB_LIBS) |
---|
266 | AC_SUBST(GLIB_CFLAGS) |
---|
267 | |
---|
268 | if test "x$HAVE_GLIB2" = "xno"; then |
---|
269 | AC_MSG_ERROR([GStreamer requires GLib $GLIB2_REQ to compile.]) |
---|
270 | fi |
---|
271 | |
---|
272 | dnl Check for glib2 without extra fat, useful for the unversioned tool frontends |
---|
273 | PKG_CHECK_MODULES(GLIB_ONLY, glib-2.0 >= $GLIB2_REQ) |
---|
274 | AC_SUBST(GLIB_ONLY_CFLAGS) |
---|
275 | AC_SUBST(GLIB_ONLY_LIBS) |
---|
276 | |
---|
277 | dnl === libxml 2 === |
---|
278 | if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes" |
---|
279 | then |
---|
280 | AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2]) |
---|
281 | else |
---|
282 | dnl check for libxml2 with minimum req version |
---|
283 | GST_LIBXML2_CHECK(2.4.9) |
---|
284 | fi |
---|
285 | |
---|
286 | dnl popt checks |
---|
287 | dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2 |
---|
288 | dnl causes segfaults on gst_init. Write a working test if possible. |
---|
289 | GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt", |
---|
290 | AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can |
---|
291 | download the latest version from |
---|
292 | ftp://ftp.rpm.org/pub/rpm/dist/]) |
---|
293 | ) |
---|
294 | AC_MSG_NOTICE(Checking for POPT_TABLEEND) |
---|
295 | AC_COMPILE_IFELSE([ |
---|
296 | #include <popt.h> |
---|
297 | int main () |
---|
298 | { |
---|
299 | #ifndef POPT_TABLEEND |
---|
300 | #error |
---|
301 | #else |
---|
302 | return 0; |
---|
303 | #endif |
---|
304 | } |
---|
305 | ],, [ |
---|
306 | dnl it failed |
---|
307 | AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can |
---|
308 | download the latest version from |
---|
309 | ftp://ftp.rpm.org/pub/rpm/dist/]) |
---|
310 | ]) |
---|
311 | AC_SUBST(POPT_LIBS) |
---|
312 | |
---|
313 | dnl Check for ucontext.h |
---|
314 | AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h])) |
---|
315 | |
---|
316 | dnl ###################################################################### |
---|
317 | dnl # Check command line parameters, and set shell variables accordingly # |
---|
318 | dnl ###################################################################### |
---|
319 | |
---|
320 | dnl FIXME: simplify all this down using a few m4 macros |
---|
321 | |
---|
322 | AC_ARG_ENABLE(fast-stack-trash, |
---|
323 | AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]), |
---|
324 | [case "${enableval}" in |
---|
325 | yes) USE_FAST_STACK_TRASH=yes;; |
---|
326 | noset) USE_FAST_STACK_TRASH=no;; |
---|
327 | no) USE_FAST_STACK_TRASH=no;; |
---|
328 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;; |
---|
329 | esac], |
---|
330 | [USE_FAST_STACK_TRASH=yes]) dnl Default value |
---|
331 | |
---|
332 | AC_ARG_ENABLE(plugin-builddir, |
---|
333 | AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]), |
---|
334 | [case "${enableval}" in |
---|
335 | yes) PLUGINS_USE_BUILDDIR=yes ;; |
---|
336 | no) PLUGINS_USE_BUILDDIR=no ;; |
---|
337 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;; |
---|
338 | esac], |
---|
339 | [PLUGINS_USE_BUILDDIR=no]) dnl Default value |
---|
340 | |
---|
341 | AC_ARG_ENABLE(profiling, |
---|
342 | AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]), |
---|
343 | [case "${enableval}" in |
---|
344 | yes) USE_PROFILING=yes ;; |
---|
345 | no) USE_PROFILING=no ;; |
---|
346 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;; |
---|
347 | esac], |
---|
348 | [USE_PROFILING=no]) dnl Default value |
---|
349 | |
---|
350 | dnl use a cache dir for storing element registry info. |
---|
351 | dnl default to building registry in the source tree if we are enabling plugin build dir |
---|
352 | if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then |
---|
353 | GST_CACHE_DIR=`pwd` |
---|
354 | else |
---|
355 | dnl ${localstatedir} points to PREFIX/var |
---|
356 | GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR |
---|
357 | fi |
---|
358 | AC_ARG_WITH(cachedir, |
---|
359 | AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]), |
---|
360 | [case "${withval}" in |
---|
361 | yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;; |
---|
362 | no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;; |
---|
363 | *) GST_CACHE_DIR="${withval}" ;; |
---|
364 | esac], |
---|
365 | [:]) dnl Default value |
---|
366 | |
---|
367 | AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR) |
---|
368 | AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry]) |
---|
369 | AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir) |
---|
370 | |
---|
371 | dnl building of tests |
---|
372 | AC_ARG_ENABLE(tests, |
---|
373 | AC_HELP_STRING([--disable-tests],[disable building test apps]), |
---|
374 | [case "${enableval}" in |
---|
375 | yes) BUILD_TESTS=yes ;; |
---|
376 | no) BUILD_TESTS=no ;; |
---|
377 | *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;; |
---|
378 | esac], |
---|
379 | [BUILD_TESTS=yes]) dnl Default value |
---|
380 | AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes") |
---|
381 | |
---|
382 | dnl tests known to fail |
---|
383 | AC_ARG_ENABLE(failing-tests, |
---|
384 | AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]), |
---|
385 | [case "${enableval}" in |
---|
386 | yes) BUILD_FAILING_TESTS=yes ;; |
---|
387 | no) BUILD_FAILING_TESTS=no ;; |
---|
388 | *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;; |
---|
389 | esac], |
---|
390 | [BUILD_FAILING_TESTS=no]) dnl Default value |
---|
391 | AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes") |
---|
392 | if test x$BUILD_FAILING_TESTS = xyes; then |
---|
393 | AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable]) |
---|
394 | else |
---|
395 | 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.]) |
---|
396 | fi |
---|
397 | |
---|
398 | AC_ARG_ENABLE(examples, |
---|
399 | AC_HELP_STRING([--disable-examples],[disable building examples]), |
---|
400 | [case "${enableval}" in |
---|
401 | yes) BUILD_EXAMPLES=yes ;; |
---|
402 | no) BUILD_EXAMPLES=no ;; |
---|
403 | *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;; |
---|
404 | esac], |
---|
405 | [BUILD_EXAMPLES=yes]) dnl Default value |
---|
406 | AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes") |
---|
407 | |
---|
408 | dnl poison destroyed objects |
---|
409 | AC_ARG_ENABLE(poisoning, |
---|
410 | AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]), |
---|
411 | [case "${enableval}" in |
---|
412 | yes) USE_POISONING=yes ;; |
---|
413 | no) USE_POISONING=no ;; |
---|
414 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;; |
---|
415 | esac], |
---|
416 | [USE_POISONING=no]) dnl Default value |
---|
417 | |
---|
418 | dnl Next, check for the optional components: |
---|
419 | dnl ======================================== |
---|
420 | |
---|
421 | dnl debugging stuff |
---|
422 | AC_ARG_ENABLE(debug, |
---|
423 | AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]), |
---|
424 | [case "${enableval}" in |
---|
425 | yes) USE_DEBUG=yes ;; |
---|
426 | no) USE_DEBUG=no ;; |
---|
427 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; |
---|
428 | esac], |
---|
429 | [USE_DEBUG=yes]) dnl Default value |
---|
430 | |
---|
431 | dnl valgrind inclusion |
---|
432 | AC_ARG_ENABLE(valgrind, |
---|
433 | AC_HELP_STRING([--disable-valgrind],[disable run-time valgrind detection]), |
---|
434 | [case "${enableval}" in |
---|
435 | yes) USE_VALGRIND="$USE_DEBUG" ;; |
---|
436 | no) USE_VALGRIND=no ;; |
---|
437 | *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind) ;; |
---|
438 | esac], |
---|
439 | [USE_VALGRIND="$USE_DEBUG"]) dnl Default value |
---|
440 | VALGRIND_REQ="2.1" |
---|
441 | if test "x$USE_VALGRIND" = xyes; then |
---|
442 | |
---|
443 | PKG_CHECK_MODULES(VALGRIND, valgrind > $VALGRIND_REQ, USE_VALGRIND="yes", USE_VALGRIND="no") |
---|
444 | fi |
---|
445 | if test "x$USE_VALGRIND" = xyes; then |
---|
446 | AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) |
---|
447 | AC_MSG_NOTICE(Using extra code paths for valgrind) |
---|
448 | fi |
---|
449 | AC_SUBST(VALGRIND_CFLAGS) |
---|
450 | AC_SUBST(VALGRIND_LIBS) |
---|
451 | |
---|
452 | dnl ################################################ |
---|
453 | dnl # Set defines according to variables set above # |
---|
454 | dnl ################################################ |
---|
455 | |
---|
456 | |
---|
457 | dnl These should be "USE_*" instead of "HAVE_*", but some packages expect |
---|
458 | dnl HAVE_ and it is likely to be easier to stick with the old name |
---|
459 | if test "x$USE_FAST_STACK_TRASH" = xyes; then |
---|
460 | AC_DEFINE(USE_FAST_STACK_TRASH, 1, [Define if we should use i586 optimized stack functions]) |
---|
461 | fi |
---|
462 | |
---|
463 | if test "x$USE_POISONING" = xyes; then |
---|
464 | AC_DEFINE(USE_POISONING, 1, [Define if we should poison deallocated memory]) |
---|
465 | fi |
---|
466 | |
---|
467 | dnl test for sigaction() |
---|
468 | AC_CHECK_FUNC(sigaction, |
---|
469 | AC_DEFINE(HAVE_SIGACTION, 1, |
---|
470 | [Defined if we have sigaction ()])) |
---|
471 | |
---|
472 | dnl test for register_printf_function |
---|
473 | AC_CHECK_FUNC(register_printf_function, |
---|
474 | [ |
---|
475 | GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\"" |
---|
476 | AC_DEFINE(HAVE_PRINTF_EXTENSION, 1, |
---|
477 | [Defined if we have register_printf_function ()]) |
---|
478 | ], |
---|
479 | GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\"" |
---|
480 | ) |
---|
481 | AC_SUBST(GST_PRINTF_EXTENSION_FORMAT_DEFINE) |
---|
482 | |
---|
483 | dnl test if we have dladdr(); we use it for debugging |
---|
484 | save_cflags="$CFLAGS" |
---|
485 | CFLAGS="$CFLAGS -D_GNU_SOURCE" |
---|
486 | AC_CHECK_LIB(dl, dladdr, |
---|
487 | AC_DEFINE(HAVE_DLADDR, 1, |
---|
488 | [Defined if we have dladdr ()])) |
---|
489 | CFLAGS="$save_cflags" |
---|
490 | |
---|
491 | if test "x$PLUGINS_USE_BUILDDIR" = xyes; then |
---|
492 | AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this]) |
---|
493 | fi |
---|
494 | |
---|
495 | if test "x$USE_DEBUG" = xyes; then |
---|
496 | GST_INT_CFLAGS="$GST_INT_CFLAGS -g" |
---|
497 | fi |
---|
498 | |
---|
499 | dnl ############################# |
---|
500 | dnl # Set automake conditionals # |
---|
501 | dnl ############################# |
---|
502 | |
---|
503 | dnl These should be "USE_*" instead of "HAVE_*", but some packages expect |
---|
504 | dnl HAVE_ and it is likely to be easier to stick with the old name |
---|
505 | AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes") |
---|
506 | AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes") |
---|
507 | AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes") |
---|
508 | |
---|
509 | |
---|
510 | dnl ############################ |
---|
511 | dnl # Set up some more defines # |
---|
512 | dnl ############################ |
---|
513 | |
---|
514 | dnl set license and copyright notice |
---|
515 | AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license]) |
---|
516 | |
---|
517 | dnl package name in plugins |
---|
518 | AC_ARG_WITH(package-name, |
---|
519 | AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]), |
---|
520 | [case "${withval}" in |
---|
521 | yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; |
---|
522 | no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; |
---|
523 | *) GST_PACKAGE="${withval}" ;; |
---|
524 | esac], |
---|
525 | [ |
---|
526 | dnl default value |
---|
527 | if test "x$GST_CVS" = "xyes" |
---|
528 | then |
---|
529 | dnl nano >= 1 |
---|
530 | GST_PACKAGE="GStreamer CVS/prerelease" |
---|
531 | else |
---|
532 | GST_PACKAGE="GStreamer source release" |
---|
533 | fi |
---|
534 | ] |
---|
535 | ) |
---|
536 | AC_MSG_NOTICE(Using $GST_PACKAGE as package name) |
---|
537 | AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins]) |
---|
538 | |
---|
539 | dnl package origin URL |
---|
540 | AC_ARG_WITH(package-origin, |
---|
541 | AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]), |
---|
542 | [case "${withval}" in |
---|
543 | yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; |
---|
544 | no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; |
---|
545 | *) GST_ORIGIN="${withval}" ;; |
---|
546 | esac], |
---|
547 | [GST_ORIGIN="http://gstreamer.freedesktop.org/"]) dnl Default value |
---|
548 | AC_MSG_NOTICE(Using $GST_ORIGIN as package origin) |
---|
549 | AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin]) |
---|
550 | |
---|
551 | dnl Set location of plugin directory |
---|
552 | AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR) |
---|
553 | AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory]) |
---|
554 | AC_SUBST(PLUGINS_DIR) |
---|
555 | AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location]) |
---|
556 | |
---|
557 | dnl Set location of uninstalled plugin directory |
---|
558 | PLUGINS_BUILDDIR=`pwd` |
---|
559 | AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory]) |
---|
560 | AC_SUBST(PLUGINS_BUILDDIR) |
---|
561 | |
---|
562 | dnl LDFLAGS modifier defining exported symbols from built objects |
---|
563 | EXPORT_LDFLAGS="-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*" |
---|
564 | |
---|
565 | dnl GST_PKG_*: the flags we use that are also used |
---|
566 | dnl for external applications/.pc file |
---|
567 | dnl GST_LIB_*: used for the main library |
---|
568 | dnl GST_OBJ_*: the flags we use for all the objects internal to the core |
---|
569 | dnl GST_PLUGIN_*: additional flags we use for all plugins |
---|
570 | |
---|
571 | dnl finalize _CFLAGS and _LIBS |
---|
572 | dnl flags exported for external applications and use in our pkg-config .pc files |
---|
573 | dnl since glib and xml are package deps, there's no need to include their cflags |
---|
574 | dnl in the pkg-config file |
---|
575 | |
---|
576 | GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0" |
---|
577 | AC_SUBST(GST_PKG_CFLAGS) |
---|
578 | AC_SUBST(GST_PKG_LIBS) |
---|
579 | AC_SUBST(GST_PKG_DEPS) |
---|
580 | |
---|
581 | dnl flags shared for all internal objects (core libs, elements, applications) |
---|
582 | dnl we disable deprecated internally |
---|
583 | dnl XML, GLib, popt, GST_INT, VALGRIND, and the right include for CFLAGS |
---|
584 | dnl no need to add XML, GLib, popt explicitly since libgstreamer pulls them in |
---|
585 | GST_INT_CFLAGS="$GLIB_CFLAGS $XML_CFLAGS $GST_PKG_CFLAGS \ |
---|
586 | $GST_INT_CFLAGS $GST_ERROR_CFLAGS -DGST_DISABLE_DEPRECATED" |
---|
587 | |
---|
588 | dnl Private vars for libgst only |
---|
589 | GST_LIB_CFLAGS="$GST_PKG_CFLAGS $GST_INT_CFLAGS \ |
---|
590 | $VALGRIND_CFLAGS -I\$(top_srcdir)" |
---|
591 | GST_LIB_LIBS="$XML_LIBS $GLIB_LIBS -lpopt $GST_PKG_LIBS $LTLIBINTL $VALGRIND_LIBS" |
---|
592 | GST_LIB_LDFLAGS="$GST_LT_LDFLAGS -version-info $GST_LIBVERSION $EXPORT_LDFLAGS" |
---|
593 | AC_SUBST(GST_LIB_CFLAGS) |
---|
594 | AC_SUBST(GST_LIB_LIBS) |
---|
595 | AC_SUBST(GST_LIB_LDFLAGS) |
---|
596 | |
---|
597 | dnl Vars for all internal objects built on libgstreamer |
---|
598 | GST_OBJ_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)" |
---|
599 | GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la" |
---|
600 | |
---|
601 | AC_SUBST(GST_OBJ_CFLAGS, "$GST_OBJ_CFLAGS") |
---|
602 | AC_SUBST(GST_OBJ_LIBS, "$GST_OBJ_LIBS") |
---|
603 | |
---|
604 | dnl specific additional LDFLAGS for plugins |
---|
605 | GST_PLUGIN_LDFLAGS="-module -avoid-version $EXPORT_LDFLAGS" |
---|
606 | AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS") |
---|
607 | |
---|
608 | plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR" |
---|
609 | AC_SUBST(plugindir) |
---|
610 | |
---|
611 | dnl ################################################## |
---|
612 | dnl # deps for examples from manual # |
---|
613 | dnl ################################################## |
---|
614 | |
---|
615 | PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0, |
---|
616 | HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no") |
---|
617 | AC_SUBST(LIBGNOMEUI_CFLAGS) |
---|
618 | AC_SUBST(LIBGNOMEUI_LIBS) |
---|
619 | AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes") |
---|
620 | |
---|
621 | dnl ################################################## |
---|
622 | dnl # Prepare informative messages to display at end # |
---|
623 | dnl ################################################## |
---|
624 | |
---|
625 | infomessages= |
---|
626 | |
---|
627 | if test "x$PLUGINS_USE_BUILDDIR" = xyes; then |
---|
628 | infomessages="$infomessages |
---|
629 | *** Warning: You have configured using the --enable-plugin-builddir option. |
---|
630 | |
---|
631 | This option is for development purposes only: binaries built with |
---|
632 | it should be used with code in the build tree only. To build an |
---|
633 | installable version, use ./configure without the --enable-plugin-builddir |
---|
634 | option. Note that the autogen.sh script supplies the plugin builddir |
---|
635 | option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make |
---|
636 | an installable build. |
---|
637 | |
---|
638 | " |
---|
639 | fi |
---|
640 | |
---|
641 | dnl ######################### |
---|
642 | dnl # Make the output files # |
---|
643 | dnl ######################### |
---|
644 | |
---|
645 | dnl libs/ext/Makefile |
---|
646 | dnl nothing there yet ! |
---|
647 | AC_OUTPUT( |
---|
648 | Makefile |
---|
649 | include/Makefile |
---|
650 | gst/Makefile |
---|
651 | gst/gstconfig.h |
---|
652 | gst/gstversion.h |
---|
653 | gst/autoplug/Makefile |
---|
654 | gst/indexers/Makefile |
---|
655 | gst/elements/Makefile |
---|
656 | gst/parse/Makefile |
---|
657 | gst/schedulers/Makefile |
---|
658 | gst/registries/Makefile |
---|
659 | libs/Makefile |
---|
660 | libs/gst/Makefile |
---|
661 | libs/gst/bytestream/Makefile |
---|
662 | libs/gst/control/Makefile |
---|
663 | libs/gst/dataprotocol/Makefile |
---|
664 | libs/gst/getbits/Makefile |
---|
665 | po/Makefile.in |
---|
666 | tests/Makefile |
---|
667 | tests/bufspeed/Makefile |
---|
668 | tests/instantiate/Makefile |
---|
669 | tests/memchunk/Makefile |
---|
670 | tests/muxing/Makefile |
---|
671 | tests/seeking/Makefile |
---|
672 | tests/sched/Makefile |
---|
673 | tests/threadstate/Makefile |
---|
674 | testsuite/Makefile |
---|
675 | testsuite/bins/Makefile |
---|
676 | testsuite/bytestream/Makefile |
---|
677 | testsuite/caps/Makefile |
---|
678 | testsuite/cleanup/Makefile |
---|
679 | testsuite/clock/Makefile |
---|
680 | testsuite/debug/Makefile |
---|
681 | testsuite/dlopen/Makefile |
---|
682 | testsuite/dynparams/Makefile |
---|
683 | testsuite/elements/Makefile |
---|
684 | testsuite/ghostpads/Makefile |
---|
685 | testsuite/indexers/Makefile |
---|
686 | testsuite/negotiation/Makefile |
---|
687 | testsuite/pad/Makefile |
---|
688 | testsuite/parse/Makefile |
---|
689 | testsuite/plugin/Makefile |
---|
690 | testsuite/refcounting/Makefile |
---|
691 | testsuite/schedulers/Makefile |
---|
692 | testsuite/states/Makefile |
---|
693 | testsuite/tags/Makefile |
---|
694 | testsuite/threads/Makefile |
---|
695 | examples/Makefile |
---|
696 | examples/cutter/Makefile |
---|
697 | examples/helloworld/Makefile |
---|
698 | examples/launch/Makefile |
---|
699 | examples/manual/Makefile |
---|
700 | examples/mixer/Makefile |
---|
701 | examples/pingpong/Makefile |
---|
702 | examples/plugins/Makefile |
---|
703 | examples/queue/Makefile |
---|
704 | examples/queue2/Makefile |
---|
705 | examples/queue3/Makefile |
---|
706 | examples/queue4/Makefile |
---|
707 | examples/retag/Makefile |
---|
708 | examples/thread/Makefile |
---|
709 | examples/typefind/Makefile |
---|
710 | examples/xml/Makefile |
---|
711 | tools/Makefile |
---|
712 | common/Makefile |
---|
713 | common/m4/Makefile |
---|
714 | docs/Makefile |
---|
715 | docs/faq/Makefile |
---|
716 | docs/gst/Makefile |
---|
717 | docs/libs/Makefile |
---|
718 | docs/manual/Makefile |
---|
719 | docs/plugins/Makefile |
---|
720 | docs/plugins/gstreamer-plugins.types |
---|
721 | docs/pwg/Makefile |
---|
722 | docs/xsl/Makefile |
---|
723 | docs/version.entities |
---|
724 | pkgconfig/Makefile |
---|
725 | stamp.h |
---|
726 | pkgconfig/gstreamer.pc |
---|
727 | pkgconfig/gstreamer-uninstalled.pc |
---|
728 | pkgconfig/gstreamer-control.pc |
---|
729 | pkgconfig/gstreamer-control-uninstalled.pc |
---|
730 | gstreamer.spec, |
---|
731 | echo "$infomessages", infomessages="$infomessages" |
---|
732 | ) |
---|