]> git.sesse.net Git - vlc/blob - configure.ac
Delete CSRI module. Unmaintained and libass is better.
[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 AC_ARG_ENABLE(vorbis,
3451   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3452 if test "${enable_vorbis}" != "no"
3453 then
3454   AC_ARG_WITH(vorbis-tree,
3455   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3456   if test -n "${with_vorbis_tree}"
3457   then
3458     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3459     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3460     if test -z "${real_vorbis_tree}"
3461     then
3462       dnl  The given directory can't be found
3463       AC_MSG_RESULT(no)
3464       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3465     fi
3466     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3467     then
3468       dnl  Use a custom vorbis
3469       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3470       VLC_ADD_PLUGIN([vorbis])
3471       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3472       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3473     else
3474       dnl  The given vorbis wasn't built
3475       AC_MSG_RESULT(no)
3476       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3477     fi
3478   else
3479     AC_CHECK_HEADERS(vorbis/codec.h, [
3480       VLC_ADD_PLUGIN([vorbis])
3481       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3482
3483     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3484       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3485   fi
3486 fi
3487
3488 dnl
3489 dnl  Tremor plugin
3490 dnl
3491 AC_ARG_ENABLE(tremor,
3492   [  --enable-tremor         Tremor decoder support (default disabled)])
3493 if test "${enable_tremor}" = "yes"
3494 then
3495   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3496     VLC_ADD_PLUGIN([tremor])
3497     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3498    ],[])
3499 fi
3500
3501 dnl
3502 dnl  Speex plugin
3503 dnl
3504 PKG_ENABLE_MODULES_VLC([SPEEX], [speex >= 1.0.5], [Speex decoder support], [auto])
3505
3506 dnl
3507 dnl  tarkin decoder plugin
3508 dnl
3509 AC_ARG_ENABLE(tarkin,
3510 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3511 if test "${enable_tarkin}" = "yes"
3512 then
3513   AC_ARG_WITH(tarkin-tree,
3514   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3515   if test -n "${with_tarkin_tree}"
3516   then
3517     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3518     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3519     if test -f "${real_tarkin_tree}/tarkin.o"
3520     then
3521       VLC_ADD_PLUGIN([tarkin])
3522       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3523       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])
3524       AC_MSG_RESULT(yes)
3525     else
3526       dnl  The given tarkin tree wasn't built
3527       AC_MSG_RESULT(no)
3528       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3529                     make sure you compiled tarkin in ${with_tarkin_tree}])
3530     fi
3531   fi
3532 fi
3533
3534 dnl
3535 dnl  theora decoder plugin
3536 dnl
3537 PKG_ENABLE_MODULES_VLC([THEORA], [theora >= 1.0], [experimental theora codec], [auto])
3538
3539 dnl
3540 dnl  dirac encoder plugin
3541 dnl
3542 PKG_ENABLE_MODULES_VLC([DIRAC], [dirac >= 0.10.0], [dirac encoder], [auto], [], [ -lstdc++])
3543
3544 dnl
3545 dnl  schroedinger decoder plugin (for dirac format video)
3546 dnl
3547 PKG_ENABLE_MODULES_VLC([SCHROEDINGER], [schroedinger-1.0 >= 1.0.6], [dirac decoder using schroedinger], [auto])
3548
3549 dnl
3550 dnl  PNG decoder module
3551 dnl
3552 AC_ARG_ENABLE(png,
3553   [  --enable-png            PNG support (default enabled)])
3554 if test "${enable_png}" != "no"; then
3555 AC_CHECK_HEADERS(png.h, [
3556   LDFLAGS="${LDFLAGS_save} -lz"
3557   AC_CHECK_LIB(png, png_set_rows, [
3558     VLC_ADD_LIBS([png],[-lpng -lz])
3559     VLC_ADD_PLUGIN([png])
3560     VLC_ADD_PLUGIN([osdmenu])
3561     VLC_ADD_PLUGIN([osd_parser])
3562     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3563     [],[-lz])
3564     LDFLAGS="${LDFLAGS_save}"
3565   ])
3566 fi
3567 AM_CONDITIONAL(BUILD_OSDMENU, [test "${enable_png}" != "no"])
3568
3569 dnl
3570 dnl H264 encoder plugin (using libx264)
3571 dnl
3572 AC_ARG_ENABLE(x264,
3573   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3574 if test "${enable_x264}" != "no"; then
3575   AC_ARG_WITH(x264-tree,
3576     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3577   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3578   then
3579     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3580     if test -z "${real_x264_tree}"
3581     then
3582       dnl  The given directory can't be found
3583       AC_MSG_RESULT(no)
3584       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3585     fi
3586     dnl  Use a custom libx264
3587     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3588     if test -f ${real_x264_tree}/x264.h
3589     then
3590       AC_MSG_RESULT(yes)
3591       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3592       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3593       PKG_CHECK_MODULES(X264,x264, [
3594         VLC_ADD_PLUGIN([x264])
3595         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3596         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3597         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3598           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3599         fi
3600       ],[
3601         AC_MSG_ERROR([the specified tree hasn't been compiled])
3602       ])
3603       LDFLAGS="${LDFLAGS_save}"
3604     else
3605       AC_MSG_RESULT(no)
3606       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3607     fi
3608   else
3609       PKG_CHECK_MODULES(X264,x264, [
3610         VLC_ADD_PLUGIN([x264])
3611         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3612
3613         AC_CACHE_CHECK([if linker supports -Bsymbolic],
3614           [ac_cv_ld_bsymbolic],
3615           [LDFLAGS="${LDFLAGS_vlc} -Wl,-Bsymbolic"
3616             AC_TRY_LINK([],,ac_cv_ld_bsymbolic=yes,ac_cv_ld_bsymbolic=no)
3617             LDFLAGS="${LDFLAGS_save}"
3618           ])
3619         AS_IF([test "${ac_cv_ld_bsymbolic}" != "no"], [
3620           VLC_ADD_LDFLAGS([x264],[-Wl,-Bsymbolic])
3621         ])
3622
3623         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3624         if echo ${X264_LIBS} |grep -q 'pthreadGC2'; then
3625           VLC_ADD_CFLAGS([x264], [-DPTW32_STATIC_LIB])
3626         fi
3627       ],[
3628         if test "${enable_x264}" = "yes"; then
3629             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3630           fi
3631       ])
3632     LDFLAGS="${LDFLAGS_save}"
3633   fi
3634 fi
3635
3636 dnl
3637 dnl libfluidsynth (MIDI synthetizer) plugin
3638 dnl
3639 PKG_ENABLE_MODULES_VLC([FLUIDSYNTH], [fluidsynth], [MIDI synthetiser with libfluidsynth], [auto])
3640
3641 dnl
3642 dnl Teletext Modules
3643 dnl vbi decoder plugin (using libzbvi)
3644 dnl telx module
3645 dnl uncompatible
3646 dnl
3647 AC_ARG_ENABLE(zvbi,
3648   AS_HELP_STRING([--enable-zvbi],[VBI (inc. Teletext) decoding support with
3649                   libzvbi (default enabled)]))
3650 AC_ARG_ENABLE(telx,
3651   AS_HELP_STRING([--enable-telx],[Teletext decoding module (conflicting with
3652                   zvbi) (default enabled if zvbi is absent)]))
3653
3654 AS_IF( [test "${enable_zvbi}" != "no"],[
3655     PKG_CHECK_MODULES(ZVBI,
3656         zvbi-0.2 >= 0.2.25,
3657         [
3658           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3659           if test "${SYS}" = "mingw32"; then
3660               VLC_ADD_LIBS([zvbi],[ -lpthreadGC2])
3661           fi
3662           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3663           VLC_ADD_PLUGIN([zvbi])
3664           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built])
3665           AS_IF( [test "${enable_telx}" = "yes"],[
3666                   AC_MSG_WARN([The zvbi and telx modules are uncompatibles.
3667                                Using zvbi.])
3668                   ])
3669         ],[
3670           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3671         ])
3672     ])
3673 AS_IF( [test "${enable_telx}" != "no" ],[
3674   VLC_ADD_PLUGIN([telx])
3675   ])
3676
3677 dnl
3678 dnl libass subtitle rendering module
3679 dnl
3680 AC_ARG_ENABLE(libass,
3681   [  --enable-libass         Subtitle support using libass (default disabled)])
3682 AS_IF( [test "${enable_libass}" = "yes"], [
3683   PKG_CHECK_MODULES(LIBASS, libass >= 0.9.5,
3684       [
3685         VLC_ADD_LDFLAGS([libass],[$LIBASS_LIBS])
3686         VLC_ADD_CFLAGS([libass],[$LIBASS_CFLAGS])
3687         VLC_ADD_PLUGIN([libass])
3688
3689         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
3690           [VLC_ADD_CPPFLAGS([libass],[-DHAVE_FONTCONFIG])
3691         if test "${SYS}" = "mingw32"; then
3692            VLC_ADD_LIBS([libass],[-lfontconfig -lfreetype -liconv -lz])
3693         else
3694            VLC_ADD_LIBS([libass],[-lfontconfig])
3695         fi
3696        ])
3697       ],[
3698         AC_MSG_WARN([LIBASS library not found])
3699       ])
3700   ])
3701
3702 dnl
3703 dnl asa demuxer
3704 dnl
3705 AC_ARG_ENABLE(asademux,
3706   [  --enable-asademux       asa subtitle demuxing (default disabled)])
3707 AS_IF( [test "${enable_asademux}" = "yes"], [
3708   PKG_CHECK_MODULES(PCRE,
3709       libpcre >= 6.5,
3710       [
3711         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3712         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3713         if test "${SYS}" = "mingw32"; then
3714             VLC_ADD_CPPFLAGS([asademux],[-DPCRE_STATIC])
3715         fi
3716         VLC_ADD_PLUGIN([asademux])
3717       ],[
3718         AC_MSG_WARN([PCRE library not found (required for asademux)])
3719       ])
3720   ])
3721
3722 dnl
3723 dnl  CMML plugin
3724 dnl
3725 AC_ARG_ENABLE(cmml,
3726   [  --enable-cmml           CMML support (default enabled)])
3727 if test "${enable_cmml}" != "no"
3728 then
3729   VLC_ADD_PLUGIN([cmml])
3730 fi
3731
3732 dnl
3733 dnl  kate decoder plugin
3734 dnl
3735 AC_ARG_ENABLE(kate,
3736 [  --enable-kate           kate codec (default enabled)])
3737 AS_IF([test "${enable_kate}" != "no"], [
3738   PKG_CHECK_MODULES(KATE,[kate >= 0.1.5], [
3739       VLC_ADD_PLUGIN([kate])
3740       VLC_ADD_CFLAGS([kate],[$KATE_CFLAGS])
3741       VLC_ADD_LIBS([kate],[$KATE_LIBS]) ],[
3742         AC_CHECK_HEADERS(kate/kate.h, [
3743           AC_CHECK_LIB(kate, kate_decode_init, [
3744             VLC_ADD_PLUGIN([kate])
3745             kate_libs="-lkate -logg"
3746             VLC_ADD_LDFLAGS([kate],[${kate_libs}]) ],[
3747             AS_IF([test "x${enable_kate}" != "x"], [
3748               AC_MSG_ERROR([libkate doesn't appear to be installed on your system.
3749               You also need to check that you have a libogg posterior to the 1.0 release.])
3750             ])
3751           ], [-lkate -logg])
3752         ],[
3753           AS_IF([test "x${enable_kate}" != "x"], [
3754             AC_MSG_ERROR([libkate headers do not appear to be installed on your system.
3755             You also need to check that you have a libogg posterior to the 1.0 release.])
3756           ])
3757         ])
3758   ])
3759 ])
3760
3761
3762 dnl
3763 dnl  tiger decoder plugin
3764 dnl
3765 PKG_ENABLE_MODULES_VLC([TIGER], [tiger >= 0.3.1], [Tiger rendering library for Kate streams],[auto])
3766
3767
3768 dnl
3769 dnl  Video plugins
3770 dnl
3771
3772 AC_ARG_WITH(,[Video plugins:])
3773
3774 dnl
3775 dnl  Xlib
3776 dnl
3777
3778 AC_PATH_XTRA()
3779 AC_ARG_ENABLE(x11,
3780   [  --enable-x11            X11 support with Xlib (default enabled)],, [
3781   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3782     enable_x11="yes"
3783   ], [
3784     enable_x11="no"
3785   ])
3786 ])
3787
3788 CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3789
3790 AS_IF([test "${enable_x11}" != "no"], [
3791   AC_CHECK_HEADERS(X11/Xlib.h, [
3792     VLC_ADD_PLUGIN([x11])
3793     VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3794     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3795
3796     AC_CHECK_LIB(Xext, XShmAttach, [VLC_ADD_LIBS([x11],[-lXext])])
3797   ])
3798
3799 dnl Check for DPMS
3800   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3801     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3802     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3803       AC_MSG_RESULT(yes)
3804       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3805                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3806     ],[
3807       AC_MSG_RESULT(no)
3808     ])
3809   ],,[
3810     #include <X11/Xlib.h>
3811   ])
3812 ])
3813
3814 dnl
3815 dnl  XVideo module
3816 dnl  (enabled by default except on win32)
3817 dnl
3818 AC_ARG_ENABLE(xvideo,
3819   [  --enable-xvideo         XVideo support (default enabled)],, [
3820     enable_xvideo="$enable_x11"
3821 ])
3822 AS_IF([test "${enable_xvideo}" != "no"], [
3823   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3824     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3825     AC_CHECK_LIB(Xv,XvPutImage,[
3826         VLC_ADD_PLUGIN([xvideo])
3827         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3828         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3829     ])
3830     CFLAGS="${CFLAGS_save}"
3831   ])
3832 ])
3833
3834 dnl
3835 dnl  GLX module
3836 dnl  (enabled by default except on win32)
3837 dnl
3838 AC_ARG_ENABLE(glx,
3839   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)],, [
3840   enable_glx="$enable_x11"
3841 ])
3842 AS_IF([test "${enable_glx}" != "no"], [
3843   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3844   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3845     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3846     choke me
3847     #endif]]),
3848     [
3849       VLC_ADD_PLUGIN([glx])
3850       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3851       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3852     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3853 ])
3854
3855 dnl
3856 dnl  XVMC module
3857 dnl  (disabled by default except on win32)
3858 dnl
3859 AC_ARG_ENABLE(xvmc,
3860   [  --enable-xvmc           XvMC support (default disabled)],, [
3861   enable_xvmc="no"
3862 ])
3863 AS_IF([test "${enable_xvmc}" != "no"], [
3864   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3865     VLC_ADD_PLUGIN([xvmc])
3866     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv ${LIBMPEG2_LIBS}])
3867     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS} ${LIBMPEG2_CFLAGS}])
3868   ], [
3869     AC_MSG_ERROR([XVideo-MotionCompensation extension not found!])
3870   ])
3871 ])
3872
3873 dnl
3874 dnl  Check for the Xinerama extension
3875 dnl
3876 AC_ARG_ENABLE(xinerama,
3877   [  --enable-xinerama       Xinerama support (default enabled)],, [
3878   enable_xinerama="$enable_xvideo"
3879 ])
3880 AS_IF([test "$enable_xinerama" != "no"], [
3881   ac_cv_have_xinerama="no"
3882   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3883   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3884     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3885       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3886       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3887       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3888       VLC_ADD_LIBS([xvmc],[-lXinerama_pic])
3889       ac_cv_have_xinerama="yes"
3890     ],[
3891       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3892         VLC_ADD_LIBS([xvideo],[-lXinerama])
3893         VLC_ADD_LIBS([x11],[-lXinerama])
3894         VLC_ADD_LIBS([glx],[-lXinerama])
3895         VLC_ADD_LIBS([xvmc],[-lXinerama])
3896         ac_cv_have_xinerama="yes"
3897       ])
3898     ])
3899   ])
3900   if test "${ac_cv_have_xinerama}" = "yes"; then
3901     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3902   fi
3903
3904 dnl
3905 dnl  Check for XF86VidMode extension
3906 dnl
3907   ac_cv_have_xf86vidmode="no"
3908   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3909     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3910       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3911       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3912       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3913       VLC_ADD_LIBS([xvmc],[-lXxf86vm_pic])
3914       ac_cv_have_xf86vidmode="yes"
3915     ],[
3916       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3917         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
3918         VLC_ADD_LIBS([x11],[-lXxf86vm])
3919         VLC_ADD_LIBS([glx],[-lXxf86vm])
3920         VLC_ADD_LIBS([xvmc],[-lXxf86vm])
3921         ac_cv_have_xf86vidmode="yes"
3922       ])
3923     ])
3924   ],[true],
3925 [#ifdef HAVE_X11_XLIB_H
3926 # include <X11/Xlib.h>
3927 #endif]
3928    )
3929   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3930     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3931   ])
3932   CFLAGS="${CFLAGS_save}"
3933 ])
3934
3935 dnl End of Xlib tests
3936 CPPFLAGS="${CPPFLAGS_save}"
3937
3938
3939 dnl
3940 dnl  X C Bindings modules
3941 dnl
3942 AC_ARG_ENABLE(xcb,
3943   [  --enable-xcb            X11 support with XCB (default enabled)],, [
3944   AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"], [
3945     enable_xcb="yes"
3946   ], [
3947     enable_xcb="no"
3948   ])
3949 ])
3950
3951 AS_IF([test "${enable_xcb}" != "no"], [
3952   PKG_CHECK_MODULES(XPROTO, [xproto])
3953
3954   dnl libxcb
3955   PKG_CHECK_MODULES(XCB, [xcb])
3956   PKG_CHECK_MODULES(XCB_SHM, [xcb-shm])
3957   VLC_ADD_PLUGIN([xcb])
3958   VLC_ADD_PLUGIN([xcb_screen])
3959
3960   AS_IF([test "${enable_xvideo}" != "no"], [
3961     PKG_CHECK_MODULES(XCB_XV, [xcb-xv >= 1.1.90.1], [
3962       VLC_ADD_PLUGIN([xcb_xv])
3963     ], [
3964       PKG_CHECK_MODULES(XCB_XV, [xcb-xv], [
3965         VLC_ADD_PLUGIN([xcb_xv])
3966         VLC_ADD_CFLAGS([xcb_xv], [-DXCB_XV_OLD])
3967       ])
3968     ])
3969   ])
3970
3971   PKG_CHECK_MODULES(XCB_RANDR, [xcb-randr >= 1.3], [
3972     VLC_ADD_PLUGIN([panoramix])
3973     VLC_ADD_LIBS([panoramix],[${XCB_RANDR_LIBS} ${XCB_LIBS}])
3974     VLC_ADD_CFLAGS([panoramix],[${XCB_RANDR_CFLAGS} ${XCB_CFLAGS}])
3975   ], [true])
3976
3977   dnl xcb-utils
3978   PKG_CHECK_MODULES(XCB_KEYSYMS, [xcb-keysyms])
3979
3980   VLC_ADD_PLUGIN([xcb_window])
3981   VLC_ADD_PLUGIN([globalhotkeys])
3982   VLC_ADD_CFLAGS([globalhotkeys],[${XCB_KEYSYMS_CFLAGS} ${XCB_CFLAGS}] )
3983   VLC_ADD_LIBS([globalhotkeys],[${XCB_KEYSYMS_LIBS} ${XCB_LIBS}] )
3984 ])
3985
3986
3987 dnl
3988 dnl  OpenGL module
3989 dnl  (enabled by default except on beos)
3990 dnl
3991 AC_ARG_ENABLE(opengl,
3992   [  --enable-opengl         OpenGL support (default enabled)])
3993 if test "${enable_opengl}" != "no" &&
3994    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3995   if test "${SYS}" != "darwin"; then
3996     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3997       VLC_ADD_PLUGIN([opengl])
3998       if test "${SYS}" != "mingw32"; then
3999         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4000       else
4001         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4002       fi
4003     ])
4004   else
4005     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4006     VLC_ADD_PLUGIN([opengl])
4007     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4008   fi
4009 fi
4010
4011 dnl
4012 dnl  SDL module
4013 dnl
4014 AC_ARG_ENABLE(sdl,
4015   [  --enable-sdl            SDL support (default enabled)])
4016 AC_ARG_ENABLE(sdl-image,
4017   [  --enable-sdl-image      SDL image support (default enabled)])
4018 if test "${enable_sdl}" != "no"
4019 then
4020   SDL_PATH="${PATH}"
4021   AC_ARG_WITH(sdl-config-path,
4022     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4023     [ if test "${with_sdl_config_path}" != "no"
4024       then
4025         SDL_PATH="${with_sdl_config_path}:${PATH}"
4026       fi ])
4027   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4028   SDL_CONFIG="${SDL12_CONFIG}"
4029   SDL_HEADER="SDL12/SDL.h"
4030   SDL_IMAGE="SDL12/SDL_image.h"
4031   if test "${SDL_CONFIG}" = "no"
4032   then
4033     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4034     SDL_CONFIG=${SDL11_CONFIG}
4035     SDL_HEADER="SDL11/SDL.h"
4036     SDL_IMAGE="SDL11/SDL_image.h"
4037   fi
4038   if test "${SDL_CONFIG}" = "no"
4039   then
4040     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4041     SDL_HEADER="SDL/SDL.h"
4042     SDL_IMAGE="SDL/SDL_image.h"
4043   fi
4044   # check for cross-compiling
4045   SDL_PREFIX=
4046   AC_ARG_WITH(sdl-prefix,
4047     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4048                                e.g use as:
4049                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4050   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4051   then
4052     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4053   fi
4054   if test "${SDL_CONFIG}" != "no"
4055   then
4056     # SDL on Darwin is heavily patched and can only run SDL_image
4057     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4058       VLC_ADD_PLUGIN([vout_sdl])
4059       VLC_ADD_PLUGIN([aout_sdl])
4060     fi
4061     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4062     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4063     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4064     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4065       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4066       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4067           As a last resort we also test for SDL.h presence),
4068       [ AC_MSG_ERROR([The development package for SDL is not installed.
4069 Please install it and try again. Alternatively you can also configure with
4070 --disable-sdl.])
4071       ])])
4072     AS_IF([ test "${enable_sdl_image}" != "no"],[
4073       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4074         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4075         VLC_ADD_PLUGIN([sdl_image])
4076         AC_CHECK_LIB(png, png_set_rows,
4077           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4078         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4079           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4080         AC_CHECK_LIB(tiff, TIFFClientOpen,
4081           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4082         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4083         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4084             As a last resort we also test for SDL_image.h presence),
4085         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4086   You should install it alongside your SDL package.])
4087         ])])
4088     ])
4089     CPPFLAGS="${CPPFLAGS_save}"
4090     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4091     then
4092       AC_MSG_ERROR([The development package for SDL is not installed.
4093 Please install it and try again. Alternatively you can also configure with
4094 --disable-sdl.])
4095     fi
4096
4097   elif test "${enable_sdl}" =  "yes"
4098   then
4099     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4100 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4101     ])
4102   fi
4103 fi
4104
4105 dnl
4106 dnl  freetype module
4107 dnl
4108 AC_ARG_ENABLE(freetype,
4109   [  --enable-freetype       freetype support (default enabled)])
4110 AC_ARG_ENABLE(fribidi,
4111   [  --enable-fribidi        fribidi support (default enabled)])
4112 AC_ARG_ENABLE(fontconfig,
4113   [  --enable-fontconfig,    fontconfig support (default enabled)])
4114 if test "${enable_freetype}" != "no"
4115 then
4116    PKG_CHECK_MODULES(FREETYPE, freetype2,[
4117       VLC_ADD_PLUGIN([freetype])
4118       have_freetype=yes
4119       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4120       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4121       if test "${SYS}" = "mingw32"; then
4122         VLC_ADD_LIBS([skins2],[-lxml2])
4123         VLC_ADD_LIBS([freetype],[-liconv])
4124       fi
4125       if test "${enable_fontconfig}" != "no"
4126       then
4127         AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4128           [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4129            VLC_ADD_LIBS([freetype],[-lfontconfig])])
4130         AC_CHECK_HEADERS(Carbon/Carbon.h,
4131           [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4132       fi
4133   ],[
4134   have_freetype=no
4135   AS_IF([ test "${enable_freetype}" =  "yes"],[
4136     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4137 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4138       ])
4139     ])
4140   ])
4141
4142   dnl fribidi support
4143   if test "${enable_fribidi}" != "no"
4144   then
4145     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4146       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4147       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4148     ])
4149     fi
4150 fi
4151
4152 dnl
4153 dnl  libxml2 module
4154 dnl
4155 AC_ARG_ENABLE(libxml2,
4156   [  --enable-libxml2        libxml2 support (default enabled)])
4157 AS_IF([test "${enable_libxml2}" != "no"], [
4158   PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
4159     VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
4160     VLC_ADD_LIBS([xml],[${XML2_LIBS}])
4161     VLC_ADD_PLUGIN([xml])
4162   ], [
4163     AS_IF([test "x${enable_xml2}" != "x"], [
4164       AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
4165     ])
4166   ])
4167 ])
4168
4169 dnl
4170 dnl  SVG module
4171 dnl
4172 PKG_ENABLE_MODULES_VLC([SVG], [librsvg-2.0 >= 2.9.0], [SVG rendering library],[auto])
4173
4174 dnl
4175 dnl Snapshot vout module (with cache)
4176 dnl
4177 AC_ARG_ENABLE(snapshot,
4178   [  --enable-snapshot       snapshot module (default disabled)])
4179 if test "${enable_snapshot}" = "yes"
4180 then
4181   VLC_ADD_PLUGIN([snapshot])
4182 fi
4183
4184 dnl
4185 dnl  Qt Embedded module
4186 dnl  (disabled by default)
4187 dnl
4188 AC_ARG_ENABLE(qte,
4189   [  --enable-qte            QT Embedded support (default disabled)])
4190 if test "${enable_qte}" = "yes"
4191 then
4192   AC_ARG_WITH(qte,
4193   [    --with-qte=PATH       Qt Embedded headers and libraries])
4194   if test "${with_qte}" != "no" -a -n "${with_qte}"
4195   then
4196     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4197     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])
4198   else
4199     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4200     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4201   fi
4202   VLC_ADD_PLUGIN([qte])
4203   NEED_QTE_MAIN=yes
4204   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4205   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4206     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4207   ] )
4208   CPPFLAGS="${CPPFLAGS_save}"
4209 fi
4210
4211 dnl
4212 dnl Roku HD1000 Video output module
4213 dnl
4214 AC_ARG_ENABLE(hd1000v,
4215   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4216 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4217   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4218    test "${enable_hd1000v}" = "yes"); then
4219   AC_LANG_PUSH([C++])
4220   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4221   [
4222     can_build_roku="yes"
4223   ],
4224   [
4225     can_build_roku="no"
4226     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4227   ])
4228   if test "$can_build_roku" = "yes"
4229   then
4230     VLC_ADD_PLUGIN([hd1000v])
4231     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4232   fi
4233   AC_LANG_POP([C++])
4234 fi
4235
4236 dnl
4237 dnl  Windows DirectX module
4238 dnl
4239
4240 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4241 then
4242   VLC_ADD_PLUGIN([panoramix])
4243 fi
4244
4245 AC_ARG_ENABLE(directx,
4246   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4247 if test "${enable_directx}" != "no"
4248 then
4249   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4250   then
4251     AC_ARG_WITH(directx,
4252     [    --with-directx=PATH   Win32 DirectX headers])
4253     if test -z "${with_directx}"
4254     then
4255       AC_CHECK_HEADERS(ddraw.h,
4256       [ VLC_ADD_PLUGIN([directx])
4257         VLC_ADD_PLUGIN([aout_directx])
4258         VLC_ADD_LIBS([directx],[-lgdi32])
4259       ])
4260       AC_CHECK_HEADERS(GL/gl.h,
4261       [ VLC_ADD_PLUGIN([glwin32])
4262         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4263       ])
4264       AC_CHECK_HEADERS(d3d9.h,
4265       [ VLC_ADD_PLUGIN([direct3d])
4266         VLC_ADD_LIBS([direct3d],[-lgdi32])
4267       ])
4268     else
4269       AC_MSG_CHECKING(for directX headers in ${with_directx})
4270       if test -f ${with_directx}/ddraw.h
4271       then
4272         VLC_ADD_PLUGIN([directx])
4273         VLC_ADD_PLUGIN([aout_directx])
4274         VLC_ADD_CPPFLAGS([directx aout_directx],[-I${with_directx}])
4275         VLC_ADD_LIBS([directx],[-lgdi32])
4276         AC_MSG_RESULT(yes)
4277       else
4278         AC_MSG_RESULT(no)
4279         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4280       fi
4281     fi
4282   fi
4283 fi
4284
4285 dnl
4286 dnl  Linux framebuffer module
4287 dnl
4288 AC_ARG_ENABLE(fb,
4289   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4290     if test "${enable_fb}" != "no"
4291     then
4292       AC_CHECK_HEADERS(linux/fb.h, [
4293         VLC_ADD_PLUGIN([fb])
4294       ])
4295     fi
4296
4297 dnl
4298 dnl  Linux MGA module
4299 dnl
4300 AC_ARG_ENABLE(mga,
4301   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4302   [ if test "${enable_mga}" = "yes"
4303     then
4304       VLC_ADD_PLUGIN([mga])
4305     fi ])
4306
4307 dnl
4308 dnl  OMAP Framebuffer module
4309 dnl
4310 AC_ARG_ENABLE(omapfb,
4311   [  --enable-omapfb         OMAP framebuffer support (default disabled)])
4312     if test "${enable_omapfb}" = "yes"
4313     then
4314       AC_CHECK_HEADERS(asm/arch-omap/omapfb.h, [
4315         VLC_ADD_PLUGIN([omapfb])
4316         AC_CHECK_HEADERS(X11/Xlib.h, [
4317           VLC_ADD_LIBS([omapfb],[${X_LIBS} ${X_PRE_LIBS} -lX11]) ])
4318       ])
4319     fi
4320
4321 dnl
4322 dnl  SVGAlib module
4323 dnl
4324 AC_ARG_ENABLE(svgalib,
4325   [  --enable-svgalib        SVGAlib support (default disabled)])
4326 if test "${enable_svgalib}" = "yes"
4327 then
4328   VLC_ADD_PLUGIN([svgalib])
4329   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4330 fi
4331
4332 dnl
4333 dnl  DirectFB module
4334 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4335 dnl  TODO: support for static linking
4336 dnl
4337 AC_ARG_ENABLE(directfb,
4338   [  --enable-directfb       DirectFB support (default disabled)])
4339 AC_ARG_WITH(directfb,
4340   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4341
4342 if test "${enable_directfb}" = "yes"; then
4343     have_directfb="false"
4344     CPPFLAGS_mydirectfb=
4345     LIBS_mydirectfb=
4346     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4347         dnl Trying the given location
4348         CPPFLAGS_save="${CPPFLAGS}"
4349         LIBS_save="${LIBS}"
4350
4351         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4352         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4353         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4354
4355         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4356         LIBS="${LIBS} ${LIBS_new}"
4357
4358         dnl FIXME: too obscure
4359         AC_CHECK_HEADER([directfb.h], [
4360             AC_CHECK_LIB([direct],[direct_initialize], [
4361                 AC_CHECK_LIB([fusion], [fusion_enter], [
4362                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4363                 ], have_directfb="false")
4364             ], have_directfb="false")
4365         ], have_directfb="false")
4366
4367         dnl Restore flags
4368         CPPFLAGS="${CPPFLAGS_save}"
4369         LIBS="${LIBS_save}"
4370
4371         if test "${have_directfb}" = "true"; then
4372             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4373             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4374         fi
4375     else
4376         dnl Look for directfb-config
4377         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4378         if test "${DIRECTFB_CONFIG}" != "no"; then
4379             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4380             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4381             have_directfb="true"
4382         else
4383             dnl Trying with pkg-config
4384             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4385                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4386                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4387                 have_directfb="true"
4388                 ], [have_directfb="false"])
4389         fi
4390     fi
4391     if test "${have_directfb}" = "true"; then
4392         VLC_ADD_PLUGIN([directfb])
4393         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4394         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4395     else
4396         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4397     fi
4398 fi
4399
4400
4401
4402 dnl
4403 dnl  GGI module
4404 dnl
4405 AC_ARG_ENABLE(ggi,
4406   [  --enable-ggi            GGI support (default disabled)])
4407 if test "${enable_ggi}" = "yes"
4408 then
4409   AC_CHECK_HEADER([ggi/ggi.h],[
4410     VLC_ADD_PLUGIN([ggi])
4411     VLC_ADD_LIBS([ggi],[-lggi])
4412     AC_ARG_WITH(ggi,
4413       [    --with-ggi=PATH       path to libggi],
4414       [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4415         then
4416           VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4417           VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4418         fi ])
4419     ],[
4420        AC_MSG_ERROR([LibGGI development files can't be found])
4421     ])
4422 fi
4423
4424 dnl
4425 dnl  AA plugin
4426 dnl
4427 AC_ARG_ENABLE(aa,
4428   [  --enable-aa             aalib output (default disabled)])
4429 if test "${enable_aa}" = "yes"
4430 then
4431   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4432   if test "${have_aa}" = "true"
4433   then
4434     VLC_ADD_PLUGIN([aa])
4435     VLC_ADD_LIBS([aa],[-laa])
4436   fi
4437 fi
4438
4439 dnl
4440 dnl  libcaca plugin
4441 dnl
4442 AC_ARG_ENABLE(caca,
4443   [  --enable-caca           libcaca output (default disabled)])
4444 if test "${enable_caca}" = "yes"
4445 then
4446   CACA_PATH="${PATH}"
4447   AC_ARG_WITH(caca-config-path,
4448     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4449     [ if test "${with_caca_config_path}" != "no"
4450       then
4451         CACA_PATH="${with_caca_config_path}:${PATH}"
4452       fi ])
4453   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4454   if test "${CACA_CONFIG}" != "no"
4455   then
4456     VLC_ADD_PLUGIN([caca])
4457     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4458     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4459     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4460                                         caca_event_t ev;]],
4461                                         [[ev.type = 0;]]
4462                        )],
4463                        [],
4464       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4465     )
4466   fi
4467 fi
4468
4469 dnl
4470 dnl  win32 GDI plugin
4471 dnl
4472 AC_ARG_ENABLE(wingdi,
4473   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4474 if test "${enable_wingdi}" != "no"; then
4475   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4476     VLC_ADD_PLUGIN([wingdi])
4477     VLC_ADD_LIBS([wingdi],[-lgdi32])
4478   fi
4479   if test "${SYS}" = "mingwce"; then
4480     VLC_ADD_PLUGIN([wingdi])
4481     VLC_ADD_PLUGIN([wingapi])
4482     VLC_ADD_LIBS([wingdi],[-laygshell])
4483     VLC_ADD_LIBS([wingapi],[-laygshell])
4484   fi
4485 fi
4486
4487 dnl
4488 dnl  Audio plugins
4489 dnl
4490
4491 AC_ARG_WITH(,[Audio plugins:])
4492
4493 dnl
4494 dnl  OSS /dev/dsp module (enabled by default except on win32)
4495 dnl
4496 AC_ARG_ENABLE(oss,
4497   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4498
4499 if test "${enable_oss}" != "no" &&
4500   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4501    test "${enable_oss}" = "yes")
4502 then
4503   AC_CHECK_HEADERS([soundcard.h sys/soundcard.h], [
4504     VLC_ADD_PLUGIN([oss])
4505     VLC_ADD_PLUGIN([access_oss])
4506     AC_CHECK_LIB(ossaudio,main,[VLC_ADD_LIBS([oss],[-lossaudio])])
4507   ])
4508 fi
4509
4510 dnl
4511 dnl  Pulseaudio module
4512 dnl
4513 AC_ARG_ENABLE(pulse,
4514   [  --enable-pulse          Pulseaudio support (default enabled)])
4515   if test "${enable_pulse}" != "no"
4516    then
4517      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.11,
4518        [ VLC_ADD_PLUGIN([pulse])
4519         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4520         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4521        [AC_MSG_WARN(pulseaudio library not found)])
4522    fi
4523
4524 dnl
4525 dnl  Portaudio module
4526 dnl
4527 AC_ARG_ENABLE(portaudio,
4528   [  --enable-portaudio      Portaudio library support (default disabled)],
4529   [if test "${enable_portaudio}" = "yes"
4530    then
4531      VLC_ADD_PLUGIN([portaudio])
4532      VLC_ADD_CXXFLAGS([portaudio],[])
4533      if test "${SYS}" = "mingw32"; then
4534         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4535      else
4536         VLC_ADD_LIBS([portaudio],[-lportaudio])
4537      fi
4538    fi])
4539
4540 dnl
4541 dnl  ALSA module
4542 dnl
4543 AC_ARG_ENABLE(alsa,
4544   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4545 if test "${enable_alsa}" != "no"
4546 then
4547   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4548   if test "${have_alsa}" = "true"
4549   then
4550     CFLAGS="${CFLAGS_save}"
4551     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4552                     #define ALSA_PCM_NEW_SW_PARAMS_API
4553                     #include <alsa/asoundlib.h>],
4554        [snd_pcm_hw_params_get_period_time(0,0,0);],
4555         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4556     VLC_ADD_PLUGIN([alsa])
4557     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4558     VLC_ADD_PLUGIN([access_alsa])
4559     VLC_ADD_LIBS([access_alsa],[-lasound -lm -ldl])
4560   else
4561     if test "${enable_alsa}" = "yes"; then
4562       AC_MSG_ERROR([Could not find ALSA development headers])
4563     fi
4564   fi
4565 fi
4566
4567 dnl
4568 dnl  win32 waveOut plugin
4569 dnl
4570 AC_ARG_ENABLE(waveout,
4571   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4572 if test "${enable_waveout}" != "no"; then
4573   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4574     VLC_ADD_PLUGIN([waveout])
4575     VLC_ADD_LIBS([waveout],[-lwinmm])
4576   fi
4577   if test "${SYS}" = "mingwce"; then
4578     VLC_ADD_PLUGIN([waveout])
4579   fi
4580 fi
4581
4582 dnl
4583 dnl  CoreAudio plugin
4584 dnl
4585 AC_ARG_ENABLE(macosx-audio,
4586   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4587 if test "${enable_macosx-audio}" != "no" &&
4588   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4589 then
4590   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h,
4591     [ VLC_ADD_PLUGIN([auhal])
4592       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4593     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4594 fi
4595
4596 dnl
4597 dnl  Roku HD1000 audio
4598 dnl
4599 AC_ARG_ENABLE(hd1000a,
4600   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4601 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4602   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4603    test "${enable_hd1000a}" = "yes")
4604 then
4605   AC_LANG_PUSH([C++])
4606   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4607     VLC_ADD_PLUGIN([hd1000a])
4608     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4609   AC_LANG_POP([C++])
4610 fi
4611
4612 dnl
4613 dnl  JACK modules
4614 dnl
4615 AC_ARG_ENABLE(jack,
4616  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4617  [enable_jack="no"])
4618
4619 AS_IF([test "${enable_jack}" != "no"], [
4620   AC_CHECK_HEADERS(jack/jack.h, [
4621     VLC_ADD_PLUGIN([access_jack])
4622     VLC_ADD_PLUGIN([jack])
4623     VLC_ADD_LIBS([access_jack jack],[-ljack])
4624   ],[AC_MSG_ERROR([cannot find JACK headers])])
4625 ])
4626
4627 dnl
4628 dnl  CyberLink for C++ UPnP stack
4629 dnl
4630 AC_ARG_ENABLE(cyberlink,
4631   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4632   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4633   AC_ARG_WITH(cyberlink-tree,
4634     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4635
4636   dnl
4637   dnl test for --with-cyberlink-tree
4638   dnl
4639   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4640     AC_LANG_PUSH(C++)
4641     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4642     AS_IF([test -z "${real_cyberlink_tree}"], [
4643       dnl  The given directory can't be found
4644       AC_MSG_RESULT(no)
4645       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4646     ])
4647     CPPFLAGS_save="${CPPFLAGS}"
4648     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4649     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4650     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4651       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4652         VLC_ADD_PLUGIN([upnp_cc])
4653       ],[
4654         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4655       ])
4656     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4657     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4658       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4659       dnl The mere fact that we have to make such an ugly check sucks
4660       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4661       LIBS_save="$LIBS"
4662       LIBS_cclink="no"
4663       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4664         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4665         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4666 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4667 using namespace CyberLink;
4668
4669 class testclass : public SearchResponseListener, public MediaPlayer
4670 {
4671     virtual void deviceSearchResponseReceived( SSDPPacket *)
4672     {
4673     }
4674
4675     public:
4676       testclass (void)
4677       {
4678         addSearchResponseListener (this);
4679         start ();
4680       }
4681 };
4682 ],[testclass l;])],[LIBS_cclink="$l"])
4683       done
4684       LIBS="${LIBS_save}"
4685       dnl should not happen - otherwise this needs fixing - hence FAILURE
4686       AS_IF([test "${LIBS_cclink}" = "no"],
4687         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4688       AC_MSG_RESULT([${LIBS_cclink}])
4689       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4690     ], [
4691       AC_MSG_RESULT(no)
4692       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4693     ])
4694     CPPFLAGS="${CPPFLAGS_save}"
4695     AC_LANG_POP([C++])
4696   ])
4697 ])
4698
4699 dnl
4700 dnl UPnP Plugin (Intel SDK)
4701 dnl
4702 AC_ARG_ENABLE(upnp,
4703   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4704
4705 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4706 AS_IF([test "x${enable_upnp}" != "xno"], [
4707   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4708   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4709     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4710   ])
4711   AS_IF([test "${has_upnp}" = "yes"], [
4712     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4713   ])
4714 ], [
4715   has_upnp="no"
4716 ])
4717
4718 AS_IF([test "${has_upnp}" = "yes"], [
4719   VLC_ADD_PLUGIN([upnp_intel])
4720 ])
4721
4722
4723 dnl
4724 dnl  Interface plugins
4725 dnl
4726
4727 AC_ARG_WITH(,[Interface plugins:])
4728
4729 dnl special case for BeOS
4730 if test "${SYS}" = "beos"
4731 then
4732     VLC_ADD_PLUGIN([beos])
4733 fi
4734
4735 dnl
4736 dnl Skins2 module
4737 dnl
4738 AC_ARG_ENABLE(skins2,
4739   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4740    enabled except on MacOSX, BeOS and WinCE)])])
4741 if test "${enable_skins2}" = "yes" ||
4742   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4743    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4744
4745   dnl test for the required libraries
4746   skins2_missing_lib="no"
4747
4748   dnl freetype
4749   if test "${have_freetype}" != "yes"; then
4750     skins2_missing_lib="yes"
4751     if test "${enable_skins2}" = "yes"; then
4752       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4753     fi
4754   fi
4755
4756   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4757     VLC_ADD_PLUGIN([skins2])
4758     ALIASES="${ALIASES} svlc"
4759     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4760     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4761     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4762
4763   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4764     VLC_ADD_PLUGIN([skins2])
4765     ALIASES="${ALIASES} svlc"
4766     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4767     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4768     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4769
4770   else if test "${skins2_missing_lib}" = "no"; then
4771     VLC_ADD_PLUGIN([skins2])
4772     ALIASES="${ALIASES} svlc"
4773     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4774     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4775     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4776   fi fi fi
4777 fi
4778 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4779          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4780           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4781
4782 dnl
4783 dnl  PDA Gtk+2 module
4784 dnl
4785 AC_ARG_ENABLE(pda,
4786   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4787 if test "${enable_pda}" = "yes"
4788 then
4789   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4790   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4791   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4792   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4793   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4794   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4795   VLC_ADD_PLUGIN([pda])
4796   if test "${SYS}" != "mingw32"; then
4797     NEED_GTK2_MAIN=yes
4798     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4799     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4800   fi
4801 fi
4802 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4803
4804 dnl
4805 dnl Maemo
4806 dnl
4807 AC_ARG_ENABLE(maemo,
4808   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4809 if test "${enable_maemo}" = "yes"
4810 then
4811   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4812     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4813     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4814     VLC_ADD_PLUGIN([maemo])
4815     VLC_ADD_PLUGIN([swscale_maemo])
4816     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4817     ALIASES="${ALIASES} mvlc"
4818   ], [
4819     AS_IF([test "${enable_maemo}" = "yes"],[
4820       AC_MSG_ERROR([Hildon libraries not found])
4821     ])
4822     enable_maemo="no"
4823   ])
4824 fi
4825 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4826
4827 dnl
4828 dnl QT 4
4829 dnl
4830 AC_ARG_ENABLE(qt4,
4831   [  --enable-qt4            QT 4 support (default enabled) ],, [
4832   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4833 ])
4834 AS_IF([test "${enable_qt4}" != "no"], [
4835   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4836     VLC_ADD_PLUGIN([qt4])
4837     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4838     ALIASES="${ALIASES} qvlc"
4839     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4840         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4841     ], [
4842         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4843     ])
4844     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4845     AC_SUBST(QT4LOCALEDIR)
4846     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4847     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4848     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4849     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4850   ], [
4851     AS_IF([test "${enable_qt4}" = "yes"],[
4852       AC_MSG_ERROR([Qt 4 library not found])
4853     ],[
4854       AC_MSG_WARN([Qt 4 library not found])
4855     ])
4856     enable_qt4="no"
4857   ])
4858 ])
4859 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4860
4861 dnl
4862 dnl  WinCE GUI module
4863 dnl
4864 AC_ARG_ENABLE(wince,
4865   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4866 if test "${enable_wince}" != "no"; then
4867   if test "${SYS}" = "mingwce"; then
4868     VLC_ADD_PLUGIN([wince])
4869     VLC_ADD_CXXFLAGS([wince],[])
4870     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4871     dnl Gross hack
4872     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4873   elif test "${SYS}" = "mingw32"; then
4874     VLC_ADD_CXXFLAGS([wince],[])
4875     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4876     dnl Gross hack
4877     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4878   fi
4879 fi
4880
4881 dnl
4882 dnl Simple test for skins2 dependency
4883 dnl
4884 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4885   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.])
4886 ])
4887
4888 dnl
4889 dnl  Opie QT embedded module
4890 dnl
4891 AC_ARG_ENABLE(opie,
4892   [  --enable-opie           Qt embedded interface support (default disabled)],
4893   [if test "${enable_opie}" = "yes"; then
4894      AC_ARG_WITH(qte,
4895      [    --with-qte=PATH       Qt Embedded headers and libraries])
4896      if test "${with_qte}" != "no" -a -n "${with_qte}"
4897      then
4898        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4899        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])
4900      else
4901        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4902        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4903      fi
4904      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4905      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4906        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4907      ] )
4908      CPPFLAGS="${CPPFLAGS_save}"
4909
4910      VLC_ADD_PLUGIN([opie])
4911      NEED_QTE_MAIN=yes
4912      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4913      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4914      if test "${with_qte}" != "no" -a -n "${with_qte}"
4915      then
4916        MOC=${with_qte}/bin/moc
4917      else
4918        MOC=${QTDIR}/bin/moc
4919      fi
4920    fi])
4921
4922 dnl
4923 dnl  MacOS X video output/gui modules
4924 dnl
4925 AC_ARG_ENABLE(macosx,
4926   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4927 if test "x${enable_macosx}" = "xyes"
4928 then
4929   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4930   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4931   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4932   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4933   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4934   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4935   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4936   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4937   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4938   dnl For bug report
4939   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4940   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4941   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4942   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4943   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4944   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4945   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4946
4947   VLC_ADD_PLUGIN([access_eyetv])
4948   VLC_ADD_PLUGIN([qtcapture])
4949   VLC_ADD_PLUGIN([macosx])
4950   VLC_ADD_PLUGIN([minimal_macosx])
4951   VLC_ADD_PLUGIN([opengllayer])
4952 fi
4953
4954 dnl
4955 dnl  QNX RTOS module
4956 dnl
4957 AC_ARG_ENABLE(qnx,
4958   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4959     if test "${enable_qnx}" != "no"
4960     then
4961       AC_CHECK_HEADERS(Ph.h, [
4962         VLC_ADD_PLUGIN([qnx])
4963         VLC_ADD_LIBS([qnx],[-lasound -lph])
4964       ])
4965     fi
4966
4967 dnl
4968 dnl  ncurses module
4969 dnl
4970 AC_ARG_ENABLE(ncurses,
4971   [  --disable-ncurses       ncurses interface support (default enabled)],
4972   [if test "${enable_ncurses}" != "no"; then
4973     AC_CHECK_HEADER(ncurses.h,
4974       [AC_CHECK_LIB(ncursesw, mvprintw,
4975         [VLC_ADD_PLUGIN([ncurses])
4976         VLC_ADD_LIBS([ncurses],[-lncursesw])
4977         ALIASES="${ALIASES} nvlc"
4978         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4979         AC_CHECK_LIB(ncursesw, tgetent, [],
4980           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4981             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4982               [AS_IF([test "x${enable_ncurses}" != "x"],
4983                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4984                )])])
4985             ]
4986           )
4987         )
4988         ],
4989         [AC_CHECK_LIB( ncurses, mvprintw,
4990           [VLC_ADD_PLUGIN([ncurses])
4991           ALIASES="${ALIASES} nvlc"
4992           VLC_ADD_LIBS([ncurses],[-lncurses])
4993           AC_CHECK_LIB(ncurses, tgetent, [],
4994             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4995               [AS_IF([test "x${enable_ncurses}" != "x"],
4996                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4997             )]
4998           )],
4999           [AS_IF([test "x${enable_ncurses}" != "x"], [
5000             AC_MSG_ERROR([libncurses not found])])]
5001         )]
5002       )]
5003     )
5004   fi]
5005 )
5006
5007 dnl
5008 dnl  XOSD plugin
5009 dnl
5010 AC_ARG_ENABLE(xosd,
5011   [  --enable-xosd           xosd interface support (default disabled)])
5012 if test "${enable_xosd}" = "yes"
5013 then
5014   AC_CHECK_HEADERS(xosd.h,
5015     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
5016       VLC_ADD_PLUGIN([xosd])
5017       VLC_ADD_LIBS([xosd],[-lxosd])
5018     ])
5019   )
5020 fi
5021
5022 dnl
5023 dnl Framebuffer (overlay) plugin
5024 dnl
5025 AC_ARG_ENABLE(fbosd,
5026   [  --enable-fbosd          fbosd interface support (default disabled)])
5027 if test "${enable_fbosd}" = "yes"
5028 then
5029   AC_CHECK_HEADERS(linux/fb.h, [
5030     VLC_ADD_PLUGIN([fbosd])
5031  ])
5032 fi
5033
5034 dnl
5035 dnl Visualisation plugin
5036 dnl
5037 AC_ARG_ENABLE(visual,
5038   [  --enable-visual         visualisation plugin (default enabled)])
5039 if test "${enable_visual}" != "no"
5040 then
5041     VLC_ADD_PLUGIN([visual])
5042 fi
5043
5044 dnl
5045 dnl OpenGL visualisation plugin
5046 dnl
5047 AC_ARG_ENABLE(galaktos,
5048   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5049 if test "${enable_galaktos}" = "yes"
5050 then
5051   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5052     VLC_ADD_PLUGIN([galaktos])
5053     if test "${SYS}" != "mingw32"; then
5054       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5055     else
5056       VLC_ADD_LIBS([galaktos],[-lopengl32])
5057     fi
5058   ])
5059 fi
5060
5061 dnl
5062 dnl  goom visualization plugin
5063 dnl
5064 AC_ARG_ENABLE(goom,
5065 [  --enable-goom           goom visualisation plugin (default disabled)])
5066 if test "${enable_goom}" = "yes"
5067 then
5068   AC_ARG_WITH(goom-tree,
5069     [    --with-goom-tree=PATH goom tree for static linking (required)])
5070
5071   dnl
5072   dnl test for --with-goom-tree
5073   dnl
5074   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5075     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5076     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5077     if test -z "${real_goom_tree}"; then
5078       dnl  The given directory can't be found
5079       AC_MSG_RESULT(no)
5080       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5081     fi
5082     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5083       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5084       VLC_ADD_PLUGIN([goom])
5085       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5086       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5087     else
5088       dnl  The given libgoom2 wasn't built, try to look for the old goom
5089       AC_MSG_RESULT(no)
5090       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5091       if test -f "${real_goom_tree}/libgoom.a"; then
5092         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5093         VLC_ADD_PLUGIN([goom])
5094         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5095         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5096       else
5097         dnl  The given libgoom wasn't built
5098         AC_MSG_RESULT(no)
5099         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5100       fi
5101     fi
5102   else
5103     AC_CHECK_HEADERS(goom/goom.h, [
5104       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5105       AC_CHECK_LIB(goom2, goom_init, [
5106         VLC_ADD_PLUGIN([goom])
5107         VLC_ADD_LIBS([goom],[-lgoom2])
5108       ],[
5109         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5110       ])
5111       LDFLAGS="${LDFLAGS_save}"
5112     ])
5113   fi
5114 fi
5115
5116 dnl
5117 dnl libprojectM visualization plugin
5118 dnl
5119 AC_ARG_ENABLE(projectm,
5120   [  --enable-projectm          projectM visualization plugin (default disabled)])
5121 AS_IF([test "${enable_projectm}" = "yes"],
5122   [
5123     PKG_CHECK_MODULES(PROJECTM, libprojectM,
5124     [
5125       VLC_ADD_PLUGIN([projectm])
5126       VLC_ADD_CXXFLAGS([projectm],[$PROJECTM_CFLAGS])
5127       VLC_ADD_LIBS([projectm],[$PROJECTM_LIBS])
5128       ],[
5129       AC_MSG_WARN(libprojectM library not found)
5130     ])
5131   ])
5132
5133 dnl
5134 dnl  AtmoLight (homebrew AmbiLight)
5135 dnl
5136 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5137    AC_ARG_ENABLE(atmo,
5138 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
5139                 (default enabled)]))
5140    if test "${enable_atmo}" != "no"; then
5141       AC_LANG_PUSH(C++)
5142       VLC_ADD_PLUGIN([atmo])
5143       AC_LANG_POP(C++)
5144    fi
5145 fi
5146
5147 dnl
5148 dnl  Bonjour services discovery
5149 dnl
5150 AC_ARG_ENABLE(bonjour,
5151   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5152 AS_IF([test "${enable_bonjour}" != "no"], [
5153   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6, [
5154     AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define to 1 if you have libavahi-client])
5155     VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5156     VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5157     VLC_ADD_PLUGIN([bonjour])
5158   ], [
5159     AC_MSG_WARN(avahi-client library not found)
5160   ])
5161 ])
5162
5163 dnl
5164 dnl  Lirc plugin
5165 dnl
5166 AC_ARG_ENABLE(lirc,
5167   [  --enable-lirc           lirc support (default disabled)])
5168 if test "${enable_lirc}" = "yes"
5169 then
5170   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5171   if test "${have_lirc}" = "true"
5172   then
5173     VLC_ADD_PLUGIN([lirc])
5174     VLC_ADD_LIBS([lirc],[-llirc_client])
5175   fi
5176 fi
5177
5178
5179 AC_ARG_WITH(,[Misc options:])
5180
5181 dnl
5182 dnl libgcrypt
5183 dnl
5184 AC_ARG_ENABLE(libgcrypt,
5185   [  --disable-libgcrypt      libgcrypts support (default enabled)])
5186 AS_IF([test "${enable_libgcrypt}" != "no"], [
5187   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5188 ])
5189 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
5190   AS_IF([test "${have_libgcrypt}" = "yes"],[
5191     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
5192   ])
5193 fi
5194 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5195
5196 dnl
5197 dnl TLS/SSL
5198 dnl
5199 AC_ARG_ENABLE(gnutls,
5200   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5201
5202 AS_IF([test "${enable_gnutls}" != "no"], [
5203   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
5204     VLC_ADD_PLUGIN([gnutls])
5205     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5206     AS_IF([test "${SYS}" = "mingw32"], [
5207       dnl pkg-config --libs gnutls omits these
5208       VLC_ADD_LIBS([gnutls], [-lz])
5209       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5210     ])
5211     dnl The GnuTLS plugin invokes gcry_control directly.
5212     AS_IF([test "${have_libgcrypt}" = "yes"],[
5213       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
5214       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
5215     ])
5216     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5217   ], [
5218     AS_IF([test "${enable_gnutls}" = "yes"], [
5219       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5220     ])
5221   ])
5222 ])
5223
5224
5225 dnl
5226 dnl RemoteOSD plugin (VNC client as video filter)
5227 dnl
5228 AC_ARG_ENABLE(remoteosd,
5229   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
5230
5231 AS_IF([test "${enable_remoteosd}" != "no"], [
5232   AS_IF([test "${have_libgcrypt}" = "yes"],[
5233     VLC_ADD_PLUGIN([remoteosd])
5234     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
5235     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
5236   ], [
5237     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
5238   ])
5239 ])
5240
5241
5242 dnl
5243 dnl RAOP plugin
5244 dnl
5245 AC_MSG_CHECKING([whether to enable RAOP plugin])
5246 AS_IF([test "${have_libgcrypt}" = "yes"], [
5247   AC_MSG_RESULT(yes)
5248   VLC_ADD_PLUGIN([stream_out_raop])
5249   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
5250   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
5251 ], [
5252   AC_MSG_RESULT(no)
5253   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
5254 ])
5255
5256
5257 dnl
5258 dnl update checking system
5259 dnl
5260 AC_ARG_ENABLE(update-check,
5261   [  --enable-update-check   update checking system (default disabled)])
5262 if test "${enable_update_check}" = "yes"
5263 then
5264   if test "${have_libgcrypt}" != "yes"
5265   then
5266     AC_MSG_ERROR([libgcrypt is required for update checking system])
5267   fi
5268   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
5269   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
5270   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5271 fi
5272
5273
5274 dnl
5275 dnl  Endianness check
5276 dnl
5277 AC_C_BIGENDIAN
5278 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
5279   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
5280 ], [
5281   DEFS_BIGENDIAN=""
5282 ])
5283 AC_SUBST(DEFS_BIGENDIAN)
5284
5285 dnl
5286 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5287 dnl
5288 loader=false
5289 AC_ARG_ENABLE(loader,
5290   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
5291                   (default disabled)]))
5292 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5293 AS_IF([test "${enable_loader}" = "yes"],
5294   [ VLC_ADD_PLUGIN([dmo])
5295     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
5296     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5297     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
5298     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
5299     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5300     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
5301     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
5302     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
5303   ])
5304
5305 AC_ARG_WITH(,[Components:])
5306
5307 dnl
5308 dnl  the VLC binary
5309 dnl
5310 AC_ARG_ENABLE(vlc,
5311   [  --enable-vlc            build the VLC media player (default enabled)])
5312 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
5313
5314 dnl
5315 dnl  Microsoft ActiveX support
5316 dnl
5317 activex=false
5318 AC_ARG_ENABLE(activex,
5319   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
5320                   (default enabled on Win32)]))
5321 AC_ARG_WITH(wine-sdk-path,
5322   [    --with-wine-sdk-path=PATH path to wine sdk])
5323 if test "${enable_activex}" != "no"
5324 then
5325   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5326   then
5327     AC_CHECK_PROGS(MIDL, [midl], no)
5328     if test "${with_wine_sdk_path}" != ""
5329     then
5330        WINE_SDK_PATH=${with_wine_sdk_path}
5331        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5332     else
5333        WIDL=no
5334     fi
5335     AC_LANG_PUSH(C++)
5336     AC_CHECK_HEADERS(ole2.h,
5337       [AC_CHECK_HEADERS(olectl.h,
5338         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5339           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5340           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
5341           AC_CHECK_HEADERS(objsafe.h,
5342             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5343             [
5344              #if HAVE_OLE2_H
5345              #   include <ole2.h>
5346              #endif
5347             ]
5348           )
5349           activex=:
5350           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5351         ],
5352         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5353       )],
5354       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5355     )
5356     AC_LANG_POP(C++)
5357   fi
5358 fi
5359 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5360 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5361 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5362 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5363 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5364
5365 dnl
5366 dnl  Mozilla plugin
5367 dnl
5368 mozilla=false
5369 AC_ARG_ENABLE(mozilla,
5370   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
5371                   (default disabled)]))
5372 AC_ARG_WITH(mozilla-sdk-path,
5373   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5374 AC_ARG_WITH(mozilla-pkg,
5375   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
5376 AC_LANG_PUSH(C++)
5377 if test "${enable_mozilla}" = "yes"
5378 then
5379   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
5380     [
5381     dnl pkg-config
5382     dnl As we want to do a loop due to the number of name possible for the .pc
5383     dnl we can't use the pkg-config macros.
5384
5385     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
5386     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
5387     AC_MSG_NOTICE([Checking for Mozilla])
5388     found=0
5389     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
5390     then
5391       found=1
5392     else
5393       if test -n "$PKG_CONFIG"; then
5394         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
5395           echo "Trying to find $i.pc files" >&5
5396           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
5397           then
5398             echo "Using $i.pc files." >&5
5399             echo "Using $i.pc files." >&6
5400             found=1
5401             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
5402             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
5403             break
5404           fi
5405         done
5406       fi
5407     fi
5408     AS_IF( [test $found = 1],[
5409         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
5410         MOZILLA_REQUIRED_HEADERS=1
5411         AC_CHECK_HEADERS([npfunctions.h])
5412         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5413         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5414           [#if HAVE_NPAPI_H
5415            # include <npapi.h>
5416            #endif
5417           ])
5418         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5419             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5420         fi
5421         MOZILLA_REQUIRED_HEADERS=
5422         mozilla=:
5423         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5424            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5425            AS_IF([ test "${SYS}" != "darwin"],[
5426              PKG_CHECK_MODULES(XPM, [xpm xt],[
5427                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5428              ],[
5429                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5430              ])
5431           ])
5432         ])
5433         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5434         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5435         VLC_ADD_PLUGIN([mozilla])
5436         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5437         MOZILLA_CONFIG=
5438         CPPFLAGS="${CPPFLAGS_save}"
5439           ],
5440           [
5441             AC_PATH_PROGS(MOZILLA_CONFIG,
5442             [mozilla-config seamonkey-config xulrunner-config],
5443         [no])
5444             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5445           ]
5446         )
5447     dnl pkg-config failed but we might have found a mozilla-config
5448     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5449       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5450         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5451         AC_CHECK_LIB(Xt,XtStrings,
5452          [
5453            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5454            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5455          ],
5456          [],
5457          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5458         ])
5459         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5460         LDFLAGS="${LDFLAGS_save}"
5461       fi
5462
5463       mozilla=:
5464       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5465       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5466       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5467       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5468       MOZILLA_REQUIRED_HEADERS=1
5469       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5470       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5471       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5472         [#if HAVE_NPAPI_H
5473          # include <npapi.h>
5474          #endif
5475         ])
5476       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5477       then
5478         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5479       fi
5480       MOZILLA_REQUIRED_HEADERS=
5481       CPPFLAGS="${CPPFLAGS_save}"
5482       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5483     ])
5484     dnl End of moz_sdk = ""
5485   ],[
5486     dnl special case for mingw32
5487     if test "${SYS}" = "mingw32"
5488     then
5489       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5490       dnl latest gecko sdk does not have an xpcom directory
5491       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5492           mozilla_sdk_xpcom="/xpcom"
5493       fi
5494     fi
5495
5496     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5497     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5498     MOZILLA_REQUIRED_HEADERS=1
5499     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5500     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5501     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5502         [#if HAVE_NPAPI_H
5503           #include <npapi.h>
5504           #endif
5505         ])
5506     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5507     then
5508         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5509     fi
5510     MOZILLA_REQUIRED_HEADERS=
5511     mozilla=:
5512     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5513     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])
5514     if ${need_xpcom_libs}; then
5515        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])
5516       if test "${SYS}" = "mingw32"; then
5517         dnl latest gecko sdk does not have embedstring
5518         if test -d "${real_mozilla_sdk}/embedstring/bin"
5519         then
5520           VLC_ADD_LIBS([mozilla],[-lembedstring])
5521         fi
5522       fi
5523     fi
5524     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5525
5526     if test -n "${CYGPATH}"; then
5527       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5528     fi
5529     CPPFLAGS="${CPPFLAGS_save}"
5530  ])
5531 fi
5532 AC_LANG_POP(C++)
5533 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5534
5535 dnl Tests for Osso and Xsp
5536 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5537   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5538     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5539     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5540  ])
5541 ])
5542 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5543   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5544   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5545 ])
5546
5547 dnl
5548 dnl  test plugins
5549 dnl
5550 AC_ARG_ENABLE(testsuite,
5551   [  --enable-testsuite      build test modules (default disabled)])
5552 if test "${enable_testsuite}" = "yes"
5553 then
5554   TESTS="test1 test2 test3 test4"
5555
5556   dnl  we define those so that bootstrap sets the right linker
5557   VLC_ADD_CXXFLAGS([test2],[])
5558   VLC_ADD_OBJCFLAGS([test3],[])
5559   dnl  this one is needed until automake knows what to do
5560   VLC_ADD_LIBS([test3],[-lobjc])
5561
5562   VLC_ADD_PLUGIN([test1])
5563   VLC_ADD_PLUGIN([test2])
5564   VLC_ADD_PLUGIN([test3])
5565   VLC_ADD_PLUGIN([test4])
5566 fi
5567
5568 dnl
5569 dnl  gtk_main plugin
5570 dnl
5571 if test "${NEED_GTK_MAIN}" != "no"
5572 then
5573     VLC_ADD_PLUGIN([gtk_main])
5574     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5575     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5576 fi
5577
5578 if test "${NEED_GNOME_MAIN}" != "no"
5579 then
5580     VLC_ADD_PLUGIN([gnome_main])
5581     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5582     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5583 fi
5584
5585 if test "${NEED_GTK2_MAIN}" != "no"
5586 then
5587     VLC_ADD_PLUGIN([gtk2_main])
5588     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5589     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5590     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5591     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5592 fi
5593
5594 if test "${NEED_GNOME2_MAIN}" != "no"
5595 then
5596     VLC_ADD_PLUGIN([gnome2_main])
5597     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5598     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5599 fi
5600
5601 dnl
5602 dnl  qte_main plugin
5603 dnl
5604 if test "${NEED_QTE_MAIN}" != "no"
5605 then
5606     VLC_ADD_PLUGIN([qte_main])
5607     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5608     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5609     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5610 fi
5611
5612 dnl
5613 dnl  Plugin and builtin checks
5614 dnl
5615 plugin_support=yes
5616
5617 dnl Automagically disable plugins if there is no system support for
5618 dnl dynamically loadable files (.so, .dll, .dylib).
5619 dnl don't forget vlc-win32 still can load .dll as plugins
5620 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5621   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5622   plugin_support=no
5623 ])
5624
5625 AS_IF([test "${plugin_support}" != "no"], [
5626   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5627 ])
5628
5629 dnl
5630 dnl Pic and shared libvlc stuff
5631 dnl
5632 AS_IF([test "${SYS}" = "mingw32"], [
5633   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5634   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5635 ])
5636
5637 dnl
5638 dnl  Stuff used by the program
5639 dnl
5640 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5641 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5642 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5643 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5644 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5645 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5646 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5647 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5648 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5649 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5650 AC_SUBST(COPYRIGHT_MESSAGE)
5651 AC_SUBST(VERSION_MESSAGE)
5652 AC_SUBST(VERSION_MAJOR)
5653 AC_SUBST(VERSION_MINOR)
5654 AC_SUBST(VERSION_REVISION)
5655 AC_SUBST(VERSION_EXTRA)
5656 AC_SUBST(COPYRIGHT_YEARS)
5657 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5658 if test "${build_os}" = "cygwin"
5659 then
5660     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5661 else
5662     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5663 fi
5664 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5665 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5666 dnl Win32 need s a numerical version_extra.
5667 case $( echo ${VERSION_EXTRA}|wc -m ) in
5668        "1") VERSION_EXTRA_RC="0";;
5669        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5670        *) VERSION_EXTRA_RC="99"
5671 esac
5672 AC_SUBST(VERSION_EXTRA_RC)
5673 dnl
5674 dnl  Handle substvars that use $(top_srcdir)
5675 dnl
5676 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5677 AC_SUBST(VLC_CONFIG)
5678 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5679
5680 dnl
5681 dnl  Restore *FLAGS
5682 dnl
5683 VLC_RESTORE_FLAGS
5684
5685 dnl
5686 dnl Sort the modules list
5687 dnl
5688 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5689
5690 dnl
5691 dnl  Create the vlc-config script
5692 dnl
5693 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5694
5695 dnl
5696 dnl  Configuration is finished
5697 dnl
5698 AC_SUBST(SYS)
5699 AC_SUBST(ARCH)
5700 AC_SUBST(ALIASES)
5701 AC_SUBST(ASM)
5702 AC_SUBST(MOC)
5703 AC_SUBST(RCC)
5704 AC_SUBST(UIC)
5705 AC_SUBST(WINDRES)
5706 AC_SUBST(MOZILLA_SDK_PATH)
5707 AC_SUBST(WINE_SDK_PATH)
5708 AC_SUBST(LIBEXT)
5709 AC_SUBST(AM_CPPFLAGS)
5710 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5711 AC_SUBST(FILE_LIBVLCCORE_DLL)
5712 AC_SUBST(FILE_LIBVLC_DLL)
5713
5714 dnl Create vlc-config.in
5715 VLC_OUTPUT_VLC_CONFIG_IN
5716
5717 AC_CONFIG_FILES([
5718   extras/package/win32/vlc.win32.nsi
5719   extras/package/macosx/Info.plist
5720   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5721   extras/package/macosx/plugin/Info.plist
5722   extras/package/macosx/plugin/InstallerInfo.plist
5723   Makefile
5724   projects/activex/Makefile
5725   projects/activex/axvlc.inf
5726   doc/Makefile
5727   extras/package/ipkg/Makefile
5728   libs/loader/Makefile
5729   libs/srtp/Makefile
5730   libs/unzip/Makefile
5731   modules/Makefile
5732   projects/mozilla/Makefile
5733   m4/Makefile
5734   po/Makefile.in
5735   projects/activex/axvlc_rc.rc
5736   projects/mozilla/npvlc_rc.rc
5737   projects/mozilla/vlc.r
5738   projects/mozilla/install.js
5739   share/Makefile
5740   share/vlc_win32_rc.rc
5741   share/libvlc_win32_rc.rc
5742   compat/Makefile
5743   src/Makefile
5744   src/test/Makefile
5745   bin/Makefile
5746   test/Makefile
5747   modules/access/Makefile
5748   modules/access/bd/Makefile
5749   modules/access/bda/Makefile
5750   modules/access/dshow/Makefile
5751   modules/access/dvb/Makefile
5752   modules/access/mms/Makefile
5753   modules/access/cdda/Makefile
5754   modules/access/rtp/Makefile
5755   modules/access/rtsp/Makefile
5756   modules/access/rtmp/Makefile
5757   modules/access/vcd/Makefile
5758   modules/access/vcdx/Makefile
5759   modules/access/screen/Makefile
5760   modules/access/zip/Makefile
5761   modules/access_output/Makefile
5762   modules/audio_filter/Makefile
5763   modules/audio_filter/channel_mixer/Makefile
5764   modules/audio_filter/converter/Makefile
5765   modules/audio_filter/resampler/Makefile
5766   modules/audio_filter/spatializer/Makefile
5767   modules/audio_mixer/Makefile
5768   modules/audio_output/Makefile
5769   modules/codec/Makefile
5770   modules/codec/avcodec/Makefile
5771   modules/codec/cmml/Makefile
5772   modules/codec/dmo/Makefile
5773   modules/codec/shine/Makefile
5774   modules/codec/subtitles/Makefile
5775   modules/codec/spudec/Makefile
5776   modules/codec/wmafixed/Makefile
5777   modules/codec/xvmc/Makefile
5778   modules/control/Makefile
5779   modules/control/http/Makefile
5780   modules/control/globalhotkeys/Makefile
5781   modules/demux/Makefile
5782   modules/demux/asf/Makefile
5783   modules/demux/avformat/Makefile
5784   modules/demux/avi/Makefile
5785   modules/demux/mkv/Makefile
5786   modules/demux/mp4/Makefile
5787   modules/demux/mpeg/Makefile
5788   modules/demux/playlist/Makefile
5789   modules/gui/Makefile
5790   modules/gui/beos/Makefile
5791   modules/gui/pda/Makefile
5792   modules/gui/macosx/Makefile
5793   modules/gui/maemo/Makefile
5794   modules/gui/minimal_macosx/Makefile
5795   modules/gui/qnx/Makefile
5796   modules/gui/qt4/Makefile
5797   modules/gui/skins2/Makefile
5798   modules/gui/wince/Makefile
5799   modules/meta_engine/Makefile
5800   modules/misc/Makefile
5801   modules/misc/dummy/Makefile
5802   modules/misc/lua/Makefile
5803   modules/misc/memcpy/Makefile
5804   modules/misc/notify/Makefile
5805   modules/misc/testsuite/Makefile
5806   modules/misc/playlist/Makefile
5807   modules/misc/osd/Makefile
5808   modules/misc/stats/Makefile
5809   modules/misc/xml/Makefile
5810   modules/misc/probe/Makefile
5811   modules/mux/Makefile
5812   modules/mux/mpeg/Makefile
5813   modules/packetizer/Makefile
5814   modules/services_discovery/Makefile
5815   modules/stream_filter/Makefile
5816   modules/stream_out/Makefile
5817   modules/stream_out/transrate/Makefile
5818   modules/video_chroma/Makefile
5819   modules/video_filter/Makefile
5820   modules/video_filter/atmo/Makefile
5821   modules/video_filter/dynamicoverlay/Makefile
5822   modules/video_output/Makefile
5823   modules/video_output/msw/Makefile
5824   modules/video_output/qte/Makefile
5825   modules/video_output/x11/Makefile
5826   modules/visualization/Makefile
5827   modules/visualization/visual/Makefile
5828   modules/visualization/galaktos/Makefile
5829 ])
5830
5831 dnl Generate makefiles
5832 AC_OUTPUT
5833
5834 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5835 # not provided with the source
5836 ${SHELL} ./config.status --file=vlc-config
5837 chmod 0755 vlc-config
5838
5839 /bin/echo -n "Enabled modules: "
5840 ./vlc-config --list plugin
5841
5842 dnl Shortcut to nice compile message
5843 rm -f compile
5844 echo '#! /bin/sh' >compile
5845 echo rm -f .error\$\$ >>compile
5846 echo ERROR=0 >>compile
5847 echo export PATH=$PATH LANG=C >>compile
5848 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5849 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5850 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5851 echo rm -f .error\$\$ >>compile
5852 echo exit \$ERROR >>compile
5853 chmod a+x compile
5854
5855 printf "
5856 libvlc configuration
5857 --------------------
5858 version               : ${VERSION}
5859 system                : ${SYS}
5860 architecture          : ${ARCH}
5861 build flavour         : "
5862 test "${enable_debug}" = "yes" && printf "debug "
5863 test "${enable_cprof}" = "yes" && printf "cprof "
5864 test "${enable_gprof}" = "yes" && printf "gprof "
5865 test "${enable_optimizations}" = "yes" && printf "optim "
5866 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5867 echo ""
5868 if test "${enable_vlc}" != "no"; then
5869 echo "vlc aliases           :${ALIASES}"
5870 else
5871 echo "build vlc executable  : no"
5872 fi
5873 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5874
5875 You can tune the compiler flags in vlc-config.
5876 To build vlc and its plugins, type \`./compile' or \`make'.
5877 "
5878 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5879    echo ""
5880    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5881    echo "         turned off."
5882    echo "         FFmpeg will be REALLY slow."
5883    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5884    echo ""
5885 fi