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