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