]> git.sesse.net Git - vlc/blob - configure.ac
_POSIX_PTHREAD_SEMANTICS is already defined by AC_USE_SYSTEM_EXTENSIONS
[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 AC_ARG_ENABLE(upnp,
4328   AS_HELP_STRING([--enable-upnp],[Intel UPnP SDK (default enabled)]))
4329
4330 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4331 AS_IF([test "x${enable_upnp}" != "xno"], [
4332   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4333   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4334     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4335   ])
4336   AS_IF([test "${has_upnp}" = "yes"], [
4337     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4338   ])
4339 ], [
4340   has_upnp="no"
4341 ])
4342
4343 AS_IF([test "${has_upnp}" = "yes"], [
4344   VLC_ADD_PLUGIN([upnp_intel])
4345 ])
4346
4347
4348 dnl
4349 dnl  Interface plugins
4350 dnl
4351
4352 AC_ARG_WITH(,[Interface plugins:])
4353
4354 dnl special case for BeOS
4355 if test "${SYS}" = "beos"
4356 then
4357     VLC_ADD_PLUGIN([beos])
4358 fi
4359
4360 dnl
4361 dnl Skins2 module
4362 dnl
4363 AC_ARG_ENABLE(skins2,
4364   [AS_HELP_STRING([--enable-skins2],[Skins2 interface module (default
4365    enabled except on MacOSX, BeOS and WinCE)])])
4366 if test "${enable_skins2}" = "yes" ||
4367   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4368    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4369
4370   dnl test for the required libraries
4371   skins2_missing_lib="no"
4372
4373   dnl freetype
4374   if test "${have_freetype}" != "yes"; then
4375     skins2_missing_lib="yes"
4376     if test "${enable_skins2}" = "yes"; then
4377       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4378     fi
4379   fi
4380
4381   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4382     VLC_ADD_PLUGIN([skins2])
4383     ALIASES="${ALIASES} svlc"
4384     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4385     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4386     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4387
4388   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4389     VLC_ADD_PLUGIN([skins2])
4390     ALIASES="${ALIASES} svlc"
4391     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4392     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4393     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4394
4395   else if test "${skins2_missing_lib}" = "no"; then
4396     VLC_ADD_PLUGIN([skins2])
4397     ALIASES="${ALIASES} svlc"
4398     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4399     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4400     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4401   fi fi fi
4402 fi
4403 AM_CONDITIONAL(BUILD_SKINS, [test "${enable_skins2}" = "yes" ||
4404          (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4405           test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no")])
4406
4407 dnl
4408 dnl  PDA Gtk+2 module
4409 dnl
4410 AC_ARG_ENABLE(pda,
4411   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4412 if test "${enable_pda}" = "yes"
4413 then
4414   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4415   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4416   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4417   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4418   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4419   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4420   VLC_ADD_PLUGIN([pda])
4421   if test "${SYS}" != "mingw32"; then
4422     NEED_GTK2_MAIN=yes
4423     VLC_ADD_CFLAGS([gtk2_main],[$GTK2_CFLAGS])
4424     VLC_ADD_LIBS([gtk2_main],[$GTK2_LIBS])
4425   fi
4426 fi
4427 AM_CONDITIONAL(BUILD_PDA, [test "${enable_pda}" = "yes"])
4428
4429 dnl
4430 dnl Maemo
4431 dnl
4432 AC_ARG_ENABLE(maemo,
4433   [  --enable-maemo          Internet tablets based on Maemo SDK (default disabled)])
4434 if test "${enable_maemo}" = "yes"
4435 then
4436   PKG_CHECK_MODULES(HILDON, [hildon-1 hildon-fm-2], [
4437     VLC_ADD_CFLAGS([maemo],[${HILDON_CFLAGS}])
4438     VLC_ADD_LIBS([maemo],[${HILDON_LIBS}])
4439     VLC_ADD_PLUGIN([maemo])
4440     VLC_ADD_PLUGIN([swscale_maemo])
4441     AC_DEFINE([BUILD_MAEMO], 1, [Define if you are using Maemo interfaces])
4442     ALIASES="${ALIASES} mvlc"
4443   ], [
4444     AS_IF([test "${enable_maemo}" = "yes"],[
4445       AC_MSG_ERROR([Hildon libraries not found])
4446     ])
4447     enable_maemo="no"
4448   ])
4449 fi
4450 AM_CONDITIONAL(BUILD_MAEMO, [test "${enable_maemo}" = "yes"])
4451
4452 dnl
4453 dnl QT 4
4454 dnl
4455 AC_ARG_ENABLE(qt4,
4456   [  --enable-qt4            QT 4 support (default enabled) ],, [
4457   AS_IF([test "${SYS}" = "darwin"], [enable_qt4=no])
4458 ])
4459 AS_IF([test "${enable_qt4}" != "no"], [
4460   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.4.0], [
4461     VLC_ADD_PLUGIN([qt4])
4462     AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
4463     ALIASES="${ALIASES} qvlc"
4464     AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"], [
4465         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
4466     ], [
4467         VLC_ADD_LIBS([qt4],[$QT4_LIBS -lole32])
4468     ])
4469     QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
4470     AC_SUBST(QT4LOCALEDIR)
4471     VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"${QT4LOCALEDIR}\\\\\\\"])
4472     AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4473     AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4474     AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
4475   ], [
4476     AS_IF([test "${enable_qt4}" = "yes"],[
4477       AC_MSG_ERROR([Qt 4 library not found])
4478     ],[
4479       AC_MSG_WARN([Qt 4 library not found])
4480     ])
4481     enable_qt4="no"
4482   ])
4483 ])
4484 AM_CONDITIONAL(ENABLE_QT4, [test "x$enable_qt4" != "xno"])
4485
4486 dnl
4487 dnl  WinCE GUI module
4488 dnl
4489 AC_ARG_ENABLE(wince,
4490   [  --enable-wince          Windows CE interface (default enabled with MinGW)])
4491 if test "${enable_wince}" != "no"; then
4492   if test "${SYS}" = "mingwce"; then
4493     VLC_ADD_PLUGIN([wince])
4494     VLC_ADD_CXXFLAGS([wince],[])
4495     VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
4496     dnl Gross hack
4497     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4498   elif test "${SYS}" = "mingw32"; then
4499     VLC_ADD_CXXFLAGS([wince],[])
4500     VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4501     dnl Gross hack
4502     VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4503   fi
4504 fi
4505
4506 dnl
4507 dnl Simple test for skins2 dependency
4508 dnl
4509 AS_IF([test "${enable_skins2}" != "no" && test "x$enable_qt4" = "xno"], [
4510   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.])
4511 ])
4512
4513 dnl
4514 dnl  Opie QT embedded module
4515 dnl
4516 AC_ARG_ENABLE(opie,
4517   [  --enable-opie           Qt embedded interface support (default disabled)],
4518   [if test "${enable_opie}" = "yes"; then
4519      AC_ARG_WITH(qte,
4520      [    --with-qte=PATH       Qt Embedded headers and libraries])
4521      if test "${with_qte}" != "no" -a -n "${with_qte}"
4522      then
4523        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4524        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])
4525      else
4526        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4527        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4528      fi
4529      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4530      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4531        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4532      ] )
4533      CPPFLAGS="${CPPFLAGS_save}"
4534
4535      VLC_ADD_PLUGIN([opie])
4536      NEED_QTE_MAIN=yes
4537      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
4538      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4539      if test "${with_qte}" != "no" -a -n "${with_qte}"
4540      then
4541        MOC=${with_qte}/bin/moc
4542      else
4543        MOC=${QTDIR}/bin/moc
4544      fi
4545    fi])
4546
4547 dnl
4548 dnl  MacOS X video output/gui modules
4549 dnl
4550 AC_ARG_ENABLE(macosx,
4551   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
4552 if test "x${enable_macosx}" = "xyes"
4553 then
4554   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
4555   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer qtcapture],[-Wl,-framework,Cocoa])
4556   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
4557   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
4558   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,CoreServices])
4559   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
4560   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
4561   VLC_ADD_LDFLAGS([macosx],                           [-F\\\${top_srcdir}/extras/contrib/Sparkle -Wl,-framework,Sparkle])
4562   VLC_ADD_OBJCFLAGS([macosx],                         [-F\\\${top_srcdir}/extras/contrib/Sparkle])
4563   dnl For bug report
4564   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,AddressBook])
4565   VLC_ADD_LDFLAGS([macosx qtcapture],                 [-Wl,-framework,QTKit])
4566   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreAudio])
4567   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
4568   VLC_ADD_LDFLAGS([opengllayer qtcapture],            [-Wl,-framework,QuartzCore])
4569   VLC_ADD_LDFLAGS([qtcapture],                        [-Wl,-framework,CoreVideo])
4570   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl opengllayer], [-fobjc-exceptions] )
4571
4572   VLC_ADD_PLUGIN([access_eyetv])
4573   VLC_ADD_PLUGIN([qtcapture])
4574   VLC_ADD_PLUGIN([macosx])
4575   VLC_ADD_PLUGIN([minimal_macosx])
4576   VLC_ADD_PLUGIN([opengllayer])
4577 fi
4578
4579 dnl
4580 dnl  QNX RTOS module
4581 dnl
4582 AC_ARG_ENABLE(qnx,
4583   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4584     if test "${enable_qnx}" != "no"
4585     then
4586       AC_CHECK_HEADERS(Ph.h, [
4587         VLC_ADD_PLUGIN([qnx])
4588         VLC_ADD_LIBS([qnx],[-lasound -lph])
4589       ])
4590     fi
4591
4592 dnl
4593 dnl  ncurses module
4594 dnl
4595 AC_ARG_ENABLE(ncurses,
4596   [  --disable-ncurses       ncurses interface support (default enabled)],
4597   [if test "${enable_ncurses}" != "no"; then
4598     AC_CHECK_HEADER(ncurses.h,
4599       [AC_CHECK_LIB(ncursesw, mvprintw,
4600         [VLC_ADD_PLUGIN([ncurses])
4601         VLC_ADD_LIBS([ncurses],[-lncursesw])
4602         ALIASES="${ALIASES} nvlc"
4603         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
4604         AC_CHECK_LIB(ncursesw, tgetent, [],
4605           AC_CHECK_LIB(tinfow, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfow])],
4606             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4607               [AS_IF([test "x${enable_ncurses}" != "x"],
4608                 [AC_MSG_ERROR([tgetent not found in ncursesw tinfow tinfo]
4609                )])])
4610             ]
4611           )
4612         )
4613         ],
4614         [AC_CHECK_LIB( ncurses, mvprintw,
4615           [VLC_ADD_PLUGIN([ncurses])
4616           ALIASES="${ALIASES} nvlc"
4617           VLC_ADD_LIBS([ncurses],[-lncurses])
4618           AC_CHECK_LIB(ncurses, tgetent, [],
4619             [AC_CHECK_LIB(tinfo, tgetent, [VLC_ADD_LIBS([ncurses],[-ltinfo])],
4620               [AS_IF([test "x${enable_ncurses}" != "x"],
4621                 [AC_MSG_ERROR([tgetent not found in ncurses tinfo])])]
4622             )]
4623           )],
4624           [AS_IF([test "x${enable_ncurses}" != "x"], [
4625             AC_MSG_ERROR([libncurses not found])])]
4626         )]
4627       )]
4628     )
4629   fi]
4630 )
4631
4632 dnl
4633 dnl  XOSD plugin
4634 dnl
4635 AC_ARG_ENABLE(xosd,
4636   [  --enable-xosd           xosd interface support (default disabled)])
4637 if test "${enable_xosd}" = "yes"
4638 then
4639   AC_CHECK_HEADERS(xosd.h,
4640     AC_CHECK_LIB(xosd, xosd_set_horizontal_offset, [
4641       VLC_ADD_PLUGIN([xosd])
4642       VLC_ADD_LIBS([xosd],[-lxosd])
4643     ])
4644   )
4645 fi
4646
4647 dnl
4648 dnl Framebuffer (overlay) plugin
4649 dnl
4650 AC_ARG_ENABLE(fbosd,
4651   [  --enable-fbosd          fbosd interface support (default disabled)])
4652 if test "${enable_fbosd}" = "yes"
4653 then
4654   AC_CHECK_HEADERS(linux/fb.h, [
4655     VLC_ADD_PLUGIN([fbosd])
4656  ])
4657 fi
4658
4659 dnl
4660 dnl Visualisation plugin
4661 dnl
4662 AC_ARG_ENABLE(visual,
4663   [  --enable-visual         visualisation plugin (default enabled)])
4664 if test "${enable_visual}" != "no"
4665 then
4666     VLC_ADD_PLUGIN([visual])
4667 fi
4668
4669 dnl
4670 dnl  goom visualization plugin
4671 dnl
4672 AC_ARG_ENABLE(goom,
4673 [  --enable-goom           goom visualisation plugin (default disabled)])
4674 if test "${enable_goom}" = "yes"
4675 then
4676   AC_ARG_WITH(goom-tree,
4677     [    --with-goom-tree=PATH goom tree for static linking (required)])
4678
4679   dnl
4680   dnl test for --with-goom-tree
4681   dnl
4682   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4683     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4684     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4685     if test -z "${real_goom_tree}"; then
4686       dnl  The given directory can't be found
4687       AC_MSG_RESULT(no)
4688       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4689     fi
4690     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4691       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4692       VLC_ADD_PLUGIN([goom])
4693       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4694       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4695     else
4696       dnl  The given libgoom2 wasn't built, try to look for the old goom
4697       AC_MSG_RESULT(no)
4698       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4699       if test -f "${real_goom_tree}/libgoom.a"; then
4700         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4701         VLC_ADD_PLUGIN([goom])
4702         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
4703         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4704       else
4705         dnl  The given libgoom wasn't built
4706         AC_MSG_RESULT(no)
4707         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4708       fi
4709     fi
4710   else
4711     AC_CHECK_HEADERS(goom/goom.h, [
4712       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
4713       AC_CHECK_LIB(goom2, goom_init, [
4714         VLC_ADD_PLUGIN([goom])
4715         VLC_ADD_LIBS([goom],[-lgoom2])
4716       ],[
4717         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4718       ])
4719       LDFLAGS="${LDFLAGS_save}"
4720     ])
4721   fi
4722 fi
4723
4724 dnl
4725 dnl libprojectM visualization plugin
4726 dnl
4727 PKG_ENABLE_MODULES_VLC([projectm], [], [libprojectM], [projectM visualization plugin], [auto])
4728
4729 dnl
4730 dnl  AtmoLight (homebrew AmbiLight)
4731 dnl
4732 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
4733    AC_ARG_ENABLE(atmo,
4734 AS_HELP_STRING([--disable-atmo],[AtmoLight (homebrew philips ambilight)
4735                 (default enabled)]))
4736    if test "${enable_atmo}" != "no"; then
4737       AC_LANG_PUSH(C++)
4738       VLC_ADD_PLUGIN([atmo])
4739       AC_LANG_POP(C++)
4740    fi
4741 fi
4742
4743 dnl
4744 dnl  Bonjour services discovery
4745 dnl
4746 PKG_ENABLE_MODULES_VLC([BONJOUR], [], [avahi-client >= 0.6], [Bonjour services discovery], [auto])
4747
4748 dnl
4749 dnl  Lirc plugin
4750 dnl
4751 AC_ARG_ENABLE(lirc,
4752   [  --enable-lirc           lirc support (default disabled)])
4753 if test "${enable_lirc}" = "yes"
4754 then
4755   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4756   if test "${have_lirc}" = "true"
4757   then
4758     VLC_ADD_PLUGIN([lirc])
4759     VLC_ADD_LIBS([lirc],[-llirc_client])
4760   fi
4761 fi
4762
4763
4764 AC_ARG_WITH(,[Misc options:])
4765
4766 dnl
4767 dnl libgcrypt
4768 dnl
4769 AC_ARG_ENABLE(libgcrypt,
4770   [  --disable-libgcrypt      libgcrypts support (default enabled)])
4771 AS_IF([test "${enable_libgcrypt}" != "no"], [
4772   AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
4773 ])
4774 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
4775   AS_IF([test "${have_libgcrypt}" = "yes"],[
4776     VLC_ADD_LIBS([rtp stream_out_rtp], [${LIBGCRYPT_LIBS}])
4777   ])
4778 fi
4779 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
4780
4781 dnl
4782 dnl TLS/SSL
4783 dnl
4784 AC_ARG_ENABLE(gnutls,
4785   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4786
4787 AS_IF([test "${enable_gnutls}" != "no"], [
4788   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.7.4], [
4789     VLC_ADD_PLUGIN([gnutls])
4790     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
4791     AS_IF([test "${SYS}" = "mingw32"], [
4792       dnl pkg-config --libs gnutls omits these
4793       VLC_ADD_LIBS([gnutls], [-lz])
4794       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
4795     ])
4796     dnl The GnuTLS plugin invokes gcry_control directly.
4797     AS_IF([test "${have_libgcrypt}" = "yes"],[
4798       VLC_ADD_LIBS([gnutls], [${LIBGCRYPT_LIBS}])
4799       VLC_ADD_CFLAGS([gnutls], [${LIBGCRYPT_CFLAGS}])
4800     ])
4801     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
4802   ], [
4803     AS_IF([test "${enable_gnutls}" = "yes"], [
4804       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
4805     ])
4806   ])
4807 ])
4808
4809
4810 dnl
4811 dnl RemoteOSD plugin (VNC client as video filter)
4812 dnl
4813 AC_ARG_ENABLE(remoteosd,
4814   [  --disable-remoteosd     RemoteOSD plugin (default enabled)])
4815
4816 AS_IF([test "${enable_remoteosd}" != "no"], [
4817   AS_IF([test "${have_libgcrypt}" = "yes"],[
4818     VLC_ADD_PLUGIN([remoteosd])
4819     VLC_ADD_LIBS([remoteosd], ${LIBGCRYPT_LIBS})
4820     VLC_ADD_CFLAGS([remoteosd], ${LIBGCRYPT_CFLAGS})
4821   ], [
4822     AC_MSG_ERROR([libgcrypt support required for RemoteOSD plugin])
4823   ])
4824 ])
4825
4826
4827 dnl
4828 dnl RAOP plugin
4829 dnl
4830 AC_MSG_CHECKING([whether to enable RAOP plugin])
4831 AS_IF([test "${have_libgcrypt}" = "yes"], [
4832   AC_MSG_RESULT(yes)
4833   VLC_ADD_PLUGIN([stream_out_raop])
4834   VLC_ADD_LIBS([stream_out_raop], [${LIBGCRYPT_LIBS} -lgpg-error])
4835   VLC_ADD_CFLAGS([stream_out_raop], [${LIBGCRYPT_CFLAGS}])
4836 ], [
4837   AC_MSG_RESULT(no)
4838   AC_MSG_WARN([libgcrypt support required for RAOP plugin])
4839 ])
4840
4841
4842 dnl
4843 dnl update checking system
4844 dnl
4845 AC_ARG_ENABLE(update-check,
4846   [  --enable-update-check   update checking system (default disabled)])
4847 if test "${enable_update_check}" = "yes"
4848 then
4849   if test "${have_libgcrypt}" != "yes"
4850   then
4851     AC_MSG_ERROR([libgcrypt is required for update checking system])
4852   fi
4853   VLC_ADD_LIBS([libvlccore], [${LIBGCRYPT_LIBS}])
4854   VLC_ADD_CFLAGS([libvlccore], [${LIBGCRYPT_CFLAGS}])
4855   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
4856 fi
4857
4858
4859 dnl
4860 dnl  Endianness check
4861 dnl
4862 AC_C_BIGENDIAN
4863 AS_IF([test "${ac_cv_c_bigendian}" = "yes"], [
4864   DEFS_BIGENDIAN="-DWORDS_BIGENDIAN=1"
4865 ], [
4866   DEFS_BIGENDIAN=""
4867 ])
4868 AC_SUBST(DEFS_BIGENDIAN)
4869
4870 dnl
4871 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4872 dnl
4873 loader=false
4874 AC_ARG_ENABLE(loader,
4875   AS_HELP_STRING([--enable-loader],[build DLL loader for ELF i386 platforms
4876                   (default disabled)]))
4877 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4878 AS_IF([test "${enable_loader}" = "yes"],
4879   [ VLC_ADD_PLUGIN([dmo])
4880     VLC_ADD_CPPFLAGS([dmo],[-I\\\${top_srcdir}/libs/loader])
4881     VLC_ADD_LIBS([dmo],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4882     VLC_ADD_CPPFLAGS([quicktime],[-I\\\${top_srcdir}/libs/loader])
4883     VLC_ADD_LIBS([quicktime],[\\\${top_builddir}/libs/loader/libloader.la -lpthread])
4884     VLC_ADD_CPPFLAGS([realaudio],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4885     VLC_ADD_LIBS([realaudio],[\\\${top_builddir}/libs/loader/libloader.la])
4886     VLC_ADD_CPPFLAGS([realvideo],[-I\\\${top_srcdir}/libs/loader -DLOADER])
4887     VLC_ADD_LIBS([realvideo],[\\\${top_builddir}/libs/loader/libloader.la])
4888   ])
4889
4890 AC_ARG_WITH(,[Components:])
4891
4892 dnl
4893 dnl  the VLC binary
4894 dnl
4895 AC_ARG_ENABLE(vlc,
4896   [  --enable-vlc            build the VLC media player (default enabled)])
4897 AM_CONDITIONAL(BUILD_VLC, [test "${enable_vlc}" != "no"])
4898
4899 dnl
4900 dnl  Microsoft ActiveX support
4901 dnl
4902 activex=false
4903 AC_ARG_ENABLE(activex,
4904   AS_HELP_STRING([--enable-activex],[build a vlc-based ActiveX control
4905                   (default enabled on Win32)]))
4906 AC_ARG_WITH(wine-sdk-path,
4907   [    --with-wine-sdk-path=PATH path to wine sdk])
4908 if test "${enable_activex}" != "no"
4909 then
4910   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4911   then
4912     AC_CHECK_PROGS(MIDL, [midl], no)
4913     if test "${with_wine_sdk_path}" != ""
4914     then
4915        WINE_SDK_PATH=${with_wine_sdk_path}
4916        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
4917     else
4918        WIDL=no
4919     fi
4920     AC_LANG_PUSH(C++)
4921     AC_CHECK_HEADERS(ole2.h,
4922       [AC_CHECK_HEADERS(olectl.h,
4923         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
4924           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4925           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi])
4926           AC_CHECK_HEADERS(objsafe.h,
4927             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4928             [
4929              #if HAVE_OLE2_H
4930              #   include <ole2.h>
4931              #endif
4932             ]
4933           )
4934           activex=:
4935           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
4936         ],
4937         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4938       )],
4939       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4940     )
4941     AC_LANG_POP(C++)
4942   fi
4943 fi
4944 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4945 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4946 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
4947 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
4948 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4949
4950 dnl
4951 dnl  Mozilla plugin
4952 dnl
4953 mozilla=false
4954 AC_ARG_ENABLE(mozilla,
4955   AS_HELP_STRING([--enable-mozilla],[build a vlc-based Firefox/Mozilla plugin
4956                   (default disabled)]))
4957 AC_ARG_WITH(mozilla-sdk-path,
4958   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4959 AC_ARG_WITH(mozilla-pkg,
4960   [    --with-mozilla-pkg=PKG  look for PKG.pc to build the mozilla plugin.])
4961 AC_LANG_PUSH(C++)
4962 if test "${enable_mozilla}" = "yes"
4963 then
4964   AS_IF([test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"],
4965     [
4966     dnl pkg-config
4967     dnl As we want to do a loop due to the number of name possible for the .pc
4968     dnl we can't use the pkg-config macros.
4969
4970     AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
4971     AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])
4972     AC_MSG_NOTICE([Checking for Mozilla])
4973     found=0
4974     if test -n "$MOZILLA_CFLAGS" -a -n "$MOZILLA_LIBS"
4975     then
4976       found=1
4977     else
4978       if test -n "$PKG_CONFIG"; then
4979         for i in "${with_mozilla_pkg}" libxul {seamonkey,iceape,xulrunner,firefox,iceweasel,mozilla}-plugin; do
4980           echo "Trying to find $i.pc files" >&5
4981           if $PKG_CONFIG --exists --print-errors "$i" 2>&5
4982           then
4983             echo "Using $i.pc files." >&5
4984             echo "Using $i.pc files." >&6
4985             found=1
4986             MOZILLA_CFLAGS=$( $PKG_CONFIG --cflags "$i" )
4987             MOZILLA_LIBS=$( $PKG_CONFIG --libs "$i" )
4988             break
4989           fi
4990         done
4991       fi
4992     fi
4993     AS_IF( [test $found = 1],[
4994         CPPFLAGS="${CPPFLAGS_save} ${MOZILLA_CFLAGS}"
4995         MOZILLA_REQUIRED_HEADERS=1
4996         AC_CHECK_HEADERS([npfunctions.h])
4997         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
4998         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
4999           [#if HAVE_NPAPI_H
5000            # include <npapi.h>
5001            #endif
5002           ])
5003         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5004             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5005         fi
5006         MOZILLA_REQUIRED_HEADERS=
5007         mozilla=:
5008         AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"],[
5009            VLC_ADD_CPPFLAGS([mozilla],[-DXP_UNIX -DOJI])
5010            AS_IF([ test "${SYS}" != "darwin"],[
5011              PKG_CHECK_MODULES(XPM, [xpm xt],[
5012                 VLC_ADD_CPPFLAGS([mozilla],[-DMOZ_X11])
5013              ],[
5014                 AC_MSG_ERROR([Please install the libXpm and libXt development files.])
5015              ])
5016           ])
5017         ])
5018         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS} ${XPM_CFLAGS}])
5019         VLC_ADD_LIBS([mozilla],[${MOZILLA_LIBS} ${XPM_LIBS}])
5020         VLC_ADD_PLUGIN([mozilla])
5021         PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5022         MOZILLA_CONFIG=
5023         CPPFLAGS="${CPPFLAGS_save}"
5024           ],
5025           [
5026             AC_PATH_PROGS(MOZILLA_CONFIG,
5027             [mozilla-config seamonkey-config xulrunner-config],
5028         [no])
5029             test "${MOZILLA_CONFIG}" = "no" && AC_MSG_ERROR([Please install the Mozilla development tools. mozilla-config was not found.])
5030           ]
5031         )
5032     dnl pkg-config failed but we might have found a mozilla-config
5033     AS_IF( [test ! -z "${MOZILLA_CONFIG}"],[
5034       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5035         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5036         AC_CHECK_LIB(Xt,XtStrings,
5037          [
5038            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5039            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5040          ],
5041          [],
5042          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5043         ])
5044         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5045         LDFLAGS="${LDFLAGS_save}"
5046       fi
5047
5048       mozilla=:
5049       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5050       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin java`]])
5051       VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5052       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5053       MOZILLA_REQUIRED_HEADERS=1
5054       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5055       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5056       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5057         [#if HAVE_NPAPI_H
5058          # include <npapi.h>
5059          #endif
5060         ])
5061       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5062       then
5063         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5064       fi
5065       MOZILLA_REQUIRED_HEADERS=
5066       CPPFLAGS="${CPPFLAGS_save}"
5067       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5068     ])
5069     dnl End of moz_sdk = ""
5070   ],[
5071     dnl special case for mingw32
5072     if test "${SYS}" = "mingw32"
5073     then
5074       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5075       dnl latest gecko sdk does not have an xpcom directory
5076       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5077           mozilla_sdk_xpcom="/xpcom"
5078       fi
5079     fi
5080
5081     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5082     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5083     MOZILLA_REQUIRED_HEADERS=1
5084     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5085     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5086     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5087         [#if HAVE_NPAPI_H
5088           #include <npapi.h>
5089           #endif
5090         ])
5091     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5092     then
5093         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5094     fi
5095     MOZILLA_REQUIRED_HEADERS=
5096     mozilla=:
5097     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5098     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])
5099     if ${need_xpcom_libs}; then
5100        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])
5101       if test "${SYS}" = "mingw32"; then
5102         dnl latest gecko sdk does not have embedstring
5103         if test -d "${real_mozilla_sdk}/embedstring/bin"
5104         then
5105           VLC_ADD_LIBS([mozilla],[-lembedstring])
5106         fi
5107       fi
5108     fi
5109     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5110
5111     if test -n "${CYGPATH}"; then
5112       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5113     fi
5114     CPPFLAGS="${CPPFLAGS_save}"
5115  ])
5116 fi
5117 AC_LANG_POP(C++)
5118 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5119
5120 dnl Tests for Osso and Xsp
5121 AC_CHECK_LIB(osso, osso_display_blanking_pause, [
5122   PKG_CHECK_MODULES(GLIB2, glib-2.0, [
5123     VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx omapfb],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5124     VLC_ADD_LIBS([x11 xvideo xvmc glx omapfb],[-losso])
5125  ])
5126 ])
5127 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5128   VLC_ADD_CPPFLAGS([x11 xvideo xvmc glx],[-DHAVE_XSP])
5129   VLC_ADD_LIBS([x11 xvideo xvmc glx],[-lXsp])
5130 ])
5131
5132 dnl
5133 dnl  test plugins
5134 dnl
5135 AC_ARG_ENABLE(testsuite,
5136   [  --enable-testsuite      build test modules (default disabled)])
5137 if test "${enable_testsuite}" = "yes"
5138 then
5139   TESTS="test1 test2 test3 test4"
5140
5141   dnl  we define those so that bootstrap sets the right linker
5142   VLC_ADD_CXXFLAGS([test2],[])
5143   VLC_ADD_OBJCFLAGS([test3],[])
5144   dnl  this one is needed until automake knows what to do
5145   VLC_ADD_LIBS([test3],[-lobjc])
5146
5147   VLC_ADD_PLUGIN([test1])
5148   VLC_ADD_PLUGIN([test2])
5149   VLC_ADD_PLUGIN([test3])
5150   VLC_ADD_PLUGIN([test4])
5151 fi
5152
5153 dnl
5154 dnl  gtk_main plugin
5155 dnl
5156 if test "${NEED_GTK_MAIN}" != "no"
5157 then
5158     VLC_ADD_PLUGIN([gtk_main])
5159     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5160     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5161 fi
5162
5163 if test "${NEED_GNOME_MAIN}" != "no"
5164 then
5165     VLC_ADD_PLUGIN([gnome_main])
5166     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5167     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5168 fi
5169
5170 if test "${NEED_GTK2_MAIN}" != "no"
5171 then
5172     VLC_ADD_PLUGIN([gtk2_main])
5173     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5174     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5175     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5176     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5177 fi
5178
5179 if test "${NEED_GNOME2_MAIN}" != "no"
5180 then
5181     VLC_ADD_PLUGIN([gnome2_main])
5182     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5183     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5184 fi
5185
5186 dnl
5187 dnl  qte_main plugin
5188 dnl
5189 if test "${NEED_QTE_MAIN}" != "no"
5190 then
5191     VLC_ADD_PLUGIN([qte_main])
5192     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5193     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5194     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5195 fi
5196
5197 dnl
5198 dnl  Plugin and builtin checks
5199 dnl
5200 plugin_support=yes
5201
5202 dnl Automagically disable plugins if there is no system support for
5203 dnl dynamically loadable files (.so, .dll, .dylib).
5204 dnl don't forget vlc-win32 still can load .dll as plugins
5205 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5206   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5207   plugin_support=no
5208 ])
5209
5210 AS_IF([test "${plugin_support}" != "no"], [
5211   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, [Define if dynamic plugins are supported])
5212 ])
5213
5214 dnl
5215 dnl Pic and shared libvlc stuff
5216 dnl
5217 AS_IF([test "${SYS}" = "mingw32"], [
5218   FILE_LIBVLCCORE_DLL="!define LIBVLCCORE_DLL libvlccore.dll"
5219   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5220 ])
5221
5222 dnl
5223 dnl  Stuff used by the program
5224 dnl
5225 VERSION_MESSAGE="${VERSION} ${CODENAME}"
5226 COPYRIGHT_MESSAGE="VLC media player - version ${VERSION_MESSAGE} - (c) ${COPYRIGHT_YEARS} the VideoLAN team"
5227 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION_MESSAGE}", [Simple version string])
5228 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "${COPYRIGHT_MESSAGE}", [Copyright string])
5229 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
5230 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5231 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5232 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5233 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5234 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5235 AC_SUBST(COPYRIGHT_MESSAGE)
5236 AC_SUBST(VERSION_MESSAGE)
5237 AC_SUBST(VERSION_MAJOR)
5238 AC_SUBST(VERSION_MINOR)
5239 AC_SUBST(VERSION_REVISION)
5240 AC_SUBST(VERSION_EXTRA)
5241 AC_SUBST(COPYRIGHT_YEARS)
5242 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure])
5243 if test "${build_os}" = "cygwin"
5244 then
5245     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
5246 else
5247     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
5248 fi
5249 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure])
5250 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler])
5251 dnl Win32 need s a numerical version_extra.
5252 case $( echo ${VERSION_EXTRA}|wc -m ) in
5253        "1") VERSION_EXTRA_RC="0";;
5254        "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
5255        *) VERSION_EXTRA_RC="99"
5256 esac
5257 AC_SUBST(VERSION_EXTRA_RC)
5258 dnl
5259 dnl  Handle substvars that use $(top_srcdir)
5260 dnl
5261 VLC_CONFIG="top_srcdir=\"\$(top_srcdir)\" top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5262 AC_SUBST(VLC_CONFIG)
5263 CPPFLAGS_save="-I\$(top_srcdir)/include -I\$(top_builddir)/include ${CPPFLAGS_save}"
5264
5265 dnl
5266 dnl  Restore *FLAGS
5267 dnl
5268 VLC_RESTORE_FLAGS
5269
5270 dnl
5271 dnl Sort the modules list
5272 dnl
5273 PLUGINS=$( (for i in `echo $PLUGINS`; do echo $i; done)|sort|xargs )
5274
5275 dnl
5276 dnl  Create the vlc-config script
5277 dnl
5278 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5279
5280 dnl
5281 dnl  Configuration is finished
5282 dnl
5283 AC_SUBST(SYS)
5284 AC_SUBST(ARCH)
5285 AC_SUBST(ALIASES)
5286 AC_SUBST(ASM)
5287 AC_SUBST(MOC)
5288 AC_SUBST(RCC)
5289 AC_SUBST(UIC)
5290 AC_SUBST(WINDRES)
5291 AC_SUBST(MOZILLA_SDK_PATH)
5292 AC_SUBST(WINE_SDK_PATH)
5293 AC_SUBST(LIBEXT)
5294 AC_SUBST(AM_CPPFLAGS)
5295 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5296 AC_SUBST(FILE_LIBVLCCORE_DLL)
5297 AC_SUBST(FILE_LIBVLC_DLL)
5298
5299 dnl Create vlc-config.in
5300 VLC_OUTPUT_VLC_CONFIG_IN
5301
5302 AC_CONFIG_FILES([
5303   extras/package/win32/vlc.win32.nsi
5304   extras/package/macosx/Info.plist
5305   extras/package/macosx/Resources/English.lproj/InfoPlist.strings
5306   extras/package/macosx/plugin/Info.plist
5307   extras/package/macosx/plugin/InstallerInfo.plist
5308   Makefile
5309   projects/activex/Makefile
5310   projects/activex/axvlc.inf
5311   doc/Makefile
5312   extras/package/ipkg/Makefile
5313   libs/loader/Makefile
5314   libs/srtp/Makefile
5315   libs/unzip/Makefile
5316   modules/Makefile
5317   projects/mozilla/Makefile
5318   m4/Makefile
5319   po/Makefile.in
5320   projects/activex/axvlc_rc.rc
5321   projects/mozilla/npvlc_rc.rc
5322   projects/mozilla/vlc.r
5323   projects/mozilla/install.js
5324   share/Makefile
5325   share/vlc_win32_rc.rc
5326   share/libvlc_win32_rc.rc
5327   compat/Makefile
5328   src/Makefile
5329   src/test/Makefile
5330   bin/Makefile
5331   test/Makefile
5332   modules/access/Makefile
5333   modules/access/bd/Makefile
5334   modules/access/bda/Makefile
5335   modules/access/dshow/Makefile
5336   modules/access/dvb/Makefile
5337   modules/access/mms/Makefile
5338   modules/access/cdda/Makefile
5339   modules/access/rtp/Makefile
5340   modules/access/rtsp/Makefile
5341   modules/access/rtmp/Makefile
5342   modules/access/vcd/Makefile
5343   modules/access/vcdx/Makefile
5344   modules/access/screen/Makefile
5345   modules/access/zip/Makefile
5346   modules/access_output/Makefile
5347   modules/audio_filter/Makefile
5348   modules/audio_filter/channel_mixer/Makefile
5349   modules/audio_filter/converter/Makefile
5350   modules/audio_filter/resampler/Makefile
5351   modules/audio_filter/spatializer/Makefile
5352   modules/audio_mixer/Makefile
5353   modules/audio_output/Makefile
5354   modules/codec/Makefile
5355   modules/codec/avcodec/Makefile
5356   modules/codec/cmml/Makefile
5357   modules/codec/dmo/Makefile
5358   modules/codec/shine/Makefile
5359   modules/codec/subtitles/Makefile
5360   modules/codec/spudec/Makefile
5361   modules/codec/wmafixed/Makefile
5362   modules/codec/xvmc/Makefile
5363   modules/control/Makefile
5364   modules/control/http/Makefile
5365   modules/control/globalhotkeys/Makefile
5366   modules/demux/Makefile
5367   modules/demux/asf/Makefile
5368   modules/demux/avformat/Makefile
5369   modules/demux/avi/Makefile
5370   modules/demux/mkv/Makefile
5371   modules/demux/mp4/Makefile
5372   modules/demux/mpeg/Makefile
5373   modules/demux/playlist/Makefile
5374   modules/gui/Makefile
5375   modules/gui/beos/Makefile
5376   modules/gui/pda/Makefile
5377   modules/gui/macosx/Makefile
5378   modules/gui/maemo/Makefile
5379   modules/gui/minimal_macosx/Makefile
5380   modules/gui/qnx/Makefile
5381   modules/gui/qt4/Makefile
5382   modules/gui/skins2/Makefile
5383   modules/gui/wince/Makefile
5384   modules/meta_engine/Makefile
5385   modules/misc/Makefile
5386   modules/misc/dummy/Makefile
5387   modules/misc/lua/Makefile
5388   modules/misc/memcpy/Makefile
5389   modules/misc/notify/Makefile
5390   modules/misc/testsuite/Makefile
5391   modules/misc/playlist/Makefile
5392   modules/misc/osd/Makefile
5393   modules/misc/stats/Makefile
5394   modules/misc/xml/Makefile
5395   modules/misc/probe/Makefile
5396   modules/mux/Makefile
5397   modules/mux/mpeg/Makefile
5398   modules/packetizer/Makefile
5399   modules/services_discovery/Makefile
5400   modules/stream_filter/Makefile
5401   modules/stream_out/Makefile
5402   modules/stream_out/transrate/Makefile
5403   modules/video_chroma/Makefile
5404   modules/video_filter/Makefile
5405   modules/video_filter/atmo/Makefile
5406   modules/video_filter/dynamicoverlay/Makefile
5407   modules/video_output/Makefile
5408   modules/video_output/msw/Makefile
5409   modules/video_output/qte/Makefile
5410   modules/video_output/x11/Makefile
5411   modules/visualization/Makefile
5412   modules/visualization/visual/Makefile
5413 ])
5414
5415 dnl Generate makefiles
5416 AC_OUTPUT
5417
5418 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5419 # not provided with the source
5420 ${SHELL} ./config.status --file=vlc-config
5421 chmod 0755 vlc-config
5422
5423 /bin/echo -n "Enabled modules: "
5424 ./vlc-config --list plugin
5425
5426 dnl Shortcut to nice compile message
5427 rm -f compile
5428 echo '#! /bin/sh' >compile
5429 echo rm -f .error\$\$ >>compile
5430 echo ERROR=0 >>compile
5431 echo export PATH=$PATH LANG=C >>compile
5432 echo "(make \$@ 2>&1 || touch .error\$\$)| \\" >>compile
5433 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >>compile
5434 echo test -f .error\$\$ \&\& ERROR=1 >>compile
5435 echo rm -f .error\$\$ >>compile
5436 echo exit \$ERROR >>compile
5437 chmod a+x compile
5438
5439 printf "
5440 libvlc configuration
5441 --------------------
5442 version               : ${VERSION}
5443 system                : ${SYS}
5444 architecture          : ${ARCH}
5445 build flavour         : "
5446 test "${enable_debug}" = "yes" && printf "debug "
5447 test "${enable_cprof}" = "yes" && printf "cprof "
5448 test "${enable_gprof}" = "yes" && printf "gprof "
5449 test "${enable_optimizations}" = "yes" && printf "optim "
5450 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5451 echo ""
5452 if test "${enable_vlc}" != "no"; then
5453 echo "vlc aliases           :${ALIASES}"
5454 else
5455 echo "build vlc executable  : no"
5456 fi
5457 echo "plugins/bindings      :${PLUGINS_BINDINGS}
5458
5459 You can tune the compiler flags in vlc-config.
5460 To build vlc and its plugins, type \`./compile' or \`make'.
5461 "
5462 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
5463    echo ""
5464    echo "Warning: Due to a bug in ld, mmx/sse support has been"
5465    echo "         turned off."
5466    echo "         FFmpeg will be REALLY slow."
5467    echo "         VLC WILL NOT PERFORM AS EXPECTED."
5468    echo ""
5469 fi