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