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