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