]> git.sesse.net Git - vlc/blob - configure.ac
Simplify vorbis detection and activate encoder except when tremor is requested
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_COPYRIGHT([Copyright 2002-2009 the VideoLAN team])
4
5 AC_INIT(vlc, 1.1.0-git)
6 VERSION_MAJOR="1"
7 VERSION_MINOR="1"
8 VERSION_REVISION="0"
9 VERSION_EXTRA="-git"
10 PKGDIR="vlc"
11 AC_SUBST(PKGDIR)
12
13 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14 CODENAME="Yellow Bastard"
15 COPYRIGHT_YEARS="1996-2009"
16
17 AC_PREREQ(2.59c)
18 AC_CONFIG_SRCDIR(src/libvlc.c)
19 AC_CONFIG_AUX_DIR(autotools)
20 AC_CONFIG_MACRO_DIR(m4)
21 AC_CONFIG_LIBOBJ_DIR(compat)
22 AC_CANONICAL_BUILD
23 AC_CANONICAL_HOST
24
25 AM_INIT_AUTOMAKE(tar-ustar)
26 AM_CONFIG_HEADER(config.h)
27
28 dnl Too many people are not aware of maintainer mode:
29 dnl If you want to use it, you definitely know what you are doing, so
30 dnl you can specify "--disable-maintainer-mode". But if you want the default
31 dnl automake behavior, you've likely never heard of maintainer mode, so we
32 dnl can't expect you to enable it manually.
33
34 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
35     [enable_maintainer_mode="yes"])
36 AM_MAINTAINER_MODE
37
38 dnl
39 dnl Directories
40 dnl
41 dnl vlcincludedir="\${includedir}/\${PKGDIR}"
42 dnl AC_SUBST(vlcincludedir)
43 vlcdatadir="\${datadir}/\${PKGDIR}"
44 AC_SUBST(vlcdatadir)
45 vlclibdir="\${libdir}/\${PKGDIR}"
46 AC_SUBST(vlclibdir)
47
48 dnl
49 dnl  Deprecated options
50 dnl  to notify packagers that stuff has changed
51 dnl
52 AC_ARG_ENABLE(python-bindings,
53   [  --enable-python-bindings Always fails for historical reasons)],,
54   [enable_python_bindings="no"])
55 AS_IF([test "${enable_python_bindings}" != "no"], [
56   AC_MSG_ERROR([Python bindings are now built from a separate source package])
57 ])
58
59 AC_ARG_ENABLE(java-bindings,
60   [  --enable-java-bindings  Always fails for historical reasons],,
61   [enable_java_bindings="no"])
62 AS_IF([test "${enable_java_bindings}" != "no"], [
63   AC_MSG_ERROR([Java bindings are now built from a separate source package])
64 ])
65
66 dnl
67 dnl  Save *FLAGS
68 dnl
69 VLC_SAVE_FLAGS
70
71 dnl
72 dnl Check for tools
73 dnl
74 AC_PROG_CC_C99
75 AC_USE_SYSTEM_EXTENSIONS
76 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
77
78 AM_PROG_CC_C_O
79 AC_PROG_CXX
80 AC_PROG_CPP
81 AC_PROG_OBJC
82 _AM_DEPENDENCIES([OBJC])
83 AC_PROG_EGREP
84 AC_PROG_MAKE_SET
85 AC_PROG_INSTALL
86 AM_PROG_AS
87
88 dnl Find the right ranlib, even when cross-compiling
89 AC_CHECK_TOOL(RANLIB, ranlib, :)
90 AC_CHECK_TOOL(STRIP, strip, :)
91 AC_CHECK_TOOL(AR, ar, :)
92 AC_CHECK_TOOL(LD, ld, :)
93 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
94
95 dnl Check for compiler properties
96 AC_C_CONST
97 AC_C_INLINE
98 AC_C_RESTRICT
99
100 dnl Allow binary package maintainer to pass a custom string to avoid
101 dnl cache problem
102 AC_ARG_WITH(binary-version,
103         AS_HELP_STRING([--with-binary-version=STRING],
104              [To avoid plugins cache problem between binary version]),[],[])
105 AS_IF([test -n "${with_binary_version}"],[
106       AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
107                          [Binary specific version])
108       ])
109
110
111 dnl
112 dnl  Check for the contrib directory
113 dnl
114 AC_ARG_WITH(contrib,
115     [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
116   AS_IF([test "${with_contrib}" != "no"],[
117     AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
118     if test -z "$CONTRIB_DIR"
119     then
120       topdir="`dirname $0`"
121       if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
122          topdir="`pwd`/$topdir"
123       fi
124       CONTRIB_DIR=${topdir}/extras/contrib
125     fi
126     AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
127   AS_IF([test -d ${CONTRIB_DIR}/lib],[
128    AS_IF([test "`grep HOST ${CONTRIB_DIR}/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"],[
129       if test "${with_contrib}" = "yes"; then
130         AC_MSG_RESULT([no])
131         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
132       else
133         AC_MSG_RESULT([no])
134         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
135       fi
136      ],[
137     AC_MSG_RESULT([yes])
138     export PATH=${CONTRIB_DIR}/bin:$PATH
139     CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
140     CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
141     CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
142     CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
143     CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
144     CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
145     OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
146     OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
147     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
148         export PKG_CONFIG_PATH=${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH
149     else
150         export PKG_CONFIG_LIBDIR=${CONTRIB_DIR}/lib/pkgconfig
151     fi
152     LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
153     LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
154
155     if test -z $with_mozilla_sdk_path; then
156        with_mozilla_sdk_path=${CONTRIB_DIR}/gecko-sdk
157     fi
158     if test -z $with_cyberlink_tree; then
159        with_cyberlink_tree=${CONTRIB_DIR}/src/clinkcc
160     fi
161
162     if test ".`uname -s`" = ".Darwin"; then
163       export LD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH
164       export DYLD_LIBRARY_PATH=${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH
165     elif test ".`uname -s`" = ".BeOS"; then
166       export LIBRARY_PATH=${CONTRIB_DIR}/lib:$LIBRARY_PATH
167       export BELIBRARIES=${CONTRIB_DIR}/lib:$BELIBRARIES
168     fi
169     ])
170   ],[
171     AC_MSG_RESULT([no])
172   ])
173 ])
174 dnl
175 dnl  Set default values
176 dnl
177 LDFLAGS_vlc="${LDFLAGS}"
178
179 dnl
180 dnl  Check the operating system
181 dnl
182 case "${host_os}" in
183   "")
184     SYS=unknown
185     ;;
186   linux*)
187     SYS=linux
188     ;;
189   bsdi*)
190     SYS=bsdi
191     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
192     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
193     ;;
194   *bsd*)
195     SYS="${host_os}"
196     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
197     case "${host_os}" in
198       freebsd*)
199         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
200         CPPFLAGS="${CPPFLAGS_save}"
201         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
202         LDFLAGS="${LDFLAGS_save}"
203         ;;
204     esac
205     ;;
206   darwin*)
207     SYS=darwin
208     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
209     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
210     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
211     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
212     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
213     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
214     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
215     VLC_ADD_LDFLAGS([libvlc],[-Wl,-undefined,dynamic_lookup])
216     VLC_ADD_LDFLAGS([avcodec avformat swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
217     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
218     VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
219     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
220     AC_ARG_ENABLE(macosx-defaults,
221       AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
222     if test "x${enable_macosx_defaults}" != "xno"
223     then
224         echo ""
225         echo "Building with Mac OS X defaults:"
226         with_macosx_version_min="10.5"
227         echo "  Assuming --with-macosx-version-min=10.5"
228         with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
229         echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
230         build_dir=`pwd`
231         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
232         ac_default_prefix="${build_dir}/vlc_install_dir"
233         enable_macosx="yes"
234         echo "  Assuming --enable-macosx"
235         enable_faad="yes"
236         echo "  Assuming --enable-faad"
237         enable_flac="yes"
238         echo "  Assuming --enable-flac"
239         enable_theora="yes"
240         echo "  Assuming --enable-theora"
241         enable_shout="yes"
242         echo "  Assuming --enable-shout"
243         enable_cddax="yes"
244         echo "  Assuming --enable-cddax"
245         enable_vcdx="yes"
246         echo "  Assuming --enable-vcdx"
247         enable_caca="yes"
248         echo "  Assuming --enable-caca"
249         enable_goom="yes"
250         echo "  Assuming --enable-goom"
251         enable_ncurses="yes"
252         echo "  Assuming --enable-ncurses"
253         enable_twolame="yes"
254         echo "  Assuming --enable-twolame"
255         enable_realrtsp="yes"
256         echo "  Assuming --enable-realrtsp"
257         enable_update_check="yes"
258         echo "  Assuming --enable-update-check"
259         enable_libass="yes"
260         echo "  Assuming --enable-libass"
261         enable_asademux="yes"
262         echo "  Assuming --enable-asademux"
263
264         enable_skins2="no"
265         echo "  Assuming --disable-skins2"
266         enable_x11="no"
267         echo "  Assuming --disable-x11"
268         enable_xcb="no"
269         echo "  Assuming --disable-xcb"
270         enable_glx="no"
271         echo "  Assuming --disable-glx"
272         enable_xvideo="no"
273         echo "  Assuming --disable-xvideo"
274     fi
275     dnl
276     dnl  Check for Mac OS X SDK settings
277     dnl
278     AC_ARG_WITH(macosx-sdk,
279        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
280     if test "${with_macosx_sdk}" != "" ; then
281         CPP="${CPP} -isysroot ${with_macosx_sdk}"
282         CC="${CC} -isysroot ${with_macosx_sdk}"
283         CXX="${CXX} -isysroot ${with_macosx_sdk}"
284         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
285         LD="${LD} -syslibroot ${with_macosx_sdk}"
286     fi
287     AC_ARG_WITH(macosx-version-min,
288        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
289     if test "${with_macosx_version_min}" != "" ; then
290         CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
291         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
292         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
293         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
294         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
295         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
296         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
297         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
298         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
299         export MACOSX_DEPLOYMENT_TARGET
300     fi
301     ;;
302   darwin9*)
303     if (test ".`uname -p`" = ".i386"); then
304         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
305         dnl without hacking it a lot, we disable mmx and sse.
306         dnl (that bug is about ld being unable to handle
307         dnl text relocation)
308         save_cflags="$CFLAGS"
309         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
310         AC_TRY_LINK(
311             [int a;], [asm("movq _a,%mm0\n");],
312             ac_ld_does_not_support_text_reloc=no,
313             ac_ld_does_not_support_text_reloc=yes)
314         CFLAGS="$save_cflags"
315
316         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
317             enable_mmx="no"
318             echo "  Assuming --disable-mmx (due to a bug in ld)"
319             enable_sse="no"
320             echo "  Assuming --disable-sse (due to a bug in ld)"
321         fi
322     fi
323     ;;
324   *mingw32* | *cygwin* | *wince* | *mingwce*)
325     AC_CHECK_TOOL(WINDRES, windres, :)
326     AC_CHECK_TOOL(OBJCOPY, objcopy, :)
327
328     case "${host_os}" in
329       *wince* | *mingwce* | *mingw32ce*)
330         SYS=mingwce
331         dnl Sadly CeGCC still needs non-wince macros
332         AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
333         ;;
334       *mingw32*)
335         SYS=mingw32
336         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
337         ;;
338       *cygwin*)
339         dnl Check if we are using the mno-cygwin mode in which case we are
340         dnl actually dealing with a mingw32 compiler.
341         AC_DEFINE([_WIN32_WINNT], 0x0500, [Define to '0x0500' for Windows 2000 APIs.])
342         AC_EGREP_CPP(yes,
343             [#ifdef WIN32
344              yes
345              #endif],
346             SYS=mingw32, SYS=cygwin)
347         ;;
348     esac
349
350     if test "${SYS}" = "mingw32"; then
351         # add ws2_32 for closesocket, select, recv
352         VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
353         VLC_ADD_LDFLAGS([vlc],[-mwindows])
354         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
355         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
356         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap slp http stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi],[-lws2_32])
357         VLC_ADD_LIBS([access_file], [-lshlwapi])
358     fi
359     if test "${SYS}" = "mingwce"; then
360         # add ws2 for closesocket, select, recv
361         VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap http netsync audioscrobbler growl rtp stream_out_rtp remoteosd],[-lws2])
362         VLC_ADD_LIBS([libvlccore],[-lmmtimer])
363    fi
364     ;;
365   *nto*)
366     SYS=nto
367     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
368     ;;
369   solaris*)
370     SYS=solaris
371     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
372     # Perhaps it is useful other places as well?
373     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
374     ;;
375   hpux*)
376     SYS=hpux
377     ;;
378   beos)
379     SYS=beos
380     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
381     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
382     VLC_ADD_CXXFLAGS([beos],[])
383     VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
384     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
385     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
386     VLC_ADD_LIBS([access_file],[-lpoll])
387     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
388     dnl Check for BONE
389     if test -f /boot/beos/system/lib/libbind.so; then
390         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lbind -lsocket])
391     else
392         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlccore growl_udp],[-lnet])
393     fi
394
395     dnl Ugly check for Zeta
396     if test -f /boot/beos/system/lib/libzeta.so; then
397         VLC_ADD_LIBS([beos],[-lzeta])
398     fi
399     ;;
400   *)
401     SYS="${host_os}"
402     ;;
403 esac
404 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
405 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
406 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
407 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
408 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
409
410 dnl
411 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
412 dnl for program foo on win32
413
414 case "${build_os}" in
415     cygwin|msys)
416         ac_executable_extensions=".exe"
417     ;;
418     *)
419     ;;
420 esac
421
422 dnl
423 dnl  Libtool
424 dnl  It's very bad, but our former custom system was worst
425 dnl  -- Courmisch
426 dnl
427
428 dnl override platform specific check for dependent libraries
429 dnl otherwise libtool linking of shared libraries will
430 dnl fail on anything other than pass_all.
431 AC_CACHE_VAL(lt_cv_deplibs_check_method,
432     [lt_cv_deplibs_check_method=pass_all])
433
434 AC_DISABLE_STATIC
435 dnl AC_DISABLE_FAST_INSTALL
436 AC_LIBTOOL_DLOPEN
437 AC_LIBTOOL_WIN32_DLL
438 m4_undefine([AC_PROG_F77])
439 m4_defun([AC_PROG_F77],[])
440 AC_PROG_LIBTOOL
441
442 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
443 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
444
445 lt_cv_deplibs_check_method=pass_all
446
447
448 dnl
449 dnl Gettext stuff
450 dnl
451 AM_GNU_GETTEXT_VERSION([0.17])
452 AM_GNU_GETTEXT([external])
453 VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
454
455 dnl
456 dnl Iconv stuff
457 dnl
458 AM_ICONV
459 VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
460 VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
461
462 dnl Check for broken versions of mingw-runtime compatability library
463 AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
464     AC_MSG_CHECKING(for broken mingw-runtime)
465     AC_PREPROC_IFELSE([
466 #include <_mingw.h>
467 #if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
468 # error Attempting to use mingw-runtime with broken vsnprintf support
469 #endif
470 ], [
471         AC_MSG_RESULT([ok])
472 ], [
473         AC_MSG_RESULT([present])
474         AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
475 ])
476     dnl force use of mingw provided c99 *printf over msvcrt
477     CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
478     CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
479 ])
480
481 dnl Check for the need to include the mingwex lib for mingw32
482 if test "${SYS}" = "mingw32"
483 then
484     AC_CHECK_LIB(mingwex,opendir,
485         AC_CHECK_LIB(mingw32,opendir,,
486             [VLC_ADD_LIBS([libvlccore gtk],[-lmingwex])])
487     )
488 fi
489
490 dnl Check for fnative-struct or mms-bitfields support for mingw32
491 if test "${SYS}" = "mingw32"
492 then
493     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
494         [ac_cv_c_mms_bitfields],
495         [CFLAGS="${CFLAGS_save} -mms-bitfields"
496          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
497     if test "${ac_cv_c_mms_bitfields}" != "no"; then
498         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
499         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
500     else
501         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
502             [ac_cv_c_fnative_struct],
503             [CFLAGS="${CFLAGS_save} -fnative-struct"
504              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
505         if test "${ac_cv_c_fnative_struct}" != "no"; then
506             CFLAGS_save="${CFLAGS_save} -fnative-struct";
507             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
508         fi
509     fi
510
511     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
512 fi
513
514 dnl Check for fvtable-thunks support for mingw32
515 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
516 then
517 AC_LANG_PUSH(C++)
518     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
519         [ac_cv_cxx_fvtable_thunks],
520         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
521          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
522                         ac_cv_cxx_fvtable_thunks=no)])
523     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
524         CXXFLAGS_mingw32_special="-fvtable-thunks"
525     fi
526
527     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
528 AC_LANG_POP(C++)
529 fi
530
531 dnl
532 dnl Buggy glibc prevention. Purposedly not cached.
533 dnl Ubuntu alone has 20 bug numbers for this...
534 dnl
535 AC_MSG_CHECKING(for buggy GNU/libc versions)
536 AC_PREPROC_IFELSE([
537 #include <limits.h>
538 #if defined (__GLIBC__) && (__GLIBC__ == 2) \
539   && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
540 # error GNU/libc with dcgettext killer bug!
541 #endif
542 ], [
543   AC_MSG_RESULT([not present])
544 ], [
545   AC_MSG_RESULT([found])
546   AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
547     AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
548 work-around for this. Check with your distribution vendor on how to update the
549 glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
550 be sure to not use LibVLC from other applications/wrappers.])
551   ], [
552     AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
553   ])
554 ])
555
556 dnl Plugin compilation stuff
557
558 VLC_LIBRARY_SUFFIX
559
560 dnl The -DSYS_FOO flag
561 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
562
563 dnl Check for system libs needed
564 need_libc=false
565
566 dnl Check for usual libc functions
567 AC_CHECK_FUNCS([gettimeofday isatty sigrelse getpwuid_r memalign posix_memalign if_nametoindex getenv putenv setenv ctime_r lrintf daemon fork lstat posix_fadvise posix_madvise uselocale])
568 AC_FUNC_ALLOCA
569 AC_CHECK_FUNCS(fcntl)
570 AC_REPLACE_FUNCS([asprintf atof atoll getcwd gmtime_r lldiv localtime_r rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtoll vasprintf swab])
571 AC_CHECK_FUNCS([stricmp strnicmp])
572 AC_CHECK_FUNCS(fdatasync,,
573   [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
574 ])
575
576 dnl Check for Linux system calls
577 AC_CHECK_FUNCS([vmsplice])
578
579 AH_BOTTOM([#include <vlc_fixups.h>])
580
581 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
582
583 dnl Check for setlocal and langinfo
584 AC_CHECK_FUNCS(setlocale)
585 AC_CHECK_HEADERS(langinfo.h)
586 AC_CHECK_FUNCS(nl_langinfo)
587
588 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
589   [AC_TRY_LINK([#include <langinfo.h>],
590     [char* cs = nl_langinfo(CODESET);],
591     ac_cv_langinfo_codeset=yes,
592     ac_cv_langinfo_codeset=no)
593   ])
594 if test ${ac_cv_langinfo_codeset} = yes; then
595   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
596     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
597 fi
598
599 AC_CHECK_FUNCS(connect,,[
600   AC_CHECK_LIB(socket,connect,[
601     VLC_ADD_LIBS([libvlccore cdda cddax],-lsocket)
602     LIBS_socket="-lsocket"
603   ])
604 ])
605
606 AC_CHECK_FUNCS(send,,[
607   AC_CHECK_LIB(socket,send,[
608     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd],[-lsocket])
609   ])
610 ])
611
612
613 dnl Check for socklen_t
614 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
615 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
616 ac_cv_type_socklen_t,
617 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
618 [#include <sys/types.h>
619 #ifdef WIN32
620 # include <winsock2.h>
621 # include <ws2tcpip.h>
622 #else
623 # include <sys/socket.h>
624 #endif]], [[socklen_t len; len = 0;]])],
625 ac_cv_type_socklen_t=yes,
626 ac_cv_type_socklen_t=no)])
627 AS_IF([test "$ac_cv_type_socklen_t" = no],
628  [AC_DEFINE(socklen_t, int)])
629
630 dnl Check for struct sockaddr_storage
631 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
632 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
633 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
634   [AC_TRY_COMPILE(
635     [#include <sys/types.h>
636      #if defined( UNDER_CE )
637      # include <winsock2.h>
638      #elif defined( WIN32 )
639      # include <winsock2.h>
640      #else
641      # include <sys/socket.h>
642      #endif], [struct sockaddr_storage addr;],
643      ac_cv_struct_sockaddr_storage=yes,
644      ac_cv_struct_sockaddr_storage=no)])
645 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
646   AC_DEFINE(sockaddr_storage, sockaddr)
647   AC_DEFINE(ss_family, sa_family)
648 ])
649
650 dnl getaddrinfo, getnameinfo and gai_strerror check
651 dnl  -lnsl and -lsocket are needed on Solaris;
652 dnl  we purposedly make the test fail on Windows
653 LIBS_save="${LIBS}"
654 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
655 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
656
657 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
658 dnl are
659 LIBS="${LIBS_gai}"
660 AC_CHECK_FUNCS([getnameinfo gai_strerror])
661 LIBS="${LIBS_save}"
662
663 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
664 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
665 [#include <sys/types.h>
666 #if defined( WIN32 ) || defined( UNDER_CE )
667 # if defined(UNDER_CE) && defined(sockaddr_storage)
668 #  undef sockaddr_storage
669 # endif
670 # include <winsock2.h>
671 # include <ws2tcpip.h>
672 #else
673 # include <netdb.h>
674 #endif])
675
676 dnl Check for va_copy
677 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
678   AC_TRY_LINK(
679     [#include <stdarg.h>],
680     [va_list ap1, ap2; va_copy(ap1,ap2);],
681     [ac_cv_c_va_copy="yes"],
682     [ac_cv_c_va_copy="no"]))
683 if test "${ac_cv_c_va_copy}" = "yes"; then
684   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
685 fi
686 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
687   AC_TRY_LINK(
688     [#include <stdarg.h>],
689     [va_list ap1, ap2; __va_copy(ap1,ap2);],
690     [ac_cv_c___va_copy="yes"],
691     [ac_cv_c___va_copy="no"]))
692 if test "${ac_cv_c___va_copy}" = "yes"; then
693   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
694 fi
695
696 AC_CHECK_FUNCS(inet_aton,,[
697   AC_CHECK_LIB(resolv,inet_aton,[
698     VLC_ADD_LIBS([libvlccore],[-lresolv])
699   ])
700 ])
701
702 dnl Check for getopt (always use builtin one on win32)
703 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
704 need_getopt=:
705 else
706 need_getopt=false
707 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
708 [ # FreeBSD has a gnugetopt library for this:
709   AC_CHECK_LIB([gnugetopt],[getopt_long],
710     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
711      VLC_ADD_LIBS([libvlccore],[-lgnugetopt])],
712     [need_getopt=:])])
713 fi
714 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
715
716 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
717 AC_TYPE_SIGNAL
718 AC_CHECK_LIB(m,cos,[
719   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene],[-lm])
720 ])
721 AC_CHECK_LIB(m,pow,[
722   VLC_ADD_LIBS([avcodec avformat swscale postproc ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlccore vorbis freetype mod mpc dmo quicktime realaudio realvideo galaktos opengl],[-lm])
723 ])
724 AC_CHECK_LIB(m,sqrt,[
725   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
726 ])
727 AC_CHECK_LIB(m,ceil,[
728   VLC_ADD_LIBS([hotkeys mosaic],[-lm])
729 ])
730 AC_CHECK_LIB(m,exp,[
731   VLC_ADD_LIBS([gaussianblur],[-lm])
732 ])
733 AC_CHECK_LIB(m,round,[
734   VLC_ADD_LIBS([dbus],[-lm])
735 ])
736 AC_CHECK_LIB(mx,sqrtf,[
737   VLC_ADD_LIBS([x264],[-lmx])
738 ])
739 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
740
741 dnl Check for dynamic plugins
742 ac_cv_have_plugins=no
743
744 # HP-UX style
745 if test "${ac_cv_have_plugins}" = "no"; then
746   AC_CHECK_HEADERS(dl.h)
747   ac_cv_my_have_shl_load=no
748   AC_CHECK_FUNC(shl_load,
749    [ac_cv_my_have_shl_load=yes,
750     AC_CHECK_LIB(dld, shl_load,
751      [ac_cv_my_have_shl_load=yes
752       VLC_ADD_LIBS([libvlccore],[-ldld])])])
753   if test "${ac_cv_my_have_shl_load}" = "yes"; then
754     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
755     ac_cv_have_plugins=yes
756   fi
757 fi
758
759 # Win32 style
760 if test "${ac_cv_have_plugins}" = "no"; then
761   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
762     AC_CHECK_LIB(kernel32, main,
763      [VLC_ADD_LIBS([libvlccore],[-lkernel32])
764       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
765       ac_cv_have_plugins=yes])
766   fi
767 fi
768
769 # WinCE style
770 if test "${ac_cv_have_plugins}" = "no"; then
771   if test "${SYS}" = "mingwce"; then
772     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
773     ac_cv_have_plugins=yes
774   fi
775 fi
776
777 # BeOS style
778 if test "${ac_cv_have_plugins}" = "no"; then
779   AC_CHECK_HEADERS(image.h)
780   AC_CHECK_FUNCS(load_add_on,
781    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
782     ac_cv_have_plugins=yes])
783 fi
784
785 # Only test for dlopen() if the others didn't work
786 if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
787   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
788   ac_cv_my_have_dlopen=no
789   AC_CHECK_FUNC(dlopen,
790     ac_cv_my_have_dlopen=yes,
791     AC_CHECK_LIB(dl, dlopen,
792       ac_cv_my_have_dlopen=yes
793       VLC_ADD_LIBS([libvlccore realaudio realvideo],[-ldl]),
794       AC_CHECK_LIB(svld, dlopen,
795         ac_cv_my_have_dlopen=yes
796         VLC_ADD_LIBS([libvlccore],[-lsvld]))))
797   if test "${ac_cv_my_have_dlopen}" = "yes"; then
798     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
799     ac_cv_have_plugins=yes
800   fi
801 fi
802
803 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
804 dnl Check for pthreads - borrowed from XMMS
805 THREAD_LIB=error
806 if test "${THREAD_LIB}" = "error"; then
807   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
808 fi
809 if test "${THREAD_LIB}" = "error"; then
810   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
811 fi
812 if test "${THREAD_LIB}" = "error"; then
813   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
814 fi
815 if test "${THREAD_LIB}" = "error"; then
816   AC_CHECK_FUNCS(pthread_mutex_lock)
817   THREAD_LIB=""
818 fi
819
820 VLC_ADD_LIBS([libvlccore libvlc plugin],[${THREAD_LIB}])
821
822 AC_CHECK_LIB(rt, clock_nanosleep, [
823   VLC_ADD_LIBS([libvlccore],[-lrt])
824   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
825 ], [
826   dnl HP/UX port
827   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
828 ])
829
830 have_nanosleep=false
831 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
832   AC_CHECK_LIB(rt,nanosleep,
833     [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
834     [AC_CHECK_LIB(posix4,nanosleep,
835         [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
836   )
837 ])
838 if ${have_nanosleep}; then
839   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
840 fi
841 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
842
843 dnl Check for misc headers
844 AC_MSG_CHECKING(for strncasecmp in strings.h)
845 AC_EGREP_HEADER(strncasecmp,strings.h,[
846   AC_MSG_RESULT(yes)
847   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
848             Define if <strings.h> defines strncasecmp.)],[
849   AC_MSG_RESULT(no)])
850
851 dnl Check for headers
852 AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
853 AC_CHECK_HEADERS(fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h sys/mount.h)
854 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
855 AC_CHECK_HEADERS([net/if.h], [], [],
856   [
857     #include <sys/types.h>
858     #include <sys/socket.h>
859   ])
860 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
861 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
862 AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h])
863 AC_CHECK_HEADERS(syslog.h)
864 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
865
866 AC_HEADER_TIME
867
868 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
869 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
870 AC_CHECK_TYPE(ssize_t,, [
871   AC_DEFINE(ssize_t, int)
872 ])
873
874 dnl Check for poll
875 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
876 if test ${SYS} != "mingw32"
877 then
878     AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
879 fi
880 ])
881
882 dnl Check for dirent
883 need_dirent=false
884 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
885 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
886
887 dnl Mac OS X and other OSes don't have declaration for nanosleep
888 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
889 AC_MSG_CHECKING(for nanosleep in time.h)
890 AC_EGREP_HEADER(nanosleep,time.h,[
891   AC_MSG_RESULT(yes)
892   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
893             Define if <time.h> defines nanosleep.)
894 ],[
895   AC_MSG_RESULT(no)
896 ])
897 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
898
899 dnl Make sure we have timespecs
900 AC_MSG_CHECKING(for timespec in sys/time.h)
901 AC_EGREP_HEADER(timespec,sys/time.h,[
902   AC_MSG_RESULT(yes)
903   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
904             Define if <sys/time.h> defines struct timespec.)
905 ],[
906   AC_MSG_RESULT(no)
907 ])
908
909 dnl Check for threads library
910 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
911 AC_CHECK_HEADERS(pthread.h)
912 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
913
914 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
915 dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
916 AC_ARG_VAR(PKG_CONFIG_PATH,
917            [Paths where to find .pc not at the default location])
918 PKG_PROG_PKG_CONFIG()
919
920 dnl
921 dnl Check for zlib.h and -lz along with system -lminizip if available
922 dnl 
923 AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
924 AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
925 if test "${have_zlib}" = "yes"
926 then
927   VLC_ADD_LIBS([access_http gme mp4 skins2 sap mkv unzip zip],[-lz])
928   PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
929     AC_CHECK_HEADERS([unzip.h], [ 
930       have_minizip=yes
931       MINIZIP_LIBS="-lminizip -lz"
932     ], [
933       have_minizip=no
934       MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
935       MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
936     ])
937   ])
938   VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
939   VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
940   VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
941   VLC_ADD_PLUGIN([unzip])
942   VLC_ADD_PLUGIN([zip])
943 fi
944 AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
945
946
947 dnl Check for hal
948 AC_ARG_ENABLE(hal,
949   [  --enable-hal            Linux HAL services discovery (default enabled)])
950
951 if test "${enable_hal}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
952 then
953   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
954     [
955       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
956       VLC_ADD_PLUGIN([hal])
957       VLC_ADD_PLUGIN([probe_hal])
958       VLC_ADD_LIBS([libvlccore hal probe_hal],[$HAL_LIBS])
959       VLC_ADD_CFLAGS([libvlccore hal probe_hal],[$HAL_CFLAGS])],
960     [AC_MSG_WARN([libhal >= 0.5.0 was not found. Install libhal-dev ?])]
961   )
962 fi
963
964 dnl Check for mtp
965 AC_ARG_ENABLE(mtp,
966   [  --enable-mtp            MTP devices support (default enabled)])
967
968 if test "${enable_mtp}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
969 then
970   PKG_CHECK_MODULES(MTP, libmtp >= 0.3.0,
971     [ VLC_ADD_PLUGIN([mtp])
972       VLC_ADD_PLUGIN([access_mtp])
973       VLC_ADD_LIBS([mtp access_mtp],[$MTP_LIBS])
974       VLC_ADD_CFLAGS([mtp access_mtp],[$MTP_CFLAGS])],
975        [AC_MSG_WARN(MTP library not found)]
976   )
977 fi
978
979 dnl Check for dbus
980 AC_ARG_ENABLE(dbus,
981   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
982 case "${SYS}" in
983     linux*|*bsd*)
984 if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
985 then
986   dnl api stable dbus
987   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
988     [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
989       VLC_ADD_LIBS([screensaver libvlccore],[$DBUS_LIBS])
990       VLC_ADD_CFLAGS([screensaver libvlccore],[$DBUS_CFLAGS])
991       dnl Check for dbus control interface
992         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
993         if test "${enable_dbus_control}" != "no"
994         then
995           VLC_ADD_PLUGIN([dbus])
996           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
997           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
998         fi
999       dnl Check for Telepathy
1000         AC_ARG_ENABLE(telepathy,
1001           AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
1002         if test "${enable_telepathy}" != "no"; then
1003           VLC_ADD_PLUGIN([telepathy])
1004           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
1005           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
1006         fi
1007         dnl Power Management Inhibiter
1008         VLC_ADD_PLUGIN([inhibit])
1009         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
1010         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
1011     ],
1012     [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
1013   )
1014 fi
1015 ;;
1016 esac
1017
1018 dnl Build the gtk_main plugins?
1019 NEED_GTK_MAIN=no
1020 NEED_GNOME_MAIN=no
1021 NEED_GTK2_MAIN=no
1022 NEED_GNOME2_MAIN=no
1023
1024 dnl build the qte plugin ?
1025 NEED_QTE_MAIN=no
1026
1027 dnl Check for ntohl, etc.
1028 AC_CACHE_CHECK([for ntohl in sys/param.h],
1029     [ac_cv_c_ntohl_sys_param_h],
1030     [CFLAGS="${CFLAGS_save} -Wall -Werror"
1031      AC_TRY_COMPILE([#include <sys/param.h>],
1032         [int meuh; ntohl(meuh);],
1033         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
1034 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
1035     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
1036 fi
1037 CFLAGS="${CFLAGS_save}"
1038
1039 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
1040 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
1041
1042 dnl Check for various optimization flags
1043 AC_CACHE_CHECK([if \$CC accepts -Os],
1044     [ac_cv_c_os],
1045     [CFLAGS="${CFLAGS_save} -Os"
1046      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
1047 if test "${ac_cv_c_os}" != "no"; then
1048     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
1049 else
1050     AC_CACHE_CHECK([if \$CC accepts -O],
1051         [ac_cv_c_o],
1052         [CFLAGS="${CFLAGS_save} -O"
1053          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1054     if test "${ac_cv_c_o}" != "no"; then
1055         if test "${ac_cv_c_o3}" = "no"; then
1056             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
1057         fi
1058     fi
1059 fi
1060
1061 AC_CACHE_CHECK([if \$CC accepts -O4],
1062     [ac_cv_c_o4],
1063     [CFLAGS="${CFLAGS_save} -O4"
1064      AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
1065 if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
1066     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
1067 else
1068     AC_CACHE_CHECK([if \$CC accepts -O3],
1069         [ac_cv_c_o3],
1070         [CFLAGS="${CFLAGS_save} -O3"
1071          AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1072     if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1073         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1074     else
1075         AC_CACHE_CHECK([if \$CC accepts -O2],
1076             [ac_cv_c_o2],
1077             [CFLAGS="${CFLAGS_save} -O2"
1078              AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1079         if test "${ac_cv_c_o2}" != "no"; then
1080             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1081         else
1082             AC_CACHE_CHECK([if \$CC accepts -O],
1083                 [ac_cv_c_o],
1084                 [CFLAGS="${CFLAGS_save} -O"
1085                  AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1086             if test "${ac_cv_c_o}" != "no"; then
1087                 CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1088             fi
1089         fi
1090     fi
1091 fi
1092
1093 AC_CACHE_CHECK([if \$CC accepts -O0],
1094     [ac_cv_c_o0],
1095     [CFLAGS="${CFLAGS_save} -O0"
1096      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1097 if test "${ac_cv_c_o0}" != "no"; then
1098     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1099 fi
1100
1101 dnl Check for -ffast-math
1102 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1103     [ac_cv_c_fast_math],
1104     [CFLAGS="${CFLAGS_save} -ffast-math"
1105      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1106 if test "${ac_cv_c_fast_math}" != "no"; then
1107     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1108 fi
1109
1110 dnl Check for -funroll-loops
1111 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1112 if test "${SYS}" != "beos"
1113 then
1114   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1115       [ac_cv_c_unroll_loops],
1116       [CFLAGS="${CFLAGS_save} -funroll-loops"
1117        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1118   if test "${ac_cv_c_unroll_loops}" != "no"; then
1119       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1120   fi
1121 fi
1122
1123 dnl Check for -fomit-frame-pointer
1124 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1125     [ac_cv_c_omit_frame_pointer],
1126     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1127      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1128 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1129  if test "${SYS}" != "darwin"; then
1130     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1131  else
1132     dnl On darwin we explicitely disable it.
1133     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fno-omit-frame-pointer"
1134  fi
1135 fi
1136
1137 dnl Check for Darwin plugin linking flags
1138 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1139     [ac_cv_ld_darwin],
1140     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1141      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1142 if test "${ac_cv_ld_darwin}" != "no"; then
1143     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1144 fi
1145
1146 dnl Checks for __attribute__(aligned()) directive
1147 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1148     [ac_cv_c_attribute_aligned],
1149     [ac_cv_c_attribute_aligned=0
1150         CFLAGS="${CFLAGS_save} -Werror"
1151     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1152         AC_TRY_COMPILE([],
1153         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1154         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1155     done
1156         CFLAGS="${CFLAGS_save}"])
1157 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1158     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1159         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1160 fi
1161
1162 dnl Check for __attribute__((packed))
1163 AC_CACHE_CHECK([for __attribute__((packed))],
1164   [ac_cv_c_attribute_packed],
1165   [ac_cv_c_attribute_packed=no
1166    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1167                     [ac_cv_c_attribute_packed=yes])])
1168 if test "${ac_cv_c_attribute_packed}" != "no"; then
1169   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1170 fi
1171
1172 dnl
1173 dnl  Check the CPU
1174 dnl
1175 case "${host_cpu}" in
1176   "")
1177     ARCH=unknown
1178     ;;
1179   *)
1180     ARCH="${host_cpu}"
1181     ;;
1182 esac
1183
1184 dnl Check for backtrace() support
1185 AC_CHECK_HEADERS(execinfo.h)
1186 AC_CHECK_FUNCS(backtrace)
1187
1188 dnl
1189 dnl  Enable profiling
1190 dnl
1191 AC_ARG_ENABLE(gprof,
1192 [  --enable-gprof          gprof profiling (default disabled)])
1193 AC_ARG_ENABLE(cprof,
1194 [  --enable-cprof          cprof profiling (default disabled)])
1195 test "${enable_gprof}" != "yes" && enable_gprof="no"
1196 test "${enable_cprof}" != "yes" && enable_cprof="no"
1197
1198 dnl
1199 dnl  default modules
1200 dnl
1201 dnl Video filters:
1202 VLC_ADD_PLUGIN([deinterlace])
1203 VLC_ADD_PLUGIN([yuvp])
1204 VLC_ADD_PLUGIN([invert])
1205 VLC_ADD_PLUGIN([mirror])
1206 VLC_ADD_PLUGIN([adjust])
1207 VLC_ADD_PLUGIN([transform])
1208 VLC_ADD_PLUGIN([wave])
1209 VLC_ADD_PLUGIN([ripple])
1210 VLC_ADD_PLUGIN([psychedelic])
1211 VLC_ADD_PLUGIN([gradient])
1212 VLC_ADD_PLUGIN([motionblur])
1213 VLC_ADD_PLUGIN([rv32])
1214 VLC_ADD_PLUGIN([rotate])
1215 VLC_ADD_PLUGIN([noise])
1216 VLC_ADD_PLUGIN([grain])
1217 VLC_ADD_PLUGIN([extract])
1218 VLC_ADD_PLUGIN([sharpen])
1219 VLC_ADD_PLUGIN([croppadd])
1220 VLC_ADD_PLUGIN([canvas])
1221 VLC_ADD_PLUGIN([blendbench])
1222 VLC_ADD_PLUGIN([blend])
1223 VLC_ADD_PLUGIN([scale])
1224 VLC_ADD_PLUGIN([vmem])
1225 VLC_ADD_PLUGIN([logo])
1226 VLC_ADD_PLUGIN([magnify])
1227 VLC_ADD_PLUGIN([puzzle])
1228 VLC_ADD_PLUGIN([colorthres])
1229 VLC_ADD_PLUGIN([scene])
1230 VLC_ADD_PLUGIN([yuv])
1231
1232 ALIASES="${ALIASES} cvlc"
1233
1234 dnl
1235 dnl default modules that need g++
1236 dnl
1237 AC_LANG_PUSH(C++)
1238 VLC_ADD_PLUGIN([spatializer])
1239 AC_LANG_POP(C++)
1240
1241 if test "${SYS}" != "mingwce"; then
1242   VLC_ADD_PLUGIN([gestures])
1243   VLC_ADD_PLUGIN([rc])
1244   VLC_ADD_PLUGIN([hotkeys])
1245   VLC_ADD_PLUGIN([showintf])
1246   VLC_ADD_PLUGIN([marq])
1247   VLC_ADD_PLUGIN([podcast])
1248   VLC_ADD_PLUGIN([shout])
1249   VLC_ADD_PLUGIN([sap])
1250   VLC_ADD_PLUGIN([fake])
1251   VLC_ADD_PLUGIN([folder])
1252   VLC_ADD_PLUGIN([rss])
1253   VLC_ADD_PLUGIN([mosaic])
1254   VLC_ADD_PLUGIN([wall])
1255   VLC_ADD_PLUGIN([motiondetect])
1256   VLC_ADD_PLUGIN([clone])
1257   VLC_ADD_PLUGIN([crop])
1258   VLC_ADD_PLUGIN([erase])
1259   VLC_ADD_PLUGIN([bluescreen])
1260   VLC_ADD_PLUGIN([alphamask])
1261   VLC_ADD_PLUGIN([gaussianblur])
1262   VLC_ADD_PLUGIN([i420_yuy2])
1263   VLC_ADD_PLUGIN([i422_yuy2])
1264   VLC_ADD_PLUGIN([i420_ymga])
1265   VLC_ADD_PLUGIN([i422_i420])
1266   VLC_ADD_PLUGIN([yuy2_i422])
1267   VLC_ADD_PLUGIN([yuy2_i420])
1268   VLC_ADD_PLUGIN([chain])
1269   VLC_ADD_PLUGIN([aout_file])
1270   VLC_ADD_PLUGIN([linear_resampler])
1271   VLC_ADD_PLUGIN([bandlimited_resampler])
1272   VLC_ADD_PLUGIN([float32_mixer])
1273   VLC_ADD_PLUGIN([spdif_mixer])
1274   VLC_ADD_PLUGIN([simple_channel_mixer])
1275   VLC_ADD_PLUGIN([dolby_surround_decoder])
1276   VLC_ADD_PLUGIN([headphone_channel_mixer])
1277   VLC_ADD_PLUGIN([normvol])
1278   VLC_ADD_PLUGIN([equalizer])
1279   VLC_ADD_PLUGIN([param_eq])
1280   VLC_ADD_PLUGIN([scaletempo])
1281   VLC_ADD_PLUGIN([converter_float])
1282   VLC_ADD_PLUGIN([a52tospdif])
1283   VLC_ADD_PLUGIN([dtstospdif])
1284   VLC_ADD_PLUGIN([audio_format])
1285   ALIASES="${ALIASES} rvlc"
1286 fi
1287
1288 if test "${SYS}" = "mingwce"; then
1289   VLC_ADD_PLUGIN([chain])
1290   VLC_ADD_PLUGIN([aout_file])
1291   VLC_ADD_PLUGIN([linear_resampler])
1292   VLC_ADD_PLUGIN([bandlimited_resampler])
1293   VLC_ADD_PLUGIN([float32_mixer])
1294   VLC_ADD_PLUGIN([spdif_mixer])
1295   VLC_ADD_PLUGIN([simple_channel_mixer])
1296   VLC_ADD_PLUGIN([headphone_channel_mixer])
1297   VLC_ADD_PLUGIN([normvol])
1298   VLC_ADD_PLUGIN([converter_float])
1299   VLC_ADD_PLUGIN([a52tospdif])
1300   VLC_ADD_PLUGIN([dtstospdif])
1301   VLC_ADD_PLUGIN([audio_format])
1302   VLC_ADD_PLUGIN([i420_yuy2])
1303   VLC_ADD_PLUGIN([i422_yuy2])
1304   VLC_ADD_PLUGIN([i420_ymga])
1305   VLC_ADD_PLUGIN([i422_i420])
1306   VLC_ADD_PLUGIN([yuy2_i422])
1307   VLC_ADD_PLUGIN([yuy2_i420])
1308 fi
1309
1310 dnl
1311 dnl Some plugins aren't useful on some platforms
1312 dnl
1313 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1314     VLC_ADD_PLUGIN([screensaver])
1315     VLC_ADD_PLUGIN([motion])
1316     VLC_ADD_PLUGIN([dynamicoverlay])
1317     VLC_ADD_PLUGIN([signals])
1318 elif test "${SYS}" != "mingwce"; then
1319     VLC_ADD_PLUGIN([ntservice])
1320     VLC_ADD_PLUGIN([access_smb])
1321     VLC_ADD_PLUGIN([dmo])
1322     VLC_ADD_PLUGIN([msn])
1323     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1324     VLC_ADD_PLUGIN([globalhotkeys])
1325 else
1326     VLC_ADD_PLUGIN([win32text])
1327 fi
1328 if test "${SYS}" = "darwin"; then
1329     VLC_ADD_PLUGIN([quartztext])
1330     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1331 fi
1332
1333 dnl
1334 dnl  Accelerated modules
1335 dnl
1336 AC_ARG_WITH(,[])
1337 AC_ARG_WITH(,[Optimization options:])
1338
1339 dnl  Check for fully working MMX intrinsics
1340 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1341 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1342 AC_ARG_ENABLE(mmx,
1343 [  --disable-mmx           disable MMX optimizations (default auto)],,[
1344   case "${host_cpu}" in
1345     i?86|x86_64)
1346       enable_mmx="yes"
1347       ;;
1348     *)
1349       enable_mmx="no"
1350       ;;
1351   esac
1352 ])
1353 AS_IF([test "${enable_mmx}" != "no"], [
1354   ARCH="${ARCH} mmx"
1355
1356   AC_CACHE_CHECK([if $CC groks MMX intrinsics],
1357     [ac_cv_c_mmx_intrinsics],
1358     [CFLAGS="${CFLAGS_save} -O -mmmx"
1359      AC_TRY_COMPILE([#include <mmintrin.h>
1360                      #include <stdint.h>
1361                      uint64_t frobzor;],
1362                     [__m64 a, b, c;
1363                      a = b = c = (__m64)frobzor;
1364                      a = _mm_slli_pi16(a, 3);
1365                      a = _mm_adds_pi16(a, b);
1366                      c = _mm_srli_pi16(c, 8);
1367                      c = _mm_slli_pi16(c, 3);
1368                      b = _mm_adds_pi16(b, c);
1369                      a = _mm_unpacklo_pi8(a, b);
1370                      frobzor = (uint64_t)a;],
1371                     [ac_cv_c_mmx_intrinsics=yes],
1372                     [ac_cv_c_mmx_intrinsics=no])])
1373   AS_IF([test "${ac_cv_c_mmx_intrinsics}" != "no"], [
1374     AC_DEFINE(HAVE_MMX_INTRINSICS, 1,
1375               [Define to 1 if MMX intrinsics are available.])
1376     VLC_ADD_CFLAGS([memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx],[-mmmx])
1377   ])
1378
1379   AC_CACHE_CHECK([if $CC groks MMX inline assembly],
1380     [ac_cv_mmx_inline],
1381     [CFLAGS="${CFLAGS_save}"
1382      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1383                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1384   AS_IF([test "${ac_cv_mmx_inline}" != "no"], [
1385     AC_DEFINE(CAN_COMPILE_MMX, 1,
1386               [Define to 1 inline MMX assembly is available.])
1387     VLC_ADD_PLUGIN([memcpymmx])
1388     VLC_ADD_PLUGIN([i420_rgb_mmx])
1389     VLC_ADD_PLUGIN([i420_yuy2_mmx])
1390     VLC_ADD_PLUGIN([i422_yuy2_mmx])
1391     VLC_ADD_PLUGIN([i420_ymga_mmx])
1392   ])
1393
1394   AC_CACHE_CHECK([if $CC groks MMX EXT inline assembly],
1395     [ac_cv_mmxext_inline],
1396     [CFLAGS="${CFLAGS_save}"
1397      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1398                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1399   AS_IF([test "${ac_cv_mmxext_inline}" != "no"], [
1400     AC_DEFINE(CAN_COMPILE_MMXEXT, 1,
1401               [Define to 1 if MMX EXT inline assembly is available.])
1402     VLC_ADD_PLUGIN([memcpymmxext])
1403   ])
1404 ])
1405
1406 dnl  Check for fully workin SSE2 intrinsics
1407 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1408 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1409 AC_ARG_ENABLE(sse,
1410 [  --disable-sse           disable SSE (1 and 2) optimizations (default auto)]
1411 ,, [
1412   case "${host_cpu}" in
1413     i686|x86_64)
1414       enable_sse=yes
1415       ;;
1416     *)
1417       enable_sse=no
1418       ;;
1419   esac
1420 ])
1421 AS_IF([test "${enable_sse}" != "no"], [
1422   ARCH="${ARCH} sse sse2"
1423
1424   AC_CACHE_CHECK([if $CC groks SSE2 intrinsics],
1425     [ac_cv_c_sse2_intrinsics],
1426     [CFLAGS="${CFLAGS_save} -O -msse2"
1427      AC_TRY_COMPILE([#include <emmintrin.h>
1428                      #include <stdint.h>
1429                      uint64_t frobzor;],
1430                     [__m128i a, b, c;
1431                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1432                      a = _mm_slli_epi16(a, 3);
1433                      a = _mm_adds_epi16(a, b);
1434                      c = _mm_srli_epi16(c, 8);
1435                      c = _mm_slli_epi16(c, 3);
1436                      b = _mm_adds_epi16(b, c);
1437                      a = _mm_unpacklo_epi8(a, b);
1438                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1439                     [ac_cv_c_sse2_intrinsics=yes],
1440                     [ac_cv_c_sse2_intrinsics=no])])
1441   AS_IF([test "${ac_cv_c_sse2_intrinsics}" != "no"], [
1442     AC_DEFINE(HAVE_SSE2_INTRINSICS, 1,
1443               [Define to 1 if SSE2 intrinsics are available.])
1444     VLC_ADD_CFLAGS([i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2],[-msse2])
1445   ])
1446
1447   AC_CACHE_CHECK([if $CC groks SSE inline assembly],
1448     [ac_cv_sse_inline],
1449     [CFLAGS="${CFLAGS_save}"
1450      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1451                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1452   AS_IF([test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"], [
1453     AC_DEFINE(CAN_COMPILE_SSE, 1,
1454               [Define to 1 if SSE inline assembly is available.])
1455   ])
1456
1457   AC_CACHE_CHECK([if $CC groks SSE2 inline assembly],
1458     [ac_cv_sse2_inline],
1459     [CFLAGS="${CFLAGS_save}"
1460      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1461                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1462   AS_IF([test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"], [
1463     AC_DEFINE(CAN_COMPILE_SSE2, 1,
1464               [Define to 1 if SSE2 inline assembly is available.])
1465     VLC_ADD_PLUGIN([i420_rgb_sse2])
1466     VLC_ADD_PLUGIN([i420_yuy2_sse2])
1467     VLC_ADD_PLUGIN([i422_yuy2_sse2])
1468   ])
1469 ])
1470
1471 AC_CACHE_CHECK([if $CC groks 3D Now! inline assembly],
1472     [ac_cv_3dnow_inline],
1473     [CFLAGS="${CFLAGS_save}"
1474      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1475                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1476 AS_IF([test "${ac_cv_3dnow_inline}" != "no"], [
1477   AC_DEFINE(CAN_COMPILE_3DNOW, 1,
1478             [Define to 1 if 3D Now! inline assembly is available.])
1479   VLC_ADD_PLUGIN([memcpy3dn])
1480 ])
1481
1482 AC_ARG_ENABLE(altivec,
1483 [  --disable-altivec       disable AltiVec optimizations (default auto)],, [
1484   AS_IF([test "${host_cpu}" = "powerpc"],
1485         [enable_altivec=yes], [enable_altivec=no])
1486 ])
1487 AS_IF([test "${enable_altivec}" = "yes"], [
1488   ARCH="${ARCH} altivec";
1489   AC_CACHE_CHECK([if $CC groks AltiVec inline assembly],
1490     [ac_cv_altivec_inline],
1491     [CFLAGS="${CFLAGS_save}"
1492      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1493          ac_cv_altivec_inline="yes",
1494          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1495           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1496             [ac_cv_altivec_inline="-Wa,-m7400"],
1497             ac_cv_altivec_inline=no)
1498          ])])
1499   AS_IF([test "${ac_cv_altivec_inline}" != "no"], [
1500     AC_DEFINE(CAN_COMPILE_ALTIVEC, 1,
1501               [Define to 1 if AltiVec inline assembly is available.])
1502     AS_IF([test "${ac_cv_altivec_inline}" != "yes"], [
1503       VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1504       VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1505       VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1506       VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1507       VLC_ADD_CFLAGS([libvlccore],[${ac_cv_altivec_inline}])
1508     ])
1509     VLC_ADD_PLUGIN([memcpyaltivec])
1510     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1511   ])
1512
1513 dnl The AltiVec C extensions
1514 dnl
1515 dnl There are several possible cases:
1516 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1517 dnl                      need <altivec.h>
1518 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1519 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1520 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1521 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1522 dnl - Others: test should fail
1523   AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1524   [ac_cv_c_altivec],
1525   [# OS X/PPC test (gcc 4.x)
1526    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1527    AC_TRY_COMPILE([vector unsigned char foo;],
1528      [vec_ld(0, (unsigned char *)0);],
1529      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1530      [# OS X/PPC test (gcc 3.x)
1531       CFLAGS="${CFLAGS_save} -faltivec"
1532       AC_TRY_COMPILE([vector unsigned char foo;],
1533         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1534         [ac_cv_c_altivec="-faltivec"],
1535         dnl Below this are the Linux tests
1536         [# Linux/PPC test (gcc 4.x)
1537          CFLAGS="${CFLAGS_save} -maltivec"
1538          AC_TRY_COMPILE([#include <altivec.h>],
1539            [vec_ld(0, (unsigned char *)0);],
1540            [ac_cv_c_altivec="-maltivec"],
1541            [# Linux/PPC test (gcc 3.3)
1542             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1543             AC_TRY_COMPILE([#include <altivec.h>],
1544               [vec_ld(0, (unsigned char *)0);],
1545               [ac_cv_c_altivec=""
1546                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1547               [# Linux/PPC test (gcc 3.3)
1548                CFLAGS="${CFLAGS_save} -fvec"
1549                AC_TRY_COMPILE([#include <altivec.h>],
1550                  [vec_ld(0, (unsigned char *)0);],
1551                  [ac_cv_c_altivec="-fvec"],
1552                  [ac_cv_c_altivec=no])
1553               ])
1554            ])
1555         ])
1556      ])
1557    CFLAGS="${CFLAGS_save}"
1558   ])
1559   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1560     CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1561   ])
1562
1563   AC_CHECK_HEADERS(altivec.h)
1564   CPPFLAGS="${CPPFLAGS_save}"
1565
1566   AS_IF([test "${ac_cv_c_altivec}" != "no"], [
1567     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1,
1568               [Define to 1 if C AltiVec extensions are available.])
1569     VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
1570     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1571     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1572     VLC_ADD_PLUGIN([memcpyaltivec])
1573     VLC_ADD_PLUGIN([i420_yuy2_altivec])
1574   ])
1575
1576   AC_CACHE_CHECK([if linker needs -framework vecLib],
1577     [ac_cv_ld_altivec],
1578     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1579      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1580      LDFLAGS="${LDFLAGS_save}"
1581     ])
1582   AS_IF([test "${ac_cv_ld_altivec}" != "no"], [
1583     VLC_ADD_LDFLAGS([libvlccore idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1584   ])
1585 ])
1586
1587 dnl
1588 dnl  Special arch tuning
1589 dnl
1590 AC_ARG_WITH(tuning,
1591 [  --with-tuning=ARCH      enable special tuning for an architecture
1592                           (default Pentium 2 on IA-32 and G4 on PPC)])
1593 if test -n "${with_tuning}"; then
1594     if test "${with_tuning}" != "no"; then
1595         CFLAGS_TUNING="-mtune=${with_tuning}"
1596     fi
1597 else
1598     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1599         CFLAGS_TUNING="-march=prescott -mtune=generic"
1600     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1601         CFLAGS_TUNING="-mtune=pentium2"
1602     elif test "${host_cpu}" = "x86_64"; then
1603         CFLAGS_TUNING="-mtune=athlon64"
1604     elif test "${host_cpu}" = "powerpc"; then
1605         CFLAGS_TUNING="-mtune=G4";
1606     fi
1607 fi
1608
1609 dnl NOTE: this can't be cached cleanly
1610 AS_IF([test "${CFLAGS_TUNING}"],
1611    [CFLAGS_save="${CFLAGS}"
1612     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1613
1614     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1615     AC_COMPILE_IFELSE([ ],
1616                       [tuning="yes"],
1617                       [CFLAGS_TUNING=""; tuning="no"
1618                        AS_IF([test "${with_tuning}"],
1619                              [AC_MSG_ERROR([requested tuning not supported])])])
1620
1621     AC_MSG_RESULT([$tuning])
1622     CFLAGS="${CFLAGS_save}"
1623 ])
1624
1625 dnl
1626 dnl  Memory usage
1627 dnl
1628 AC_ARG_ENABLE(optimize-memory,
1629 [  --enable-optimize-memory optimize memory usage over performance])
1630 if test "${enable_optimize_memory}" = "yes"; then
1631   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1632 fi
1633
1634 dnl
1635 dnl  Enable/disable optimizations
1636 dnl
1637 AC_ARG_ENABLE(optimizations,
1638 [  --disable-optimizations disable compiler optimizations (default enabled)])
1639 if test "${enable_optimizations}" != "no"; then
1640    if test "${enable_optimize_memory}" = "yes"; then
1641       enable_optimizations="size"
1642    else
1643       enable_optimizations="speed"
1644    fi
1645 fi
1646
1647 dnl
1648 dnl  Debugging mode
1649 dnl
1650 AC_ARG_ENABLE(debug,
1651 [  --enable-debug          debug mode (default disabled)])
1652 test "${enable_debug}" != "yes" && enable_debug="no"
1653 AH_TEMPLATE(NDEBUG,
1654             [Define to 1 if debug code should NOT be compiled])
1655 AS_IF([test "x${enable_debug}" = "xno"], [
1656   AC_DEFINE(NDEBUG)
1657 ], [
1658   AC_CHECK_HEADERS([valgrind/valgrind.h])
1659 ])
1660
1661 dnl
1662 dnl Allow runing as root (usefull for people runing on embedded platforms)
1663 dnl
1664 AC_ARG_ENABLE(run-as-root,
1665 [  --enable-run-as-root    allow runing VLC as root (default disabled)])
1666 AS_IF([test "${enable_run_as_root}" = "yes"],[
1667     AC_DEFINE(ALLOW_RUN_AS_ROOT, 1,
1668               [Define to 1 to allow runing VLC as root (uid 0).])
1669 ])
1670
1671 dnl
1672 dnl  Test coverage
1673 dnl
1674 AC_ARG_ENABLE(coverage,
1675         [  --enable-coverage       build for test coverage (default disabled)],,
1676         [enable_coverage="no"])
1677 AS_IF([test "${enable_coverage}" != "no"], [
1678         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1679         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1680         LDFLAGS="-lgcov ${LDFLAGS}"
1681         dnl ugly...
1682         CFLAGS_save="${CFLAGS}"
1683         CXXFLAGS_save="${CXXFLAGS}"
1684         LDFLAGS_save="${LDFLAGS}"
1685 ])
1686
1687 dnl
1688 dnl  Enable release-specific flags
1689 dnl
1690 AC_ARG_ENABLE(release,
1691 [  --enable-release        activate extra optimizations (default disabled)])
1692 test "${enable_release}" != "yes" && enable_release="no"
1693
1694 dnl
1695 dnl Stream output
1696 dnl
1697 AC_ARG_ENABLE(sout,
1698   [  --enable-sout           Stream output modules (default enabled)])
1699 AS_IF([test "${enable_sout}" != "no"], [
1700   AC_DEFINE(ENABLE_SOUT, 1, [Define to 1 for stream output support.])
1701 ])
1702 AM_CONDITIONAL(ENABLE_SOUT, [test "${enable_sout}" != "no"])
1703
1704 dnl Check for libshout
1705 AC_ARG_ENABLE(shout,
1706   [  --enable-shout          libshout output plugin (default disabled)])
1707 if test "${enable_shout}" = "yes"; then
1708   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1709     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1710      VLC_ADD_PLUGIN([access_output_shout])
1711      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1712      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1713     [AC_MSG_WARN(libshout library not found)])
1714 fi
1715
1716 dnl Lua modules
1717 AC_ARG_ENABLE(lua,
1718   AS_HELP_STRING([--enable-lua],[lua playlist, metafetcher and interface
1719                   plugins (default enabled)]))
1720 if test "${enable_lua}" != "no"
1721 then
1722   PKG_CHECK_MODULES(LUA, lua5.1,
1723     [ have_lua=yes ],
1724     [
1725     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1726     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1727       [ have_lua=yes ],
1728       [
1729         have_lua=yes
1730         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h],
1731           [],
1732           [ have_lua=no ] )
1733         AC_CHECK_LIB(  lua5.1 , luaL_newstate,
1734           [LUA_LIBS="-llua5.1"],
1735           AC_CHECK_LIB( lua51 , luaL_newstate,
1736             [LUA_LIBS="-llua51"],
1737             AC_CHECK_LIB( lua , luaL_newstate,
1738               [LUA_LIBS="-llua"],
1739               [ have_lua=no
1740                 AC_MSG_WARN([lua >= 5.1 not found!])
1741               ])
1742           )
1743         )
1744       ])
1745     ])
1746   if test "x${have_lua}" = "xyes" ;  then
1747      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1748      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1749      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1750   fi
1751 fi
1752 AM_CONDITIONAL(BUILD_LUA, [test "${have_lua}" = "yes"])
1753
1754 dnl
1755 dnl HTTP daemon
1756 dnl
1757 AC_ARG_ENABLE(httpd,
1758   [  --enable-httpd          HTTP daemon (default enabled)])
1759 if test "${enable_httpd}" != "no"
1760 then
1761   VLC_ADD_PLUGIN([http])
1762   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1763 fi
1764 AM_CONDITIONAL(BUILD_HTTPD, [test "${enable_httpd}" != "no"])
1765
1766 dnl
1767 dnl libproxy support
1768 dnl
1769 AC_ARG_ENABLE(libproxy,
1770   [  --enable-libproxy       libproxy support (default auto)])
1771 AS_IF([test "${enable_libproxy}" != "no"], [
1772   PKG_CHECK_MODULES(LIBPROXY, libproxy-1.0, [
1773     AC_DEFINE(HAVE_LIBPROXY, 1, [Define if libproxy is available])
1774     VLC_ADD_CFLAGS([access_http],[$LIBPROXY_CFLAGS])
1775     VLC_ADD_LIBS([access_http],[$LIBPROXY_LIBS])
1776   ], [
1777     AS_IF([test "x${enable_libproxy}" != "x"], [
1778       AC_MSG_ERROR([libproxy could not be found on your system])
1779     ])
1780   ])
1781 ])
1782
1783 dnl
1784 dnl VideoLAN manager
1785 dnl
1786 AC_ARG_ENABLE(vlm,
1787   [  --enable-vlm            VideoLAN manager (default enabled)],,
1788   [enable_vlm="${enable_sout}"])
1789 AS_IF([test "${enable_vlm}" != "no"], [
1790   AS_IF([test "${enable_sout}" = "no"], [
1791     AC_MSG_ERROR([VLM requires the stream output. Do not use --disable-sout.])
1792   ])
1793   AC_DEFINE(ENABLE_VLM, 1, [Define if you want the VideoLAN manager support])
1794   VLC_ADD_PLUGIN([telnet])
1795 ])
1796 AM_CONDITIONAL([ENABLE_VLM], [test "${enable_vlm}" != "no"])
1797
1798 dnl
1799 dnl Growl notification plugin
1800 dnl
1801 AC_ARG_ENABLE(growl,
1802   [  --enable-growl          growl notification plugin (default disabled)],,
1803   [enable_growl=no])
1804 AS_IF([test "${enable_growl}" != "no"], [
1805     VLC_ADD_PLUGIN([growl_udp])
1806     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1807       VLC_ADD_PLUGIN([growl])
1808       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1809     ])
1810   ]
1811 )
1812
1813 dnl
1814 dnl Libnotify notification plugin
1815 dnl
1816
1817 AC_ARG_ENABLE(notify,
1818   [  --enable-notify         libnotify notification plugin (default enabled)])
1819 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1820     PKG_CHECK_MODULES(NOTIFY, libnotify,
1821       [
1822         VLC_ADD_PLUGIN([notify])
1823         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1824         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1825       ],[
1826     AS_IF([test "${enable_notify}" = "yes"],[
1827         AC_MSG_WARN( libnotify not found) ])
1828       ])
1829   ])
1830
1831 dnl
1832 dnl Audioscrobbler plugin
1833 dnl
1834
1835 AC_ARG_ENABLE(audioscrobbler,
1836   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1837 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1838         VLC_ADD_PLUGIN([audioscrobbler])
1839   ])
1840
1841 dnl
1842 dnl Taglibplugin
1843 dnl
1844 AC_ARG_ENABLE(taglib,
1845   [  --disable-taglib        Taglib support (default enabled) ])
1846   AS_IF([test "${enable_taglib}" != "no"],[
1847     PKG_CHECK_MODULES(TAGLIB, taglib >= 1.5,
1848       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1849         VLC_ADD_PLUGIN([taglib])
1850         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1851        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1852       [AC_MSG_WARN(TagLib library not found)])
1853   ])
1854
1855
1856 dnl
1857 dnl  Input plugins
1858 dnl
1859
1860 AC_ARG_WITH(,[Input plugins:])
1861
1862 dnl  live555 input
1863 dnl
1864 if test "${enable_livedotcom}"
1865 then
1866   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1867 fi
1868 if test "${enable_livedotcom}" = "no"
1869 then
1870   enable_live555="no"
1871 fi
1872
1873 AC_ARG_ENABLE(live555,
1874 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1875 if test "${enable_live555}" != "no"; then
1876   AC_ARG_WITH(live555-tree,
1877     [    --with-live555-tree=PATH live.com tree for static linking])
1878
1879   dnl
1880   dnl test for --with-live555-tree
1881   dnl
1882   if test "${with_livedotcom_tree}"
1883   then
1884     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1885   with_live555_tree="${with_livedotcom_tree}"
1886   fi
1887
1888   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1889     AC_LANG_PUSH(C++)
1890     CPPFLAGS_save="${CPPFLAGS}"
1891     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1892     if test "${SYS}" = "solaris"; then
1893       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1894     fi
1895     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1896
1897     AC_CHECK_HEADERS(liveMedia_version.hh, [
1898       AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1899       AC_EGREP_CPP(yes,
1900         [#include <liveMedia_version.hh>
1901          #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1902          #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1903          yes
1904          #endif
1905          #endif],
1906         [AC_MSG_RESULT([no])
1907          AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1908 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1909       ],[
1910          AC_MSG_RESULT([yes])
1911          ])
1912     ])
1913      other_libs="-lgroupsock -lBasicUsageEnvironment -lUsageEnvironment"
1914      other_libs_pic="-lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic"
1915       if test "${SYS}" = "mingw32"; then
1916         # add ws2_32 for closesocket, select, recv
1917         other_libs="$other_libs -lws2_32"
1918       fi
1919     dnl We need to check for pic because live555 don't provide shared libs
1920     dnl and we want to build a plugins so we need -fPIC on some arch.
1921     AC_CHECK_HEADERS(liveMedia.hh, [
1922       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1923         AC_CHECK_LIB(liveMedia_pic, main, [
1924           VLC_ADD_PLUGIN([live555])
1925          VLC_ADD_LIBS([live555], [-lliveMedia_pic ${other_libs_pic}])
1926          ],[
1927         AC_CHECK_LIB(liveMedia, main, [
1928           VLC_ADD_PLUGIN([live555])
1929           VLC_ADD_LIBS([live555], [-lliveMedia ${other_libs}])
1930         ],[],[${other_libs}]) ],[${other_libs_pic}])
1931     ],[
1932        AC_MSG_WARN([The development files for liveMedia (live555) can't be found])
1933     ])
1934     CPPFLAGS="${CPPFLAGS_save}"
1935     AC_LANG_POP(C++)
1936   else
1937     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1938     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1939     if test -z "${real_live555_tree}"; then
1940       dnl  The given directory can't be found
1941       AC_MSG_RESULT(no)
1942       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1943     fi
1944     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1945       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1946
1947       AC_CHECK_HEADERS(${real_live555_tree}/liveMedia/include/liveMedia_version.hh,[
1948         AC_MSG_CHECKING(for liveMedia version >= 1214895600 )
1949         AC_EGREP_CPP(yes,
1950           [#include "${real_live555_tree}/liveMedia/include/liveMedia_version.hh"
1951            #ifdef LIVEMEDIA_LIBRARY_VERSION_INT
1952            #if LIVEMEDIA_LIBRARY_VERSION_INT < 1214895600
1953            yes
1954            #endif
1955            #endif],
1956           [AC_MSG_RESULT([no])
1957            AC_MSG_ERROR([Your version of liveMedia is too old: you may get a more recent one from http://www.live555.com/liveMedia.
1958 lternatively you can use --disable-live555 to disable the liveMedia plugin.])
1959         ],[
1960            AC_MSG_RESULT([yes])
1961            ])
1962       ])
1963
1964       VLC_ADD_PLUGIN([live555])
1965
1966       if test "${SYS}" = "mingw32"; then
1967         # add ws2_32 for closesocket, select, recv
1968         VLC_ADD_LIBS([live555],[-lws2_32])
1969       fi
1970
1971       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1972       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1973       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1974       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1975
1976       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1977       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1978       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1979       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1980       if test "${SYS}" = "solaris"; then
1981         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1982       fi
1983     else
1984       dnl  The given live555 wasn't built
1985         AC_MSG_RESULT(no)
1986       if test "${enable_live555}" = "yes"; then
1987         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1988       fi        
1989     fi
1990   fi
1991 fi
1992
1993 dnl
1994 dnl  special access module for dc1394 input
1995 dnl
1996 AC_ARG_ENABLE(dc1394,
1997   [  --enable-dc1394         dc1394 access module (default disabled)])
1998 if test "${enable_dc1394}" = "yes"
1999 then
2000   dnl
2001   dnl Check for libraw1394
2002   dnl
2003   PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 2.0.1,
2004     [
2005       VLC_ADD_LIBS([dc1394],[`${PKG_CONFIG} --libs libraw1394`])
2006       VLC_ADD_CPPFLAGS([dc1394],[`${PKG_CONFIG} --cflags libraw1394`])
2007     ],
2008     [AC_MSG_ERROR([Couldn't find libraw1394 >= 2.0.1, install libraw1394 development package])]
2009   )
2010
2011   dnl
2012   dnl Check for libdc1394
2013   dnl
2014   PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.2,
2015     [
2016       VLC_ADD_PLUGIN([dc1394])
2017       VLC_ADD_LIBS([dc1394],[`${PKG_CONFIG} --libs libdc1394-2`])
2018       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libdc1394-2`])
2019     ],
2020     [AC_MSG_ERROR([Couldn't find libdc1394 >= 2.0.2, install libdc1394 development package])]
2021   )
2022 fi
2023
2024 dnl
2025 dnl dv module: digital video module check for libraw1394
2026 dnl
2027 AC_ARG_ENABLE(dv,
2028 [  --enable-dv             dv input module (default disabled)])
2029 if test "${enable_dv}" = "yes"
2030 then
2031   dnl
2032   dnl Check for libraw1394
2033   dnl
2034   PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 2.0.1,
2035     [
2036       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libraw1394`])
2037       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libraw1394`])
2038     ],
2039     [AC_MSG_ERROR([Couldn't find libraw1394 >= 2.0.1, install libraw1394 development package])]
2040   )
2041
2042   dnl
2043   dnl Check for libavc1394
2044   dnl
2045   PKG_CHECK_MODULES(LIBAVC1394, libavc1394 >= 0.5.3,
2046     [
2047       VLC_ADD_PLUGIN([access_dv])
2048       VLC_ADD_LIBS([access_dv],[`${PKG_CONFIG} --libs libavc1394`])
2049       VLC_ADD_CPPFLAGS([access_dv],[`${PKG_CONFIG} --cflags libavc1394`])
2050     ],
2051     [AC_MSG_ERROR([Couldn't find libavc1394 >= 0.5.1, install libavc1394 development package])]
2052   )
2053 fi
2054
2055 dnl
2056 dnl dvdread module: check for libdvdread
2057 dnl
2058 AC_ARG_ENABLE(dvdread,
2059 [  --enable-dvdread        dvdread input module (default disabled)])
2060 if test "${enable_dvdread}" != "no"
2061 then
2062   AC_ARG_WITH(dvdread,
2063   [    --with-dvdread=PATH   libdvdread headers and libraries])
2064   AC_ARG_WITH(dvdread-tree,
2065   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2066
2067   dnl Temporary hack (yeah, sure ;)
2068   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2069       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2070   fi
2071
2072   if test -z "${with_dvdread}"
2073   then
2074     if test -z "${with_dvdread_tree}"
2075     then
2076       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2077         [ VLC_ADD_PLUGIN([dvdread])
2078           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2079         ],[
2080           AC_CHECK_HEADERS(libdvdread/dvd_reader.h,
2081             [ VLC_ADD_PLUGIN([dvdread])
2082               VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2083             ],[
2084               if test -n "${enable_dvdread}"
2085               then
2086               AC_MSG_ERROR([cannot find libdvdread headers])
2087              fi
2088            ])
2089         ])
2090     else
2091       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2092       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2093       if test -z "${real_dvdread_tree}"
2094       then
2095         dnl  The given directory can't be found
2096         AC_MSG_RESULT(no)
2097         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2098       fi
2099       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2100       then
2101         dnl  Use a custom libdvdread
2102         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2103         VLC_ADD_PLUGIN([dvdread])
2104         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2105         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2106       else
2107         dnl  The given libdvdread wasn't built
2108         AC_MSG_RESULT(no)
2109         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2110       fi
2111     fi
2112   else
2113     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2114     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2115     then
2116       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2117       AC_MSG_RESULT(yes)
2118       VLC_ADD_PLUGIN([dvdread])
2119       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2120       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2121     else
2122       dnl  No libdvdread could be found, sorry
2123       AC_MSG_RESULT(no)
2124       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2125     fi
2126   fi
2127 fi
2128
2129 dnl
2130 dnl  libdvdnav plugin
2131 dnl
2132 AC_ARG_ENABLE(dvdnav,
2133   [  --enable-dvdnav         dvdnav input module (default enabled)])
2134 if test "${enable_dvdnav}" != "no"
2135 then
2136   dnl Same hack than dvdread
2137   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2138       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2139   fi
2140
2141   DVDNAV_PATH="${PATH}"
2142   AC_ARG_WITH(dvdnav-config-path,
2143     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2144     [ if test "${with_dvdnav_config_path}" != "no"
2145       then
2146         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2147       fi ])
2148   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2149   if test "${DVDNAV_CONFIG}" != "no"
2150   then
2151     VLC_ADD_PLUGIN([dvdnav])
2152     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2153     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  Windows DirectShow access module
2159 dnl
2160 AC_ARG_ENABLE(dshow,
2161   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2162 if test "${enable_dshow}" != "no"
2163 then
2164   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2165   then
2166     AC_LANG_PUSH(C++)
2167       AC_CHECK_HEADERS(dshow.h,
2168       [ VLC_ADD_PLUGIN([dshow])
2169         VLC_ADD_CXXFLAGS([dshow],[])
2170         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2171     AC_LANG_POP(C++)
2172   fi
2173 fi
2174
2175 dnl
2176 dnl  Windows DirectShow BDA access module
2177 dnl
2178 AC_ARG_ENABLE(bda,
2179   AS_HELP_STRING([--enable-bda],[Win32 DirectShow BDA support (default
2180                   enabled on Win32)]))
2181 if test "${enable_bda}" != "no"
2182 then
2183   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2184   then
2185       AC_CHECK_HEADERS(dshow.h,
2186       [ VLC_ADD_PLUGIN([bda])
2187         VLC_ADD_CXXFLAGS([bda],[])
2188         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2189   fi
2190 fi
2191
2192
2193 dnl
2194 dnl  OpenCV wrapper and example filters
2195 dnl
2196 AC_ARG_ENABLE(opencv,
2197   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2198 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2199 then
2200   AC_ARG_WITH(opencv-tree,
2201   [    --with-opencv-tree=PATH opencv tree for linking])
2202     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2203     then
2204       test -z "${with_opencv_tree}" && AC_MSG_ERROR([You have to specify --with-opencv-tree])
2205       AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2206       if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2207         -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2208       then
2209         AC_MSG_RESULT(yes)
2210         VLC_ADD_PLUGIN([opencv_wrapper])
2211         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2212         VLC_ADD_CFLAGS([opencv_wrapper],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2213         AC_LANG_PUSH(C++)
2214         VLC_ADD_PLUGIN([opencv_example])
2215         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2216         VLC_ADD_CXXFLAGS([opencv_example],[-I${with_opencv_tree}/cv/include -I${with_opencv_tree}/cxcore/include -I${with_opencv_tree}/cvaux/include -I${with_opencv_tree}/otherlibs/highgui])
2217         AC_LANG_POP(C++)
2218           else
2219         dnl  No opencv could be found, sorry
2220         AC_MSG_RESULT(no)
2221         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2222           fi
2223     else
2224       PKG_CHECK_MODULES(OPENCV, opencv,
2225         [
2226           VLC_ADD_PLUGIN([opencv_example])
2227           VLC_ADD_PLUGIN([opencv_wrapper])
2228           VLC_ADD_LIBS([opencv_example opencv_wrapper],[${OPENCV_LIBS}])
2229           VLC_ADD_CFLAGS([opencv_wrapper],[${OPENCV_CFLAGS}])
2230           VLC_ADD_CXXFLAGS([opencv_example],[${OPENCV_CFLAGS}])
2231         ],
2232         [AC_MSG_ERROR([libopencv not found!])]
2233       )
2234     fi
2235 fi
2236
2237
2238 dnl
2239 dnl  libsmbclient plugin
2240 dnl
2241 AC_ARG_ENABLE(smb,
2242   [  --enable-smb            smb input module (default enabled)])
2243 if test "${enable_smb}" != "no"; then
2244   AC_CHECK_HEADERS(libsmbclient.h,
2245     [ VLC_ADD_PLUGIN([access_smb])
2246       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2247     [ if test -n "${enable_smb}"; then
2248         AC_MSG_ERROR([cannot find libsmbclient headers])
2249      fi ])
2250 fi
2251
2252 dnl
2253 dnl  libdvbpsi ts demux/mux
2254 dnl
2255 AC_ARG_ENABLE(dvbpsi,
2256   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2257 have_dvbpsi=no
2258 if test "${enable_dvbpsi}" != "no"
2259 then
2260   AC_ARG_WITH(dvbpsi,
2261   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2262   AC_ARG_WITH(dvbpsi,
2263   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2264   case "${with_dvbpsi}" in
2265   ""|yes)
2266     if test -z "${with_dvbpsi_tree}"
2267     then
2268       AC_CHECK_HEADERS(dvbpsi/dr.h,
2269         [ VLC_ADD_PLUGIN([ts])
2270           if test "${enable_sout}" != "no"; then
2271             VLC_ADD_PLUGIN([mux_ts])
2272           fi
2273           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi])
2274           have_dvbpsi=yes],
2275         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2276         [#if defined( HAVE_STDINT_H )
2277 #   include <stdint.h>
2278 #elif defined( HAVE_INTTYPES_H )
2279 #   include <inttypes.h>
2280 #endif
2281 #include <dvbpsi/dvbpsi.h>
2282 #include <dvbpsi/descriptor.h>
2283 #include <dvbpsi/pat.h>
2284 #include <dvbpsi/pmt.h>])
2285     else
2286       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2287       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2288       if test -z "${real_dvbpsi_tree}"
2289       then
2290         dnl  The given directory can't be found
2291         AC_MSG_RESULT(no)
2292         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2293       fi
2294       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2295       then
2296         dnl  Use a custom libdvbpsi
2297         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2298         VLC_ADD_PLUGIN([ts])
2299         if test "${enable_sout}" != "no"; then
2300           VLC_ADD_PLUGIN([mux_ts])
2301         fi
2302         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2303         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2304         have_dvbpsi=yes
2305       else
2306         dnl  The given libdvbpsi wasn't built
2307         AC_MSG_RESULT(no)
2308         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2309       fi
2310     fi
2311   ;;
2312   no)
2313     dnl  Compile without dvbpsi
2314   ;;
2315   *)
2316     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2317     if test -z "${with_dvbpsi}"
2318     then
2319       LDFLAGS_test=""
2320       CPPFLAGS_test=""
2321     else
2322       LDFLAGS_test="-L${with_dvbpsi}/lib"
2323       CPPFLAGS_test="-I${with_dvbpsi}/include"
2324     fi
2325     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2326     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2327       VLC_ADD_PLUGIN([ts])
2328       if test "${enable_sout}" != "no"; then
2329         VLC_ADD_PLUGIN([mux_ts])
2330       fi
2331       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2332       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2333       have_dvbpsi=yes
2334     ],[
2335       if test -n "${enable_dvbpsi}"
2336       then
2337         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
2338       fi
2339     ])
2340     CPPFLAGS="${CPPFLAGS_save}"
2341   ;;
2342   esac
2343   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2344     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2345   ], [], [${LIBS_ts}])
2346
2347 fi
2348
2349 dnl
2350 dnl  Video4Linux plugin
2351 dnl
2352 AC_ARG_ENABLE(v4l,
2353   [  --enable-v4l            Video4Linux input support (default disabled)])
2354 if test "${enable_v4l}" = "yes"
2355 then
2356   AC_ARG_WITH(v4l,
2357     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2358   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2359   then
2360     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2361   fi
2362
2363   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2364   AC_CHECK_HEADERS(linux/videodev.h, [
2365     VLC_ADD_PLUGIN([v4l])
2366   ],[])
2367   CPPFLAGS="${CPPFLAGS_save}"
2368 fi
2369
2370 dnl
2371 dnl  Video4Linux2 plugin
2372 dnl
2373 AC_ARG_ENABLE(v4l2,
2374   [  --enable-v4l2           Video4Linux2 input support (default enabled)])
2375 if test "${enable_v4l2}" != "no"
2376 then
2377   AC_ARG_WITH(v4l2,
2378     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2379   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2380   then
2381     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2382   fi
2383
2384   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2385   AC_CHECK_HEADERS(linux/videodev2.h, [
2386     VLC_ADD_PLUGIN([v4l2])
2387   ],[])
2388   CPPFLAGS="${CPPFLAGS_save}"
2389 fi
2390
2391 dnl
2392 dnl libv4l2 support for video4linux.
2393 dnl
2394 AC_ARG_ENABLE( libv4l2,
2395   [  --enable-libv4l2        Libv4l2 Video4Linux2 support (default enabled)])
2396 if test "${enable_libv4l2}" != "no" -a "${enable_v4l2}" != "no"
2397 then
2398     PKG_CHECK_MODULES( LIBV4L2, libv4l2, [
2399       VLC_ADD_LDFLAGS([v4l2],[${LIBV4L2_LIBS}])
2400       VLC_ADD_CFLAGS([v4l2],[${LIBV4L2_CFLAGS}])
2401       AC_DEFINE(HAVE_LIBV4L2, 1, Define if libv4l is available)],
2402       AC_MSG_WARN([LibV4L2 support disabled because libv4l2 development headers were not found])
2403     )
2404 fi
2405
2406 dnl
2407 dnl  special access module for Hauppauge PVR cards
2408 dnl
2409 AC_ARG_ENABLE(pvr,
2410   [  --enable-pvr            PVR cards access module (default disabled)])
2411 if test "${enable_pvr}" = "yes"
2412 then
2413   VLC_ADD_PLUGIN([pvr])
2414   AC_ARG_WITH(videodev2,
2415     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2416   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2417   then
2418     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2419   fi
2420
2421   AC_CACHE_CHECK([for new linux/videodev2.h],
2422       [ac_cv_new_linux_videodev2_h],
2423       [AC_TRY_COMPILE([
2424           #include <sys/types.h>
2425           #   ifdef VIDEODEV2_H_FILE
2426           #   include VIDEODEV2_H_FILE
2427           #   else
2428           #   include <linux/videodev2.h>
2429           #   endif
2430           ],
2431           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2432           ac_cv_new_linux_videodev2_h=yes,
2433           ac_cv_new_linux_videodev2_h=no)])
2434   if test "${ac_cv_new_linux_videodev2_h}" != "no"; then
2435     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2436   fi
2437 fi
2438
2439 dnl
2440 dnl  gnomeVFS access module
2441 dnl
2442 AC_ARG_ENABLE(gnomevfs,
2443   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2444 if test "${enable_gnomevfs}" = "yes"
2445 then
2446   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2447     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2448     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2449     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2450     VLC_ADD_PLUGIN([access_gnomevfs]),
2451     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2452 fi
2453
2454 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2455 AC_ARG_ENABLE(libcdio,
2456   [  --enable-libcdio        CD input and control library support (default enabled)])
2457
2458 AC_ARG_ENABLE(vcdinfo,
2459   [  --enable-libvcdinfo     VCD information library support (default enabled)])
2460
2461 have_libcdio=no
2462 have_libvcdinfo=no
2463 if test "${enable_libcdio}" != "no"
2464 then
2465   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2466      have_libcdio=yes
2467      AC_DEFINE(HAVE_LIBCDIO, 1,
2468      [Define if you have libcdio 0.78.2 or greater installed]),
2469      [AC_MSG_WARN(CD Reading and information library not found)])
2470
2471   if test "${enable_vcdinfo}" != "no"
2472   then
2473     PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2474        [have_libvcdinfo=yes
2475        AC_DEFINE(HAVE_VCDINFO, 1,
2476        [Define if you have libvcdinfo 0.7.22 or greater installed])],
2477        [AC_MSG_WARN(VCD information library not found)])
2478   fi
2479 fi
2480
2481 dnl
2482 dnl  VCDX and CDDAX modules
2483 dnl
2484 AC_ARG_ENABLE(cddax,
2485   AS_HELP_STRING([--enable-cddax],[audio CD plugin with CD Text and CD paranoia
2486                   via libcdio (default disabled)]))
2487
2488 AC_ARG_ENABLE(libcddb,
2489   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2490
2491 if test "${enable_cddax}" = "yes"
2492 then
2493   if test "$have_libcdio" = "yes"
2494   then
2495     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2496     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2497     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2498     VLC_ADD_PLUGIN([cddax])
2499     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2500     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2501     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2502   else
2503     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2504     HAVE_CDDAX=no
2505   fi
2506
2507   if test "$enable_libcddb" != "no"; then
2508     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2509       HAVE_LIBCDDB=yes
2510       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2511       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2512       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2513       ],
2514       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2515       HAVE_LIBCDDB=no])
2516   fi
2517
2518 fi
2519
2520 AC_ARG_ENABLE(vcdx,
2521   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2522
2523 if test "${enable_vcdx}" = "yes"
2524 then
2525   if test "${have_libvcdinfo}" = "yes"
2526   then
2527     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2528     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2529   else
2530     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2531     HAVE_VCDX=no
2532   fi
2533
2534   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2535    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2536     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2537     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2538     HAVE_VCDX=no])
2539
2540   if test "$have_libvcdinfo" = "yes"
2541   then
2542     AC_DEFINE(HAVE_VCDX, 1,
2543     [Define for the VCD plugin using libcdio/libvcdinfo])
2544     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2545     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2546     VLC_ADD_PLUGIN([vcdx])
2547   else
2548     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2549     HAVE_VCDX=no
2550   fi
2551 fi
2552
2553 dnl
2554 dnl  Built-in CD-DA and VCD module
2555 dnl
2556 AC_ARG_ENABLE(cdda,
2557   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2558
2559 AC_ARG_ENABLE(vcd,
2560   [  --enable-vcd            built-in VCD (default enabled)])
2561
2562 if test "${enable_vcd}" != "no"
2563 then
2564   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2565   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2566     AC_MSG_RESULT(yes)
2567     VLC_ADD_PLUGIN([vcd])
2568     VLC_ADD_PLUGIN([cdda])
2569   ],[
2570     AC_MSG_RESULT(no)
2571   ])
2572
2573   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2574   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2575     AC_MSG_RESULT(yes)
2576     VLC_ADD_PLUGIN([vcd])
2577     VLC_ADD_PLUGIN([cdda])
2578     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2579   ],[
2580     AC_MSG_RESULT(no)
2581   ])
2582
2583   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2584   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2585     AC_MSG_RESULT(yes)
2586     VLC_ADD_PLUGIN([vcd])
2587     VLC_ADD_PLUGIN([cdda])
2588     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2589   ],[
2590     AC_MSG_RESULT(no)
2591   ])
2592
2593   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2594   then
2595     VLC_ADD_PLUGIN([vcd])
2596     VLC_ADD_PLUGIN([cdda])
2597   fi
2598
2599   if test "${SYS}" = "darwin"
2600   then
2601     VLC_ADD_PLUGIN([vcd])
2602     VLC_ADD_PLUGIN([cdda])
2603     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2604     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2605   fi
2606
2607   if test "$enable_libcddb" != "no"; then
2608     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2609       HAVE_LIBCDDB=yes
2610       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2611       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2612       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2613       ],:
2614       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled)
2615       HAVE_LIBCDDB=no])
2616   fi
2617 fi
2618
2619 dnl
2620 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2621 dnl
2622 AC_ARG_ENABLE(dvb,
2623   [  --enable-dvb            DVB-S/T/C card support (default enabled)])
2624
2625 if test "${enable_dvb}" != "no"
2626 then
2627     AS_IF([test "${have_dvbpsi}" = "yes" ],[
2628     AC_ARG_WITH(dvb,
2629      [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2630      if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2631      then
2632        VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2633      fi
2634      CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2635      AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2636      VLC_ADD_PLUGIN([dvb])
2637      ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2638      CPPFLAGS="${CPPFLAGS_save}"
2639    ],[
2640      AC_MSG_WARN([the dvb access module requires libdvbpsi])
2641     ])
2642 fi
2643
2644 dnl
2645 dnl  Screen capture module
2646 dnl
2647 AC_ARG_ENABLE(screen,
2648   [  --enable-screen         Screen capture support (default enabled)])
2649 if test "${enable_screen}" != "no"; then
2650   if test "${SYS}" = "darwin"; then
2651     AC_CHECK_HEADERS(OpenGL/gl.h, [
2652       AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2653         VLC_ADD_PLUGIN([screen])
2654         VLC_ADD_LDFLAGS([screen],[-Wl,-framework,OpenGL,-framework,ApplicationServices])
2655       ])
2656     ])
2657   elif test "${SYS}" = "mingw32"; then
2658     VLC_ADD_PLUGIN([screen])
2659     VLC_ADD_LIBS([screen],[-lgdi32])
2660   elif test "${SYS}" = "mingwce"; then
2661     CPPFLAGS="${CPPFLAGS_save}"
2662   elif test "${SYS}" = "beos"; then
2663     VLC_ADD_PLUGIN([screen])
2664     VLC_ADD_CXXFLAGS([screen],[])
2665     VLC_ADD_LIBS([screen],[-lbe])
2666   fi
2667 fi
2668
2669 dnl
2670 dnl  ipv6 plugin - not for QNX yet
2671 dnl
2672 have_ipv6=no
2673 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2674   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2675 ])
2676
2677 AS_IF([test "${have_ipv6}" = "yes"], [
2678   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2679
2680
2681 AC_CHECK_FUNCS(inet_ntop,[
2682   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2683
2684
2685 dnl
2686 dnl  ogg demux plugin
2687 dnl
2688 AC_ARG_ENABLE(ogg,
2689   [  --enable-ogg            Ogg demux support (default enabled)])
2690 if test "${enable_ogg}" != "no"
2691 then
2692   AC_ARG_WITH(ogg-tree,
2693   [    --with-ogg-tree=PATH  ogg tree for static linking])
2694   if test -n "${with_ogg_tree}"
2695   then
2696     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2697     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2698     if test -z "${real_ogg_tree}"
2699     then
2700       dnl  The given directory can't be found
2701       AC_MSG_RESULT(no)
2702       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2703     fi
2704     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2705     then
2706       dnl  Use a custom ogg
2707       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2708       VLC_ADD_PLUGIN([ogg])
2709       if test "${enable_sout}" != "no"; then
2710         VLC_ADD_PLUGIN([mux_ogg])
2711       fi
2712       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2713       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2714     else
2715       dnl  The given ogg wasn't built
2716       AC_MSG_RESULT(no)
2717       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2718     fi
2719   else
2720     AC_CHECK_HEADERS(ogg/ogg.h, [
2721       AC_CHECK_LIB( ogg, oggpack_read, [
2722         VLC_ADD_PLUGIN([ogg])
2723         if test "${enable_sout}" != "no"; then
2724           VLC_ADD_PLUGIN([mux_ogg])
2725         fi
2726         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2727      ],[])
2728   fi
2729 fi
2730
2731 dnl
2732 dnl  matroska demux plugin
2733 dnl
2734 AC_ARG_ENABLE(mkv,
2735   [  --enable-mkv            Matroska demux support (default enabled)])
2736 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2737   AC_LANG_PUSH(C++)
2738   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2739     AC_MSG_CHECKING(for libebml version >= 0.7.7)
2740     AC_EGREP_CPP(yes,
2741       [#include <ebml/EbmlVersion.h>
2742        #ifdef LIBEBML_VERSION
2743        #if LIBEBML_VERSION >= 0x000706
2744        yes
2745        #endif
2746        #endif],
2747       [AC_MSG_RESULT([yes])
2748         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2749           AC_MSG_CHECKING(for libmatroska version >= 0.8.0)
2750           AC_EGREP_CPP(yes,
2751             [#include <matroska/KaxVersion.h>
2752              #ifdef LIBMATROSKA_VERSION
2753              #if LIBMATROSKA_VERSION >= 0x000705
2754              yes
2755              #endif
2756              #endif],
2757             [AC_MSG_RESULT([yes])
2758               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2759               VLC_ADD_CXXFLAGS([mkv],[])
2760               if test "${SYS}" = "darwin"; then
2761                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2762               fi
2763               AC_CHECK_LIB(ebml_pic, main, [
2764                 VLC_ADD_PLUGIN([mkv])
2765                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2766               ],
2767                 AC_CHECK_LIB(ebml, main, [
2768                   VLC_ADD_PLUGIN([mkv])
2769                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2770                 ])
2771               )
2772             ],
2773             [AC_MSG_RESULT([no])
2774               AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2775           ])
2776         ])
2777       ],
2778       [AC_MSG_RESULT([no])
2779         AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2780     ])
2781   ])
2782   AC_LANG_POP(C++)
2783 fi
2784
2785 dnl
2786 dnl  modplug demux plugin
2787 dnl
2788 AC_ARG_ENABLE(mod,
2789   [  --enable-mod            Mod demux support (default enabled)])
2790 if test "${enable_mod}" != "no"
2791 then
2792   AC_ARG_WITH(mod-tree,
2793   [    --with-mod-tree=PATH mod tree for static linking])
2794   if test -n "${with_mod_tree}"
2795   then
2796     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2797     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2798     if test -z "${real_mod_tree}"
2799     then
2800       dnl  The given directory can't be found
2801       AC_MSG_RESULT(no)
2802       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2803     fi
2804     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2805     then
2806       dnl  Use a custom mod
2807       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2808       VLC_ADD_PLUGIN([mod])
2809       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2810       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2811     else
2812       dnl  The given mod wasn't built
2813       AC_MSG_RESULT(no)
2814       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2815     fi
2816   else
2817     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2818       VLC_ADD_PLUGIN([mod])
2819       VLC_ADD_CXXFLAGS([mod],[])
2820       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2821   fi
2822 fi
2823
2824 dnl
2825 dnl  mpc demux plugin
2826 dnl
2827 AC_ARG_ENABLE(mpc,
2828   [  --enable-mpc            Mpc demux support (default enabled)])
2829 if test "${enable_mpc}" != "no"
2830 then
2831   AC_CHECK_HEADERS([mpc/mpcdec.h], [
2832     VLC_ADD_PLUGIN([mpc])
2833     VLC_ADD_LIBS([mpc],[-lmpcdec])],
2834     [AC_CHECK_HEADERS([mpcdec/mpcdec.h], [
2835     VLC_ADD_PLUGIN([mpc])
2836     VLC_ADD_LIBS([mpc],[-lmpcdec])])])
2837 fi
2838
2839 dnl
2840 dnl  game music emu demux plugin
2841 dnl
2842 AC_ARG_ENABLE(gme,
2843   [  --enable-gme            Game Music Emu demux support (default enabled)])
2844 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2845 then
2846   AC_LANG_PUSH(C++)
2847   AC_ARG_WITH(gme-tree,
2848   [    --with-gme-tree=PATH gme tree for static linking])
2849   if test -n "${with_gme_tree}"
2850   then
2851     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2852     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2853     if test -z "${real_gme_tree}"
2854     then
2855       dnl  The given directory can't be found
2856       AC_MSG_RESULT(no)
2857       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2858     fi
2859     if test -f "${real_gme_tree}/gme/libgme.a"
2860     then
2861       dnl  Use a custom gme
2862       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2863       VLC_ADD_PLUGIN([gme])
2864       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2865       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2866     else
2867       dnl  The given gme wasn't built
2868       AC_MSG_RESULT(no)
2869       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2870     fi
2871   else
2872       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2873   fi
2874   AC_LANG_POP(C++)
2875 fi
2876
2877 dnl
2878 dnl  Codec plugins
2879 dnl
2880
2881 AC_ARG_WITH(,[Codec plugins:])
2882
2883 dnl
2884 dnl wmafixed plugin
2885 dnl
2886 AC_ARG_ENABLE(wma-fixed,
2887   [  --enable-wma-fixed      libwma-fixed module (default disabled)])
2888 if test "${enable_wma_fixed}" = "yes"
2889 then
2890   VLC_ADD_PLUGIN([wma_fixed])
2891 fi
2892
2893 dnl
2894 dnl shine fixed point mp3 encoder
2895 dnl
2896 AC_ARG_ENABLE(shine,
2897   [  --enable-shine          shine mp3 encoding module (default disabled)])
2898 if test "${enable_shine}" = "yes"
2899 then
2900   VLC_ADD_PLUGIN([shine])
2901 fi
2902
2903 dnl
2904 dnl  mad plugin
2905 dnl
2906 AC_ARG_ENABLE(mad,
2907   [  --enable-mad            libmad module (default enabled)])
2908 if test "${enable_mad}" != "no"
2909 then
2910   AC_ARG_WITH(mad,
2911     [    --with-mad=PATH       path to libmad],[],[])
2912   if test "${with_mad}" != "no" -a -n "${with_mad}"
2913   then
2914     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2915     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2916   fi
2917
2918   AC_ARG_WITH(mad-tree,
2919     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2920   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2921   then
2922     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2923     if test -z "${real_mad_tree}"
2924     then
2925       dnl  The given directory can't be found
2926       AC_MSG_RESULT(no)
2927       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2928     fi
2929     dnl  Use a custom libmad
2930     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2931     if test -f ${real_mad_tree}/mad.h
2932     then
2933       AC_MSG_RESULT(yes)
2934       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2935       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2936       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2937       AC_CHECK_LIB(mad, mad_bit_init, [
2938         VLC_ADD_PLUGIN([mpgatofixed32])
2939         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2940         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2941       ],[])
2942       LDFLAGS="${LDFLAGS_save}"
2943     else
2944       AC_MSG_RESULT(no)
2945       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2946     fi
2947   else
2948     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2949     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2950     AC_CHECK_HEADERS(mad.h, ,
2951       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2952     AC_CHECK_LIB(mad, mad_bit_init, [
2953       VLC_ADD_PLUGIN([mpgatofixed32])
2954       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2955       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2956     CPPFLAGS="${CPPFLAGS_save}"
2957     LDFLAGS="${LDFLAGS_save}"
2958   fi
2959 fi
2960
2961 dnl
2962 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2963 dnl
2964 AC_ARG_ENABLE( id3tag,
2965 [  --disable-id3tag        id3tag metadata reader plugin (default disabled)])
2966 AS_IF([test "${enable_id3tag}" = "yes"], [
2967   AC_CHECK_HEADERS(id3tag.h, [
2968       AS_IF([test "${have_zlib}" = "yes"],[
2969           VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2970           VLC_ADD_PLUGIN([id3tag])
2971        ])
2972     ])
2973 ])
2974
2975 dnl
2976 dnl  avcodec decoder/encoder plugin
2977 dnl
2978
2979 if test "${with_ffmpeg_tree}"
2980 then
2981   AC_MSG_WARN([--with-ffmpeg-tree is deprecated. Use PKG_CONFIG_PATH instead.])
2982 fi
2983
2984 AC_ARG_ENABLE(avcodec,
2985 [  --enable-avcodec        libavcodec codec (default enabled)])
2986 if test "${enable_avcodec}" != "no"
2987 then
2988   PKG_CHECK_MODULES(AVCODEC,[libavcodec libavutil],
2989     [
2990       VLC_SAVE_FLAGS
2991       CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
2992       CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
2993       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
2994       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
2995       VLC_ADD_PLUGIN([avcodec])
2996       VLC_ADD_LIBS([avcodec],[$AVCODEC_LIBS])
2997       VLC_ADD_CFLAGS([avcodec],[$AVCODEC_CFLAGS])
2998       VLC_RESTORE_FLAGS
2999       have_avcodec="yes"
3000     ],[
3001       AC_MSG_ERROR([Could not find libavcodec or libavutil. Use --disable-avcodec to ignore this error.])
3002   ])
3003 fi
3004
3005 dnl
3006 dnl stream_out switcher needs libavcodec
3007 dnl
3008 AC_ARG_ENABLE(switcher,
3009   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
3010 AS_IF([test "${enable_switcher}" = "yes"], [
3011   AS_IF([test "x${have_avcodec}" = "xyes"], [
3012     VLC_ADD_PLUGIN([stream_out_switcher])
3013     VLC_ADD_LIBS([stream_out_switcher],[$AVCODEC_LIBS])
3014     VLC_ADD_CFLAGS([stream_out_switcher],[$AVCODEC_CFLAGS])
3015   ],[AC_MSG_ERROR([Stream_out switcher depends on avcodec])
3016   ])
3017 ])
3018
3019
3020 dnl
3021 dnl  avformat demuxer/muxer plugin
3022 dnl
3023
3024 AC_ARG_ENABLE(avformat,
3025 [  --enable-avformat       libavformat containers (default enabled)])
3026 if test "${enable_avformat}" != "no"
3027 then
3028   PKG_CHECK_MODULES(AVFORMAT,[libavformat libavutil],
3029     [
3030       VLC_SAVE_FLAGS
3031       CPPFLAGS="${CPPFLAGS} ${AVFORMAT_CFLAGS}"
3032       CFLAGS="${CFLAGS} ${AVFORMAT_CFLAGS}"
3033       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3034       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3035       VLC_ADD_PLUGIN([avformat])
3036       VLC_ADD_LIBS([avformat],[$AVFORMAT_LIBS])
3037       VLC_ADD_CFLAGS([avformat],[$AVFORMAT_CFLAGS])
3038       VLC_RESTORE_FLAGS
3039     ],[
3040       AC_MSG_ERROR([Could not find libavformat or libavutil. Use --disable-avformat to ignore this error.])
3041   ])
3042 fi
3043
3044 dnl
3045 dnl  swscale image scaling and conversion plugin
3046 dnl
3047
3048 AC_ARG_ENABLE(swscale,
3049   AS_HELP_STRING([--enable-swscale],[libswscale image scaling and conversion
3050                   (default enabled)]))
3051 if test "${enable_swscale}" != "no"
3052 then
3053   PKG_CHECK_MODULES(SWSCALE,[libswscale],
3054     [
3055       VLC_SAVE_FLAGS
3056       CPPFLAGS="${CPPFLAGS} ${SWSCALE_CFLAGS}"
3057       CFLAGS="${CFLAGS} ${SWSCALE_CFLAGS}"
3058       AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3059       VLC_ADD_PLUGIN([swscale])
3060       VLC_ADD_LIBS([swscale],[$SWSCALE_LIBS])
3061       VLC_ADD_CFLAGS([swscale],[$SWSCALE_CFLAGS])
3062       VLC_RESTORE_FLAGS
3063     ],[
3064       AC_MSG_ERROR([Could not find libswscale. Use --disable-swscale to ignore this error. Proper software scaling and some video chroma conversion will be missing.])
3065   ])
3066 fi
3067
3068 dnl
3069 dnl  postproc plugin
3070 dnl
3071
3072 AC_ARG_ENABLE(postproc,
3073 [  --enable-postproc       libpostproc image post-processing (default enabled)])
3074 if test "${enable_postproc}" != "no"
3075 then
3076   PKG_CHECK_MODULES(POSTPROC,[libpostproc libavutil],
3077     [
3078       VLC_SAVE_FLAGS
3079       CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3080       CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3081       AC_CHECK_HEADERS(libpostproc/postproc.h postproc/postprocess.h)
3082       VLC_ADD_PLUGIN([postproc])
3083       VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS])
3084       VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS])
3085       VLC_RESTORE_FLAGS
3086     ],[
3087       AC_MSG_ERROR([Could not find libpostproc. Use --disable-postproc to ignore this error.])
3088   ])
3089 fi
3090
3091 dnl
3092 dnl  faad decoder plugin
3093 dnl
3094 AC_ARG_ENABLE(faad,
3095 [  --enable-faad           faad codec (default disabled)])
3096 if test "${enable_faad}" = "yes"
3097 then
3098   AC_ARG_WITH(faad-tree,
3099   [    --with-faad-tree=PATH faad tree for static linking])
3100   if test -n "${with_faad_tree}"
3101   then
3102     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3103     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3104     if test -z "${real_faad_tree}"
3105     then
3106       dnl  The given directory can't be found
3107       AC_MSG_RESULT(no)
3108       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3109     fi
3110     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3111     then
3112       dnl  Use a custom faad
3113       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3114       VLC_ADD_PLUGIN([faad])
3115       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3116       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3117     else
3118       dnl  The given libfaad wasn't built
3119       AC_MSG_RESULT(no)
3120       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3121     fi
3122   else
3123     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3124     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3125     AC_CHECK_HEADERS(faad.h, ,
3126       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3127     AC_CHECK_LIB(faad, faacDecOpen, [
3128       VLC_ADD_PLUGIN([faad])
3129       VLC_ADD_LIBS([faad],[-lfaad]) ],
3130       AC_CHECK_LIB(faad, NeAACDecOpen, [
3131         VLC_ADD_PLUGIN([faad])
3132         VLC_ADD_LIBS([faad],[-lfaad]) ],
3133         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3134     LDFLAGS="${LDFLAGS_save}"
3135     CPPFLAGS="${CPPFLAGS_save}"
3136   fi
3137 fi
3138
3139 dnl
3140 dnl twolame encoder plugin
3141 dnl
3142 AC_ARG_ENABLE(twolame,
3143 [  --enable-twolame        twolame codec (default disabled)])
3144 if test "${enable_twolame}" = "yes"
3145 then
3146   AC_ARG_WITH(twolame-tree,
3147   [    --with-twolame-tree=PATH twolame tree for static linking])
3148   if test -n "${with_twolame_tree}"
3149   then
3150     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3151     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3152     if test -z "${real_twolame_tree}"
3153     then
3154       dnl  The given directory can't be found
3155       AC_MSG_RESULT(no)
3156       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3157     fi
3158     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3159     then
3160       dnl  Use a custom twolame
3161       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3162       VLC_ADD_PLUGIN([twolame])
3163       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3164       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3165     else
3166       dnl  The given libtwolame wasn't built
3167       AC_MSG_RESULT(no)
3168       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3169     fi
3170   else
3171     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3172     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3173     AC_CHECK_HEADERS(twolame.h, ,
3174       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3175     AC_CHECK_LIB(twolame, twolame_init, [
3176       VLC_ADD_PLUGIN([twolame])
3177       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3178       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3179         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3180     LDFLAGS="${LDFLAGS_save}"
3181     CPPFLAGS="${CPPFLAGS_save}"
3182   fi
3183 fi
3184
3185 dnl
3186 dnl  QuickTime plugin
3187 dnl
3188 AC_ARG_ENABLE(quicktime,
3189   [  --enable-quicktime      QuickTime module (deprecated)])
3190 if test "${enable_quicktime}" = "yes"; then
3191   if test "${SYS}" = "mingw32"; then
3192     VLC_ADD_PLUGIN([quicktime])
3193   else
3194   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3195     [ VLC_ADD_PLUGIN([quicktime])
3196       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3197     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3198   fi
3199 fi
3200
3201 dnl
3202 dnl  Real plugin
3203 dnl
3204 AC_ARG_ENABLE(real,
3205   [  --enable-real           Real media module (default disabled)])
3206 if test "${enable_real}" = "yes"; then
3207   VLC_ADD_PLUGIN([realaudio])
3208   VLC_ADD_PLUGIN([realvideo])
3209 fi
3210
3211 dnl
3212 dnl  Real RTSP plugin
3213 dnl
3214 AC_ARG_ENABLE(realrtsp,
3215   [  --enable-realrtsp       Real RTSP module (default disabled)])
3216 if test "${enable_realrtsp}" = "yes"; then
3217   VLC_ADD_PLUGIN([access_realrtsp])
3218 fi
3219
3220 AC_ARG_ENABLE(libsysfs,
3221   [  --enable-libsysfs       Get user key from firewire connected iPod via libsysfs (default enabled)])
3222
3223 AS_IF([test "${enable_libsysfs}" != "no"],[
3224   AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3225     VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3226   ] )
3227 ])
3228
3229 dnl
3230 dnl skins2 module
3231 dnl
3232 AC_ARG_ENABLE(libtar,
3233   [  --enable-libtar         libtar support for skins2 (default enabled)])
3234
3235 AS_IF([test "${enable_libtar}" != "no"],[
3236   AC_CHECK_HEADERS(libtar.h, [
3237     VLC_ADD_LIBS([skins2],[-ltar])
3238   ] )
3239 ])
3240
3241 dnl
3242 dnl A52/AC3 decoder plugin
3243 dnl
3244 AC_ARG_ENABLE(a52,
3245   [  --enable-a52            A/52 support with liba52 (default enabled)])
3246 if test "${enable_a52}" != "no"
3247 then
3248   AC_ARG_WITH(a52,
3249     [    --with-a52=PATH       a52 headers and libraries])
3250   AC_ARG_WITH(a52-tree,
3251     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3252   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3253   then
3254     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3255     if test -z "${real_a52_tree}"
3256     then
3257       dnl  The given directory can't be found
3258       AC_MSG_RESULT(no)
3259       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3260     fi
3261     dnl  Use a custom a52dec
3262     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3263     if test -f ${real_a52_tree}/include/a52.h
3264     then
3265       AC_MSG_RESULT(yes)
3266       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3267       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3268       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3269       AC_CHECK_LIB(a52, a52_free, [
3270         VLC_ADD_PLUGIN([a52tofloat32])
3271         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3272         VLC_ADD_LIBS([a52tofloat32],[-la52])
3273         ],[
3274         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3275         then
3276           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3277         else
3278           AC_MSG_ERROR([the specified tree hasn't been compiled])
3279         fi
3280       ])
3281       LDFLAGS="${LDFLAGS_save}"
3282     else
3283       AC_MSG_RESULT(no)
3284       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3285     fi
3286   else
3287     if test -z "${with_a52}"
3288     then
3289       LDFLAGS_test=""
3290       CPPFLAGS_test=""
3291     else
3292       LDFLAGS_test="-L${with_a52}/lib"
3293       CPPFLAGS_test="-I${with_a52}/include"
3294     fi
3295     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3296     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3297     AC_CHECK_HEADERS(a52dec/a52.h, [
3298       AC_CHECK_LIB(a52, a52_free, [
3299         VLC_ADD_PLUGIN([a52tofloat32])
3300         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3301         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3302       ],[
3303         AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3304         ])
3305     ],[
3306       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3307     ])
3308     CPPFLAGS="${CPPFLAGS_save}"
3309     LDFLAGS="${LDFLAGS_save}"
3310   fi
3311 fi
3312
3313 AC_ARG_WITH(a52-fixed,
3314       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3315       [
3316         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3317
3318 dnl
3319 dnl DTS Coherent Acoustics decoder plugin
3320 dnl
3321 AS_IF([test "x${enable_dts}" != "x"], [
3322   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3323 ])
3324 AS_IF([test "x${with_dts_tree}" != "x"], [
3325   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3326 ])
3327
3328 AC_ARG_ENABLE(dca,
3329   AS_HELP_STRING([--enable-dca],[DTS Coherent Acoustics support with libdca
3330                   (default enabled)]))
3331 AS_IF([test "${enable_dca}" != "no"], [
3332   AC_ARG_WITH(dca-tree,
3333     [    --with-dca-tree=PATH  libdca tree for static linking],,
3334     [with_dca_tree="no"])
3335   AS_IF([test "${with_dca_tree}" != "no"], [
3336     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3337     AS_IF([test -z "${real_dca_tree}"], [
3338       dnl  The given directory can't be found
3339       AC_MSG_RESULT(no)
3340       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3341     ])
3342     dnl  Use a custom libdca
3343     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3344     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3345       AC_MSG_RESULT(yes)
3346       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3347       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3348         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3349       ], [
3350         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3351       ])
3352     ], [
3353       AC_MSG_RESULT(no)
3354       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3355     ])
3356   ], [
3357     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3358       VLC_ADD_PLUGIN([dtstofloat32])
3359       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3360       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3361     ], [
3362       AS_IF([test "x${enable_dca}" != "x"], [
3363         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3364       ])
3365     ])
3366   ])
3367 ])
3368
3369 dnl
3370 dnl  Flac plugin
3371 dnl
3372 AC_ARG_ENABLE(flac,
3373   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3374 if test "${enable_flac}" = "yes"
3375 then
3376   AC_ARG_WITH(flac-tree,
3377   [    --with-flac-tree=PATH flac tree for static linking])
3378   if test -n "${with_flac_tree}"
3379   then
3380     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3381     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3382     if test -z "${real_flac_tree}"
3383     then
3384       dnl  The given directory can't be found
3385       AC_MSG_RESULT(no)
3386       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3387     fi
3388     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3389     then
3390       dnl  Use a custom flac
3391       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3392       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3393       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3394       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3395     else
3396       dnl  The given flac wasn't built
3397       AC_MSG_RESULT(no)
3398       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3399     fi
3400   else
3401     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3402       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3403      ],[])
3404   fi
3405 fi
3406
3407 dnl
3408 dnl  Libmpeg2 plugin
3409 dnl
3410 AC_ARG_ENABLE(libmpeg2,
3411   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3412 if test "${enable_libmpeg2}" != "no"
3413 then
3414   AC_ARG_WITH(libmpeg2-tree,
3415   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3416   AS_IF([test -n "${with_libmpeg2_tree}"],[
3417     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3418     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3419     if test -z "${real_libmpeg2_tree}"
3420     then
3421       dnl  The given directory can't be found
3422       AC_MSG_RESULT(no)
3423       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3424     fi
3425     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3426     then
3427       dnl  Use a custom libmpeg2
3428       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3429       VLC_ADD_PLUGIN([libmpeg2])
3430       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3431       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3432     else
3433       dnl  The given libmpeg2 wasn't built
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3436     fi
3437   ],[
3438    PKG_CHECK_MODULES(LIBMPEG2,[libmpeg2 > 0.3.2],[
3439           VLC_ADD_PLUGIN([libmpeg2])
3440           VLC_ADD_LIBS([libmpeg2], $LIBMPEG2_LIBS)
3441           VLC_ADD_CFLAGS([libmpeg2], $LIBMPEG2_CFLAGS)
3442        ],
3443       AC_MSG_WARN([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ . Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.]))
3444   ])
3445 fi
3446
3447 dnl
3448 dnl  Vorbis plugin
3449 dnl
3450 PKG_ENABLE_MODULES_VLC([VORBIS], [vorbis >= 1.1 vorbisenc >= 1.1], [Vorbis decoder and encoder], [auto])
3451
3452 dnl
3453 dnl  Tremor plugin
3454 dnl
3455 AC_ARG_ENABLE(tremor,
3456   [  --enable-tremor         Tremor decoder support (default disabled)])
3457 if test "${enable_tremor}" = "yes"
3458 then
3459   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3460     VLC_ADD_PLUGIN([tremor])
3461     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3462    ],[])
3463 fi
3464
3465 dnl
3466 dnl  Speex plugin
3467 dnl
3468 PKG_ENABLE_MODULES_VLC([SPEEX], [speex >= 1.0.5], [Speex decoder support], [auto])
3469
3470 dnl
3471 dnl  tarkin decoder plugin
3472 dnl
3473 AC_ARG_ENABLE(tarkin,
3474 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3475 if test "${enable_tarkin}" = "yes"
3476 then
3477   AC_ARG_WITH(tarkin-tree,
3478   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3479   if test -n "${with_tarkin_tree}"
3480   then
3481     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3482     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3483     if test -f "${real_tarkin_tree}/tarkin.o"
3484     then
3485       VLC_ADD_PLUGIN([tarkin])
3486       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3487       VLC_ADD_LIBS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
3488       AC_MSG_RESULT(yes)
3489     else
3490       dnl  The given tarkin tree wasn't built
3491       AC_MSG_RESULT(no)
3492       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3493                     make sure you compiled tarkin in ${with_tarkin_tree}])
3494     fi
3495   fi
3496 fi
3497
3498 dnl
3499 dnl  theora decoder plugin
3500 dnl
3501 PKG_ENABLE_MODULES_VLC([THEORA], [theora >= 1.0], [experimental theora codec], [auto])
3502
3503 dnl
3504 dnl  dirac encoder plugin
3505 dnl
3506 PKG_ENABLE_MODULES_VLC([DIRAC], [dirac >= 0.10.0], [dirac encoder], [auto], [], [ -lstdc++])
3507
3508 dnl
3509 dnl  schroedinger decoder plugin (for dirac format video)
3510 dnl
3511 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3512
3513 dnl
3514 dnl  PNG decoder module
3515 dnl
3516 AC_ARG_ENABLE(png,
3517   [  --enable-png            PNG support (default enabled)])
3518 if test "${enable_png}" != "no"; then
3519 AC_CHECK_HEADERS(png.h, [
3520   LDFLAGS="${LDFLAGS_save} -lz"
3521   AC_CHECK_LIB(png, png_set_rows, [
3522     VLC_ADD_LIBS([png],[-lpng -lz])
3523     VLC_ADD_PLUGIN([png])
3524     VLC_ADD_PLUGIN([osdmenu])
3525     VLC_ADD_PLUGIN([osd_parser])
3526     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3527     [],[-lz])
3528     LDFLAGS="${LDFLAGS_save}"
3529   ])
3530 fi
3531 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3532
3533 dnl
3534 dnl H264 encoder plugin (using libx264)
3535 dnl
3536 AC_ARG_ENABLE(x264,
3537   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3538 if test "${enable_x264}" != "no"; then
3539   AC_ARG_WITH(x264-tree,
3540     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3541   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3542   then
3543     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3544     if test -z "${real_x264_tree}"
3545     then
3546       dnl  The given directory can't be found
3547       AC_MSG_RESULT(no)
3548       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3549     fi
3550     dnl  Use a custom libx264
3551     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3552     if test -f ${real_x264_tree}/x264.h
3553     then
3554       AC_MSG_RESULT(yes)
3555       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3556       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3557       PKG_CHECK_MODULES(X264,x264, [
3558         VLC_ADD_PLUGIN([x264])
3559         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3560         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3561         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3562           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3563         fi
3564       ],[
3565         AC_MSG_ERROR([the specified tree hasn't been compiled])
3566       ])
3567       LDFLAGS="${LDFLAGS_save}"
3568     else
3569       AC_MSG_RESULT(no)
3570       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3571     fi
3572   else
3573       PKG_CHECK_MODULES(X264,x264, [
3574         VLC_ADD_PLUGIN([x264])
3575         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3576
3577         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3578           [ac_cv_ld_bsymbolic],
3579           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3580             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3581             LDFLAGS="${LDFLAGS_save}"
3582           ])
3583         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3584           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3585         ])
3586
3587         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3588         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3589           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3590         fi
3591       ],[
3592         if test "${enable_x264}" = "yes"; then
3593             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3594           fi
3595       ])
3596     LDFLAGS="${LDFLAGS_save}"
3597   fi
3598 fi
3599
3600 dnl
3601 dnl libfluidsynth (MIDI synthetizer) plugin
3602 dnl
3603 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3604
3605 dnl
3606 dnl Teletext Modules
3607 dnl vbi decoder plugin (using libzbvi)
3608 dnl telx module
3609 dnl uncompatible
3610 dnl
3611 AC_ARG_ENABLE(zvbi,
3612   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3613                   libzvbi (default enabled)]))
3614 AC_ARG_ENABLE(telx,
3615   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3616                   zvbi) (default enabled if zvbi is absent)]))
3617
3618 AS_IF( [test "${enable_zvbi}" != "no"],[
3619     PKG_CHECK_MODULES(ZVBI,
3620         zvbi-0.2 >= 0.2.25,
3621         [
3622           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3623           if test "${SYS}" = "mingw32"; then
3624               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3625           fi
3626           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3627           VLC_ADD_PLUGIN([zvbi])
3628           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3629           AS_IF( [test "${enable_telx}" = "yes"],[
3630                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3631                                Using zvbi.])
3632                   ])
3633         ],[
3634           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3635         ])
3636     ])
3637 AS_IF( [test "${enable_telx}" != "no" ],[
3638   VLC_ADD_PLUGIN([telx])
3639   ])
3640
3641 dnl
3642 dnl libass subtitle rendering module
3643 dnl
3644 AC_ARG_ENABLE(libass,
3645   [  --enable-libass         Subtitle support using libass (default disabled)])
3646 AS_IF( [test "${enable_libass}" = "yes"], [
3647   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3648       [
3649         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3650         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3651         VLC_ADD_PLUGIN([libass])
3652
3653         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3654           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3655         if test "${SYS}" = "mingw32"; then
3656            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3657         else
3658            VLC_ADD_LIBS([libass],[-lfontconfig])
3659         fi
3660        ])
3661       ],[
3662         AC_MSG_WARN([LIBASS library not found])
3663       ])
3664   ])
3665
3666 dnl
3667 dnl asa demuxer
3668 dnl
3669 AC_ARG_ENABLE(asademux,
3670   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3671 AS_IF( [test "${enable_asademux}" = "yes"], [
3672   PKG_CHECK_MODULES(PCRE,
3673       libpcre >= 6.5,
3674       [
3675         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3676         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3677         if test "${SYS}" = "mingw32"; then
3678             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3679         fi
3680         VLC_ADD_PLUGIN([asademux])
3681       ],[
3682         AC_MSG_WARN([PCRE library not found (required for asademux)])
3683       ])
3684   ])
3685
3686 dnl
3687 dnl  CMML plugin
3688 dnl
3689 AC_ARG_ENABLE(cmml,
3690   [  --enable-cmml           CMML support (default enabled)])
3691 if test "${enable_cmml}" != "no"
3692 then
3693   VLC_ADD_PLUGIN([cmml])
3694 fi
3695
3696 dnl
3697 dnl  kate decoder plugin
3698 dnl
3699 AC_ARG_ENABLE(kate,
3700 [  --enable-kate           kate codec (default enabled)])
3701 AS_IF([test "${enable_kate}" != "no"], [
3702   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3703       VLC_ADD_PLUGIN([kate])
3704       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3705       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3706         AC_CHECK_HEADERS(kate/kate.h, [
3707           AC_CHECK_LIB(kate, kate_decode_init, [
3708             VLC_ADD_PLUGIN([kate])
3709             kate_libs="-lkate -logg"
3710             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3711             AS_IF([test "x${enable_kate}" != "x"], [
3712               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3713               You also need to check that you have a libogg posterior to the 1.0 release.])
3714             ])
3715           ], [-lkate -logg])
3716         ],[
3717           AS_IF([test "x${enable_kate}" != "x"], [
3718             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3719             You also need to check that you have a libogg posterior to the 1.0 release.])
3720           ])
3721         ])
3722   ])
3723 ])
3724
3725
3726 dnl
3727 dnl  tiger decoder plugin
3728 dnl
3729 PKG_ENABLE_MODULES_VLC([TIGER], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3730
3731
3732 dnl
3733 dnl  Video plugins
3734 dnl
3735
3736 AC_ARG_WITH(,[Video plugins:])
3737
3738 dnl
3739 dnl  Xlib
3740 dnl
3741
3742 AC_PATH_XTRA()
3743 AC_ARG_ENABLE(x11,
3744   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3745   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3746     enable_x11="yes"
3747   ], [
3748     enable_x11="no"
3749   ])
3750 ])
3751
3752 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3753
3754 AS_IF([test "${enable_x11}" != "no"], [
3755   AC_CHECK_HEADERS(X11/Xlib.h, [
3756     VLC_ADD_PLUGIN([x11])
3757     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3758     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3759
3760     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
3761   ])
3762
3763 dnl Check for DPMS
3764   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3765     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3766     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3767       AC_MSG_RESULT(yes)
3768       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3769                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3770     ],[
3771       AC_MSG_RESULT(no)
3772     ])
3773   ],,[
3774     #include <X11/Xlib.h>
3775   ])
3776 ])
3777
3778 dnl
3779 dnl  XVideo module
3780 dnl  (enabled by default except on win32)
3781 dnl
3782 AC_ARG_ENABLE(xvideo,
3783   [  --enable-xvideo         XVideo support (default enabled)],, [
3784     enable_xvideo="$enable_x11"
3785 ])
3786 AS_IF([test "${enable_xvideo}" != "no"], [
3787   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3788     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3789     AC_CHECK_LIB(Xv,XvPutImage,[
3790         VLC_ADD_PLUGIN([xvideo])
3791         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3792         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3793     ])
3794     CFLAGS="${CFLAGS_save}"
3795   ])
3796 ])
3797
3798 dnl
3799 dnl  GLX module
3800 dnl  (enabled by default except on win32)
3801 dnl
3802 AC_ARG_ENABLE(glx,
3803   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3804   enable_glx="$enable_x11"
3805 ])
3806 AS_IF([test "${enable_glx}" != "no"], [
3807   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3808   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3809     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3810     choke me
3811     #endif]]),
3812     [
3813       VLC_ADD_PLUGIN([glx])
3814       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3815       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3816     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3817 ])
3818
3819 dnl
3820 dnl  XVMC module
3821 dnl  (disabled by default except on win32)
3822 dnl
3823 AC_ARG_ENABLE(xvmc,
3824   [  --enable-xvmc           XvMC support (default disabled)],, [
3825   enable_xvmc="no"
3826 ])
3827 AS_IF([test "${enable_xvmc}" != "no"], [
3828   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3829     VLC_ADD_PLUGIN([xvmc])
3830     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3831     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3832   ], [
3833     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3834   ])
3835 ])
3836
3837 dnl
3838 dnl  Check for the Xinerama extension
3839 dnl
3840 AC_ARG_ENABLE(xinerama,
3841   [  --enable-xinerama       Xinerama support (default enabled)],, [
3842   enable_xinerama="$enable_xvideo"
3843 ])
3844 AS_IF([test "$enable_xinerama" != "no"], [
3845   ac_cv_have_xinerama="no"
3846   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3847   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3848     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3849       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3850       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3851       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3852       VLC_ADD_LIBS([xvmc],[-lXinerama_pic])
3853       ac_cv_have_xinerama="yes"
3854     ],[
3855       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3856         VLC_ADD_LIBS([xvideo],[-lXinerama])
3857         VLC_ADD_LIBS([x11],[-lXinerama])
3858         VLC_ADD_LIBS([glx],[-lXinerama])
3859         VLC_ADD_LIBS([xvmc],[-lXinerama])
3860         ac_cv_have_xinerama="yes"
3861       ])
3862     ])
3863   ])
3864   if test "${ac_cv_have_xinerama}" = "yes"; then
3865     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3866   fi
3867
3868 dnl
3869 dnl  Check for XF86VidMode extension
3870 dnl
3871   ac_cv_have_xf86vidmode="no"
3872   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3873     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3874       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3875       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3876       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3877       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3878       ac_cv_have_xf86vidmode="yes"
3879     ],[
3880       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3881         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
3882         VLC_ADD_LIBS([x11],[-lXxf86vm])
3883         VLC_ADD_LIBS([glx],[-lXxf86vm])
3884         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
3885         ac_cv_have_xf86vidmode="yes"
3886       ])
3887     ])
3888   ],[true],
3889 [#ifdef HAVE_X11_XLIB_H
3890 # include <X11/Xlib.h>
3891 #endif]
3892    )
3893   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3894     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3895   ])
3896   CFLAGS="${CFLAGS_save}"
3897 ])
3898
3899 dnl End of Xlib tests
3900 CPPFLAGS="${CPPFLAGS_save}"
3901
3902
3903 dnl
3904 dnl  X C Bindings modules
3905 dnl
3906 AC_ARG_ENABLE(xcb,
3907   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3908   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3909     enable_xcb="yes"
3910   ], [
3911     enable_xcb="no"
3912   ])
3913 ])
3914
3915 AS_IF([test "${enable_xcb}" != "no"], [
3916   PKG_CHECK_MODULES(XPROTO, [xproto])
3917
3918   dnl libxcb
3919   PKG_CHECK_MODULES(XCB, [xcb])
3920   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3921   VLC_ADD_PLUGIN([xcb])
3922   VLC_ADD_PLUGIN([xcb_screen])
3923
3924   AS_IF([test "${enable_xvideo}" != "no"], [
3925     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3926       VLC_ADD_PLUGIN([xcb_xv])
3927     ], [
3928       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3929         VLC_ADD_PLUGIN([xcb_xv])
3930         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3931       ])
3932     ])
3933   ])
3934
3935   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3936     VLC_ADD_PLUGIN([panoramix])
3937     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3938     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3939   ], [true])
3940
3941   dnl xcb-utils
3942   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3943
3944   VLC_ADD_PLUGIN([xcb_window])
3945   VLC_ADD_PLUGIN([globalhotkeys])
3946   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3947   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3948 ])
3949
3950
3951 dnl
3952 dnl  OpenGL module
3953 dnl  (enabled by default except on beos)
3954 dnl
3955 AC_ARG_ENABLE(opengl,
3956   [  --enable-opengl         OpenGL support (default enabled)])
3957 if test "${enable_opengl}" != "no" &&
3958    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3959   if test "${SYS}" != "darwin"; then
3960     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3961       VLC_ADD_PLUGIN([opengl])
3962       if test "${SYS}" != "mingw32"; then
3963         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
3964       else
3965         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
3966       fi
3967     ])
3968   else
3969     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3970     VLC_ADD_PLUGIN([opengl])
3971     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
3972   fi
3973 fi
3974
3975 dnl
3976 dnl  SDL module
3977 dnl
3978 AC_ARG_ENABLE(sdl,
3979   [  --enable-sdl            SDL support (default enabled)])
3980 AC_ARG_ENABLE(sdl-image,
3981   [  --enable-sdl-image      SDL image support (default enabled)])
3982 if test "${enable_sdl}" != "no"
3983 then
3984   SDL_PATH="${PATH}"
3985   AC_ARG_WITH(sdl-config-path,
3986     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3987     [ if test "${with_sdl_config_path}" != "no"
3988       then
3989         SDL_PATH="${with_sdl_config_path}:${PATH}"
3990       fi ])
3991   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3992   SDL_CONFIG="${SDL12_CONFIG}"
3993   SDL_HEADER="SDL12/SDL.h"
3994   SDL_IMAGE="SDL12/SDL_image.h"
3995   if test "${SDL_CONFIG}" = "no"
3996   then
3997     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3998     SDL_CONFIG=${SDL11_CONFIG}
3999     SDL_HEADER="SDL11/SDL.h"
4000     SDL_IMAGE="SDL11/SDL_image.h"
4001   fi
4002   if test "${SDL_CONFIG}" = "no"
4003   then
4004     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4005     SDL_HEADER="SDL/SDL.h"
4006     SDL_IMAGE="SDL/SDL_image.h"
4007   fi
4008   # check for cross-compiling
4009   SDL_PREFIX=
4010   AC_ARG_WITH(sdl-prefix,
4011     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4012                                e.g use as:
4013                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4014   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4015   then
4016     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4017   fi
4018   if test "${SDL_CONFIG}" != "no"
4019   then
4020     # SDL on Darwin is heavily patched and can only run SDL_image
4021     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4022       VLC_ADD_PLUGIN([vout_sdl])
4023       VLC_ADD_PLUGIN([aout_sdl])
4024     fi
4025     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4026     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4027     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4028     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4029       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4030       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4031           As a last resort we also test for SDL.h presence),
4032       [ AC_MSG_ERROR([The development package for SDL is not installed.
4033 Please install it and try again. Alternatively you can also configure with
4034 --disable-sdl.])
4035       ])])
4036     AS_IF([ test "${enable_sdl_image}" != "no"],[
4037       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4038         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4039         VLC_ADD_PLUGIN([sdl_image])
4040         AC_CHECK_LIB(png, png_set_rows,
4041           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4042         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4043           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4044         AC_CHECK_LIB(tiff, TIFFClientOpen,
4045           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4046         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4047         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4048             As a last resort we also test for SDL_image.h presence),
4049         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4050   You should install it alongside your SDL package.])
4051         ])])
4052     ])
4053     CPPFLAGS="${CPPFLAGS_save}"
4054     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4055     then
4056       AC_MSG_ERROR([The development package for SDL is not installed.
4057 Please install it and try again. Alternatively you can also configure with
4058 --disable-sdl.])
4059     fi
4060
4061   elif test "${enable_sdl}" =  "yes"
4062   then
4063     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4064 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4065     ])
4066   fi
4067 fi
4068
4069 dnl
4070 dnl  freetype module
4071 dnl
4072 AC_ARG_ENABLE(freetype,
4073   [  --enable-freetype       freetype support (default enabled)])
4074 AC_ARG_ENABLE(fribidi,
4075   [  --enable-fribidi        fribidi support (default enabled)])
4076 AC_ARG_ENABLE(fontconfig,
4077   [  --enable-fontconfig,    fontconfig support (default enabled)])
4078 if test "${enable_freetype}" != "no"
4079 then
4080    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4081       VLC_ADD_PLUGIN([freetype])
4082       have_freetype=yes
4083       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4084       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4085       if test "${SYS}" = "mingw32"; then
4086         VLC_ADD_LIBS([skins2],[-lxml2])
4087         VLC_ADD_LIBS([freetype],[-liconv])
4088       fi
4089       if test "${enable_fontconfig}" != "no"
4090       then
4091         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4092           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4093            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4094         AC_CHECK_HEADERS(Carbon/Carbon.h,
4095           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4096       fi
4097   ],[
4098   have_freetype=no
4099   AS_IF([ test "${enable_freetype}" =  "yes"],[
4100     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4101 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4102       ])
4103     ])
4104   ])
4105
4106   dnl fribidi support
4107   if test "${enable_fribidi}" != "no"
4108   then
4109     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4110       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4111       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4112     ])
4113     fi
4114 fi
4115
4116 dnl
4117 dnl  libxml2 module
4118 dnl
4119 AC_ARG_ENABLE(libxml2,
4120   [  --enable-libxml2        libxml2 support (default enabled)])
4121 AS_IF([test "${enable_libxml2}" != "no"], [
4122   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4123     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4124     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4125     VLC_ADD_PLUGIN([xml])
4126   ], [
4127     AS_IF([test "x${enable_xml2}" != "x"], [
4128       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4129     ])
4130   ])
4131 ])
4132
4133 dnl
4134 dnl  SVG module
4135 dnl
4136 PKG_ENABLE_MODULES_VLC([SVG], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
4137
4138 dnl
4139 dnl Snapshot vout module (with cache)
4140 dnl
4141 AC_ARG_ENABLE(snapshot,
4142   [  --enable-snapshot       snapshot module (default disabled)])
4143 if test "${enable_snapshot}" = "yes"
4144 then
4145   VLC_ADD_PLUGIN([snapshot])
4146 fi
4147
4148 dnl
4149 dnl  Qt Embedded module
4150 dnl  (disabled by default)
4151 dnl
4152 AC_ARG_ENABLE(qte,
4153   [  --enable-qte            QT Embedded support (default disabled)])
4154 if test "${enable_qte}" = "yes"
4155 then
4156   AC_ARG_WITH(qte,
4157   [    --with-qte=PATH       Qt Embedded headers and libraries])
4158   if test "${with_qte}" != "no" -a -n "${with_qte}"
4159   then
4160     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4161     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4162   else
4163     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4164     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4165   fi
4166   VLC_ADD_PLUGIN([qte])
4167   NEED_QTE_MAIN=yes
4168   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4169   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4170     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4171   ] )
4172   CPPFLAGS="${CPPFLAGS_save}"
4173 fi
4174
4175 dnl
4176 dnl Roku HD1000 Video output module
4177 dnl
4178 AC_ARG_ENABLE(hd1000v,
4179   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4180 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4181   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4182    test "${enable_hd1000v}" = "yes"); then
4183   AC_LANG_PUSH([C++])
4184   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4185   [
4186     can_build_roku="yes"
4187   ],
4188   [
4189     can_build_roku="no"
4190     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4191   ])
4192   if test "$can_build_roku" = "yes"
4193   then
4194     VLC_ADD_PLUGIN([hd1000v])
4195     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4196   fi
4197   AC_LANG_POP([C++])
4198 fi
4199
4200 dnl
4201 dnl  Windows DirectX module
4202 dnl
4203
4204 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4205 then
4206   VLC_ADD_PLUGIN([panoramix])
4207 fi
4208
4209 AC_ARG_ENABLE(directx,
4210   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4211 if test "${enable_directx}" != "no"
4212 then
4213   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4214   then
4215     AC_ARG_WITH(directx,
4216     [    --with-directx=PATH   Win32 DirectX headers])
4217     if test -z "${with_directx}"
4218     then
4219       AC_CHECK_HEADERS(ddraw.h,
4220       [ VLC_ADD_PLUGIN([directx])
4221         VLC_ADD_PLUGIN([aout_directx])
4222         VLC_ADD_LIBS([directx],[-lgdi32])
4223       ])
4224       AC_CHECK_HEADERS(GL/gl.h,
4225       [ VLC_ADD_PLUGIN([glwin32])
4226         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4227       ])
4228       AC_CHECK_HEADERS(d3d9.h,
4229       [ VLC_ADD_PLUGIN([direct3d])
4230         VLC_ADD_LIBS([direct3d],[-lgdi32])
4231       ])
4232     else
4233       AC_MSG_CHECKING(for directX headers in ${with_directx})
4234       if test -f ${with_directx}/ddraw.h
4235       then
4236         VLC_ADD_PLUGIN([directx])
4237         VLC_ADD_PLUGIN([aout_directx])
4238         VLC_ADD_CPPFLAGS([directx aout_directx],[-I${with_directx}])
4239         VLC_ADD_LIBS([directx],[-lgdi32])
4240         AC_MSG_RESULT(yes)
4241       else
4242         AC_MSG_RESULT(no)
4243         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4244       fi
4245     fi
4246   fi
4247 fi
4248
4249 dnl
4250 dnl  Linux framebuffer module
4251 dnl
4252 AC_ARG_ENABLE(fb,
4253   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4254     if test "${enable_fb}" != "no"
4255     then
4256       AC_CHECK_HEADERS(linux/fb.h, [
4257         VLC_ADD_PLUGIN([fb])
4258       ])
4259     fi
4260
4261 dnl
4262 dnl  Linux MGA module
4263 dnl
4264 AC_ARG_ENABLE(mga,
4265   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4266   [ if test "${enable_mga}" = "yes"
4267     then
4268       VLC_ADD_PLUGIN([mga])
4269     fi ])
4270
4271 dnl
4272 dnl  OMAP Framebuffer module
4273 dnl
4274 AC_ARG_ENABLE(omapfb,
4275   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4276     if test "${enable_omapfb}" = "yes"
4277     then
4278       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4279         VLC_ADD_PLUGIN([omapfb])
4280         AC_CHECK_HEADERS(X11/Xlib.h, [
4281           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4282       ])
4283     fi
4284
4285 dnl
4286 dnl  SVGAlib module
4287 dnl
4288 AC_ARG_ENABLE(svgalib,
4289   [  --enable-svgalib        SVGAlib support (default disabled)])
4290 if test "${enable_svgalib}" = "yes"
4291 then
4292   VLC_ADD_PLUGIN([svgalib])
4293   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4294 fi
4295
4296 dnl
4297 dnl  DirectFB module
4298 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4299 dnl  TODO: support for static linking
4300 dnl
4301 AC_ARG_ENABLE(directfb,
4302   [  --enable-directfb       DirectFB support (default disabled)])
4303 AC_ARG_WITH(directfb,
4304   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4305
4306 if test "${enable_directfb}" = "yes"; then
4307     have_directfb="false"
4308     CPPFLAGS_mydirectfb=
4309     LIBS_mydirectfb=
4310     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4311         dnl Trying the given location
4312         CPPFLAGS_save="${CPPFLAGS}"
4313         LIBS_save="${LIBS}"
4314
4315         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4316         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4317         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4318
4319         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4320         LIBS="${LIBS} ${LIBS_new}"
4321
4322         dnl FIXME: too obscure
4323         AC_CHECK_HEADER([directfb.h], [
4324             AC_CHECK_LIB([direct],[direct_initialize], [
4325                 AC_CHECK_LIB([fusion], [fusion_enter], [
4326                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4327                 ], have_directfb="false")
4328             ], have_directfb="false")
4329         ], have_directfb="false")
4330
4331         dnl Restore flags
4332         CPPFLAGS="${CPPFLAGS_save}"
4333         LIBS="${LIBS_save}"
4334
4335         if test "${have_directfb}" = "true"; then
4336             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4337             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4338         fi
4339     else
4340         dnl Look for directfb-config
4341         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4342         if test "${DIRECTFB_CONFIG}" != "no"; then
4343             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4344             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4345             have_directfb="true"
4346         else
4347             dnl Trying with pkg-config
4348             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4349                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4350                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4351                 have_directfb="true"
4352                 ], [have_directfb="false"])
4353         fi
4354     fi
4355     if test "${have_directfb}" = "true"; then
4356         VLC_ADD_PLUGIN([directfb])
4357         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4358         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4359     else
4360         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4361     fi
4362 fi
4363
4364
4365
4366 dnl
4367 dnl  GGI module
4368 dnl
4369 AC_ARG_ENABLE(ggi,
4370   [  --enable-ggi            GGI support (default disabled)])
4371 if test "${enable_ggi}" = "yes"
4372 then
4373   AC_CHECK_HEADER([ggi/ggi.h],[
4374     VLC_ADD_PLUGIN([ggi])
4375     VLC_ADD_LIBS([ggi],[-lggi])
4376     AC_ARG_WITH(ggi,
4377       [    --with-ggi=PATH       path to libggi],
4378       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4379         then
4380           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4381           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4382         fi ])
4383     ],[
4384        AC_MSG_ERROR([LibGGI development files can't be found])
4385     ])
4386 fi
4387
4388 dnl
4389 dnl  AA plugin
4390 dnl
4391 AC_ARG_ENABLE(aa,
4392   [  --enable-aa             aalib output (default disabled)])
4393 if test "${enable_aa}" = "yes"
4394 then
4395   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4396   if test "${have_aa}" = "true"
4397   then
4398     VLC_ADD_PLUGIN([aa])
4399     VLC_ADD_LIBS([aa],[-laa])
4400   fi
4401 fi
4402
4403 dnl
4404 dnl  libcaca plugin
4405 dnl
4406 AC_ARG_ENABLE(caca,
4407   [  --enable-caca           libcaca output (default disabled)])
4408 if test "${enable_caca}" = "yes"
4409 then
4410   CACA_PATH="${PATH}"
4411   AC_ARG_WITH(caca-config-path,
4412     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4413     [ if test "${with_caca_config_path}" != "no"
4414       then
4415         CACA_PATH="${with_caca_config_path}:${PATH}"
4416       fi ])
4417   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4418   if test "${CACA_CONFIG}" != "no"
4419   then
4420     VLC_ADD_PLUGIN([caca])
4421     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4422     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4423     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4424                                         caca_event_t ev;]],
4425                                         [[ev.type = 0;]]
4426                        )],
4427                        [],
4428       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4429     )
4430   fi
4431 fi
4432
4433 dnl
4434 dnl  win32 GDI plugin
4435 dnl
4436 AC_ARG_ENABLE(wingdi,
4437   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4438 if test "${enable_wingdi}" != "no"; then
4439   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4440     VLC_ADD_PLUGIN([wingdi])
4441     VLC_ADD_LIBS([wingdi],[-lgdi32])
4442   fi
4443   if test "${SYS}" = "mingwce"; then
4444     VLC_ADD_PLUGIN([wingdi])
4445     VLC_ADD_PLUGIN([wingapi])
4446     VLC_ADD_LIBS([wingdi],[-laygshell])
4447     VLC_ADD_LIBS([wingapi],[-laygshell])
4448   fi
4449 fi
4450
4451 dnl
4452 dnl  Audio plugins
4453 dnl
4454
4455 AC_ARG_WITH(,[Audio plugins:])
4456
4457 dnl
4458 dnl  OSS /dev/dsp module (enabled by default except on win32)
4459 dnl
4460 AC_ARG_ENABLE(oss,
4461   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4462
4463 if test "${enable_oss}" != "no" &&
4464   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4465    test "${enable_oss}" = "yes")
4466 then
4467   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4468     VLC_ADD_PLUGIN([oss])
4469     VLC_ADD_PLUGIN([access_oss])
4470     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4471   ])
4472 fi
4473
4474 dnl
4475 dnl  Pulseaudio module
4476 dnl
4477 PKG_ENABLE_MODULES_VLC([PULSE], [libpulse >= 0.9.11], [Pulseaudio support], [auto])
4478
4479 dnl
4480 dnl  Portaudio module
4481 dnl
4482 AC_ARG_ENABLE(portaudio,
4483   [  --enable-portaudio      Portaudio library support (default disabled)],
4484   [if test "${enable_portaudio}" = "yes"
4485    then
4486      VLC_ADD_PLUGIN([portaudio])
4487      VLC_ADD_CXXFLAGS([portaudio],[])
4488      if test "${SYS}" = "mingw32"; then
4489         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4490      else
4491         VLC_ADD_LIBS([portaudio],[-lportaudio])
4492      fi
4493    fi])
4494
4495 dnl
4496 dnl  ALSA module
4497 dnl
4498 AC_ARG_ENABLE(alsa,
4499   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4500 if test "${enable_alsa}" != "no"
4501 then
4502   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4503   if test "${have_alsa}" = "true"
4504   then
4505     CFLAGS="${CFLAGS_save}"
4506     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4507                     #define ALSA_PCM_NEW_SW_PARAMS_API
4508                     #include <alsa/asoundlib.h>],
4509        [snd_pcm_hw_params_get_period_time(0,0,0);],
4510         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4511     VLC_ADD_PLUGIN([alsa])
4512     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4513     VLC_ADD_PLUGIN([access_alsa])
4514     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4515   else
4516     if test "${enable_alsa}" = "yes"; then
4517       AC_MSG_ERROR([Could not find ALSA development headers])
4518     fi
4519   fi
4520 fi
4521
4522 dnl
4523 dnl  win32 waveOut plugin
4524 dnl
4525 AC_ARG_ENABLE(waveout,
4526   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4527 if test "${enable_waveout}" != "no"; then
4528   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4529     VLC_ADD_PLUGIN([waveout])
4530     VLC_ADD_LIBS([waveout],[-lwinmm])
4531   fi
4532   if test "${SYS}" = "mingwce"; then
4533     VLC_ADD_PLUGIN([waveout])
4534   fi
4535 fi
4536
4537 dnl
4538 dnl  CoreAudio plugin
4539 dnl
4540 AC_ARG_ENABLE(macosx-audio,
4541   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4542 if test "${enable_macosx-audio}" != "no" &&
4543   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4544 then
4545   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4546     [ VLC_ADD_PLUGIN([auhal])
4547       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4548     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4549 fi
4550
4551 dnl
4552 dnl  Roku HD1000 audio
4553 dnl
4554 AC_ARG_ENABLE(hd1000a,
4555   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4556 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4557   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4558    test "${enable_hd1000a}" = "yes")
4559 then
4560   AC_LANG_PUSH([C++])
4561   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4562     VLC_ADD_PLUGIN([hd1000a])
4563     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4564   AC_LANG_POP([C++])
4565 fi
4566
4567 dnl
4568 dnl  JACK modules
4569 dnl
4570 AC_ARG_ENABLE(jack,
4571  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4572  [enable_jack="no"])
4573
4574 AS_IF([test "${enable_jack}" != "no"], [
4575   AC_CHECK_HEADERS(jack/jack.h, [
4576     VLC_ADD_PLUGIN([access_jack])
4577     VLC_ADD_PLUGIN([jack])
4578     VLC_ADD_LIBS([access_jack jack],[-ljack])
4579   ],[AC_MSG_ERROR([cannot find JACK headers])])
4580 ])
4581
4582 dnl
4583 dnl  CyberLink for C++ UPnP stack
4584 dnl
4585 AC_ARG_ENABLE(cyberlink,
4586   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4587   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4588   AC_ARG_WITH(cyberlink-tree,
4589     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4590
4591   dnl
4592   dnl test for --with-cyberlink-tree
4593   dnl
4594   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4595     AC_LANG_PUSH(C++)
4596     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4597     AS_IF([test -z "${real_cyberlink_tree}"], [
4598       dnl  The given directory can't be found
4599       AC_MSG_RESULT(no)
4600       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4601     ])
4602     CPPFLAGS_save="${CPPFLAGS}"
4603     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4604     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4605     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4606       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4607         VLC_ADD_PLUGIN([upnp_cc])
4608       ],[
4609         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4610       ])
4611     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4612     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4613       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4614       dnl The mere fact that we have to make such an ugly check sucks
4615       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4616       LIBS_save="$LIBS"
4617       LIBS_cclink="no"
4618       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4619         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4620         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4621 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4622 using namespace CyberLink;
4623
4624 class testclass : public SearchResponseListener, public MediaPlayer
4625 {
4626     virtual void deviceSearchResponseReceived( SSDPPacket *)
4627     {
4628     }
4629
4630     public:
4631       testclass (void)
4632       {
4633         addSearchResponseListener (this);
4634         start ();
4635       }
4636 };
4637 ],[testclass l;])],[LIBS_cclink="$l"])
4638       done
4639       LIBS="${LIBS_save}"
4640       dnl should not happen - otherwise this needs fixing - hence FAILURE
4641       AS_IF([test "${LIBS_cclink}" = "no"],
4642         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4643       AC_MSG_RESULT([${LIBS_cclink}])
4644       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4645     ], [
4646       AC_MSG_RESULT(no)
4647       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4648     ])
4649     CPPFLAGS="${CPPFLAGS_save}"
4650     AC_LANG_POP([C++])
4651   ])
4652 ])
4653
4654 dnl
4655 dnl UPnP Plugin (Intel SDK)
4656 dnl
4657 AC_ARG_ENABLE(upnp,
4658   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4659
4660 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4661 AS_IF([test "x${enable_upnp}" != "xno"], [
4662   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4663   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4664     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4665   ])
4666   AS_IF([test "${has_upnp}" = "yes"], [
4667     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4668   ])
4669 ], [
4670   has_upnp="no"
4671 ])
4672
4673 AS_IF([test "${has_upnp}" = "yes"], [
4674   VLC_ADD_PLUGIN([upnp_intel])
4675 ])
4676
4677
4678 dnl
4679 dnl  Interface plugins
4680 dnl
4681
4682 AC_ARG_WITH(,[Interface plugins:])
4683
4684 dnl special case for BeOS
4685 if test "${SYS}" = "beos"
4686 then
4687     VLC_ADD_PLUGIN([beos])
4688 fi
4689
4690 dnl
4691 dnl Skins2 module
4692 dnl
4693 AC_ARG_ENABLE(skins2,
4694   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4695    enabled except on MacOSX, BeOS and WinCE)])])
4696 if test "${enable_skins2}" = "yes" ||
4697   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4698    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4699
4700   dnl test for the required libraries
4701   skins2_missing_lib="no"
4702
4703   dnl freetype
4704   if test "${have_freetype}" != "yes"; then
4705     skins2_missing_lib="yes"
4706     if test "${enable_skins2}" = "yes"; then
4707       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4708     fi
4709   fi
4710
4711   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4712     VLC_ADD_PLUGIN([skins2])
4713     ALIASES="${ALIASES} svlc"
4714     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4715     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4716     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4717
4718   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4719     VLC_ADD_PLUGIN([skins2])
4720     ALIASES="${ALIASES} svlc"
4721     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4722     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4723     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4724
4725   else if test "${skins2_missing_lib}" = "no"; then
4726     VLC_ADD_PLUGIN([skins2])
4727     ALIASES="${ALIASES} svlc"
4728     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4729     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4730     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4731   fi fi fi
4732 fi
4733 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4734          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4735           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4736
4737 dnl
4738 dnl  PDA Gtk+2 module
4739 dnl
4740 AC_ARG_ENABLE(pda,
4741   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4742 if test "${enable_pda}" = "yes"
4743 then
4744   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4745   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4746   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4747   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4748   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4749   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4750   VLC_ADD_PLUGIN([pda])
4751   if test "${SYS}" != "mingw32"; then
4752     NEED_GTK2_MAIN=yes
4753     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4754     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4755   fi
4756 fi
4757 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4758
4759 dnl
4760 dnl Maemo
4761 dnl
4762 AC_ARG_ENABLE(maemo,
4763   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4764 if test "${enable_maemo}" = "yes"
4765 then
4766   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4767     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4768     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4769     VLC_ADD_PLUGIN([maemo])
4770     VLC_ADD_PLUGIN([swscale_maemo])
4771     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4772     ALIASES="${ALIASES} mvlc"
4773   ], [
4774     AS_IF([test "${enable_maemo}" = "yes"],[
4775       AC_MSG_ERROR([Hildon libraries not found])
4776     ])
4777     enable_maemo="no"
4778   ])
4779 fi
4780 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4781
4782 dnl
4783 dnl QT 4
4784 dnl
4785 AC_ARG_ENABLE(qt4,
4786   [  --enable-qt4            QT 4 support (default enabled) ],, [
4787   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4788 ])
4789 AS_IF([test "${enable_qt4}" != "no"], [
4790   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4791     VLC_ADD_PLUGIN([qt4])
4792     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4793     ALIASES="${ALIASES} qvlc"
4794     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4795         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4796     ], [
4797         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4798     ])
4799     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4800     AC_SUBST(QT4LOCALEDIR)
4801     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4802     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4803     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4804     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4805   ], [
4806     AS_IF([test "${enable_qt4}" = "yes"],[
4807       AC_MSG_ERROR([Qt 4 library not found])
4808     ],[
4809       AC_MSG_WARN([Qt 4 library not found])
4810     ])
4811     enable_qt4="no"
4812   ])
4813 ])
4814 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4815
4816 dnl
4817 dnl  WinCE GUI module
4818 dnl
4819 AC_ARG_ENABLE(wince,
4820   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4821 if test "${enable_wince}" != "no"; then
4822   if test "${SYS}" = "mingwce"; then
4823     VLC_ADD_PLUGIN([wince])
4824     VLC_ADD_CXXFLAGS([wince],[])
4825     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4826     dnl Gross hack
4827     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4828   elif test "${SYS}" = "mingw32"; then
4829     VLC_ADD_CXXFLAGS([wince],[])
4830     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4831     dnl Gross hack
4832     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4833   fi
4834 fi
4835
4836 dnl
4837 dnl Simple test for skins2 dependency
4838 dnl
4839 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4840   AC_MSG_ERROR([The skins2 module depends on a the Qt4 development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the Qt4 development package or alternatively you can also configure with: --disable-qt4 --disable-skins2.])
4841 ])
4842
4843 dnl
4844 dnl  Opie QT embedded module
4845 dnl
4846 AC_ARG_ENABLE(opie,
4847   [  --enable-opie           Qt embedded interface support (default disabled)],
4848   [if test "${enable_opie}" = "yes"; then
4849      AC_ARG_WITH(qte,
4850      [    --with-qte=PATH       Qt Embedded headers and libraries])
4851      if test "${with_qte}" != "no" -a -n "${with_qte}"
4852      then
4853        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4854        VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4855      else
4856        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4857        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4858      fi
4859      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4860      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4861        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4862      ] )
4863      CPPFLAGS="${CPPFLAGS_save}"
4864
4865      VLC_ADD_PLUGIN([opie])
4866      NEED_QTE_MAIN=yes
4867      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4868      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4869      if test "${with_qte}" != "no" -a -n "${with_qte}"
4870      then
4871        MOC=${with_qte}/bin/moc
4872      else
4873        MOC=${QTDIR}/bin/moc
4874      fi
4875    fi])
4876
4877 dnl
4878 dnl  MacOS X video output/gui modules
4879 dnl
4880 AC_ARG_ENABLE(macosx,
4881   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4882 if test "x${enable_macosx}" = "xyes"
4883 then
4884   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4885   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4886   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4887   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4888   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4889   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4890   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4891   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4892   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4893   dnl For bug report
4894   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4895   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4896   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4897   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4898   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4899   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4900   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4901
4902   VLC_ADD_PLUGIN([access_eyetv])
4903   VLC_ADD_PLUGIN([qtcapture])
4904   VLC_ADD_PLUGIN([macosx])
4905   VLC_ADD_PLUGIN([minimal_macosx])
4906   VLC_ADD_PLUGIN([opengllayer])
4907 fi
4908
4909 dnl
4910 dnl  QNX RTOS module
4911 dnl
4912 AC_ARG_ENABLE(qnx,
4913   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4914     if test "${enable_qnx}" != "no"
4915     then
4916       AC_CHECK_HEADERS(Ph.h, [
4917         VLC_ADD_PLUGIN([qnx])
4918         VLC_ADD_LIBS([qnx],[-lasound -lph])
4919       ])
4920     fi
4921
4922 dnl
4923 dnl  ncurses module
4924 dnl
4925 AC_ARG_ENABLE(ncurses,
4926   [  --disable-ncurses       ncurses interface support (default enabled)],
4927   [if test "${enable_ncurses}" != "no"; then
4928     AC_CHECK_HEADER(ncurses.h,
4929       [AC_CHECK_LIB(ncursesw, mvprintw,
4930         [VLC_ADD_PLUGIN([ncurses])
4931         VLC_ADD_LIBS([ncurses],[-lncursesw])
4932         ALIASES="${ALIASES} nvlc"
4933         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4934         AC_CHECK_LIB(ncursesw, tgetent, [],
4935           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4936             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4937               [AS_IF([test "x${enable_ncurses}" != "x"],
4938                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4939                )])])
4940             ]
4941           )
4942         )
4943         ],
4944         [AC_CHECK_LIB( ncurses, mvprintw,
4945           [VLC_ADD_PLUGIN([ncurses])
4946           ALIASES="${ALIASES} nvlc"
4947           VLC_ADD_LIBS([ncurses],[-lncurses])
4948           AC_CHECK_LIB(ncurses, tgetent, [],
4949             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4950               [AS_IF([test "x${enable_ncurses}" != "x"],
4951                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4952             )]
4953           )],
4954           [AS_IF([test "x${enable_ncurses}" != "x"], [
4955             AC_MSG_ERROR([libncurses not found])])]
4956         )]
4957       )]
4958     )
4959   fi]
4960 )
4961
4962 dnl
4963 dnl  XOSD plugin
4964 dnl
4965 AC_ARG_ENABLE(xosd,
4966   [  --enable-xosd           xosd interface support (default disabled)])
4967 if test "${enable_xosd}" = "yes"
4968 then
4969   AC_CHECK_HEADERS(xosd.h,
4970     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4971       VLC_ADD_PLUGIN([xosd])
4972       VLC_ADD_LIBS([xosd],[-lxosd])
4973     ])
4974   )
4975 fi
4976
4977 dnl
4978 dnl Framebuffer (overlay) plugin
4979 dnl
4980 AC_ARG_ENABLE(fbosd,
4981   [  --enable-fbosd          fbosd interface support (default disabled)])
4982 if test "${enable_fbosd}" = "yes"
4983 then
4984   AC_CHECK_HEADERS(linux/fb.h, [
4985     VLC_ADD_PLUGIN([fbosd])
4986  ])
4987 fi
4988
4989 dnl
4990 dnl Visualisation plugin
4991 dnl
4992 AC_ARG_ENABLE(visual,
4993   [  --enable-visual         visualisation plugin (default enabled)])
4994 if test "${enable_visual}" != "no"
4995 then
4996     VLC_ADD_PLUGIN([visual])
4997 fi
4998
4999 dnl
5000 dnl OpenGL visualisation plugin
5001 dnl
5002 AC_ARG_ENABLE(galaktos,
5003   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5004 if test "${enable_galaktos}" = "yes"
5005 then
5006   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5007     VLC_ADD_PLUGIN([galaktos])
5008     if test "${SYS}" != "mingw32"; then
5009       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5010     else
5011       VLC_ADD_LIBS([galaktos],[-lopengl32])
5012     fi
5013   ])
5014 fi
5015
5016 dnl
5017 dnl  goom visualization plugin
5018 dnl
5019 AC_ARG_ENABLE(goom,
5020 [  --enable-goom           goom visualisation plugin (default disabled)])
5021 if test "${enable_goom}" = "yes"
5022 then
5023   AC_ARG_WITH(goom-tree,
5024     [    --with-goom-tree=PATH goom tree for static linking (required)])
5025
5026   dnl
5027   dnl test for --with-goom-tree
5028   dnl
5029   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5030     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5031     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5032     if test -z "${real_goom_tree}"; then
5033       dnl  The given directory can't be found
5034       AC_MSG_RESULT(no)
5035       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5036     fi
5037     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5038       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5039       VLC_ADD_PLUGIN([goom])
5040       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5041       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5042     else
5043       dnl  The given libgoom2 wasn't built, try to look for the old goom
5044       AC_MSG_RESULT(no)
5045       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5046       if test -f "${real_goom_tree}/libgoom.a"; then
5047         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5048         VLC_ADD_PLUGIN([goom])
5049         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5050         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5051       else
5052         dnl  The given libgoom wasn't built
5053         AC_MSG_RESULT(no)
5054         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5055       fi
5056     fi
5057   else
5058     AC_CHECK_HEADERS(goom/goom.h, [
5059       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5060       AC_CHECK_LIB(goom2, goom_init, [
5061         VLC_ADD_PLUGIN([goom])
5062         VLC_ADD_LIBS([goom],[-lgoom2])
5063       ],[
5064         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5065       ])
5066       LDFLAGS="${LDFLAGS_save}"
5067     ])
5068   fi
5069 fi
5070
5071 dnl
5072 dnl libprojectM visualization plugin
5073 dnl
5074 AC_ARG_ENABLE(projectm,
5075   [  --enable-projectm          projectM visualization plugin (default disabled)])
5076 AS_IF([test "${enable_projectm}" = "yes"],
5077   [
5078     PKG_CHECK_MODULES(PROJECTM, libprojectM,
5079     [
5080       VLC_ADD_PLUGIN([projectm])
5081       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
5082       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
5083       ],[
5084       AC_MSG_WARN(libprojectM library not found)
5085     ])
5086   ])
5087
5088 dnl
5089 dnl  AtmoLight (homebrew AmbiLight)
5090 dnl
5091 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5092    AC_ARG_ENABLE(atmo,
5093 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5094                 (default enabled)]))
5095    if test "${enable_atmo}" != "no"; then
5096       AC_LANG_PUSH(C++)
5097       VLC_ADD_PLUGIN([atmo])
5098       AC_LANG_POP(C++)
5099    fi
5100 fi
5101
5102 dnl
5103 dnl  Bonjour services discovery
5104 dnl
5105 AC_ARG_ENABLE(bonjour,
5106   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5107 AS_IF([test "${enable_bonjour}" != "no"], [
5108   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5109     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5110     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5111     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5112     VLC_ADD_PLUGIN([bonjour])
5113   ], [
5114     AC_MSG_WARN(avahi-client library not found)
5115   ])
5116 ])
5117
5118 dnl
5119 dnl  Lirc plugin
5120 dnl
5121 AC_ARG_ENABLE(lirc,
5122   [  --enable-lirc           lirc support (default disabled)])
5123 if test "${enable_lirc}" = "yes"
5124 then
5125   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5126   if test "${have_lirc}" = "true"
5127   then
5128     VLC_ADD_PLUGIN([lirc])
5129     VLC_ADD_LIBS([lirc],[-llirc_client])
5130   fi
5131 fi
5132
5133
5134 AC_ARG_WITH(,[Misc options:])
5135
5136 dnl
5137 dnl libgcrypt
5138 dnl
5139 AC_ARG_ENABLE(libgcrypt,
5140   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5141 AS_IF([test "${enable_libgcrypt}" != "no"], [
5142   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5143 ])
5144 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5145   AS_IF([test "${have_libgcrypt}" = "yes"],[
5146     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5147   ])
5148 fi
5149 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5150
5151 dnl
5152 dnl TLS/SSL
5153 dnl
5154 AC_ARG_ENABLE(gnutls,
5155   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5156
5157 AS_IF([test "${enable_gnutls}" != "no"], [
5158   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
5159     VLC_ADD_PLUGIN([gnutls])
5160     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5161     AS_IF([test "${SYS}" = "mingw32"], [
5162       dnl pkg-config --libs gnutls omits these
5163       VLC_ADD_LIBS([gnutls], [-lz])
5164       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5165     ])
5166     dnl The GnuTLS plugin invokes gcry_control directly.
5167     AS_IF([test "${have_libgcrypt}" = "yes"],[
5168       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5169       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5170     ])
5171     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5172   ], [
5173     AS_IF([test "${enable_gnutls}" = "yes"], [
5174       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5175     ])
5176   ])
5177 ])
5178
5179
5180 dnl
5181 dnl RemoteOSD plugin (VNC client as video filter)
5182 dnl
5183 AC_ARG_ENABLE(remoteosd,
5184   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5185
5186 AS_IF([test "${enable_remoteosd}" != "no"], [
5187   AS_IF([test "${have_libgcrypt}" = "yes"],[
5188     VLC_ADD_PLUGIN([remoteosd])
5189     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5190     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5191   ], [
5192     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5193   ])
5194 ])
5195
5196
5197 dnl
5198 dnl RAOP plugin
5199 dnl
5200 AC_MSG_CHECKING([whether to enable RAOP plugin])
5201 AS_IF([test "${have_libgcrypt}" = "yes"], [
5202   AC_MSG_RESULT(yes)
5203   VLC_ADD_PLUGIN([stream_out_raop])
5204   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
5205   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5206 ], [
5207   AC_MSG_RESULT(no)
5208   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5209 ])
5210
5211
5212 dnl
5213 dnl update checking system
5214 dnl
5215 AC_ARG_ENABLE(update-check,
5216   [  --enable-update-check   update checking system (default disabled)])
5217 if test "${enable_update_check}" = "yes"
5218 then
5219   if test "${have_libgcrypt}" != "yes"
5220   then
5221     AC_MSG_ERROR([libgcrypt is required for update checking system])
5222   fi
5223   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
5224   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
5225   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5226 fi
5227
5228
5229 dnl
5230 dnl  Endianness check
5231 dnl
5232 AC_C_BIGENDIAN
5233 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5234   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5235 ], [
5236   DEFS_BIGENDIAN=""
5237 ])
5238 AC_SUBST(DEFS_BIGENDIAN)
5239
5240 dnl
5241 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5242 dnl
5243 loader=false
5244 AC_ARG_ENABLE(loader,
5245   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5246                   (default disabled)]))
5247 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5248 AS_IF([test "${enable_loader}" = "yes"],
5249   [ VLC_ADD_PLUGIN([dmo])
5250     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5251     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5252     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5253     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5254     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5255     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5256     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5257     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5258   ])
5259
5260 AC_ARG_WITH(,[Components:])
5261
5262 dnl
5263 dnl  the VLC binary
5264 dnl
5265 AC_ARG_ENABLE(vlc,
5266   [  --enable-vlc            build the VLC media player (default enabled)])
5267 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5268
5269 dnl
5270 dnl  Microsoft ActiveX support
5271 dnl
5272 activex=false
5273 AC_ARG_ENABLE(activex,
5274   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5275                   (default enabled on Win32)]))
5276 AC_ARG_WITH(wine-sdk-path,
5277   [    --with-wine-sdk-path=PATH path to wine sdk])
5278 if test "${enable_activex}" != "no"
5279 then
5280   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5281   then
5282     AC_CHECK_PROGS(MIDL, [midl], no)
5283     if test "${with_wine_sdk_path}" != ""
5284     then
5285        WINE_SDK_PATH=${with_wine_sdk_path}
5286        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5287     else
5288        WIDL=no
5289     fi
5290     AC_LANG_PUSH(C++)
5291     AC_CHECK_HEADERS(ole2.h,
5292       [AC_CHECK_HEADERS(olectl.h,
5293         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5294           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5295           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5296           AC_CHECK_HEADERS(objsafe.h,
5297             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5298             [
5299              #if HAVE_OLE2_H
5300              #   include <ole2.h>
5301              #endif
5302             ]
5303           )
5304           activex=:
5305           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5306         ],
5307         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5308       )],
5309       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5310     )
5311     AC_LANG_POP(C++)
5312   fi
5313 fi
5314 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5315 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5316 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5317 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5318 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5319
5320 dnl
5321 dnl  Mozilla plugin
5322 dnl
5323 mozilla=false
5324 AC_ARG_ENABLE(mozilla,
5325   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5326                   (default disabled)]))
5327 AC_ARG_WITH(mozilla-sdk-path,
5328   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5329 AC_ARG_WITH(mozilla-pkg,
5330   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5331 AC_LANG_PUSH(C++)
5332 if test "${enable_mozilla}" = "yes"
5333 then
5334   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5335     [
5336     dnl pkg-config
5337     dnl As we want to do a loop due to the number of name possible for the .pc
5338     dnl we can't use the pkg-config macros.
5339
5340     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5341     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5342     AC_MSG_NOTICE([Checking for Mozilla])
5343     found=0
5344     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5345     then
5346       found=1
5347     else
5348       if test -n "$PKG_CONFIG"; then
5349         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5350           echo "Trying to find $i.pc files" >&5
5351           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5352           then
5353             echo "Using $i.pc files." >&5
5354             echo "Using $i.pc files." >&6
5355             found=1
5356             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5357             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5358             break
5359           fi
5360         done
5361       fi
5362     fi
5363     AS_IF( [test $found = 1],[
5364         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5365         MOZILLA_REQUIRED_HEADERS=1
5366         AC_CHECK_HEADERS([npfunctions.h])
5367         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5368         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5369           [#if HAVE_NPAPI_H
5370            # include <npapi.h>
5371            #endif
5372           ])
5373         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5374             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5375         fi
5376         MOZILLA_REQUIRED_HEADERS=
5377         mozilla=:
5378         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5379            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5380            AS_IF([ test "${SYS}" != "darwin"],[
5381              PKG_CHECK_MODULES(XPM, [xpm xt],[
5382                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5383              ],[
5384                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5385              ])
5386           ])
5387         ])
5388         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5389         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5390         VLC_ADD_PLUGIN([mozilla])
5391         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5392         MOZILLA_CONFIG=
5393         CPPFLAGS="${CPPFLAGS_save}"
5394           ],
5395           [
5396             AC_PATH_PROGS(MOZILLA_CONFIG,
5397             [mozilla-config seamonkey-config xulrunner-config],
5398         [no])
5399             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5400           ]
5401         )
5402     dnl pkg-config failed but we might have found a mozilla-config
5403     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5404       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5405         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5406         AC_CHECK_LIB(Xt,XtStrings,
5407          [
5408            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5409            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5410          ],
5411          [],
5412          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5413         ])
5414         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5415         LDFLAGS="${LDFLAGS_save}"
5416       fi
5417
5418       mozilla=:
5419       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5420       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5421       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5422       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5423       MOZILLA_REQUIRED_HEADERS=1
5424       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5425       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5426       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5427         [#if HAVE_NPAPI_H
5428          # include <npapi.h>
5429          #endif
5430         ])
5431       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5432       then
5433         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5434       fi
5435       MOZILLA_REQUIRED_HEADERS=
5436       CPPFLAGS="${CPPFLAGS_save}"
5437       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5438     ])
5439     dnl End of moz_sdk = ""
5440   ],[
5441     dnl special case for mingw32
5442     if test "${SYS}" = "mingw32"
5443     then
5444       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5445       dnl latest gecko sdk does not have an xpcom directory
5446       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5447           mozilla_sdk_xpcom="/xpcom"
5448       fi
5449     fi
5450
5451     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5452     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5453     MOZILLA_REQUIRED_HEADERS=1
5454     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5455     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5456     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5457         [#if HAVE_NPAPI_H
5458           #include <npapi.h>
5459           #endif
5460         ])
5461     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5462     then
5463         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5464     fi
5465     MOZILLA_REQUIRED_HEADERS=
5466     mozilla=:
5467     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5468     VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -DHAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
5469     if ${need_xpcom_libs}; then
5470        VLC_ADD_LIBS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -L${real_mozilla_sdk}/lib -lnspr4 -lplds4 -lplc4 -lxpcomglue])
5471       if test "${SYS}" = "mingw32"; then
5472         dnl latest gecko sdk does not have embedstring
5473         if test -d "${real_mozilla_sdk}/embedstring/bin"
5474         then
5475           VLC_ADD_LIBS([mozilla],[-lembedstring])
5476         fi
5477       fi
5478     fi
5479     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5480
5481     if test -n "${CYGPATH}"; then
5482       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5483     fi
5484     CPPFLAGS="${CPPFLAGS_save}"
5485  ])
5486 fi
5487 AC_LANG_POP(C++)
5488 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5489
5490 dnl Tests for Osso and Xsp
5491 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5492   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5493     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5494     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5495  ])
5496 ])
5497 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5498   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5499   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5500 ])
5501
5502 dnl
5503 dnl  test plugins
5504 dnl
5505 AC_ARG_ENABLE(testsuite,
5506   [  --enable-testsuite      build test modules (default disabled)])
5507 if test "${enable_testsuite}" = "yes"
5508 then
5509   TESTS="test1 test2 test3 test4"
5510
5511   dnl  we define those so that bootstrap sets the right linker
5512   VLC_ADD_CXXFLAGS([test2],[])
5513   VLC_ADD_OBJCFLAGS([test3],[])
5514   dnl  this one is needed until automake knows what to do
5515   VLC_ADD_LIBS([test3],[-lobjc])
5516
5517   VLC_ADD_PLUGIN([test1])
5518   VLC_ADD_PLUGIN([test2])
5519   VLC_ADD_PLUGIN([test3])
5520   VLC_ADD_PLUGIN([test4])
5521 fi
5522
5523 dnl
5524 dnl  gtk_main plugin
5525 dnl
5526 if test "${NEED_GTK_MAIN}" != "no"
5527 then
5528     VLC_ADD_PLUGIN([gtk_main])
5529     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5530     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5531 fi
5532
5533 if test "${NEED_GNOME_MAIN}" != "no"
5534 then
5535     VLC_ADD_PLUGIN([gnome_main])
5536     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5537     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5538 fi
5539
5540 if test "${NEED_GTK2_MAIN}" != "no"
5541 then
5542     VLC_ADD_PLUGIN([gtk2_main])
5543     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5544     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5545     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5546     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5547 fi
5548
5549 if test "${NEED_GNOME2_MAIN}" != "no"
5550 then
5551     VLC_ADD_PLUGIN([gnome2_main])
5552     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5553     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5554 fi
5555
5556 dnl
5557 dnl  qte_main plugin
5558 dnl
5559 if test "${NEED_QTE_MAIN}" != "no"
5560 then
5561     VLC_ADD_PLUGIN([qte_main])
5562     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5563     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5564     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5565 fi
5566
5567 dnl
5568 dnl  Plugin and builtin checks
5569 dnl
5570 plugin_support=yes
5571
5572 dnl Automagically disable plugins if there is no system support for
5573 dnl dynamically loadable files (.so, .dll, .dylib).
5574 dnl don't forget vlc-win32 still can load .dll as plugins
5575 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5576   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5577   plugin_support=no
5578 ])
5579
5580 AS_IF([test "${plugin_support}" != "no"], [
5581   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5582 ])
5583
5584 dnl
5585 dnl Pic and shared libvlc stuff
5586 dnl
5587 AS_IF([test "${SYS}" = "mingw32"], [
5588   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5589   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5590 ])
5591
5592 dnl
5593 dnl  Stuff used by the program
5594 dnl
5595 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5596 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5597 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5598 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5599 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5600 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5601 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5602 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5603 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5604 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5605 AC_SUBST(COPYRIGHT_MESSAGE)
5606 AC_SUBST(VERSION_MESSAGE)
5607 AC_SUBST(VERSION_MAJOR)
5608 AC_SUBST(VERSION_MINOR)
5609 AC_SUBST(VERSION_REVISION)
5610 AC_SUBST(VERSION_EXTRA)
5611 AC_SUBST(COPYRIGHT_YEARS)
5612 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5613 if test "${build_os}" = "cygwin"
5614 then
5615     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5616 else
5617     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5618 fi
5619 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5620 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5621 dnl Win32 need s a numerical version_extra.
5622 case $( echo ${VERSION_EXTRA}|wc -m ) in
5623        "1") VERSION_EXTRA_RC="0";;
5624        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5625        *) VERSION_EXTRA_RC="99"
5626 esac
5627 AC_SUBST(VERSION_EXTRA_RC)
5628 dnl
5629 dnl  Handle substvars that use $(top_srcdir)
5630 dnl
5631 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5632 AC_SUBST(VLC_CONFIG)
5633 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5634
5635 dnl
5636 dnl  Restore *FLAGS
5637 dnl
5638 VLC_RESTORE_FLAGS
5639
5640 dnl
5641 dnl Sort the modules list
5642 dnl
5643 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5644
5645 dnl
5646 dnl  Create the vlc-config script
5647 dnl
5648 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5649
5650 dnl
5651 dnl  Configuration is finished
5652 dnl
5653 AC_SUBST(SYS)
5654 AC_SUBST(ARCH)
5655 AC_SUBST(ALIASES)
5656 AC_SUBST(ASM)
5657 AC_SUBST(MOC)
5658 AC_SUBST(RCC)
5659 AC_SUBST(UIC)
5660 AC_SUBST(WINDRES)
5661 AC_SUBST(MOZILLA_SDK_PATH)
5662 AC_SUBST(WINE_SDK_PATH)
5663 AC_SUBST(LIBEXT)
5664 AC_SUBST(AM_CPPFLAGS)
5665 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5666 AC_SUBST(FILE_LIBVLCCORE_DLL)
5667 AC_SUBST(FILE_LIBVLC_DLL)
5668
5669 dnl Create vlc-config.in
5670 VLC_OUTPUT_VLC_CONFIG_IN
5671
5672 AC_CONFIG_FILES([
5673   extras/package/win32/vlc.win32.nsi
5674   extras/package/macosx/Info.plist
5675   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5676   extras/package/macosx/plugin/Info.plist
5677   extras/package/macosx/plugin/InstallerInfo.plist
5678   Makefile
5679   projects/activex/Makefile
5680   projects/activex/axvlc.inf
5681   doc/Makefile
5682   extras/package/ipkg/Makefile
5683   libs/loader/Makefile
5684   libs/srtp/Makefile
5685   libs/unzip/Makefile
5686   modules/Makefile
5687   projects/mozilla/Makefile
5688   m4/Makefile
5689   po/Makefile.in
5690   projects/activex/axvlc_rc.rc
5691   projects/mozilla/npvlc_rc.rc
5692   projects/mozilla/vlc.r
5693   projects/mozilla/install.js
5694   share/Makefile
5695   share/vlc_win32_rc.rc
5696   share/libvlc_win32_rc.rc
5697   compat/Makefile
5698   src/Makefile
5699   src/test/Makefile
5700   bin/Makefile
5701   test/Makefile
5702   modules/access/Makefile
5703   modules/access/bd/Makefile
5704   modules/access/bda/Makefile
5705   modules/access/dshow/Makefile
5706   modules/access/dvb/Makefile
5707   modules/access/mms/Makefile
5708   modules/access/cdda/Makefile
5709   modules/access/rtp/Makefile
5710   modules/access/rtsp/Makefile
5711   modules/access/rtmp/Makefile
5712   modules/access/vcd/Makefile
5713   modules/access/vcdx/Makefile
5714   modules/access/screen/Makefile
5715   modules/access/zip/Makefile
5716   modules/access_output/Makefile
5717   modules/audio_filter/Makefile
5718   modules/audio_filter/channel_mixer/Makefile
5719   modules/audio_filter/converter/Makefile
5720   modules/audio_filter/resampler/Makefile
5721   modules/audio_filter/spatializer/Makefile
5722   modules/audio_mixer/Makefile
5723   modules/audio_output/Makefile
5724   modules/codec/Makefile
5725   modules/codec/avcodec/Makefile
5726   modules/codec/cmml/Makefile
5727   modules/codec/dmo/Makefile
5728   modules/codec/shine/Makefile
5729   modules/codec/subtitles/Makefile
5730   modules/codec/spudec/Makefile
5731   modules/codec/wmafixed/Makefile
5732   modules/codec/xvmc/Makefile
5733   modules/control/Makefile
5734   modules/control/http/Makefile
5735   modules/control/globalhotkeys/Makefile
5736   modules/demux/Makefile
5737   modules/demux/asf/Makefile
5738   modules/demux/avformat/Makefile
5739   modules/demux/avi/Makefile
5740   modules/demux/mkv/Makefile
5741   modules/demux/mp4/Makefile
5742   modules/demux/mpeg/Makefile
5743   modules/demux/playlist/Makefile
5744   modules/gui/Makefile
5745   modules/gui/beos/Makefile
5746   modules/gui/pda/Makefile
5747   modules/gui/macosx/Makefile
5748   modules/gui/maemo/Makefile
5749   modules/gui/minimal_macosx/Makefile
5750   modules/gui/qnx/Makefile
5751   modules/gui/qt4/Makefile
5752   modules/gui/skins2/Makefile
5753   modules/gui/wince/Makefile
5754   modules/meta_engine/Makefile
5755   modules/misc/Makefile
5756   modules/misc/dummy/Makefile
5757   modules/misc/lua/Makefile
5758   modules/misc/memcpy/Makefile
5759   modules/misc/notify/Makefile
5760   modules/misc/testsuite/Makefile
5761   modules/misc/playlist/Makefile
5762   modules/misc/osd/Makefile
5763   modules/misc/stats/Makefile
5764   modules/misc/xml/Makefile
5765   modules/misc/probe/Makefile
5766   modules/mux/Makefile
5767   modules/mux/mpeg/Makefile
5768   modules/packetizer/Makefile
5769   modules/services_discovery/Makefile
5770   modules/stream_filter/Makefile
5771   modules/stream_out/Makefile
5772   modules/stream_out/transrate/Makefile
5773   modules/video_chroma/Makefile
5774   modules/video_filter/Makefile
5775   modules/video_filter/atmo/Makefile
5776   modules/video_filter/dynamicoverlay/Makefile
5777   modules/video_output/Makefile
5778   modules/video_output/msw/Makefile
5779   modules/video_output/qte/Makefile
5780   modules/video_output/x11/Makefile
5781   modules/visualization/Makefile
5782   modules/visualization/visual/Makefile
5783   modules/visualization/galaktos/Makefile
5784 ])
5785
5786 dnl Generate makefiles
5787 AC_OUTPUT
5788
5789 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5790 # not provided with the source
5791 ${SHELL} ./config.status --file=vlc-config
5792 chmod 0755 vlc-config
5793
5794 /bin/echo -n "Enabled modules: "
5795 ./vlc-config --list plugin
5796
5797 dnl Shortcut to nice compile message
5798 rm -f compile
5799 echo '#! /bin/sh' >compile
5800 echo rm -f .error\$\$ >>compile
5801 echo ERROR=0 >>compile
5802 echo export PATH=$PATH LANG=C >>compile
5803 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5804 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5805 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5806 echo rm -f .error\$\$ >>compile
5807 echo exit \$ERROR >>compile
5808 chmod a+x compile
5809
5810 printf "
5811 libvlc configuration
5812 --------------------
5813 version               : ${VERSION}
5814 system                : ${SYS}
5815 architecture          : ${ARCH}
5816 build flavour         : "
5817 test "${enable_debug}" = "yes" && printf "debug "
5818 test "${enable_cprof}" = "yes" && printf "cprof "
5819 test "${enable_gprof}" = "yes" && printf "gprof "
5820 test "${enable_optimizations}" = "yes" && printf "optim "
5821 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5822 echo ""
5823 if test "${enable_vlc}" != "no"; then
5824 echo "vlc aliases           :${ALIASES}"
5825 else
5826 echo "build vlc executable  : no"
5827 fi
5828 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5829
5830 You can tune the compiler flags in vlc-config.
5831 To build vlc and its plugins, type \`./compile' or \`make'.
5832 "
5833 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5834    echo ""
5835    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5836    echo "         turned off."
5837    echo "         FFmpeg will be REALLY slow."
5838    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5839    echo ""
5840 fi