]> git.sesse.net Git - vlc/blob - configure.ac
Detect and allow older versions of ffmpeg to be used in conjunction with VLC.
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59) dnl this really should be 2.59c
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225
226         with_macosx_sdk=""
227         echo "  Compiling with default SDK"
228     fi
229     if test ".`uname -p`" = ".i386"; then
230         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
231         dnl without hacking it a lot, we disable mmx and sse.
232         dnl (that bug is about ld being unable to handle
233         dnl text relocation)
234         save_cflags="$CFLAGS"
235         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
236         AC_TRY_LINK(
237             [int a;], [asm("movq _a,%mm0\n");],
238             ac_ld_does_not_support_text_reloc=no,
239             ac_ld_does_not_support_text_reloc=yes)
240         CFLAGS="$save_cflags"
241
242         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
243             enable_mmx="no"
244             echo "  Assuming --disable-mmx (due to a bug in ld)"
245             enable_sse="no"
246             echo "  Assuming --disable-sse (due to a bug in ld)"
247         fi
248     fi
249     dnl
250     dnl  Check for Mac OS X SDK settings
251     dnl
252     AC_ARG_WITH(macosx-sdk,
253        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
254     if test "${with_macosx_sdk}" != "" ; then
255         CC="${CC} -isysroot ${with_macosx_sdk}" 
256         CXX="${CXX} -isysroot ${with_macosx_sdk}"
257         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
258         LD="${LD} -syslibroot ${with_macosx_sdk}"
259     fi
260     AC_ARG_WITH(macosx-version-min,
261        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
262     if test "${with_macosx_version_min}" != "" ; then
263         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
264         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
265         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
266         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
267         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
268         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
269         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
270         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
271         export MACOSX_DEPLOYMENT_TARGET
272     fi
273     ;;
274   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
275     AC_CHECK_TOOL(WINDRES, windres, :)
276
277     case "${host_os}" in
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290       *wince* | *mingwce* | *pe*)
291         SYS=mingwce
292         ;;
293     esac
294
295     if test "${SYS}" = "mingw32"; then
296         # add ws2_32 for closesocket, select, recv
297         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
298         VLC_ADD_LDFLAGS([vlc],[-mwindows])
299         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
300         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
301         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua],[-lws2_32])
302     fi
303     if test "${SYS}" = "mingwce"; then
304         # add ws2 for closesocket, select, recv
305         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
306         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
307         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
308    fi
309     ;;
310   *nto*)
311     SYS=nto
312     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
313     ;;
314   solaris*)
315     SYS=solaris
316     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
317     # Perhaps it is useful other places as well? 
318     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
319     ;;
320   hpux*)
321     SYS=hpux
322     ;;
323   beos)
324     SYS=beos
325     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
326     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
327     VLC_ADD_CXXFLAGS([beos],[])
328     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
329     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
330     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
331     VLC_ADD_LIBS([access_file],[-lpoll])
332     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
333     dnl Check for BONE
334     if test -f /boot/beos/system/lib/libbind.so; then
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
336     else
337         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
338     fi
339
340     dnl Ugly check for Zeta
341     if test -f /boot/beos/system/lib/libzeta.so; then
342         VLC_ADD_LIBS([beos],[-lzeta])
343     fi
344     ;;
345   *)
346     SYS="${host_os}"
347     ;;
348 esac
349 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
350 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
351 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
352 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
353
354 dnl
355 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
356 dnl for program foo on win32
357
358 case "${build_os}" in
359     cygwin|msys)
360         ac_executable_extensions=".exe"
361     ;;
362     *)
363     ;;
364 esac
365
366 dnl 
367 dnl  Libtool
368 dnl  It's very bad, but our former custom system was worst
369 dnl  -- Courmisch
370 dnl
371
372 dnl override platform specific check for dependent libraries
373 dnl otherwise libtool linking of shared libraries will
374 dnl fail on anything other than pass_all.
375 AC_CACHE_VAL(lt_cv_deplibs_check_method,
376     [lt_cv_deplibs_check_method=pass_all])
377
378 AC_DISABLE_STATIC
379 AC_DISABLE_FAST_INSTALL
380 AC_LIBTOOL_DLOPEN
381 AC_LIBTOOL_WIN32_DLL
382 m4_undefine([AC_PROG_F77])
383 m4_defun([AC_PROG_F77],[])
384 AC_PROG_LIBTOOL
385
386 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
387 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
388
389 lt_cv_deplibs_check_method=pass_all
390
391
392 dnl
393 dnl Gettext stuff
394 dnl
395 AM_GNU_GETTEXT_VERSION(0.16.1)
396 AM_GNU_GETTEXT([external])
397 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
398
399 dnl
400 dnl Iconv stuff
401 dnl
402 AM_ICONV
403 AS_IF([test "$am_cv_func_iconv" != "yes"],
404         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
405 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
406 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
407
408 dnl Check for the need to include the mingwex lib for mingw32
409 if test "${SYS}" = "mingw32"
410 then
411     AC_CHECK_LIB(mingwex,opendir,
412         AC_CHECK_LIB(mingw32,opendir,,
413             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
414     )
415 fi
416
417 dnl Check for fnative-struct or mms-bitfields support for mingw32
418 if test "${SYS}" = "mingw32"
419 then
420     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
421         [ac_cv_c_mms_bitfields],
422         [CFLAGS="${CFLAGS_save} -mms-bitfields"
423          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
424     if test "${ac_cv_c_mms_bitfields}" != "no"; then
425         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
426         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
427     else
428         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
429             [ac_cv_c_fnative_struct],
430             [CFLAGS="${CFLAGS_save} -fnative-struct"
431              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
432         if test "${ac_cv_c_fnative_struct}" != "no"; then
433             CFLAGS_save="${CFLAGS_save} -fnative-struct";
434             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
435         fi
436     fi
437
438     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
439 fi
440
441 dnl Check for fvtable-thunks support for mingw32
442 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
443 then
444 AC_LANG_PUSH(C++)
445     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
446         [ac_cv_cxx_fvtable_thunks],
447         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
448          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
449                         ac_cv_cxx_fvtable_thunks=no)])
450     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
451         CXXFLAGS_mingw32_special="-fvtable-thunks"
452     fi
453
454     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
455 AC_LANG_POP(C++)
456 fi
457
458 dnl Plugin compilation stuff
459
460 VLC_LIBRARY_SUFFIX
461
462 VLC_SYMBOL_PREFIX
463 AC_SUBST(SYMPREF)
464
465 dnl The -DSYS_FOO flag
466 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
467
468 dnl Check for system libs needed
469 need_libc=false
470
471 dnl Check for usual libc functions
472 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise])
473 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
474 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
475 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
476 AC_FUNC_ALLOCA
477
478 AH_BOTTOM([#include <vlc_fixups.h>])
479
480 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGINS([access_mmap])])
481
482 AS_IF([test "${SYS}" = "linux"], [
483   AC_CHECK_FUNCS(tee)
484 ])
485
486 dnl Check for setlocal and langinfo
487 AC_CHECK_FUNCS(setlocale)
488 AC_CHECK_HEADERS(langinfo.h)
489 AC_CHECK_FUNCS(nl_langinfo)
490
491 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
492   [AC_TRY_LINK([#include <langinfo.h>],
493     [char* cs = nl_langinfo(CODESET);],
494     ac_cv_langinfo_codeset=yes,
495     ac_cv_langinfo_codeset=no)
496   ])
497 if test ${ac_cv_langinfo_codeset} = yes; then
498   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
499     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
500 fi
501
502 AC_CHECK_FUNCS(connect,,[
503   AC_CHECK_LIB(socket,connect,[
504     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
505     LIBS_socket="-lsocket"
506   ])
507 ])
508
509 AC_CHECK_FUNCS(send,,[
510   AC_CHECK_LIB(socket,send,[
511     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl_udp],[-lsocket])
512   ])
513 ])
514
515 AC_CHECK_FUNCS(gethostbyname,,[
516   AC_CHECK_LIB(nsl,gethostbyname,[
517     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
518   ],[
519     AC_CHECK_LIB(bind,gethostbyname,[
520       VLC_ADD_LIBS([access_mms],[-lbind])
521     ])
522   ])
523 ])
524
525 AC_CHECK_HEADERS(zlib.h, [
526   VLC_ADD_LIBS([access_http],[-lz])
527 ])
528
529 dnl Check for socklen_t
530 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
531 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
532 ac_cv_type_socklen_t,
533 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
534 [#include <sys/types.h>
535 #ifdef WIN32
536 # include <winsock2.h>
537 # include <ws2tcpip.h>
538 #else
539 # include <sys/socket.h>
540 #endif]], [[socklen_t len; len = 0;]])],
541 ac_cv_type_socklen_t=yes,
542 ac_cv_type_socklen_t=no)])
543 AS_IF([test "$ac_cv_type_socklen_t" = no],
544  [AC_DEFINE(socklen_t, int)])
545
546 dnl Check for struct sockaddr_storage
547 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
548 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
549 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
550   [AC_TRY_COMPILE(
551     [#include <sys/types.h>
552      #if defined( UNDER_CE )
553      # include <winsock.h>
554      #elif defined( WIN32 )
555      # include <winsock2.h>
556      #else
557      # include <sys/socket.h>
558      #endif], [struct sockaddr_storage addr;],
559      ac_cv_struct_sockaddr_storage=yes,
560      ac_cv_struct_sockaddr_storage=no)])
561 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
562   AC_DEFINE(sockaddr_storage, sockaddr)
563   AC_DEFINE(ss_family, sa_family)
564 ])
565
566 dnl getaddrinfo, getnameinfo and gai_strerror check
567 dnl  -lnsl and -lsocket are needed on Solaris;
568 dnl  we purposedly make the test fail on Windows
569 LIBS_save="${LIBS}"
570 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
571 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
572
573 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
574 dnl are
575 LIBS="${LIBS_gai}"
576 AC_CHECK_FUNCS([getnameinfo gai_strerror])
577 LIBS="${LIBS_save}"
578
579 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
580 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
581 [#include <sys/types.h>
582 #if defined( WIN32 ) || defined( UNDER_CE )
583 # if defined(UNDER_CE) && defined(sockaddr_storage)
584 #  undef sockaddr_storage
585 # endif
586 # include <winsock2.h>
587 # include <ws2tcpip.h>
588 #else
589 # include <netdb.h>
590 #endif])
591
592 dnl Check for va_copy
593 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
594   AC_TRY_LINK(
595     [#include <stdarg.h>],
596     [va_list ap1, ap2; va_copy(ap1,ap2);],
597     [ac_cv_c_va_copy="yes"],
598     [ac_cv_c_va_copy="no"]))
599 if test "${ac_cv_c_va_copy}" = "yes"; then
600   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
601 fi
602 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
603   AC_TRY_LINK(
604     [#include <stdarg.h>],
605     [va_list ap1, ap2; __va_copy(ap1,ap2);],
606     [ac_cv_c___va_copy="yes"],
607     [ac_cv_c___va_copy="no"]))
608 if test "${ac_cv_c___va_copy}" = "yes"; then
609   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
610 fi
611
612 AC_CHECK_FUNCS(inet_aton,,[
613   AC_CHECK_LIB(resolv,inet_aton,[
614     VLC_ADD_LIBS([libvlc],[-lresolv])
615   ])
616 ])
617
618 dnl Check for getopt (always use builtin one on win32)
619 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
620 need_getopt=:
621 else
622 need_getopt=false
623 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
624 [ # FreeBSD has a gnugetopt library for this:
625   AC_CHECK_LIB([gnugetopt],[getopt_long],
626     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
627      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
628     [need_getopt=:])])
629 fi
630 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
631
632 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
633 AC_TYPE_SIGNAL
634 AC_CHECK_LIB(m,cos,[
635   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
636 ])
637 AC_CHECK_LIB(m,pow,[
638   VLC_ADD_LIBS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
639 ])
640 AC_CHECK_LIB(m,sqrt,[
641   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
642 ])
643 AC_CHECK_LIB(m,ceil,[
644   VLC_ADD_LIBS([mosaic],[-lm])
645 ])
646 AC_CHECK_LIB(m,exp,[
647   VLC_ADD_LIBS([gaussianblur],[-lm])
648 ])
649 AC_CHECK_LIB(mx,sqrtf,[
650   VLC_ADD_LIBS([x264],[-lmx])
651 ])
652 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
653
654 dnl Check for dynamic plugins
655 ac_cv_have_plugins=no
656
657 # OS X style
658 AC_CHECK_HEADERS(mach-o/dyld.h,
659   [AC_CHECK_FUNCS(NSLinkModule,
660     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
661      ac_cv_have_plugins=yes])])
662
663 # HP-UX style
664 if test "${ac_cv_have_plugins}" = "no"; then
665   AC_CHECK_HEADERS(dl.h)
666   ac_cv_my_have_shl_load=no
667   AC_CHECK_FUNC(shl_load,
668    [ac_cv_my_have_shl_load=yes,
669     AC_CHECK_LIB(dld, shl_load,
670      [ac_cv_my_have_shl_load=yes
671       VLC_ADD_LIBS([libvlc],[-ldld])])])
672   if test "${ac_cv_my_have_shl_load}" = "yes"; then
673     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
674     ac_cv_have_plugins=yes
675   fi
676 fi
677
678 # Whatever style
679 if test "${ac_cv_have_plugins}" = "no"; then
680   AC_CHECK_LIB(dld, dld_link,
681    [VLC_ADD_LIBS([libvlc],[-ldld])
682     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
683     ac_cv_have_plugins=yes])
684 fi
685
686 # Win32 style
687 if test "${ac_cv_have_plugins}" = "no"; then
688   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
689     AC_CHECK_LIB(kernel32, main,
690      [VLC_ADD_LIBS([libvlc],[-lkernel32])
691       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
692       ac_cv_have_plugins=yes])
693   fi
694 fi
695
696 # WinCE style
697 if test "${ac_cv_have_plugins}" = "no"; then
698   if test "${SYS}" = "mingwce"; then
699     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
700     ac_cv_have_plugins=yes
701   fi
702 fi
703
704 # BeOS style
705 if test "${ac_cv_have_plugins}" = "no"; then
706   AC_CHECK_HEADERS(image.h)
707   AC_CHECK_FUNCS(load_add_on,
708    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
709     ac_cv_have_plugins=yes])
710 fi
711
712 # Only test for dlopen() if the others didn't work
713 if test "${ac_cv_have_plugins}" = "no"; then
714   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
715   ac_cv_my_have_dlopen=no
716   AC_CHECK_FUNC(dlopen,
717     ac_cv_my_have_dlopen=yes,
718     AC_CHECK_LIB(dl, dlopen,
719       ac_cv_my_have_dlopen=yes
720       VLC_ADD_LIBS([libvlc realaudio],[-ldl]),
721       AC_CHECK_LIB(svld, dlopen,
722         ac_cv_my_have_dlopen=yes
723         VLC_ADD_LIBS([libvlc],[-lsvld]))))
724   if test "${ac_cv_my_have_dlopen}" = "yes"; then
725     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
726     ac_cv_have_plugins=yes
727   fi
728 fi
729
730 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
731 dnl Check for pthreads - borrowed from XMMS
732 THREAD_LIB=error
733 if test "${THREAD_LIB}" = "error"; then
734   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
735 fi
736 if test "${THREAD_LIB}" = "error"; then
737   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
738 fi
739 if test "${THREAD_LIB}" = "error"; then
740   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
741 fi
742 if test "${THREAD_LIB}" = "error"; then
743   AC_CHECK_FUNCS(pthread_mutex_lock)
744   THREAD_LIB=""
745 fi
746
747 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
748
749 AC_CHECK_LIB(rt, clock_nanosleep, [
750   VLC_ADD_LIBS([libvlc],[-lrt])
751   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
752 ], [
753   dnl HP/UX port
754   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
755 ])
756
757 have_nanosleep=false
758 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
759   AC_CHECK_LIB(rt,nanosleep,
760     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
761     [AC_CHECK_LIB(posix4,nanosleep,
762         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
763   )
764 ])
765 if ${have_nanosleep}; then
766   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
767 fi
768 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" 
769
770 dnl Check for misc headers
771 AC_MSG_CHECKING(for strncasecmp in strings.h)
772 AC_EGREP_HEADER(strncasecmp,strings.h,[
773   AC_MSG_RESULT(yes)
774   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
775             Define if <strings.h> defines strncasecmp.)],[
776   AC_MSG_RESULT(no)])
777
778 dnl Check for headers
779 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h locale.h)
780 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
781 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
782 AC_CHECK_HEADERS([net/if.h], [], [],
783   [
784     #include <sys/socket.h>
785   ])
786 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
787 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
788 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
789 AC_CHECK_HEADERS(syslog.h)
790 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
791
792 AC_HEADER_TIME
793
794 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
795 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
796 AC_CHECK_TYPE(ssize_t,, [
797   AC_DEFINE(ssize_t, int)
798 ])
799
800 dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
801 if test "${SYS}" != "darwin"; then
802   AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
803 fi
804
805 dnl Check for dirent
806 need_dirent=false
807 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
808 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
809
810 dnl Mac OS X and other OSes don't have declaration for nanosleep
811 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
812 AC_MSG_CHECKING(for nanosleep in time.h)
813 AC_EGREP_HEADER(nanosleep,time.h,[
814   AC_MSG_RESULT(yes)
815   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
816             Define if <time.h> defines nanosleep.)
817 ],[
818   AC_MSG_RESULT(no)
819 ])
820 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
821
822 dnl Make sure we have timespecs
823 AC_MSG_CHECKING(for timespec in sys/time.h)
824 AC_EGREP_HEADER(timespec,sys/time.h,[
825   AC_MSG_RESULT(yes)
826   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
827             Define if <sys/time.h> defines struct timespec.)
828 ],[
829   AC_MSG_RESULT(no)
830 ])
831
832 dnl Check for threads library
833 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
834 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
835 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
836
837 dnl Find where are the X headers and libraries
838 AC_PATH_XTRA()
839
840 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.
841
842 PKG_PROG_PKG_CONFIG()
843
844 dnl Check for hal
845 AC_ARG_ENABLE(hal,
846   [  --enable-hal            Linux HAL services discovery (default enabled)])
847  
848 if test "${enable_hal}" != "no"
849 then
850   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
851     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
852       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
853       VLC_ADD_PLUGINS([hal probe_hal]) 
854       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
855       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
856     dnl No hal 0.5 Test for 0.2
857     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
858        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
859         VLC_ADD_PLUGINS([hal])
860         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
861         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
862        [AC_MSG_WARN(HAL library not found)])
863     ]
864   )
865 fi
866
867 dnl Check for dbus
868 AC_ARG_ENABLE(dbus,
869   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
870 case "${SYS}" in
871     linux*|*bsd*)
872 if test "${enable_dbus}" != "no"
873 then
874   dnl api stable dbus
875   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
876     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
877       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
878       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
879       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
880       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
881       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
882       dnl Check for dbus control interface
883         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
884         if test "${enable_dbus_control}" != "no"
885         then
886           VLC_ADD_PLUGINS([dbus])
887           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
888           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
889         fi
890       dnl Check for Telepathy
891         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
892         if test "${enable_telepathy}" != "no"; then
893           VLC_ADD_PLUGINS([telepathy])
894           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
895           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
896         fi
897         dnl Power Management Inhibiter
898         VLC_ADD_PLUGINS([inhibit])
899         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
900         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
901         ],
902     if ${PKG_CONFIG} --exists dbus-1
903     then
904       [AC_ARG_ENABLE(old-dbus,
905         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
906
907       if test "${enable_old_dbus}" != "yes"
908       then
909         echo ""
910         echo "****** WARNING **** WARNING ***** WARNING *************"
911         echo "*** Your D-Bus version is < 1.0.0"
912         echo "*** You are using old and buggy software and so"
913         echo "*** D-Bus support has been disabled."
914         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
915         echo "*** Alternatively you can force the use of your old and"
916         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
917         echo "*******************************************************"
918         echo ""
919       else
920         dnl not too old dbus
921         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
922           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
923             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
924             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
925             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
926             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
927           dnl older dbus
928           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
929             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
930               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
931               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
932               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
933             dnl much older dbus
934             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
935                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
936                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
937                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
938                [AC_MSG_WARN(DBUS library not found)])
939             ]
940           )]
941         )]
942       fi
943     fi
944   )
945 fi
946 ;;
947 esac
948
949 dnl Build the gtk_main plugins?
950 NEED_GTK_MAIN=no
951 NEED_GNOME_MAIN=no
952 NEED_GTK2_MAIN=no
953 NEED_GNOME2_MAIN=no
954
955 dnl build the qte plugin ?
956 NEED_QTE_MAIN=no
957
958 dnl Check for ntohl, etc.
959 AC_CACHE_CHECK([for ntohl in sys/param.h],
960     [ac_cv_c_ntohl_sys_param_h],
961     [CFLAGS="${CFLAGS_save} -Wall -Werror"
962      AC_TRY_COMPILE([#include <sys/param.h>],
963         [int meuh; ntohl(meuh);],
964         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
965 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
966     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
967 fi
968 CFLAGS="${CFLAGS_save}"
969
970 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
971 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
972
973 dnl This helps detect broken plugins with undefined symbols
974 dnl Better fail loudly at build-time than silenty at run-time.
975 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
976 if test `uname -s` != FreeBSD; then
977   RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
978     VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
979   ])
980 fi
981
982 dnl Check for various optimization flags
983 AC_CACHE_CHECK([if \$CC accepts -Os],
984     [ac_cv_c_os],
985     [CFLAGS="${CFLAGS_save} -Os"
986      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
987 if test "${ac_cv_c_os}" != "no"; then
988     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
989 else 
990     AC_CACHE_CHECK([if \$CC accepts -O],
991         [ac_cv_c_o],
992         [CFLAGS="${CFLAGS_save} -O"
993          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
994     if test "${ac_cv_c_o}" != "no"; then
995         if test "${ac_cv_c_o3}" = "no"; then
996             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
997         fi
998     fi
999 fi
1000
1001 AC_CACHE_CHECK([if \$CC accepts -O3],
1002     [ac_cv_c_o3],
1003     [CFLAGS="${CFLAGS_save} -O3"
1004      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
1005 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
1006     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
1007 else
1008     AC_CACHE_CHECK([if \$CC accepts -O2],
1009         [ac_cv_c_o2],
1010         [CFLAGS="${CFLAGS_save} -O2"
1011          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1012     if test "${ac_cv_c_o2}" != "no"; then
1013         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1014     else
1015         AC_CACHE_CHECK([if \$CC accepts -O],
1016             [ac_cv_c_o],
1017             [CFLAGS="${CFLAGS_save} -O"
1018              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1019         if test "${ac_cv_c_o}" != "no"; then
1020             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1021         fi
1022     fi
1023 fi
1024
1025 AC_CACHE_CHECK([if \$CC accepts -O0],
1026     [ac_cv_c_o0],
1027     [CFLAGS="${CFLAGS_save} -O0"
1028      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1029 if test "${ac_cv_c_o0}" != "no"; then
1030     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1031 fi
1032
1033 dnl Check for -ffast-math
1034 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1035     [ac_cv_c_fast_math],
1036     [CFLAGS="${CFLAGS_save} -ffast-math"
1037      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1038 if test "${ac_cv_c_fast_math}" != "no"; then
1039     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1040 fi
1041
1042 dnl Check for -funroll-loops
1043 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1044 if test "${SYS}" != "beos"
1045 then
1046   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1047       [ac_cv_c_unroll_loops],
1048       [CFLAGS="${CFLAGS_save} -funroll-loops"
1049        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1050   if test "${ac_cv_c_unroll_loops}" != "no"; then
1051       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1052   fi
1053 fi
1054
1055 dnl Check for -fomit-frame-pointer
1056 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1057     [ac_cv_c_omit_frame_pointer],
1058     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1059      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1060 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1061     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1062 fi
1063
1064 dnl Check for -fvisibility=hidden
1065 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1066     [ac_cv_c_visibility_hidden],
1067     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1068      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1069 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1070     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1071 fi
1072
1073 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1074
1075 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1076 dnl AC_LANG_PUSH(C++)
1077 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1078 dnl         [ac_cv_c_visibility_inlines_hidden],
1079 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1080 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1081 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1082 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1083 dnl     fi
1084 dnl     CXXFLAGS="${CXXFLAGS_save}"
1085 dnl AC_LANG_POP(C++)
1086
1087 dnl Check for -mdynamic-no-pic
1088 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1089 dnl     [ac_cv_c_dynamic_no_pic],
1090 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1091 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1092 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1093 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1094 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1095 dnl ])
1096
1097 dnl Check for Darwin plugin linking flags
1098 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1099     [ac_cv_ld_darwin],
1100     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1101      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1102 if test "${ac_cv_ld_darwin}" != "no"; then
1103     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1104 fi
1105
1106 dnl Check for standard plugin linking flags
1107 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1108 dnl AS_IF([test "${SYS}" = "beos"], [
1109 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1110 dnl ], [
1111 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1112 dnl         [ac_cv_ld_plugins],
1113 dnl         [CFLAGS="${CFLAGS_save} -shared"
1114 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1115 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1116 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1117 dnl   ])
1118 dnl ])
1119
1120 dnl Checks for __attribute__(aligned()) directive
1121 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1122     [ac_cv_c_attribute_aligned],
1123     [ac_cv_c_attribute_aligned=0
1124         CFLAGS="${CFLAGS_save} -Werror"
1125     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1126         AC_TRY_COMPILE([],
1127         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1128         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1129     done
1130         CFLAGS="${CFLAGS_save}"])
1131 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1132     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1133         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1134 fi
1135
1136 dnl Checks for __attribute__(format()) directive
1137 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1138     [ac_cv_c_attribute_format],
1139     [ac_cv_c_attribute_format=no
1140         CFLAGS="${CFLAGS_save} -Werror"
1141         AC_TRY_COMPILE([],
1142         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1143         [ac_cv_c_attribute_format=yes])
1144         CFLAGS="${CFLAGS_save}"])
1145 if test "${ac_cv_c_attribute_format}" != "no"; then
1146     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1147 fi
1148
1149 dnl Check for __attribute__((packed))
1150 AC_CACHE_CHECK([for __attribute__((packed))],
1151   [ac_cv_c_attribute_packed],
1152   [ac_cv_c_attribute_packed=no
1153    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1154                     [ac_cv_c_attribute_packed=yes])])
1155 if test "${ac_cv_c_attribute_packed}" != "no"; then
1156   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1157 fi
1158
1159 dnl Check for __attribute__((visibility()))
1160 AC_CACHE_CHECK([for __attribute__((visibility()))],
1161   [ac_cv_c_attribute_visibility],
1162   [ac_cv_c_attribute_visibility=no
1163    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1164                     [ac_cv_c_attribute_visibility=yes])])
1165 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1166   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1167 fi
1168
1169 dnl
1170 dnl  Check the CPU
1171 dnl
1172 case "${host_cpu}" in
1173   "")
1174     ARCH=unknown
1175     ;;
1176   *)
1177     ARCH="${host_cpu}"
1178     ;;
1179 esac
1180
1181 dnl
1182 dnl  Enable profiling
1183 dnl
1184 AC_ARG_ENABLE(gprof,
1185 [  --enable-gprof          gprof profiling (default disabled)])
1186 AC_ARG_ENABLE(cprof,
1187 [  --enable-cprof          cprof profiling (default disabled)])
1188 test "${enable_gprof}" != "yes" && enable_gprof="no"
1189 test "${enable_cprof}" != "yes" && enable_cprof="no"
1190
1191 dnl
1192 dnl  default modules
1193 dnl
1194 VLC_ADD_PLUGINS([dummy logger memcpy])
1195 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 demux_cdg cdg ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
1196 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
1197 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1198 VLC_ADD_PLUGINS([converter_fixed mono])
1199 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1200 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1201 VLC_ADD_PLUGINS([playlist export nsc xtag])
1202 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1203 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
1204 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1205 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1206 VLC_ADD_PLUGINS([access_filter_bandwidth])
1207 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1208 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1209 VLC_ADD_PLUGINS([packetizer_vc1])
1210
1211 ALIASES="${ALIASES} cvlc"
1212
1213 dnl
1214 dnl default modules that need g++
1215 dnl
1216 AC_LANG_PUSH(C++)
1217 VLC_ADD_PLUGINS([spatializer])
1218 AC_LANG_POP(C++)
1219
1220 if test "${SYS}" != "mingwce"; then
1221   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1222   VLC_ADD_PLUGINS([gestures rc telnet hotkeys showintf marq podcast shout sap fake folder])
1223   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1224   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga i422_i420 yuy2_i422 yuy2_i420 chroma_chain])
1225   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1226   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1227   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1228   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1229   ALIASES="${ALIASES} rvlc"
1230 fi
1231
1232 dnl
1233 dnl Some plugins aren't useful on some platforms
1234 dnl
1235 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1236     VLC_ADD_PLUGINS([screensaver motion])
1237 elif test "${SYS}" != "mingwce"; then
1238     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1239     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1240 else
1241     VLC_ADD_PLUGINS([win32text])
1242 fi
1243 if test "${SYS}" = "darwin"; then
1244     VLC_ADD_PLUGINS([quartztext])
1245     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1246 fi
1247
1248 dnl
1249 dnl  Accelerated modules
1250 dnl
1251 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1252 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1253 MMXEXT_MODULES="memcpymmxext"
1254 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1255 THREEDNOW_MODULES="memcpy3dn"
1256 SSE_MODULES=""
1257 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1258 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1259 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1260
1261 dnl  Check for fully workin MMX intrinsics
1262 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1263 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1264 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1265     [ac_cv_c_mmx_intrinsics],
1266     [CFLAGS="${CFLAGS_save} -O -mmmx"
1267      AC_TRY_COMPILE([#include <mmintrin.h>
1268                      #include <stdint.h>
1269                      uint64_t frobzor;],
1270                     [__m64 a, b, c;
1271                      a = b = c = (__m64)frobzor;
1272                      a = _mm_slli_pi16(a, 3);
1273                      a = _mm_adds_pi16(a, b);
1274                      c = _mm_srli_pi16(c, 8);
1275                      c = _mm_slli_pi16(c, 3);
1276                      b = _mm_adds_pi16(b, c);
1277                      a = _mm_unpacklo_pi8(a, b);
1278                      frobzor = (uint64_t)a;],
1279                     [ac_cv_c_mmx_intrinsics=yes],
1280                     [ac_cv_c_mmx_intrinsics=no])])
1281 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1282   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1283   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1284 fi
1285
1286 dnl  Check for fully workin SSE2 intrinsics
1287 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1288 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1289 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1290     [ac_cv_c_sse2_intrinsics],
1291     [CFLAGS="${CFLAGS_save} -O -msse2"
1292      AC_TRY_COMPILE([#include <emmintrin.h>
1293                      #include <stdint.h>
1294                      uint64_t frobzor;],
1295                     [__m128i a, b, c;
1296                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1297                      a = _mm_slli_epi16(a, 3);
1298                      a = _mm_adds_epi16(a, b);
1299                      c = _mm_srli_epi16(c, 8);
1300                      c = _mm_slli_epi16(c, 3);
1301                      b = _mm_adds_epi16(b, c);
1302                      a = _mm_unpacklo_epi8(a, b);
1303                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1304                     [ac_cv_c_sse2_intrinsics=yes],
1305                     [ac_cv_c_sse2_intrinsics=no])])
1306 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1307   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1308   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1309 fi
1310
1311 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1312     [ac_cv_mmx_inline],
1313     [CFLAGS="${CFLAGS_save}"
1314      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1315                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1316 if test "${ac_cv_mmx_inline}" != "no"; then
1317   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1318   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1319 fi
1320
1321 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1322     [ac_cv_mmxext_inline],
1323     [CFLAGS="${CFLAGS_save}"
1324      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1325                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1326 if test "${ac_cv_mmxext_inline}" != "no"; then
1327   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1328   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1329 fi
1330
1331 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1332     [ac_cv_3dnow_inline],
1333     [CFLAGS="${CFLAGS_save}"
1334      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1335                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1336 if test "${ac_cv_3dnow_inline}" != "no"; then
1337   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1338   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1339 fi
1340
1341 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1342     [ac_cv_sse_inline],
1343     [CFLAGS="${CFLAGS_save}"
1344      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1345                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1346 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1347   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1348   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1349 fi
1350
1351 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1352     [ac_cv_sse2_inline],
1353     [CFLAGS="${CFLAGS_save}"
1354      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1355                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1356 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1357   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1358   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1359 fi
1360
1361 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1362 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1363     [ac_cv_altivec_inline],
1364     [CFLAGS="${CFLAGS_save}"
1365      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1366          ac_cv_altivec_inline=yes,
1367          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1368           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1369             [ac_cv_altivec_inline="-Wa,-m7400"],
1370             ac_cv_altivec_inline=no)
1371          ])])
1372 if test "${ac_cv_altivec_inline}" != "no"; then
1373   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1374   if test "${ac_cv_altivec_inline}" != "yes"; then
1375     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1376     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1377     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1378     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1379     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1380   fi
1381   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1382 fi
1383
1384 dnl The AltiVec C extensions
1385 dnl
1386 dnl There are several possible cases:
1387 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1388 dnl                      need <altivec.h>
1389 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1390 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1391 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1392 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1393 dnl - Others: test should fail
1394 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1395   [ac_cv_c_altivec],
1396   [# OS X/PPC test (gcc 4.x)
1397    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1398    AC_TRY_COMPILE([vector unsigned char foo;],
1399      [vec_ld(0, (unsigned char *)0);],
1400      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1401      [# OS X/PPC test (gcc 3.x)
1402       CFLAGS="${CFLAGS_save} -faltivec"
1403       AC_TRY_COMPILE([vector unsigned char foo;],
1404         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1405         [ac_cv_c_altivec="-faltivec"],
1406         dnl Below this are the Linux tests
1407         [# Linux/PPC test (gcc 4.x)
1408          CFLAGS="${CFLAGS_save} -maltivec"
1409          AC_TRY_COMPILE([#include <altivec.h>],
1410            [vec_ld(0, (unsigned char *)0);],
1411            [ac_cv_c_altivec="-maltivec"],
1412            [# Linux/PPC test (gcc 3.3)
1413             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1414             AC_TRY_COMPILE([#include <altivec.h>],
1415               [vec_ld(0, (unsigned char *)0);],
1416               [ac_cv_c_altivec=""
1417                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1418               [# Linux/PPC test (gcc 3.3)
1419                CFLAGS="${CFLAGS_save} -fvec"
1420                AC_TRY_COMPILE([#include <altivec.h>],
1421                  [vec_ld(0, (unsigned char *)0);],
1422                  [ac_cv_c_altivec="-fvec"],
1423                  [ac_cv_c_altivec=no])
1424               ])
1425            ])
1426         ])
1427      ])
1428    CFLAGS="${CFLAGS_save}"
1429   ])
1430
1431 if test "${ac_cv_c_altivec}" != "no"; then
1432   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1433 fi
1434
1435 AS_IF( test "${enable_altivec}" != "no",
1436 [
1437   AC_CHECK_HEADERS(altivec.h)
1438   CPPFLAGS="${CPPFLAGS_save}"
1439   
1440   if test "${ac_cv_c_altivec}" != "no"; then
1441     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1442     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1443     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1444     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1445     if test "${ac_cv_altivec_inline}" = "no"; then
1446       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1447     fi
1448   fi
1449 ],[
1450   CPPFLAGS="${CPPFLAGS_save}"
1451 ])
1452
1453 AC_CACHE_CHECK([if linker needs -framework vecLib],
1454     [ac_cv_ld_altivec],
1455     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1456      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1457      LDFLAGS="${LDFLAGS_save}"
1458     ])
1459 if test "${ac_cv_ld_altivec}" != "no"; then
1460   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1461 fi
1462 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1463
1464 AC_ARG_WITH(,[])
1465 AC_ARG_WITH(,[Optimization options:])
1466
1467 dnl
1468 dnl  Special arch tuning
1469 dnl
1470 AC_ARG_WITH(tuning,
1471 [  --with-tuning=ARCH      enable special tuning for an architecture
1472                           (default Pentium 2 on IA-32 and G4 on PPC)])
1473 if test -n "${with_tuning}"; then
1474     if test "${with_tuning}" != "no"; then
1475         CFLAGS_TUNING="-mtune=${with_tuning}"
1476     fi
1477 else
1478     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1479         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1480     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1481         CFLAGS_TUNING="-mtune=pentium2"
1482     elif test "${host_cpu}" = "x86_64"; then
1483         CFLAGS_TUNING="-mtune=athlon64"
1484     elif test "${host_cpu}" = "powerpc"; then
1485         CFLAGS_TUNING="-mtune=G4";
1486     fi
1487 fi
1488
1489 dnl NOTE: this can't be cached cleanly
1490 AS_IF([test "${CFLAGS_TUNING}"],
1491    [CFLAGS_save="${CFLAGS}"
1492     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1493
1494     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1495     AC_COMPILE_IFELSE([ ],
1496                       [tuning="yes"],
1497                       [CFLAGS_TUNING=""; tuning="no"
1498                        AS_IF([test "${with_tuning}"],
1499                              [AC_MSG_ERROR([requested tuning not supported])])])
1500
1501     AC_MSG_RESULT([$tuning])
1502     CFLAGS="${CFLAGS_save}"
1503 ])
1504
1505 dnl
1506 dnl  x86 accelerations
1507 dnl
1508 AC_ARG_ENABLE(mmx,
1509 [  --disable-mmx       disable MMX optimizations (default enabled on x86)],
1510 [ if test "${enable_mmx}" = "yes"; then ARCH="${ARCH} mmx";
1511     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1512 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "x86_64"; then
1513     ARCH="${ARCH} mmx"
1514     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1515
1516 AC_ARG_ENABLE(sse,
1517 [  --disable-sse       disable SSE (1 and 2) optimizations (default enabled on i686 and x86_64)],
1518 [ if test "${enable_sse}" = "yes"; then ARCH="${ARCH} sse sse2";
1519     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1520 [ if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"; then ARCH="${ARCH} sse sse2";
1521     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1522
1523 dnl
1524 dnl  Memory usage
1525 dnl
1526 AC_ARG_ENABLE(optimize-memory,
1527 [  --enable-optimize-memory optimize memory usage over performance])
1528 if test "${enable_optimize_memory}" = "yes"; then
1529   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1530 fi
1531
1532 dnl
1533 dnl  Enable/disable optimizations
1534 dnl
1535 AC_ARG_ENABLE(optimizations,
1536 [  --disable-optimizations disable compiler optimizations (default enabled)])
1537 if test "${enable_optimizations}" != "no"; then
1538    if test "${enable_optimize_memory}" = "yes"; then
1539       enable_optimizations="size"
1540    else
1541       enable_optimizations="speed"
1542    fi
1543 fi
1544
1545 dnl
1546 dnl  AltiVec acceleration
1547 dnl
1548 AC_ARG_ENABLE(altivec,
1549 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1550 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1551     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1552 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1553     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1554
1555 dnl
1556 dnl  Debugging mode
1557 dnl
1558 AC_ARG_ENABLE(debug,
1559 [  --enable-debug          debug mode (default disabled)])
1560 test "${enable_debug}" != "yes" && enable_debug="no"
1561 AH_TEMPLATE(NDEBUG,
1562             [Define to 1 if debug code should NOT be compiled])
1563 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1564
1565 dnl
1566 dnl  Test coverage
1567 dnl
1568 AC_ARG_ENABLE(coverage,
1569         [  --enable-coverage       build for test coverage (default disabled)],,
1570         [enable_coverage="no"])
1571 AS_IF([test "${enable_coverage}" != "no"], [
1572         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1573         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1574         LDFLAGS="-lgcov ${LDFLAGS}"
1575         dnl ugly...
1576         CFLAGS_save="${CFLAGS}"
1577         CXXFLAGS_save="${CXXFLAGS}"
1578         LDFLAGS_save="${LDFLAGS}"
1579 ])
1580
1581 dnl
1582 dnl  Enable release-specific flags
1583 dnl
1584 AC_ARG_ENABLE(release,
1585 [  --enable-release        activate extra optimizations (default disabled)])
1586 test "${enable_release}" != "yes" && enable_release="no"
1587
1588 dnl
1589 dnl Stream output
1590 dnl
1591 AC_ARG_ENABLE(sout,
1592   [  --enable-sout           Stream output modules (default enabled)])
1593 if test "${enable_sout}" != "no"
1594 then
1595   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1596   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1597   VLC_ADD_PLUGINS([packetizer_copy])
1598
1599   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1600   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1601   VLC_ADD_PLUGINS([stream_out_gather])
1602 #  VLC_ADD_PLUGINS([stream_out_transrate])
1603 #  VLC_ADD_PLUGINS([rtcp])
1604   VLC_ADD_PLUGINS([profile_parser])
1605
1606   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1607 fi
1608
1609 AC_ARG_ENABLE(switcher,
1610   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1611
1612 dnl Check for libshout
1613 AC_ARG_ENABLE(shout,
1614   [  --enable-shout          libshout output plugin (default disabled)])
1615 if test "${enable_shout}" = "yes"; then
1616   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1617     [AC_DEFINE(HAVE_SHOUT, 1, [Define if you have the libshout library])
1618      VLC_ADD_PLUGINS([access_output_shout])
1619      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1620      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1621     [AC_MSG_WARN(libshout library not found)])
1622 fi
1623
1624 dnl Lua modules
1625 AC_ARG_ENABLE(lua,
1626   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1627 if test "${enable_lua}" != "no"
1628 then
1629   PKG_CHECK_MODULES(LUA, lua5.1,
1630     [ have_lua=yes ],
1631     [
1632     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1633     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1634       [ have_lua=yes ],
1635       [ 
1636         have_lua=yes
1637         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1638           [],  
1639           [ have_lua=no ] )
1640         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1641           [LUA_LIBS="-llua5.1"],
1642           AC_CHECK_LIB( lua51 , luaL_newstate, 
1643             [LUA_LIBS="-llua51"],
1644                   AC_CHECK_LIB( lua , luaL_newstate, 
1645                     [LUA_LIBS="-llua"],
1646               [ have_lua=no
1647                 AC_MSG_WARN([lua >= 5.1 not found!])
1648               ])
1649             )
1650           )
1651       ])
1652     ])
1653   if test "x${have_lua}" = "xyes" ;  then
1654      AC_DEFINE(HAVE_LUA, 1, [Define if you have the lua library])
1655      VLC_ADD_PLUGINS([lua])
1656      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1657      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1658   fi
1659 fi
1660
1661 dnl
1662 dnl HTTP daemon
1663 dnl
1664 AC_ARG_ENABLE(httpd,
1665   [  --enable-httpd          HTTP daemon (default enabled)])
1666 if test "${enable_httpd}" != "no"
1667 then
1668   VLC_ADD_PLUGINS([http])
1669   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1670 fi
1671
1672 dnl
1673 dnl VideoLAN manager
1674 dnl
1675 AC_ARG_ENABLE(vlm,
1676   [  --enable-vlm            VideoLAN manager (default enabled)])
1677 if test "${enable_vlm}" != "no"
1678 then
1679   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1680 fi
1681
1682 dnl
1683 dnl Growl notification plugin
1684 dnl
1685 AC_ARG_ENABLE(growl,
1686   [  --enable-growl          growl notification plugin (default enabled)])
1687 AS_IF([test "${enable_growl}" != "no"], [
1688     VLC_ADD_PLUGINS([growl_udp])
1689     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1690       VLC_ADD_PLUGINS([growl])
1691       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1692     ])
1693   ]
1694 )
1695
1696 dnl
1697 dnl Libnotify notification plugin
1698 dnl
1699
1700 AC_ARG_ENABLE(notify,
1701   [  --enable-notify         libnotify notification plugin (default enabled)])
1702 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1703     PKG_CHECK_MODULES(NOTIFY, libnotify,
1704       [
1705         VLC_ADD_PLUGINS([notify])
1706         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1707         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1708       ],[
1709     AS_IF([test "${enable_notify}" = "yes"],[
1710         AC_MSG_WARN( libnotify not found) ])
1711       ])
1712   ])
1713
1714 dnl
1715 dnl Audioscrobbler plugin
1716 dnl
1717
1718 AC_ARG_ENABLE(audioscrobbler,
1719   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1720 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1721         VLC_ADD_PLUGINS([audioscrobbler])
1722   ])
1723
1724 dnl
1725 dnl Musicbrainz plugin
1726 dnl
1727 AC_ARG_ENABLE(musicbrainz,
1728   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1729   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1730       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1731     [ VLC_ADD_PLUGINS([musicbrainz])
1732       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1733       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1734        [AC_MSG_WARN(MusicBrainz library not found)])
1735    ])
1736
1737
1738 dnl
1739 dnl Taglibplugin
1740 dnl
1741 AC_ARG_ENABLE(taglib,
1742   [  --disable-taglib Taglib support (default enabled) ])
1743   AS_IF([test "${enable_taglib}" != "no"],[
1744     PKG_CHECK_MODULES(TAGLIB, taglib,
1745       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1746         VLC_ADD_PLUGINS([taglib])
1747         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1748        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1749       [AC_MSG_WARN(TagLib library not found)])
1750   ])
1751
1752
1753 dnl
1754 dnl  Input plugins
1755 dnl
1756
1757 AC_ARG_WITH(,[Input plugins:])
1758
1759 dnl  live555 input
1760 dnl
1761 if test "${enable_livedotcom}" 
1762 then
1763   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1764 fi
1765
1766 if test "${enable_livedotcom}" = "no"
1767 then
1768   enable_live555="no"
1769 fi
1770 AC_ARG_ENABLE(live555,
1771 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1772 if test "${enable_live555}" != "no"; then
1773   AC_ARG_WITH(live555-tree,
1774     [    --with-live555-tree=PATH live.com tree for static linking])
1775
1776   dnl
1777   dnl test for --with-live555-tree
1778   dnl
1779   if test "${with_livedotcom_tree}" 
1780   then
1781     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1782   with_live555_tree="${with_livedotcom_tree}"
1783   fi
1784
1785   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1786     AC_LANG_PUSH(C++)
1787     CPPFLAGS_save="${CPPFLAGS}"
1788     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1789     if test "${SYS}" = "solaris"; then
1790       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1791     fi
1792     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1793     AC_CHECK_HEADERS(liveMedia.hh, [
1794       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1795       AC_CHECK_LIB(liveMedia_pic, main, [
1796         # We have -lliveMedia_pic, build plugins
1797         VLC_ADD_PLUGINS([live555])
1798         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1799       ], [
1800         AC_CHECK_LIB(liveMedia, main, [
1801           # We only have -lliveMedia, do builtins
1802           VLC_ADD_BUILTINS([live555])
1803           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1804         ])
1805       ])
1806       if test "${SYS}" = "mingw32"; then
1807         # add ws2_32 for closesocket, select, recv
1808         VLC_ADD_LIBS([live555],[-lws2_32])
1809       fi
1810     ])
1811     CPPFLAGS="${CPPFLAGS_save}"
1812     AC_LANG_POP(C++)
1813   else
1814     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1815     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1816     if test -z "${real_live555_tree}"; then
1817       dnl  The given directory can't be found
1818       AC_MSG_RESULT(no)
1819       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1820     fi
1821     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1822       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1823
1824       VLC_ADD_BUILTINS([live555])
1825
1826       if test "${SYS}" = "mingw32"; then
1827         # add ws2_32 for closesocket, select, recv
1828         VLC_ADD_LIBS([live555],[-lws2_32])
1829       fi
1830
1831       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1832       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1833       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1834       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1835
1836       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1837       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1838       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1839       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1840       if test "${SYS}" = "solaris"; then
1841         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1842       fi
1843     else
1844       dnl  The given live555 wasn't built
1845         AC_MSG_RESULT(no)
1846       if test "${enable_live555}" = "yes"; then
1847         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1848       fi        
1849     fi
1850   fi
1851 fi
1852
1853 dnl
1854 dnl  special access module for dc1394 input
1855 dnl
1856 AC_ARG_ENABLE(dc1394,
1857   [  --enable-dc1394         dc1394 access module (default disabled)])
1858 if test "${enable_dc1394}" = "yes"
1859 then
1860   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1861     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1862         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1863 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1864               VLC_ADD_PLUGINS([dc1394])
1865               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1866 dnl         ],
1867 dnl         [
1868 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1869 dnl         ])
1870       ],
1871       [
1872         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1873       ])
1874     ],
1875     [
1876       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1877     ])
1878   ],
1879   [
1880     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1881   ])
1882 fi
1883
1884 dnl
1885 dnl dv module: digital video module check for libraw1394
1886 dnl
1887 AC_ARG_ENABLE(dv,
1888 [  --enable-dv             dv input module (default disabled)])
1889 if test "${enable_dv}" = "yes"
1890 then
1891   AC_ARG_WITH(dv-raw1394,
1892   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1893   AC_ARG_WITH(dv-raw1394-tree,
1894   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1895
1896   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1897   then
1898     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1899     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1900     then
1901       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1902       AC_MSG_RESULT(yes)
1903       VLC_ADD_PLUGINS([access_dv])
1904       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1905       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1906     else
1907       dnl  No libraw1394 could be found, sorry
1908       AC_MSG_RESULT(no)
1909       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1910     fi
1911   else
1912     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1913     [ VLC_ADD_PLUGINS([access_dv])
1914         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1915     ],[
1916         if test -n "${enable_dv}"
1917         then
1918           AC_MSG_ERROR([cannot find libraw1394 headers])
1919         fi
1920     ])
1921   fi
1922
1923   dnl Check for static linking of libraw1394
1924   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1925   then
1926     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1927     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1928     if test -z "${real_dv_raw1394_tree}"
1929     then
1930       dnl  The given directory can't be found
1931       AC_MSG_RESULT(no)
1932       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1933     fi
1934     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1935     then
1936       dnl  Use a custom libraw1394
1937       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1938       VLC_ADD_BUILTINS([access_dv])
1939       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1940       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1941     else
1942       dnl  The given libraw1394 wasn't built
1943       AC_MSG_RESULT(no)
1944       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1945     fi
1946   fi
1947
1948   dnl
1949   dnl Check for libavc1394
1950   dnl
1951
1952   AC_ARG_WITH(dv-avc1394,
1953   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1954   AC_ARG_WITH(dv-avc1394-tree,
1955   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1956
1957   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1958   then
1959     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1960     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1961     then
1962       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1963       AC_MSG_RESULT(yes)
1964       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1965       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1966     else
1967       dnl  No libavc1394 could be found, sorry
1968       AC_MSG_RESULT(no)
1969       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1970     fi
1971   else
1972     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1973     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1974     ],[
1975         if test -n "${enable_dv}"
1976         then
1977           AC_MSG_ERROR([cannot find libavc1394 headers])
1978         fi
1979     ])
1980   fi
1981
1982   dnl Check for static linking of libavc1394
1983   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1984   then
1985     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1986     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1987     if test -z "${real_dv_avc1394_tree}"
1988     then
1989       dnl  The given directory can't be found
1990       AC_MSG_RESULT(no)
1991       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1992     fi
1993     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1994     then
1995       dnl  Use a custom libavc1394
1996       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1997       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1998       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1999     else
2000       dnl  The given libavc1394 wasn't built
2001       AC_MSG_RESULT(no)
2002       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2003     fi
2004   fi
2005 fi
2006
2007 dnl
2008 dnl dvdread module: check for libdvdread
2009 dnl
2010 AC_ARG_ENABLE(dvdread,
2011 [  --enable-dvdread        dvdread input module (default disabled)])
2012 if test "${enable_dvdread}" != "no"
2013 then
2014   AC_ARG_WITH(dvdread,
2015   [    --with-dvdread=PATH   libdvdread headers and libraries])
2016   AC_ARG_WITH(dvdread-tree,
2017   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2018
2019   dnl Temporary hack (yeah, sure ;)
2020   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2021       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2022   fi
2023
2024   if test -z "${with_dvdread}"
2025   then
2026     if test -z "${with_dvdread_tree}"
2027     then
2028       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2029         [ VLC_ADD_PLUGINS([dvdread])
2030           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2031         ],[
2032           if test -n "${enable_dvdread}"
2033           then
2034             AC_MSG_ERROR([cannot find libdvdread headers])
2035           fi
2036         ])
2037     else
2038       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2039       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2040       if test -z "${real_dvdread_tree}"
2041       then
2042         dnl  The given directory can't be found
2043         AC_MSG_RESULT(no)
2044         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2045       fi
2046       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2047       then
2048         dnl  Use a custom libdvdread
2049         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2050         VLC_ADD_BUILTINS([dvdread])
2051         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2052         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2053       else
2054         dnl  The given libdvdread wasn't built
2055         AC_MSG_RESULT(no)
2056         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2057       fi
2058     fi
2059   else
2060     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2061     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2062     then
2063       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2064       AC_MSG_RESULT(yes)
2065       VLC_ADD_PLUGINS([dvdread])
2066       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2067       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2068     else
2069       dnl  No libdvdread could be found, sorry
2070       AC_MSG_RESULT(no)
2071       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2072     fi
2073   fi
2074 fi
2075
2076 dnl
2077 dnl  libdvdnav plugin
2078 dnl
2079 AC_ARG_ENABLE(dvdnav,
2080   [  --enable-dvdnav         dvdnav input module (default enabled)])
2081 if test "${enable_dvdnav}" != "no"
2082 then
2083   dnl Same hack than dvdread
2084   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2085       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2086   fi
2087
2088   DVDNAV_PATH="${PATH}"
2089   AC_ARG_WITH(dvdnav-config-path,
2090     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2091     [ if test "${with_dvdnav_config_path}" != "no"
2092       then
2093         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2094       fi ])
2095   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2096   if test "${DVDNAV_CONFIG}" != "no"
2097   then
2098     VLC_ADD_PLUGINS([dvdnav])
2099     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2100     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2101   fi
2102 fi
2103
2104 dnl
2105 dnl  Windows DirectShow access module
2106 dnl
2107 AC_ARG_ENABLE(dshow,
2108   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2109 if test "${enable_dshow}" != "no"
2110 then
2111   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2112   then
2113     AC_LANG_PUSH(C++)
2114       AC_CHECK_HEADERS(dshow.h,
2115       [ VLC_ADD_PLUGINS([dshow])
2116         VLC_ADD_CXXFLAGS([dshow],[])
2117         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2118     AC_LANG_POP(C++)
2119   fi
2120 fi
2121
2122 dnl
2123 dnl  Windows DirectShow BDA access module
2124 dnl
2125 AC_ARG_ENABLE(bda,
2126   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2127 if test "${enable_bda}" != "no"
2128 then
2129   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2130   then
2131       AC_CHECK_HEADERS(dshow.h,
2132       [ VLC_ADD_PLUGINS([bda])
2133         VLC_ADD_CXXFLAGS([bda],[])
2134         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2135   fi
2136 fi
2137
2138
2139 dnl
2140 dnl  OpenCV wrapper and example filters
2141 dnl
2142 AC_ARG_ENABLE(opencv,
2143   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2144 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2145 then
2146   AC_ARG_WITH(opencv-tree,
2147   [    --with-opencv-tree=PATH opencv tree for linking])
2148   if test -n "${with_opencv_tree}"
2149   then
2150     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2151     then
2152           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2153           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2154             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2155       then
2156         AC_MSG_RESULT(yes)
2157         VLC_ADD_PLUGINS([opencv_wrapper])
2158         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2159         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])
2160         AC_LANG_PUSH(C++)
2161         VLC_ADD_PLUGINS([opencv_example])
2162         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2163         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])
2164         AC_LANG_POP(C++)        
2165           else
2166         dnl  No opencv could be found, sorry
2167         AC_MSG_RESULT(no)
2168         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2169           fi
2170     else
2171           AC_MSG_WARN([--enable-opencv currently only works on windows])
2172     fi
2173   fi  
2174 fi
2175
2176
2177 dnl
2178 dnl  libsmbclient plugin
2179 dnl
2180 AC_ARG_ENABLE(smb,
2181   [  --enable-smb            smb input module (default enabled)])
2182 if test "${enable_smb}" != "no"; then
2183   AC_CHECK_HEADERS(libsmbclient.h,
2184     [ VLC_ADD_PLUGINS([access_smb])
2185       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2186     [ if test -n "${enable_smb}"; then
2187         AC_MSG_ERROR([cannot find libsmbclient headers])
2188      fi ])
2189   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2190     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2191     [#include <libsmbclient.h>])
2192 fi
2193
2194 dnl
2195 dnl  libdvbpsi ts demux/mux
2196 dnl
2197 AC_ARG_ENABLE(dvbpsi,
2198   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2199 if test "${enable_dvbpsi}" != "no"
2200 then
2201   AC_ARG_WITH(dvbpsi,
2202   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2203   AC_ARG_WITH(dvbpsi,
2204   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2205   case "${with_dvbpsi}" in
2206   ""|yes)
2207     if test -z "${with_dvbpsi_tree}"
2208     then
2209       AC_CHECK_HEADERS(dvbpsi/dr.h,
2210         [ VLC_ADD_PLUGINS([ts])
2211           if test "${enable_sout}" != "no"; then
2212             VLC_ADD_PLUGINS([mux_ts])
2213           fi
2214           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2215         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2216         [#if defined( HAVE_STDINT_H )
2217 #   include <stdint.h>
2218 #elif defined( HAVE_INTTYPES_H )
2219 #   include <inttypes.h>
2220 #endif
2221 #include <dvbpsi/dvbpsi.h>
2222 #include <dvbpsi/descriptor.h>
2223 #include <dvbpsi/pat.h>
2224 #include <dvbpsi/pmt.h>])
2225     else
2226       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2227       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2228       if test -z "${real_dvbpsi_tree}"
2229       then
2230         dnl  The given directory can't be found
2231         AC_MSG_RESULT(no)
2232         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2233       fi
2234       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2235       then
2236         dnl  Use a custom libdvbpsi
2237         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2238         VLC_ADD_BUILTINS([ts])
2239         if test "${enable_sout}" != "no"; then
2240           VLC_ADD_BUILTINS([mux_ts])
2241         fi
2242         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2243         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2244       else
2245         dnl  The given libdvbpsi wasn't built
2246         AC_MSG_RESULT(no)
2247         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2248       fi
2249     fi
2250   ;;
2251   no)
2252     dnl  Compile without dvbpsi
2253   ;;
2254   *)
2255     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2256     if test -z "${with_dvbpsi}"
2257     then
2258       LDFLAGS_test=""
2259       CPPFLAGS_test=""
2260     else
2261       LDFLAGS_test="-L${with_dvbpsi}/lib"
2262       CPPFLAGS_test="-I${with_dvbpsi}/include"
2263     fi
2264     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2265     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2266       VLC_ADD_PLUGINS([ts])
2267       if test "${enable_sout}" != "no"; then
2268         VLC_ADD_PLUGINS([mux_ts])
2269       fi
2270       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2271       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2272
2273     ],[
2274       if test -n "${enable_dvbpsi}"
2275       then
2276         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])
2277       fi
2278     ])
2279     CPPFLAGS="${CPPFLAGS_save}"
2280   ;;
2281   esac
2282   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2283     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2284   ], [], [${LIBS_ts}])
2285
2286 fi
2287
2288 dnl
2289 dnl  Video4Linux plugin
2290 dnl
2291 AC_ARG_ENABLE(v4l,
2292   [  --enable-v4l            Video4Linux input support (default disabled)])
2293 if test "${enable_v4l}" = "yes"
2294 then
2295   AC_ARG_WITH(v4l,
2296     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2297   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2298   then
2299     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2300   fi
2301
2302   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2303   AC_CHECK_HEADERS(linux/videodev.h, [
2304     VLC_ADD_PLUGINS([v4l])
2305   ],[])
2306   CPPFLAGS="${CPPFLAGS_save}"
2307 fi
2308
2309 dnl
2310 dnl  Video4Linux2 plugin
2311 dnl
2312 AC_ARG_ENABLE(v4l2,
2313   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2314 if test "${enable_v4l2}" = "yes"
2315 then
2316   AC_ARG_WITH(v4l2,
2317     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2318   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2319   then
2320     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2321   fi
2322
2323   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2324   if test "${have_v4l2_alsa}" = "true"
2325   then
2326     CFLAGS="${CFLAGS_save}"
2327     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2328                     #define ALSA_PCM_NEW_SW_PARAMS_API
2329                     #include <alsa/asoundlib.h>],
2330        [snd_pcm_hw_params_get_period_time(0,0,0);],
2331         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2332     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2333     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2334   fi
2335
2336   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2337   AC_CHECK_HEADERS(linux/videodev2.h, [
2338     VLC_ADD_PLUGINS([v4l2])
2339   ],[])
2340   CPPFLAGS="${CPPFLAGS_save}"
2341 fi
2342
2343
2344 dnl
2345 dnl  special access module for Hauppauge PVR cards
2346 dnl
2347 AC_ARG_ENABLE(pvr,
2348   [  --enable-pvr            PVR cards access module (default disabled)])
2349 if test "${enable_pvr}" = "yes"
2350 then
2351   VLC_ADD_PLUGINS([pvr])
2352   AC_ARG_WITH(videodev2,
2353     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2354   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2355   then
2356     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2357   fi
2358     
2359
2360   AC_CACHE_CHECK([for new linux/videodev2.h],
2361       [new_linux_videodev2_h],
2362       [AC_TRY_COMPILE([
2363           #include <sys/types.h>
2364           #   ifdef VIDEODEV2_H_FILE
2365           #   include VIDEODEV2_H_FILE
2366           #   else
2367           #   include <linux/videodev2.h>
2368           #   endif
2369           ],
2370           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2371           new_linux_videodev2_h=yes,
2372           new_linux_videodev2_h=no)])
2373   if test "${new_linux_videodev2_h}" != "no"; then
2374     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2375   fi
2376 fi
2377
2378 dnl
2379 dnl  gnomeVFS access module
2380 dnl
2381 AC_ARG_ENABLE(gnomevfs,
2382   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2383 if test "${enable_gnomevfs}" = "yes" 
2384 then
2385   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2386     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2387     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2388     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2389     VLC_ADD_PLUGINS([access_gnomevfs]),
2390     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2391 fi
2392
2393 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2394 AC_ARG_ENABLE(libcdio,
2395   [  --enable-libcdio        CD input and control library support (default enabled)])
2396
2397
2398 have_libcdio=no
2399 have_libvcdinfo=no
2400 if test "${enable_libcdio}" != "no"
2401 then
2402   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2403      have_libcdio=yes
2404      AC_DEFINE(HAVE_LIBCDIO, 1, 
2405      [Define if you have libcdio 0.78.2 or greater installed]),
2406      [AC_MSG_WARN(CD Reading and information library not found)])
2407
2408   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2409      [have_libvcdinfo=yes
2410      AC_DEFINE(HAVE_VCDINFO, 1, 
2411      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2412      [AC_MSG_WARN(VCD information library not found)])
2413 fi
2414
2415 dnl
2416 dnl  VCDX and CDDAX modules
2417 dnl
2418 AC_ARG_ENABLE(cddax,
2419   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2420  
2421 AC_ARG_ENABLE(libcddb,
2422   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2423  
2424 if test "${enable_cddax}" = "yes"
2425 then
2426   if test "$have_libcdio" = "yes"
2427   then
2428     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2429     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2430     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2431     VLC_ADD_PLUGINS([cddax])
2432     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2433     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2434     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2435   else 
2436     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2437     HAVE_CDDAX=no
2438   fi
2439
2440   if test "$enable_libcddb" != "no"; then
2441     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2442       HAVE_LIBCDDB=yes 
2443       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2444       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2445       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2446       ],
2447       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2448       HAVE_LIBCDDB=no])
2449   fi
2450  
2451 fi
2452
2453 AC_ARG_ENABLE(vcdx,
2454   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2455  
2456 if test "${enable_vcdx}" = "yes"
2457 then
2458   if test "${have_libvcdinfo}" = "yes"
2459   then
2460     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2461     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2462   else 
2463     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2464     HAVE_VCDX=no
2465   fi
2466
2467   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2468    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2469     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2470     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2471     HAVE_VCDX=no])
2472
2473   if test "$have_libvcdinfo" = "yes"
2474   then
2475     AC_DEFINE(HAVE_VCDX, 1, 
2476     [Define for the VCD plugin using libcdio/libvcdinfo])
2477     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2478     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2479     VLC_ADD_PLUGINS([vcdx])
2480   else 
2481     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2482     HAVE_VCDX=no
2483   fi
2484 fi
2485
2486 dnl
2487 dnl  Built-in CD-DA and VCD module
2488 dnl
2489 AC_ARG_ENABLE(cdda,           
2490   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2491  
2492 AC_ARG_ENABLE(vcd,
2493   [  --enable-vcd            built-in VCD (default enabled)])
2494
2495 if test "${enable_vcd}" != "no"
2496 then
2497   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2498   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2499     AC_MSG_RESULT(yes)
2500     VLC_ADD_PLUGINS([vcd cdda])
2501   ],[
2502     AC_MSG_RESULT(no)
2503   ])
2504
2505   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2506   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2507     AC_MSG_RESULT(yes)
2508     VLC_ADD_PLUGINS([vcd cdda])
2509     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2510   ],[
2511     AC_MSG_RESULT(no)
2512   ])
2513
2514   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2515   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2516     AC_MSG_RESULT(yes)
2517     VLC_ADD_PLUGINS([vcd cdda])
2518     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2519   ],[
2520     AC_MSG_RESULT(no)
2521   ])
2522
2523   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2524   then
2525     VLC_ADD_PLUGINS([vcd cdda])
2526   fi
2527
2528   if test "${SYS}" = "darwin"
2529   then
2530     VLC_ADD_PLUGINS([vcd cdda])
2531     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2532     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2533   fi
2534
2535   if test "$enable_libcddb" != "no"; then
2536     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2537       HAVE_LIBCDDB=yes 
2538       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2539       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2540       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2541       ],:
2542       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2543       HAVE_LIBCDDB=no])
2544   fi
2545 fi
2546
2547 dnl
2548 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2549 dnl
2550 AC_ARG_ENABLE(dvb,
2551   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2552
2553 if test "${enable_dvb}" = "yes"
2554 then
2555   AC_ARG_WITH(dvb,
2556   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2557   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2558   then
2559     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2560   fi
2561   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2562   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2563     if test -z "${with_dvbpsi_tree}"
2564     then
2565       VLC_ADD_PLUGINS([dvb])
2566     else
2567       VLC_ADD_BUILTINS([dvb])
2568     fi
2569   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2570   CPPFLAGS="${CPPFLAGS_save}"
2571 fi
2572
2573 dnl
2574 dnl  Screen capture module
2575 dnl
2576 AC_ARG_ENABLE(screen,
2577   [  --enable-screen         Screen capture support (default enabled)])
2578 if test "${enable_screen}" != "no"; then
2579   if test "${SYS}" = "darwin"; then
2580     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2581       VLC_ADD_PLUGINS([screen])
2582       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2583     ])
2584   elif test "${SYS}" = "mingw32"; then
2585     VLC_ADD_PLUGINS([screen])
2586     VLC_ADD_LIBS([screen],[-lgdi32])
2587   elif test "${SYS}" = "mingwce"; then
2588     CPPFLAGS="${CPPFLAGS_save}"
2589   elif test "${SYS}" = "beos"; then
2590     VLC_ADD_PLUGINS([screen])
2591     VLC_ADD_CXXFLAGS([screen],[])
2592     VLC_ADD_LIBS([screen],[-lbe])
2593   else
2594     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2595     AC_CHECK_HEADERS(X11/Xlib.h, [
2596       VLC_ADD_PLUGINS([screen])
2597       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2598       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2599     ])
2600     CPPFLAGS="${CPPFLAGS_save}"
2601   fi
2602 fi
2603
2604 dnl
2605 dnl  ipv6 plugin - not for QNX yet
2606 dnl
2607 have_ipv6=no
2608 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2609   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2610 ])
2611
2612 AS_IF([test "${have_ipv6}" = "yes"], [
2613   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2614
2615
2616 AC_CHECK_FUNCS(inet_ntop,[
2617   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2618
2619
2620 dnl
2621 dnl  ogg demux plugin
2622 dnl
2623 AC_ARG_ENABLE(ogg,
2624   [  --enable-ogg            Ogg demux support (default enabled)])
2625 if test "${enable_ogg}" != "no"
2626 then
2627   AC_ARG_WITH(ogg-tree,
2628   [    --with-ogg-tree=PATH  ogg tree for static linking])
2629   if test -n "${with_ogg_tree}"
2630   then
2631     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2632     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2633     if test -z "${real_ogg_tree}"
2634     then
2635       dnl  The given directory can't be found
2636       AC_MSG_RESULT(no)
2637       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2638     fi
2639     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2640     then
2641       dnl  Use a custom ogg
2642       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2643       VLC_ADD_PLUGINS([ogg])
2644       if test "${enable_sout}" != "no"; then
2645         VLC_ADD_PLUGINS([mux_ogg])
2646       fi
2647       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2648       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2649     else
2650       dnl  The given ogg wasn't built
2651       AC_MSG_RESULT(no)
2652       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2653     fi
2654   else
2655     AC_CHECK_HEADERS(ogg/ogg.h, [
2656       AC_CHECK_LIB( ogg, oggpack_read, [
2657         VLC_ADD_PLUGINS([ogg])
2658         if test "${enable_sout}" != "no"; then
2659           VLC_ADD_PLUGINS([mux_ogg])
2660         fi
2661         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2662      ],[])
2663   fi
2664 fi
2665
2666 dnl
2667 dnl  matroska demux plugin
2668 dnl
2669 AC_ARG_ENABLE(mkv,
2670   [  --enable-mkv            Matroska demux support (default enabled)])
2671 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2672   AC_LANG_PUSH(C++)
2673   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2674     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2675     AC_EGREP_CPP(yes,
2676       [#include <ebml/EbmlVersion.h>
2677        #ifdef LIBEBML_VERSION
2678        #if LIBEBML_VERSION >= 0x000706
2679        yes
2680        #endif
2681        #endif],
2682       [AC_MSG_RESULT([yes])
2683         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2684           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2685           AC_EGREP_CPP(yes,
2686             [#include <matroska/KaxVersion.h>
2687              #ifdef LIBMATROSKA_VERSION
2688              #if LIBMATROSKA_VERSION >= 0x000705
2689              yes
2690              #endif
2691              #endif],
2692             [AC_MSG_RESULT([yes])
2693               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2694               VLC_ADD_CXXFLAGS([mkv],[])
2695               if test "${SYS}" = "darwin"; then
2696                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2697               fi
2698               AC_CHECK_LIB(ebml_pic, main, [
2699                 VLC_ADD_PLUGINS([mkv])
2700                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2701               ],
2702                 AC_CHECK_LIB(ebml, main, [
2703                   VLC_ADD_PLUGINS([mkv])
2704                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2705                 ]) 
2706               )
2707             ],
2708             [AC_MSG_RESULT([no])
2709               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.])
2710           ])
2711         ])
2712       ],
2713       [AC_MSG_RESULT([no])
2714         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.])
2715     ])
2716   ])
2717   AC_LANG_POP(C++)
2718 fi
2719
2720 dnl
2721 dnl  modplug demux plugin
2722 dnl
2723 AC_ARG_ENABLE(mod,
2724   [  --enable-mod            Mod demux support (default enabled)])
2725 if test "${enable_mod}" != "no"
2726 then
2727   AC_ARG_WITH(mod-tree,
2728   [    --with-mod-tree=PATH mod tree for static linking])
2729   if test -n "${with_mod_tree}"
2730   then
2731     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2732     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2733     if test -z "${real_mod_tree}"
2734     then
2735       dnl  The given directory can't be found
2736       AC_MSG_RESULT(no)
2737       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2738     fi
2739     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2740     then
2741       dnl  Use a custom mod
2742       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2743       VLC_ADD_PLUGINS([mod])
2744       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2745       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2746     else
2747       dnl  The given mod wasn't built
2748       AC_MSG_RESULT(no)
2749       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2750     fi
2751   else
2752     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2753       VLC_ADD_PLUGINS([mod])
2754       VLC_ADD_CXXFLAGS([mod],[])
2755       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2756   fi
2757 fi
2758
2759 dnl
2760 dnl  mpc demux plugin
2761 dnl
2762 AC_ARG_ENABLE(mpc,
2763   [  --enable-mpc            Mpc demux support (default enabled)])
2764 if test "${enable_mpc}" != "no"
2765 then
2766   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2767     VLC_ADD_PLUGINS([mpc])
2768     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2769 fi
2770
2771 dnl
2772 dnl  game music emu demux plugin
2773 dnl
2774 AC_ARG_ENABLE(gme,
2775   [  --enable-gme            Game Music Emu demux support (default enabled)])
2776 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2777 then
2778   AC_LANG_PUSH(C++)
2779   AC_ARG_WITH(gme-tree,
2780   [    --with-gme-tree=PATH gme tree for static linking])
2781   if test -n "${with_gme_tree}"
2782   then
2783     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2784     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2785     if test -z "${real_gme_tree}"
2786     then
2787       dnl  The given directory can't be found
2788       AC_MSG_RESULT(no)
2789       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2790     fi
2791     if test -f "${real_gme_tree}/gme/libgme.a"
2792     then
2793       dnl  Use a custom gme
2794       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2795       VLC_ADD_PLUGINS([gme])
2796       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2797       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2798     else
2799       dnl  The given gme wasn't built
2800       AC_MSG_RESULT(no)
2801       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2802     fi
2803   else
2804       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2805   fi
2806   AC_LANG_POP(C++)
2807 fi
2808
2809 dnl
2810 dnl  Codec plugins
2811 dnl
2812
2813 AC_ARG_WITH(,[Codec plugins:])
2814
2815 dnl
2816 dnl  mad plugin
2817 dnl
2818 AC_ARG_ENABLE(mad,
2819   [  --enable-mad            libmad module (default enabled)])
2820 if test "${enable_mad}" != "no"
2821 then
2822   AC_ARG_WITH(mad,
2823     [    --with-mad=PATH       path to libmad],[],[])
2824   if test "${with_mad}" != "no" -a -n "${with_mad}"
2825   then
2826     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2827     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2828   fi
2829
2830   AC_ARG_WITH(mad-tree,
2831     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2832   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2833   then
2834     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2835     if test -z "${real_mad_tree}"
2836     then
2837       dnl  The given directory can't be found
2838       AC_MSG_RESULT(no)
2839       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2840     fi
2841     dnl  Use a custom libmad
2842     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2843     if test -f ${real_mad_tree}/mad.h
2844     then
2845       AC_MSG_RESULT(yes)
2846       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2847       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2848       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2849       AC_CHECK_LIB(mad, mad_bit_init, [
2850         VLC_ADD_BUILTINS([mpgatofixed32])
2851         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2852         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2853       ],[])
2854       LDFLAGS="${LDFLAGS_save}"
2855     else
2856       AC_MSG_RESULT(no)
2857       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2858     fi
2859   else
2860     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2861     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2862     AC_CHECK_HEADERS(mad.h, ,
2863       [ 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.]) ])
2864     AC_CHECK_LIB(mad, mad_bit_init, [
2865       VLC_ADD_PLUGINS([mpgatofixed32])
2866       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2867       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2868     CPPFLAGS="${CPPFLAGS_save}"
2869     LDFLAGS="${LDFLAGS_save}"
2870   fi
2871 fi
2872
2873 dnl
2874 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2875 dnl
2876 AC_ARG_ENABLE( id3tag,
2877   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2878 AS_IF([test "${enable_id3tag}" != "no"], [
2879   AC_CHECK_HEADERS(id3tag.h, [
2880     AC_CHECK_HEADERS(zlib.h, [
2881       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2882       VLC_ADD_PLUGINS([id3tag])
2883     ])
2884   ])
2885 ])
2886
2887 dnl
2888 dnl  ffmpeg decoder/demuxer plugin
2889 dnl
2890 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
2891 dnl                               3- default place,
2892
2893 AC_ARG_ENABLE(ffmpeg,
2894 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2895 if test "${enable_ffmpeg}" != "no"
2896 then
2897
2898 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2899
2900  AC_ARG_WITH(ffmpeg-mp3lame,
2901    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2902    [
2903      if test "$with_ffmpeg_mp3lame" = "yes";    then
2904         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2905      fi])
2906
2907  AC_ARG_WITH(ffmpeg-faac,
2908    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2909    [
2910      if test "$with_ffmpeg_faac" = "yes"; then
2911         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2912      fi])
2913
2914  AC_ARG_WITH(ffmpeg-dts,
2915    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2916    [
2917      if test "$with_ffmpeg_dts" = "yes"; then
2918              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
2919              AC_CHECK_LIB(dts_pic, dts_free, 
2920                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2921                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2922              LDFLAGS="${LDFLAGS_save}"
2923      fi])
2924
2925  AC_ARG_WITH(ffmpeg-vorbis,
2926    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2927    [
2928      if test "$with_ffmpeg_vorbis" = "yes"; then
2929         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2930      fi])
2931
2932  AC_ARG_WITH(ffmpeg-theora,
2933    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2934    [
2935      if test "$with_ffmpeg_theora" = "yes"; then
2936         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2937      fi])
2938
2939  AC_ARG_WITH(ffmpeg-ogg,
2940    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2941    [
2942      if test "$with_ffmpeg_ogg" = "yes"; then
2943         VLC_ADD_LIBS([ffmpeg],[-logg])
2944      fi])
2945
2946  AC_ARG_WITH(ffmpeg-zlib,
2947    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2948    [
2949      if test "$with_ffmpeg_zlib" = "yes"; then
2950         VLC_ADD_LIBS([ffmpeg],[-lz])
2951      fi])
2952
2953  AC_ARG_WITH(ffmpeg-amrnb,
2954    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2955    [
2956      if test "$with_ffmpeg_amrnb" = "yes";      then
2957         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2958      fi])
2959
2960  AC_ARG_WITH(ffmpeg-amrwb,
2961    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2962    [
2963      if test "$with_ffmpeg_amrwb" = "yes";      then
2964         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
2965      fi])
2966
2967  AC_ARG_WITH(ffmpeg-x264,
2968    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
2969    [
2970      if test "$with_ffmpeg_x264" = "yes";       then
2971         VLC_ADD_LIBS([ffmpeg],[-lx264])
2972      fi])
2973
2974  AC_ARG_WITH(ffmpeg-a52,
2975    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
2976    [
2977      if test "$with_ffmpeg_a52" = "yes";        then
2978         VLC_ADD_LIBS([ffmpeg],[-la52])
2979      fi])
2980
2981  dnl
2982  dnl test for --with-ffmpeg-tree
2983  dnl
2984  AC_ARG_WITH(ffmpeg-tree,
2985    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2986
2987  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2988    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2989    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2990    if test -z "${real_ffmpeg_tree}"; then
2991      dnl  The given directory can't be found
2992      AC_MSG_RESULT(no)
2993      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2994    fi
2995    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2996      dnl  The given libavcodec wasn't built
2997      AC_MSG_RESULT(no)
2998      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2999    fi
3000    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
3001      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
3002        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
3003      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
3004         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3005         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3006      else
3007        dnl  The given libavcodec wasn't built with --enable-pp
3008        AC_MSG_RESULT(no)
3009        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3010      fi
3011    fi
3012    dnl  Use a custom libffmpeg
3013    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3014
3015    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3016    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3017    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3018    export PKG_CONFIG_PATH=""
3019    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3020
3021    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3022         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3023         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3024       ,[])
3025    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3026          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3027    ],[
3028         unset PKG_CONFIG_PATH
3029    ])
3030    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3031         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3032    ],[
3033         unset PKG_CONFIG_LIBDIR
3034    ])
3035
3036    VLC_ADD_BUILTINS([ffmpeg])
3037    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3038      VLC_ADD_BUILTINS([stream_out_switcher])
3039    fi
3040
3041    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3042      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3043      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3044      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3045    fi
3046
3047     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3048       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3049       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3050       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3051     fi
3052 else
3053
3054
3055 dnl Trying with pkg-config
3056    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3057     [
3058      VLC_SAVE_FLAGS
3059      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3060      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3061      AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3062      AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3063      AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avformat.h)
3064      
3065      dnl newer ffmpeg have a separate libpostproc
3066      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3067        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3068        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3069        ],[ true ])
3070      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3071      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3072      AC_CHECK_HEADERS(postproc/postprocess.h)
3073      if test "${SYS}" = "darwin"; then
3074         VLC_ADD_BUILTINS([ffmpeg])
3075      else
3076         VLC_ADD_PLUGINS([ffmpeg])
3077      fi
3078      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3079         if test "${SYS}" = "darwin"; then
3080             VLC_ADD_BUILTINS([stream_out_switcher])
3081         else
3082             VLC_ADD_PLUGINS([stream_out_switcher])
3083         fi
3084      fi
3085      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3086      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3087
3088      dnl even newer ffmpeg has a libswscale
3089      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3090        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3091        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3092        AC_CHECK_LIB(swscale, sws_getContext,
3093          [AC_CHECK_HEADERS([ffmpeg/avutil.h libavutil/avutil.h ffmpeg/swscale.h libswscale/swscale.h])],[],[-lavutil -lm])
3094        ],[ true ])
3095      VLC_RESTORE_FLAGS
3096     ],[
3097
3098     dnl
3099     dnl last chance: at the default place
3100     dnl
3101       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3102       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3103       AC_CHECK_HEADERS(libavcodec/avcodec.h ffmpeg/avcodec.h)
3104       AC_CHECK_HEADERS(libavformat/avformat.h ffmpeg/avformat.h)
3105       AC_CHECK_HEADERS(libavutil/avutil.h ffmpeg/avutil.h)
3106       AC_CHECK_HEADERS(postproc/postprocess.h)
3107
3108       AC_CHECK_LIB(avutil, av_crc_init, [
3109         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3110         LDAVUTIL="-lavutil"])
3111
3112       AC_CHECK_LIB(avcodec, avcodec_init, [
3113         VLC_ADD_BUILTINS([ffmpeg])
3114         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3115         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3116             VLC_ADD_BUILTINS([stream_out_switcher])
3117         fi],
3118          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (svn version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL])
3119
3120       AC_CHECK_LIB(postproc, pp_postprocess, [
3121         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3122       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3123         [$LDAVUTIL])
3124
3125       AC_CHECK_LIB(avformat, av_open_input_stream, [
3126         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3127       LDFLAGS="${LDFLAGS_save}"
3128       CPPFLAGS="${CPPFLAGS_save}"
3129
3130       AC_CHECK_LIB(swscale, sws_getContext, [
3131         AC_CHECK_HEADERS(libswscale/swscale.h ffmpeg/swscale.h)
3132         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3133       LDFLAGS="${LDFLAGS_save}"
3134       CPPFLAGS="${CPPFLAGS_save}"
3135     ])
3136     
3137     if test "$ac_cv_header_libavcodec_avcodec_h" = "no" && test "$ac_cv_header_ffmpeg_avcodec_h" = "no"; then
3138         AC_MSG_ERROR([Missing header file libavcodec/avcodec.h.])
3139     fi
3140     if test "$ac_cv_header_libavformat_avformat_h" = "no" && test $"ac_cv_header_ffmpeg_avformat_h" = "no"; then
3141         AC_MSG_ERROR([Missing header file libavformat/avformat.h.])
3142     fi
3143     if test "$ac_cv_header_libavutil_avutil_h" = "no" && test "$ac_cv_header_ffmpeg_avutil_h" = "no"; then
3144         AC_MSG_ERROR([Missing header file libavutil/avutil.h.])
3145     fi
3146     if test "$ac_cv_header_libswscale_swscale_h" = "no" && test "$ac_cv_header_ffmpeg_swscale_h" = "no"; then
3147         AC_MSG_ERROR([Missing header file libswscale/swscale.h.])
3148     fi
3149   fi
3150 fi
3151
3152 dnl
3153 dnl  ffmpegaltivec plugin
3154 dnl
3155 AC_ARG_ENABLE(ffmpegaltivec,
3156 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3157 if test "${enable_ffmpegaltivec}" = "yes"
3158 then
3159   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3160     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3161     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3162     if test -z "${real_ffmpeg_tree}"; then
3163       dnl  The given directory can't be found
3164       AC_MSG_RESULT(no)
3165       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3166     fi
3167     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3168       dnl  The given libavcodecaltivec wasn't built
3169       AC_MSG_RESULT(no)
3170       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3171     fi
3172     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3173       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3174       AC_MSG_RESULT(no)
3175       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3176     fi
3177     dnl  Use a custom libffmpeg
3178     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3179     VLC_ADD_BUILTINS([ffmpegaltivec])
3180     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3181     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3182     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3183
3184     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3185       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3186       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3187       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3188     fi
3189     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3190     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3191   fi
3192 fi
3193
3194 dnl
3195 dnl  faad decoder plugin
3196 dnl
3197 AC_ARG_ENABLE(faad,
3198 [  --enable-faad           faad codec (default disabled)])
3199 if test "${enable_faad}" = "yes"
3200 then
3201   AC_ARG_WITH(faad-tree,
3202   [    --with-faad-tree=PATH faad tree for static linking])
3203   if test -n "${with_faad_tree}"
3204   then
3205     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3206     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3207     if test -z "${real_faad_tree}"
3208     then
3209       dnl  The given directory can't be found
3210       AC_MSG_RESULT(no)
3211       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3212     fi
3213     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3214     then
3215       dnl  Use a custom faad
3216       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3217       VLC_ADD_BUILTINS([faad])
3218       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3219       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3220     else
3221       dnl  The given libfaad wasn't built
3222       AC_MSG_RESULT(no)
3223       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3224     fi
3225   else
3226     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3227     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3228     AC_CHECK_HEADERS(faad.h, ,
3229       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3230     AC_CHECK_LIB(faad, faacDecOpen, [
3231       VLC_ADD_PLUGINS([faad])
3232       VLC_ADD_LIBS([faad],[-lfaad]) ],
3233       AC_CHECK_LIB(faad, NeAACDecOpen, [
3234         VLC_ADD_PLUGINS([faad])
3235         VLC_ADD_LIBS([faad],[-lfaad]) ],
3236         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3237     LDFLAGS="${LDFLAGS_save}"
3238     CPPFLAGS="${CPPFLAGS_save}"
3239   fi
3240 fi
3241
3242 dnl
3243 dnl twolame encoder plugin
3244 dnl
3245 AC_ARG_ENABLE(twolame,
3246 [  --enable-twolame        twolame codec (default disabled)])
3247 if test "${enable_twolame}" = "yes"
3248 then
3249   AC_ARG_WITH(twolame-tree,
3250   [    --with-twolame-tree=PATH twolame tree for static linking])
3251   if test -n "${with_twolame_tree}"
3252   then
3253     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3254     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3255     if test -z "${real_twolame_tree}"
3256     then
3257       dnl  The given directory can't be found
3258       AC_MSG_RESULT(no)
3259       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3260     fi
3261     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3262     then
3263       dnl  Use a custom twolame
3264       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3265       VLC_ADD_BUILTINS([twolame])
3266       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3267       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3268     else
3269       dnl  The given libtwolame wasn't built
3270       AC_MSG_RESULT(no)
3271       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3272     fi
3273   else
3274     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3275     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3276     AC_CHECK_HEADERS(twolame.h, ,
3277       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3278     AC_CHECK_LIB(twolame, twolame_init, [
3279       VLC_ADD_PLUGINS([twolame])
3280       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3281       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3282         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3283     LDFLAGS="${LDFLAGS_save}"  
3284     CPPFLAGS="${CPPFLAGS_save}"
3285   fi
3286 fi
3287
3288 dnl
3289 dnl  QuickTime plugin
3290 dnl
3291 AC_ARG_ENABLE(quicktime,
3292   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3293 if test "${enable_quicktime}" != "no" &&
3294   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3295 then
3296   if test "${SYS}" = "mingw32"; then
3297     VLC_ADD_BUILTINS([quicktime])
3298   else
3299   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3300     [ VLC_ADD_BUILTINS([quicktime])
3301       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3302     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3303   fi
3304 fi
3305
3306 dnl
3307 dnl  Real plugin
3308 dnl
3309 AC_ARG_ENABLE(real,
3310   [  --enable-real           Real audio module (default disabled)])
3311 if test "${enable_real}" = "yes"; then
3312   VLC_ADD_PLUGINS([realaudio])
3313 fi
3314
3315 dnl
3316 dnl  Real RTSP plugin
3317 dnl
3318 AC_ARG_ENABLE(realrtsp,
3319   [  --enable-realrtsp       Real RTSP module (default disabled)])
3320 if test "${enable_realrtsp}" = "yes"; then
3321   VLC_ADD_PLUGINS([access_realrtsp])
3322 fi
3323
3324 dnl
3325 dnl MP4 module
3326 dnl
3327 AC_CHECK_HEADERS(zlib.h, [
3328   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3329 ] )
3330
3331 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3332   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3333 ] )
3334
3335 dnl
3336 dnl skins2 module
3337 dnl
3338 AC_ARG_ENABLE(libtar,
3339   [  --enable-libtar support for skins2 (default enabled)])
3340
3341 AS_IF([test "${enable_libtar}" != "no"],[
3342   AC_CHECK_HEADERS(libtar.h, [
3343     VLC_ADD_LIBS([skins2],[-ltar])
3344   ] )
3345 ])
3346
3347 dnl
3348 dnl A52/AC3 decoder plugin
3349 dnl
3350 AC_ARG_ENABLE(a52,
3351   [  --enable-a52            A/52 support with liba52 (default enabled)])
3352 if test "${enable_a52}" != "no"
3353 then
3354   AC_ARG_WITH(a52,
3355     [    --with-a52=PATH       a52 headers and libraries])
3356   AC_ARG_WITH(a52-tree,
3357     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3358   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3359   then
3360     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3361     if test -z "${real_a52_tree}"
3362     then
3363       dnl  The given directory can't be found
3364       AC_MSG_RESULT(no)
3365       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3366     fi
3367     dnl  Use a custom a52dec
3368     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3369     if test -f ${real_a52_tree}/include/a52.h
3370     then
3371       AC_MSG_RESULT(yes)
3372       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3373       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3374       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3375       AC_CHECK_LIB(a52, a52_free, [
3376         VLC_ADD_BUILTINS([a52tofloat32])
3377         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3378         VLC_ADD_LIBS([a52tofloat32],[-la52])
3379         ],[
3380         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3381         then
3382           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3383         else
3384           AC_MSG_ERROR([the specified tree hasn't been compiled])
3385         fi
3386       ])
3387       LDFLAGS="${LDFLAGS_save}"
3388     else
3389       AC_MSG_RESULT(no)
3390       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3391     fi
3392   else
3393     if test -z "${with_a52}"
3394     then
3395       LDFLAGS_test=""
3396       CPPFLAGS_test=""
3397     else
3398       LDFLAGS_test="-L${with_a52}/lib"
3399       CPPFLAGS_test="-I${with_a52}/include"
3400     fi
3401     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3402     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3403     AC_CHECK_HEADERS(a52dec/a52.h, [
3404       AC_CHECK_LIB(a52, a52_free, [
3405         VLC_ADD_PLUGINS([a52tofloat32])
3406         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3407         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3408       ],[
3409         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.])
3410         ])
3411     ],[
3412       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.])
3413     ])
3414     CPPFLAGS="${CPPFLAGS_save}"
3415     LDFLAGS="${LDFLAGS_save}"
3416   fi
3417 fi
3418
3419 AC_ARG_WITH(a52-fixed,
3420       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3421       [
3422         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3423
3424 dnl
3425 dnl DTS Coherent Acoustics decoder plugin
3426 dnl
3427 AS_IF([test "x${enable_dts}" != "x"], [
3428   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3429 ])
3430 AS_IF([test "x${with_dts_tree}" != "x"], [
3431   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3432 ])
3433
3434 AC_ARG_ENABLE(dca,
3435   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3436 AS_IF([test "${enable_dca}" != "no"], [
3437   AC_ARG_WITH(dca-tree,
3438     [    --with-dca-tree=PATH  libdca tree for static linking],,
3439     [with_dca_tree="no"])
3440   AS_IF([test "${with_dca_tree}" != "no"], [
3441     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3442     AS_IF([test -z "${real_dca_tree}"], [
3443       dnl  The given directory can't be found
3444       AC_MSG_RESULT(no)
3445       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3446     ])
3447     dnl  Use a custom libdca
3448     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3449     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3450       AC_MSG_RESULT(yes)
3451       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3452       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3453         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3454       ], [
3455         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3456       ])
3457     ], [
3458       AC_MSG_RESULT(no)
3459       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3460     ])
3461   ], [
3462     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3463       VLC_ADD_PLUGINS([dtstofloat32])
3464       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3465       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3466     ], [
3467       AS_IF([test "x${enable_dca}" != "x"], [
3468         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3469       ])
3470     ])
3471   ])
3472 ])
3473
3474 dnl
3475 dnl  Flac plugin
3476 dnl
3477 AC_ARG_ENABLE(flac,
3478   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3479 if test "${enable_flac}" = "yes"
3480 then
3481   AC_ARG_WITH(flac-tree,
3482   [    --with-flac-tree=PATH flac tree for static linking])
3483   if test -n "${with_flac_tree}"
3484   then
3485     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3486     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3487     if test -z "${real_flac_tree}"
3488     then
3489       dnl  The given directory can't be found
3490       AC_MSG_RESULT(no)
3491       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3492     fi
3493     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3494     then
3495       dnl  Use a custom flac
3496       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3497       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3498       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3499       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3500     else
3501       dnl  The given flac wasn't built
3502       AC_MSG_RESULT(no)
3503       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3504     fi
3505   else
3506     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3507       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3508      ],[])
3509   fi
3510 fi
3511
3512 dnl
3513 dnl  Libmpeg2 plugin
3514 dnl
3515 AC_ARG_ENABLE(libmpeg2,
3516   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3517 if test "${enable_libmpeg2}" != "no"
3518 then
3519   AC_ARG_WITH(libmpeg2-tree,
3520   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3521   if test -n "${with_libmpeg2_tree}"
3522   then
3523     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3524     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3525     if test -z "${real_libmpeg2_tree}"
3526     then
3527       dnl  The given directory can't be found
3528       AC_MSG_RESULT(no)
3529       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3530     fi
3531     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3532     then
3533       dnl  Use a custom libmpeg2
3534       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3535       VLC_ADD_BUILTINS([libmpeg2])
3536       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3537       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3538       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3539     else
3540       dnl  The given libmpeg2 wasn't built
3541       AC_MSG_RESULT(no)
3542       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3543     fi
3544   else
3545     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3546       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3547       AC_EGREP_CPP(yes,
3548         [#include <mpeg2dec/mpeg2.h>
3549          #ifdef MPEG2_RELEASE
3550          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3551          yes
3552          #endif
3553          #endif],
3554         [AC_MSG_RESULT([yes])
3555           VLC_ADD_PLUGINS([libmpeg2])
3556           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3557         [AC_MSG_RESULT([no])
3558           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3559
3560       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3561     )
3562   fi
3563 fi
3564
3565 dnl
3566 dnl  Vorbis plugin
3567 dnl
3568 AC_ARG_ENABLE(vorbis,
3569   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3570 if test "${enable_vorbis}" != "no"
3571 then
3572   AC_ARG_WITH(vorbis-tree,
3573   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3574   if test -n "${with_vorbis_tree}"
3575   then
3576     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3577     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3578     if test -z "${real_vorbis_tree}"
3579     then
3580       dnl  The given directory can't be found
3581       AC_MSG_RESULT(no)
3582       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3583     fi
3584     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3585     then
3586       dnl  Use a custom vorbis 
3587       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3588       VLC_ADD_PLUGINS([vorbis])
3589       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3590       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3591     else
3592       dnl  The given vorbis wasn't built
3593       AC_MSG_RESULT(no)
3594       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3595     fi
3596   else
3597     AC_CHECK_HEADERS(vorbis/codec.h, [
3598       VLC_ADD_PLUGINS([vorbis])
3599       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3600
3601     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3602       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3603   fi
3604 fi
3605
3606 dnl
3607 dnl  Tremor plugin
3608 dnl
3609 AC_ARG_ENABLE(tremor,
3610   [  --enable-tremor         Tremor decoder support (default disabled)])
3611 if test "${enable_tremor}" = "yes"
3612 then
3613   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3614     VLC_ADD_PLUGINS([tremor])
3615     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3616    ],[])
3617 fi
3618
3619 dnl
3620 dnl  Speex plugin
3621 dnl
3622 AC_ARG_ENABLE(speex,
3623   [  --enable-speex          Speex decoder support (default enabled)])
3624 if test "${enable_speex}" != "no"
3625 then
3626   AC_ARG_WITH(speex-tree,
3627   [    --with-speex-tree=PATH speex tree for static linking])
3628   if test -n "${with_speex_tree}"
3629   then
3630     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3631     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3632     if test -z "${real_speex_tree}"
3633     then
3634       dnl  The given directory can't be found
3635       AC_MSG_RESULT(no)
3636       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3637     fi
3638     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3639     then
3640       dnl  Use a custom speex
3641       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3642       VLC_ADD_PLUGINS([speex])
3643       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3644       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3645     else
3646       dnl  The given speex wasn't built
3647       AC_MSG_RESULT(no)
3648       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3649     fi
3650   else
3651     AC_CHECK_HEADERS(speex/speex.h, [
3652       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3653       AC_CHECK_LIB(speex, speex_decode_int, [
3654         VLC_ADD_PLUGINS([speex])
3655         VLC_ADD_LIBS([speex],[-lspeex]) ],
3656         [ AC_MSG_RESULT([no])
3657           AC_MSG_WARN([Your libspeex is too old, please get the development
3658                        version.]) ],[])
3659       LDFLAGS="${LDFLAGS_save}"
3660       ],[])
3661   fi
3662 fi
3663
3664 dnl
3665 dnl  tarkin decoder plugin
3666 dnl
3667 AC_ARG_ENABLE(tarkin,
3668 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3669 if test "${enable_tarkin}" = "yes"
3670 then
3671   AC_ARG_WITH(tarkin-tree,
3672   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3673   if test -n "${with_tarkin_tree}"
3674   then
3675     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3676     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3677     if test -f "${real_tarkin_tree}/tarkin.o"
3678     then
3679       VLC_ADD_BUILTINS([tarkin])
3680       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3681       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])
3682       AC_MSG_RESULT(yes)
3683     else
3684       dnl  The given tarkin tree wasn't built
3685       AC_MSG_RESULT(no)
3686       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3687                     make sure you compiled tarkin in ${with_tarkin_tree}])
3688     fi
3689   fi
3690 fi
3691
3692 dnl
3693 dnl  theora decoder plugin
3694 dnl
3695 AC_ARG_ENABLE(theora,
3696 [  --enable-theora         experimental theora codec (default disabled)])
3697 if test "${enable_theora}" = "yes"
3698 then
3699   AC_CHECK_HEADERS(theora/theora.h, [
3700     AC_CHECK_LIB(theora, theora_granule_time, [
3701       VLC_ADD_PLUGINS([theora])
3702       theora_libs="-ltheora -logg"
3703       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3704       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3705 You also need to check that you have a libogg posterior to the 1.0 release.])],
3706       [-logg])
3707   ])
3708 fi
3709
3710 dnl
3711 dnl  dirac decoder plugin
3712 dnl
3713 AC_ARG_ENABLE(dirac,
3714 [  --enable-dirac          experimental dirac codec (default disabled)])
3715 if test "${enable_dirac}" = "yes"; then
3716   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3717       VLC_ADD_PLUGINS([dirac])
3718       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3719       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3720       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3721   ])
3722 fi
3723
3724 dnl
3725 dnl  PNG decoder module
3726 dnl
3727 AC_ARG_ENABLE(png,
3728   [  --enable-png            PNG support (default enabled)])
3729 if test "${enable_png}" != "no"; then
3730 AC_CHECK_HEADERS(png.h, [
3731   LDFLAGS="${LDFLAGS_save} -lz"
3732   AC_CHECK_LIB(png, png_set_rows, [
3733     VLC_ADD_LIBS([png],[-lpng -lz])
3734     VLC_ADD_PLUGINS([png])
3735     VLC_ADD_PLUGINS([osdmenu osd_parser])
3736     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3737     [],[-lz])
3738   LDFLAGS="${LDFLAGS_save}"
3739   ])
3740 fi
3741
3742 dnl
3743 dnl H264 encoder plugin (using libx264)
3744 dnl
3745 AC_ARG_ENABLE(x264,
3746   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3747 if test "${enable_x264}" != "no"; then
3748   AC_ARG_WITH(x264-tree,
3749     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3750   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3751   then
3752     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3753     if test -z "${real_x264_tree}"
3754     then
3755       dnl  The given directory can't be found
3756       AC_MSG_RESULT(no)
3757       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3758     fi
3759     dnl  Use a custom libx264
3760     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3761     if test -f ${real_x264_tree}/x264.h
3762     then
3763       AC_MSG_RESULT(yes)
3764       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3765       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3766       PKG_CHECK_MODULES(X264,x264, [
3767         VLC_ADD_PLUGINS([x264])
3768         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3769         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3770       ],[
3771         AC_MSG_ERROR([the specified tree hasn't been compiled])
3772       ])
3773       LDFLAGS="${LDFLAGS_save}"
3774     else
3775       AC_MSG_RESULT(no)
3776       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3777     fi
3778   else
3779     AC_CHECK_HEADERS(x264.h, [
3780       PKG_CHECK_MODULES(X264,x264, [
3781         VLC_ADD_PLUGINS([x264])
3782         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3783         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3784       ],[
3785         if test "${enable_x264}" = "yes"; then
3786             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3787           fi
3788       ])
3789     ])
3790     LDFLAGS="${LDFLAGS_save}"
3791   fi
3792 fi
3793
3794 dnl
3795 dnl libfluidsynth (MIDI synthetizer) plugin
3796 dnl
3797 AC_ARG_ENABLE(fluidsynth,
3798   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3799 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3800   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3801     VLC_ADD_PLUGINS(fluidsynth)
3802     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3803     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3804   ], [
3805     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3806       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3807     ])
3808   ])
3809 ])
3810
3811 dnl
3812 dnl Teletext Modules
3813 dnl vbi decoder plugin (using libzbvi)
3814 dnl telx module
3815 dnl uncompatible
3816 dnl
3817 AC_ARG_ENABLE(zvbi,
3818   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3819 AC_ARG_ENABLE(telx,
3820   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3821
3822 AS_IF( [test "${enable_zvbi}" != "no"],[
3823   AS_IF( [test "${enable_telx}" = "yes"],[
3824     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3825   ],[
3826     PKG_CHECK_MODULES(ZVBI,
3827         zvbi-0.2 >= 0.2.25,
3828         [
3829           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3830           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3831           VLC_ADD_PLUGINS([zvbi])
3832           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3833         ],[
3834           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3835           enable_telx="yes"
3836         ])
3837     ])  
3838   ])
3839 AS_IF( [test "${enable_telx}" = "yes"],[
3840   VLC_ADD_PLUGINS([telx])
3841   ])
3842
3843 dnl
3844 dnl asa/csri subtitle rendering module
3845 dnl
3846 AC_ARG_ENABLE(csri,
3847   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
3848 AS_IF( [test "${enable_csri}" = "yes"], [
3849   PKG_CHECK_MODULES(CSRI,
3850       csri >= 0.1.0,
3851       [
3852         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3853         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3854         VLC_ADD_PLUGINS([csri])
3855       ],[
3856         AC_MSG_WARN([CSRI helper library not found])
3857       ])
3858   ])
3859
3860 dnl
3861 dnl asa demuxer
3862 dnl
3863 AC_ARG_ENABLE(asademux,
3864   [  --enable-asademux      asa subtitle demuxing (default disabled)])
3865 AS_IF( [test "${enable_asademux}" = "yes"], [
3866   PKG_CHECK_MODULES(PCRE,
3867       libpcre >= 6.5,
3868       [
3869         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3870         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3871         VLC_ADD_PLUGINS([asademux])
3872       ],[
3873         AC_MSG_WARN([PCRE library not found (required for asademux)])
3874       ])
3875   ])
3876
3877 dnl
3878 dnl  CMML plugin
3879 dnl
3880 AC_ARG_ENABLE(cmml,
3881   [  --enable-cmml           CMML support (default enabled)])
3882 if test "${enable_cmml}" != "no"
3883 then
3884   VLC_ADD_PLUGINS([cmml])
3885 fi
3886
3887
3888 dnl
3889 dnl  Video plugins
3890 dnl
3891
3892 AC_ARG_WITH(,[Video plugins:])
3893
3894 dnl Check for DPMS
3895 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3896   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3897   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3898     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3899     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3900       AC_MSG_RESULT(yes)
3901       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3902                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3903     ],[
3904       AC_MSG_RESULT(no)
3905     ])
3906   ],,[
3907     #include <X11/Xlib.h>
3908   ])
3909   CPPFLAGS="${CPPFLAGS_save}"
3910 fi
3911
3912 dnl
3913 dnl  X11 module
3914 dnl  (enabled by default except on win32)
3915 dnl
3916 AC_ARG_ENABLE(x11,
3917   [  --enable-x11            X11 support (default enabled)])
3918 if test "${enable_x11}" != "no" &&
3919   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3920    test "${enable_x11}" = "yes"); then
3921   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3922   AC_CHECK_HEADERS(X11/Xlib.h, [
3923     VLC_ADD_PLUGINS([panoramix])
3924     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3925     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3926     AC_CHECK_LIB(Xext, XShmAttach, [
3927       VLC_ADD_PLUGINS([x11])
3928       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3929       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3930     ])
3931   ])
3932   CPPFLAGS="${CPPFLAGS_save}"
3933 fi
3934
3935 dnl
3936 dnl  XVideo module
3937 dnl  (enabled by default except on win32)
3938 dnl
3939 AC_ARG_ENABLE(xvideo,
3940   [  --enable-xvideo         XVideo support (default enabled)])
3941 if test "${enable_xvideo}" != "no" &&
3942   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3943    test "${enable_xvideo}" = "yes"); then
3944   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3945   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3946     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3947     AC_CHECK_LIB(Xv,XvPutImage,[
3948       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3949       # test for libXv_pic.
3950       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3951         VLC_ADD_PLUGINS([xvideo])
3952         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3953         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3954       else
3955         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3956           VLC_ADD_PLUGINS([xvideo])
3957           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3958           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3959         ],[
3960           VLC_ADD_BUILTINS([xvideo])
3961           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3962           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3963         ])
3964       fi
3965     ])
3966     CFLAGS="${CFLAGS_save}"
3967   ]
3968   CPPFLAGS="${CPPFLAGS_save}")
3969 fi
3970
3971 dnl
3972 dnl  GLX module
3973 dnl  (enabled by default except on win32)
3974 dnl
3975 AC_ARG_ENABLE(glx,
3976   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3977 if test "${enable_glx}" != "no" &&
3978   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3979    test "${enable_glx}" = "yes"); then
3980   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3981   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3982   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3983     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3984     choke me
3985     #endif]]),
3986     [
3987       VLC_ADD_PLUGINS([glx])
3988       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3989       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3990     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3991   CPPFLAGS="${CPPFLAGS_save}"
3992 fi
3993
3994 dnl
3995 dnl  XVMC module
3996 dnl  (disabled by default except on win32)
3997 dnl
3998 AC_ARG_ENABLE(xvmc,
3999   [  --enable-xvmc           XVMC support (default disabled)])
4000 if test "${enable_xvmc}" = "yes" &&
4001   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4002    test "${enable_xvmc}" = "yes"); then
4003   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
4004   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
4005     VLC_ADD_PLUGINS([xvmc])
4006     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXvMCW -lXv -lXinerama])
4007     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
4008   ])
4009   CPPFLAGS="${CPPFLAGS_save}"
4010 fi
4011
4012 dnl
4013 dnl  Check for the Xinerama extension
4014 dnl
4015 AC_ARG_ENABLE(xinerama,
4016   [  --enable-xinerama       Xinerama support (default enabled)])
4017 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4018   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4019    test "${enable_xvideo}" = "yes"); then
4020   ac_cv_have_xinerama="no"
4021   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4022   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4023   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4024     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4025       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4026       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4027       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4028       ac_cv_have_xinerama="yes"
4029     ],[
4030       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4031         VLC_ADD_LIBS([xvideo],[-lXinerama])
4032         VLC_ADD_LIBS([x11],[-lXinerama])
4033         VLC_ADD_LIBS([glx],[-lXinerama])
4034         ac_cv_have_xinerama="yes"
4035       ])
4036     ])
4037   ])
4038   if test "${ac_cv_have_xinerama}" = "yes"; then
4039     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4040   fi
4041   CFLAGS="${CFLAGS_save}"
4042   CPPFLAGS="${CPPFLAGS_save}"
4043
4044 dnl
4045 dnl  Check for XF86VidMode extension
4046 dnl
4047   ac_cv_have_xf86vidmode="no"
4048   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4049   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4050   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4051     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4052       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4053       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4054       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4055       ac_cv_have_xf86vidmode="yes"
4056     ],[
4057       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4058         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4059         VLC_ADD_LIBS([x11],[-lXxf86vm])
4060         VLC_ADD_LIBS([glx],[-lXxf86vm])
4061         ac_cv_have_xf86vidmode="yes"
4062       ])
4063     ])
4064   ],[true],
4065 [#ifdef HAVE_X11_XLIB_H
4066 # include <X11/Xlib.h>
4067 #endif]
4068    )
4069   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4070     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4071   ])
4072   CFLAGS="${CFLAGS_save}"
4073   CPPFLAGS="${CPPFLAGS_save}"
4074
4075 fi
4076
4077 dnl
4078 dnl  OpenGL module
4079 dnl  (enabled by default except on beos)
4080 dnl
4081 AC_ARG_ENABLE(opengl,
4082   [  --enable-opengl         OpenGL support (default enabled)])
4083 if test "${enable_opengl}" != "no" &&
4084    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4085   if test "${SYS}" != "darwin"; then
4086     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4087       VLC_ADD_PLUGINS([opengl])
4088       if test "${SYS}" != "mingw32"; then
4089         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4090       else
4091         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4092       fi
4093     ])
4094   else
4095     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4096     VLC_ADD_PLUGINS([opengl])
4097     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4098   fi
4099 fi
4100
4101 dnl
4102 dnl  SDL module
4103 dnl
4104 AC_ARG_ENABLE(sdl,
4105   [  --enable-sdl            SDL support (default enabled)])
4106 AC_ARG_ENABLE(sdl-image,
4107   [  --enable-sdl-image      SDL image support (default enabled)])
4108 if test "${enable_sdl}" != "no"
4109 then
4110   SDL_PATH="${PATH}"
4111   AC_ARG_WITH(sdl-config-path,
4112     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4113     [ if test "${with_sdl_config_path}" != "no"
4114       then
4115         SDL_PATH="${with_sdl_config_path}:${PATH}"
4116       fi ])
4117   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4118   SDL_CONFIG="${SDL12_CONFIG}"
4119   SDL_HEADER="SDL12/SDL.h"
4120   SDL_IMAGE="SDL12/SDL_image.h"
4121   if test "${SDL_CONFIG}" = "no"
4122   then
4123     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4124     SDL_CONFIG=${SDL11_CONFIG}
4125     SDL_HEADER="SDL11/SDL.h"
4126     SDL_IMAGE="SDL11/SDL_image.h"
4127   fi
4128   if test "${SDL_CONFIG}" = "no"
4129   then
4130     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4131     SDL_HEADER="SDL/SDL.h"
4132     SDL_IMAGE="SDL/SDL_image.h"
4133   fi
4134   # check for cross-compiling
4135   SDL_PREFIX=
4136   AC_ARG_WITH(sdl-prefix,
4137     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4138                                e.g use as:
4139                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4140   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4141   then
4142     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4143   fi
4144   if test "${SDL_CONFIG}" != "no"
4145   then
4146     # SDL on Darwin is heavily patched and can only run SDL_image
4147     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4148       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4149     fi
4150     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4151     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4152     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4153     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4154       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4155       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4156           As a last resort we also test for SDL.h presence),
4157       [ AC_MSG_ERROR([The development package for SDL is not installed.
4158 Please install it and try again. Alternatively you can also configure with
4159 --disable-sdl.])
4160       ])])
4161     AS_IF([ test "${enable_sdl_image}" != "no"],[
4162       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4163         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4164         VLC_ADD_PLUGINS([sdl_image])
4165         AC_CHECK_LIB(png, png_set_rows,
4166           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4167         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4168           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4169         AC_CHECK_LIB(tiff, TIFFClientOpen,
4170           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4171         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4172         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4173             As a last resort we also test for SDL_image.h presence),
4174         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4175   You should install it alongside your SDL package.])
4176         ])])
4177     ])
4178     CPPFLAGS="${CPPFLAGS_save}"
4179     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4180     then
4181       AC_MSG_ERROR([The development package for SDL is not installed.
4182 Please install it and try again. Alternatively you can also configure with
4183 --disable-sdl.])
4184     fi
4185
4186   elif test "${enable_sdl}" =  "yes"
4187   then
4188     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4189 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4190     ])
4191   fi
4192 fi
4193
4194 dnl
4195 dnl  freetype module
4196 dnl
4197 AC_ARG_ENABLE(freetype,
4198   [  --enable-freetype       freetype support (default enabled)])
4199 AC_ARG_ENABLE(fribidi,
4200   [  --enable-fribidi        fribidi support (default enabled)])
4201 if test "${enable_freetype}" != "no"
4202 then
4203    PKG_CHECK_MODULES(FREETYPE, freetype2,[  
4204       VLC_ADD_PLUGINS([freetype])
4205       have_freetype=yes     
4206       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4207       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4208       if test "${SYS}" = "mingw32"; then
4209         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4210      fi
4211     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4212       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4213        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4214     AC_CHECK_HEADERS(Carbon/Carbon.h,
4215       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4216   ],[
4217   have_freetype=no
4218   AS_IF([ test "${enable_freetype}" =  "yes"],[
4219     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4220 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4221       ])
4222     ])
4223   ])
4224
4225   dnl fribidi support
4226   if test "${enable_fribidi}" != "no"
4227   then
4228     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4229       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4230       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4231     ])
4232     fi
4233 fi
4234
4235 dnl
4236 dnl  libxml2 module
4237 dnl
4238 AC_ARG_ENABLE(libxml2,
4239   [  --enable-libxml2        libxml2 support (default enabled)])
4240 if test "${enable_libxml2}" != "no"
4241 then
4242   XML2_PATH="${PATH}"
4243   AC_ARG_WITH(xml2-config-path,
4244     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4245     [ if test "${with_xml2_config_path}" != "no"; then
4246         XML2_PATH="${with_xml2_config_path}:${PATH}"
4247       fi ])
4248   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4249   if test "${XML2_CONFIG}" != "no"; then
4250     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4251     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4252     dnl depends on the xmlTextReader extension
4253     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4254     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4255     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4256       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4257         VLC_ADD_PLUGINS([xml]) ],[
4258           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4259           if test "${enable_xml2}" = "yes"; then
4260             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4261           fi])
4262        ],[
4263       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4264       if test "${enable_xml2}" = "yes"; then
4265         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4266       fi])
4267     LDFLAGS="${LDFLAGS_save}"
4268     CPPFLAGS="${CPPFLAGS_save}"
4269   else
4270     if test "${enable_xml2}" = "yes"; then
4271       AC_MSG_ERROR([Could not find libxml2])
4272     fi
4273   fi
4274 fi
4275
4276 dnl
4277 dnl  SVG module
4278 dnl
4279 AC_ARG_ENABLE(svg,
4280   [  --enable-svg            SVG support (default disabled)])
4281 if test "${enable_svg}" = "yes"
4282 then
4283   PKG_CHECK_MODULES(SVG, 
4284         librsvg-2.0 >= 2.9.0,
4285         [
4286           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4287           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4288           VLC_ADD_PLUGINS([svg]) ],
4289         [AC_MSG_WARN(SVG library not found)])
4290 fi
4291
4292 dnl
4293 dnl Snapshot vout module (with cache)
4294 dnl
4295 AC_ARG_ENABLE(snapshot,
4296   [  --enable-snapshot       snapshot module (default disabled)])
4297 if test "${enable_snapshot}" = "yes"
4298 then
4299   VLC_ADD_PLUGINS([snapshot])
4300 fi
4301
4302 dnl
4303 dnl  Qt Embedded module
4304 dnl  (disabled by default)
4305 dnl
4306 AC_ARG_ENABLE(qte,
4307   [  --enable-qte            QT Embedded support (default disabled)])
4308 if test "${enable_qte}" = "yes"
4309 then
4310   AC_ARG_WITH(qte,
4311   [    --with-qte=PATH       Qt Embedded headers and libraries])
4312   if test "${with_qte}" != "no" -a -n "${with_qte}"
4313   then
4314     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4315     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])
4316   else
4317     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4318     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4319   fi
4320   VLC_ADD_PLUGINS([qte])
4321   NEED_QTE_MAIN=yes
4322   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4323   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4324     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4325   ] )
4326   CPPFLAGS="${CPPFLAGS_save}"
4327 fi
4328
4329 dnl
4330 dnl  Qt Video output module
4331 dnl  (disabled by default)
4332 dnl
4333 dnl AC_ARG_ENABLE(qt_video,
4334 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4335 dnl if test "${enable_qt_video}" = "yes"
4336 dnl then
4337 dnl  VLC_ADD_PLUGINS([qt_video])
4338 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4339 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4340 dnl   AC_CHECK_LIB(qt-mt,main,[
4341 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4342 dnl  ],[
4343 dnl    AC_CHECK_LIB(qt,main,[
4344 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4345 dnl    ])
4346 dnl  ])
4347 dnl  NEED_QTE_MAIN=yes
4348 dnl  LDFLAGS="${LDFLAGS_save}"
4349 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4350 dnl fi
4351
4352 dnl
4353 dnl Roku HD1000 Video output module
4354 dnl
4355 AC_ARG_ENABLE(hd1000v,
4356   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4357 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4358   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4359    test "${enable_hd1000v}" = "yes"); then
4360   AC_LANG_PUSH([C++])
4361   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4362   [
4363     can_build_roku="yes"
4364   ],
4365   [
4366     can_build_roku="no"
4367     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4368   ])
4369   if test "$can_build_roku" = "yes"
4370   then
4371     VLC_ADD_PLUGINS([hd1000v])
4372     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4373   fi
4374   AC_LANG_POP([C++])
4375 fi
4376
4377 dnl
4378 dnl  Windows DirectX module
4379 dnl
4380
4381 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4382 then
4383   VLC_ADD_PLUGINS([panoramix])
4384 fi
4385
4386 AC_ARG_ENABLE(directx,
4387   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4388 if test "${enable_directx}" != "no"
4389 then
4390   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4391   then
4392     AC_ARG_WITH(directx,
4393     [    --with-directx=PATH   Win32 DirectX headers])
4394     if test -z "${with_directx}"
4395     then
4396       AC_CHECK_HEADERS(ddraw.h,
4397       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4398         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4399       ])
4400       AC_CHECK_HEADERS(GL/gl.h,
4401       [ VLC_ADD_PLUGINS([glwin32])
4402         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4403       ])
4404       AC_CHECK_HEADERS(d3d9.h,
4405       [ VLC_ADD_PLUGINS([direct3d])
4406         VLC_ADD_LIBS([direct3d],[-lgdi32])
4407       ])
4408     else
4409       AC_MSG_CHECKING(for directX headers in ${with_directx})
4410       if test -f ${with_directx}/ddraw.h
4411       then
4412         VLC_ADD_PLUGINS([vout_directx aout_directx])
4413         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4414         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4415         AC_MSG_RESULT(yes)
4416       else
4417         AC_MSG_RESULT(no)
4418         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4419       fi
4420     fi
4421   fi
4422 fi
4423
4424 dnl
4425 dnl  Linux framebuffer module
4426 dnl
4427 AC_ARG_ENABLE(fb,
4428   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4429     if test "${enable_fb}" != "no"
4430     then
4431       AC_CHECK_HEADERS(linux/fb.h, [
4432         VLC_ADD_PLUGINS([fb])
4433       ])
4434     fi
4435
4436 dnl
4437 dnl  Linux MGA module
4438 dnl
4439 AC_ARG_ENABLE(mga,
4440   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4441   [ if test "${enable_mga}" = "yes"
4442     then
4443       VLC_ADD_PLUGINS([mga])
4444     fi ])
4445
4446 dnl
4447 dnl  SVGAlib module
4448 dnl
4449 AC_ARG_ENABLE(svgalib,
4450   [  --enable-svgalib        SVGAlib support (default disabled)])
4451 if test "${enable_svgalib}" = "yes"
4452 then
4453   VLC_ADD_PLUGINS([svgalib])
4454   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4455 fi
4456
4457 dnl
4458 dnl  DirectFB module
4459 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4460 dnl  TODO: support for static linking
4461 dnl
4462 AC_ARG_ENABLE(directfb,
4463   [  --enable-directfb       DirectFB support (default disabled)])
4464 AC_ARG_WITH(directfb, 
4465   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4466
4467 if test "${enable_directfb}" = "yes"; then
4468     have_directfb="false"
4469     CPPFLAGS_mydirectfb=
4470     LIBS_mydirectfb=
4471     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4472         dnl Trying the given location
4473         CPPFLAGS_save="${CPPFLAGS}"
4474         LIBS_save="${LIBS}"
4475
4476         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4477         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4478         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4479
4480         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4481         LIBS="${LIBS} ${LIBS_new}"
4482
4483         dnl FIXME: too obscure
4484         AC_CHECK_HEADER([directfb.h], [
4485             AC_CHECK_LIB([direct],[direct_initialize], [
4486                 AC_CHECK_LIB([fusion], [fusion_enter], [
4487                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4488                 ], have_directfb="false")
4489             ], have_directfb="false")
4490         ], have_directfb="false")
4491
4492         dnl Restore flags
4493         CPPFLAGS="${CPPFLAGS_save}"
4494         LIBS="${LIBS_save}"
4495
4496         if test "${have_directfb}" = "true"; then
4497             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4498             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4499         fi
4500     else 
4501         dnl Look for directfb-config
4502         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4503         if test "${DIRECTFB_CONFIG}" != "no"; then
4504             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4505             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4506             have_directfb="true"
4507         else 
4508             dnl Trying with pkg-config
4509             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4510                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4511                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4512                 have_directfb="true"
4513                 ], [have_directfb="false"])
4514         fi
4515     fi
4516     if test "${have_directfb}" = "true"; then
4517         VLC_ADD_PLUGINS([directfb])
4518         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4519         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4520     else 
4521         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4522     fi
4523 fi
4524  
4525
4526
4527 dnl
4528 dnl  GGI module
4529 dnl
4530 AC_ARG_ENABLE(ggi,
4531   [  --enable-ggi            GGI support (default disabled)])
4532 if test "${enable_ggi}" = "yes"
4533 then
4534   VLC_ADD_PLUGINS([ggi])
4535   VLC_ADD_LIBS([ggi],[-lggi])
4536   AC_ARG_WITH(ggi,
4537     [    --with-ggi=PATH       path to libggi],
4538     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4539       then
4540         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4541         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4542       fi ])
4543 fi
4544
4545 dnl
4546 dnl  Glide module
4547 dnl
4548 AC_ARG_ENABLE(glide,
4549   [  --enable-glide          Glide (3dfx) support (default disabled)])
4550 if test "${enable_glide}" = "yes"
4551 then
4552   CFLAGS_save="${CFLAGS}"
4553   AC_ARG_WITH(glide,
4554     [    --with-glide=PATH     path to libglide],
4555     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4556       then
4557         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4558         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4559         CFLAGS="$CFLAGS -I${with_glide}/include"
4560     fi ])
4561    CFLAGS="$CFLAGS -I/usr/include/glide"
4562    AC_CHECK_HEADER(glide.h,[   
4563       VLC_ADD_PLUGINS([glide])
4564       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4565       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4566     ],[
4567       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4568      ])
4569    CFLAGS="${CFLAGS_save}"
4570 fi
4571
4572 dnl
4573 dnl  AA plugin
4574 dnl
4575 AC_ARG_ENABLE(aa,
4576   [  --enable-aa             aalib output (default disabled)])
4577 if test "${enable_aa}" = "yes"
4578 then
4579   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4580   if test "${have_aa}" = "true"
4581   then
4582     VLC_ADD_PLUGINS([aa])
4583     VLC_ADD_LIBS([aa],[-laa])
4584   fi
4585 fi
4586
4587 dnl
4588 dnl  libcaca plugin
4589 dnl
4590 AC_ARG_ENABLE(caca,
4591   [  --enable-caca           libcaca output (default disabled)])
4592 if test "${enable_caca}" = "yes"
4593 then
4594   CACA_PATH="${PATH}"
4595   AC_ARG_WITH(caca-config-path,
4596     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4597     [ if test "${with_caca_config_path}" != "no"
4598       then
4599         CACA_PATH="${with_caca_config_path}:${PATH}"
4600       fi ])
4601   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4602   if test "${CACA_CONFIG}" != "no"
4603   then
4604     VLC_ADD_PLUGINS([caca])
4605     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4606     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4607     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4608                                         caca_event_t ev;]],
4609                                         [[ev.type = 0;]]
4610                        )],
4611                        [],
4612       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4613     )
4614   fi
4615 fi
4616
4617 dnl
4618 dnl  win32 GDI plugin
4619 dnl
4620 AC_ARG_ENABLE(wingdi,
4621   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4622 if test "${enable_wingdi}" != "no"; then
4623   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4624     VLC_ADD_PLUGINS([wingdi])
4625     VLC_ADD_LIBS([wingdi],[-lgdi32])
4626   fi
4627   if test "${SYS}" = "mingwce"; then
4628     VLC_ADD_PLUGINS([wingdi wingapi])
4629   fi
4630 fi
4631
4632 dnl
4633 dnl  Audio plugins
4634 dnl
4635
4636 AC_ARG_WITH(,[Audio plugins:])
4637
4638 dnl
4639 dnl  OSS /dev/dsp module (enabled by default except on win32)
4640 dnl
4641 AC_ARG_ENABLE(oss,
4642   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4643
4644 if test "${enable_oss}" != "no" &&
4645   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4646    test "${enable_oss}" = "yes")
4647 then
4648   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4649     VLC_ADD_PLUGINS([oss])
4650     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4651   ])
4652 fi
4653
4654 dnl
4655 dnl  Esound module
4656 dnl
4657 AC_ARG_ENABLE(esd,
4658   [  --enable-esd            Esound library support (default disabled)],
4659   [if test "${enable_esd}" = "yes"
4660    then
4661      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4662      if test "${ESD_CONFIG}" != "no"
4663      then
4664        VLC_ADD_PLUGINS([esd])
4665        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4666        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4667      fi
4668    fi])
4669
4670 dnl
4671 dnl  Pulseaudio module
4672 dnl
4673 AC_ARG_ENABLE(pulse,
4674   [  --enable-pulse          Pulseaudio support (default enabled)])
4675   if test "${enable_pulse}" != "no"
4676    then
4677      PKG_CHECK_MODULES(PULSE, libpulse >= 0.9.8,
4678        [ VLC_ADD_PLUGINS([pulse])
4679         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4680         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4681        [AC_MSG_WARN(pulsaudio library not found)])
4682    fi
4683
4684 dnl
4685 dnl  Portaudio module
4686 dnl
4687 AC_ARG_ENABLE(portaudio,
4688   [  --enable-portaudio      Portaudio library support (default disabled)],
4689   [if test "${enable_portaudio}" = "yes"
4690    then
4691      VLC_ADD_PLUGINS([portaudio])
4692      VLC_ADD_CXXFLAGS([portaudio],[])
4693      if test "${SYS}" = "mingw32"; then
4694         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4695      else
4696         VLC_ADD_LIBS([portaudio],[-lportaudio])
4697      fi
4698    fi])
4699
4700 dnl
4701 dnl  aRts module -- broken (freeze wxWidgets)
4702 dnl
4703 AC_ARG_ENABLE(arts,
4704  [  --enable-arts           aRts sound server (default disabled)],
4705  [if test "${enable_arts}" = "yes"
4706   then
4707     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4708     if test "${ARTS_CONFIG}" != "no"
4709     then
4710       VLC_ADD_PLUGINS([arts])
4711       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4712       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4713     fi
4714   fi])
4715
4716 dnl
4717 dnl  ALSA module
4718 dnl
4719 AC_ARG_ENABLE(alsa,
4720   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4721 if test "${enable_alsa}" != "no"
4722 then
4723   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4724   if test "${have_alsa}" = "true"
4725   then
4726     CFLAGS="${CFLAGS_save}"
4727     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4728                     #define ALSA_PCM_NEW_SW_PARAMS_API
4729                     #include <alsa/asoundlib.h>],
4730        [snd_pcm_hw_params_get_period_time(0,0,0);],
4731         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4732     VLC_ADD_PLUGINS([alsa])
4733     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4734   else
4735     if test "${enable_alsa}" = "yes"; then
4736       AC_MSG_ERROR([Could not find ALSA development headers])
4737     fi
4738   fi
4739 fi
4740
4741 dnl
4742 dnl  win32 waveOut plugin
4743 dnl
4744 AC_ARG_ENABLE(waveout,
4745   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4746 if test "${enable_waveout}" != "no"; then
4747   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4748     VLC_ADD_PLUGINS([waveout])
4749     VLC_ADD_LIBS([waveout],[-lwinmm])
4750   fi
4751   if test "${SYS}" = "mingwce"; then
4752     VLC_ADD_PLUGINS([waveout])
4753   fi
4754 fi
4755
4756 dnl
4757 dnl  CoreAudio plugin
4758 dnl
4759 AC_ARG_ENABLE(macosx-audio,
4760   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4761 if test "${enable_macosx-audio}" != "no" &&
4762   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4763 then
4764   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4765     [ VLC_ADD_BUILTINS([auhal])
4766       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4767     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4768 fi
4769
4770 dnl
4771 dnl  Roku HD1000 audio
4772 dnl
4773 AC_ARG_ENABLE(hd1000a,
4774   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4775 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4776   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4777    test "${enable_hd1000a}" = "yes")
4778 then
4779   AC_LANG_PUSH([C++])
4780   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4781     VLC_ADD_PLUGINS([hd1000a])
4782     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4783   AC_LANG_POP([C++])
4784 fi
4785
4786 dnl
4787 dnl  JACK modules
4788 dnl
4789 AC_ARG_ENABLE(jack,
4790  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4791  [enable_jack="no"])
4792
4793 AS_IF([test "${enable_jack}" != "no"], [
4794   AC_CHECK_HEADERS(jack/jack.h, [
4795     VLC_ADD_PLUGINS([access_jack jack])
4796     VLC_ADD_LIBS([access_jack jack],[-ljack])
4797   ],[AC_MSG_ERROR([cannot find JACK headers])])
4798 ])
4799
4800 dnl
4801 dnl  CyberLink for C++ UPnP stack
4802 dnl
4803 AC_ARG_ENABLE(cyberlink,
4804   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4805   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4806   AC_ARG_WITH(cyberlink-tree,
4807     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4808
4809   dnl
4810   dnl test for --with-cyberlink-tree
4811   dnl
4812   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4813     AC_LANG_PUSH(C++)
4814     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4815     AS_IF([test -z "${real_cyberlink_tree}"], [
4816       dnl  The given directory can't be found
4817       AC_MSG_RESULT(no)
4818       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4819     ])
4820     CPPFLAGS_save="${CPPFLAGS}"
4821     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4822     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4823     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4824       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4825         VLC_ADD_PLUGINS([upnp_cc]) 
4826       ],[
4827         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4828       ])
4829     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4830     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4831       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4832       dnl The mere fact that we have to make such an ugly check sucks
4833       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4834       LIBS_save="$LIBS"
4835       LIBS_cclink="no"
4836       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4837         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4838         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4839 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4840 using namespace CyberLink;
4841
4842 class testclass : public SearchResponseListener, public MediaPlayer
4843 {
4844     virtual void deviceSearchResponseReceived( SSDPPacket *)
4845     {
4846     }
4847
4848     public:
4849       testclass (void)
4850       {
4851         addSearchResponseListener (this);
4852         start ();
4853       }
4854 };
4855 ],[testclass l;])],[LIBS_cclink="$l"])
4856       done
4857       LIBS="${LIBS_save}"
4858       dnl should not happen - otherwise this needs fixing - hence FAILURE
4859       AS_IF([test "${LIBS_cclink}" = "no"],
4860         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4861       AC_MSG_RESULT([${LIBS_cclink}])
4862       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4863     ], [
4864       AC_MSG_RESULT(no)
4865       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4866     ])
4867     CPPFLAGS="${CPPFLAGS_save}"
4868     AC_LANG_POP([C++])
4869   ])
4870 ])
4871
4872 dnl
4873 dnl UPnP Plugin (Intel SDK)
4874 dnl
4875 AC_ARG_ENABLE(upnp,
4876   [  --enable-upnp           Intel UPnP SDK (default enabled)])
4877
4878 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4879 AS_IF([test "x${enable_upnp}" != "xno"], [
4880   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4881   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4882     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4883   ])
4884   AS_IF([test "${has_upnp}" = "yes"], [
4885     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4886   ])
4887 ], [
4888   has_upnp="no"
4889 ])
4890
4891 AS_IF([test "${has_upnp}" = "yes"], [
4892   VLC_ADD_PLUGINS([upnp_intel])
4893 ])
4894
4895
4896 dnl
4897 dnl  Interface plugins
4898 dnl
4899
4900 AC_ARG_WITH(,[Interface plugins:])
4901
4902 dnl special case for BeOS
4903 if test "${SYS}" = "beos"
4904 then
4905     VLC_ADD_BUILTINS([beos])
4906 fi
4907
4908 dnl
4909 dnl Skins2 module
4910 dnl
4911 AC_ARG_ENABLE(skins2,
4912   [  --enable-skins2         Skins2 interface module (default disabled)])
4913 if test "${enable_skins2}" = "yes" ||
4914   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4915    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4916
4917   dnl test for the required libraries
4918   skins2_missing_lib="no"
4919
4920   dnl freetype
4921   if test "${have_freetype}" != "yes"; then
4922     skins2_missing_lib="yes"
4923     if test "${enable_skins2}" = "yes"; then
4924       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4925     fi
4926   fi
4927
4928   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4929     VLC_ADD_PLUGINS([skins2])
4930     ALIASES="${ALIASES} svlc"
4931     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4932     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4933     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4934
4935   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4936     VLC_ADD_PLUGINS([skins2])
4937     ALIASES="${ALIASES} svlc"
4938     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4939     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4940     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4941
4942   else if test "${skins2_missing_lib}" = "no"; then
4943     VLC_ADD_PLUGINS([skins2])
4944     ALIASES="${ALIASES} svlc"
4945     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4946     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4947     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4948   fi fi fi
4949 fi
4950
4951
4952 dnl dnl
4953 dnl dnl  Gtk+ module
4954 dnl dnl
4955 dnl AC_ARG_ENABLE(gtk,
4956 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4957 dnl if test "${enable_gtk}" != "no"
4958 dnl then
4959 dnl   GTK_PATH="${PATH}"
4960 dnl   AC_ARG_WITH(gtk-config-path,
4961 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4962 dnl     [ if test "${with_gtk_config_path}" != "no"
4963 dnl       then
4964 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4965 dnl       fi ])
4966 dnl   # look for gtk-config
4967 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4968 dnl   GTK_CONFIG=${GTK12_CONFIG}
4969 dnl   if test "${GTK_CONFIG}" = "no"
4970 dnl   then
4971 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4972 dnl   fi
4973 dnl   if test "${GTK_CONFIG}" != "no"
4974 dnl   then
4975 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4976 dnl     then
4977 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
4978 dnl     fi
4979 dnl     if test "${SYS}" != "mingw32"; then
4980 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4981 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4982 dnl     else
4983 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4984 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4985 dnl     fi
4986 dnl     # now look for the gtk.h header
4987 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4988 dnl     ac_cv_gtk_headers=yes
4989 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4990 dnl       ac_cv_gtk_headers=no
4991 dnl       echo "Cannot find gtk development headers."
4992 dnl     ])
4993 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4994 dnl     then
4995 dnl       VLC_ADD_PLUGINS([gtk])
4996 dnl       if test "${SYS}" != "mingw32"; then
4997 dnl         NEED_GTK_MAIN=yes
4998 dnl       fi
4999 dnl       ALIASES="${ALIASES} gvlc"
5000 dnl     fi
5001 dnl     CPPFLAGS="${CPPFLAGS_save}"
5002 dnl   fi
5003 dnl fi
5004 dnl 
5005 dnl
5006 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
5007 dnl
5008 dnl AC_ARG_ENABLE(gtk2,
5009 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
5010 dnl if test "${enable_gtk2}" = "yes"
5011 dnl then
5012 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5013 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5014 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5015 dnl   VLC_ADD_PLUGINS([gtk2])
5016 dnl   if test "${SYS}" != "mingw32"; then
5017 dnl     NEED_GTK2_MAIN=yes
5018 dnl   fi
5019 dnl fi
5020
5021 dnl
5022 dnl  PDA Gtk+2 module
5023 dnl
5024 AC_ARG_ENABLE(pda,
5025   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5026 if test "${enable_pda}" = "yes"
5027 then
5028   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5029   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5030   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5031   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5032   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5033   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5034   VLC_ADD_PLUGINS([pda])
5035   if test "${SYS}" != "mingw32"; then
5036     NEED_GTK2_MAIN=yes
5037   fi
5038 fi
5039
5040 dnl dnl
5041 dnl dnl  Gnome module
5042 dnl dnl
5043 dnl AC_ARG_ENABLE(gnome,
5044 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5045 dnl   [if test "${enable_gnome}" = "yes"; then
5046 dnl     # look for gnome-config
5047 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5048 dnl     if test -x ${GNOME_CONFIG}
5049 dnl     then
5050 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5051 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5052 dnl     fi
5053 dnl     # now look for the gnome.h header
5054 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5055 dnl     AC_CHECK_HEADERS(gnome.h, [
5056 dnl       VLC_ADD_PLUGINS([gnome])
5057 dnl       NEED_GTK_MAIN=yes
5058 dnl       NEED_GNOME_MAIN=yes
5059 dnl       ALIASES="${ALIASES} gnome-vlc"
5060 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5061 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5062 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5063 dnl         AC_MSG_RESULT(yes)
5064 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5065 dnl                   Define if <gnome.h> defines strndup.)],[
5066 dnl         AC_MSG_RESULT(no)])
5067 dnl      ],[
5068 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5069 dnl developement tools or remove the --enable-gnome option])
5070 dnl      ])
5071 dnl     CPPFLAGS="${CPPFLAGS_save}"
5072 dnl   fi])
5073
5074 dnl
5075 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5076 dnl
5077 dnl AC_ARG_ENABLE(gnome2,
5078 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5079 dnl if test "${enable_gnome2}" = "yes"
5080 dnl then
5081 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5082 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5083 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5084 dnl   VLC_ADD_PLUGINS([gnome2])
5085 dnl   if test "${SYS}" != "mingw32"; then
5086 dnl     NEED_GNOME2_MAIN=yes
5087 dnl   fi
5088 dnl fi
5089
5090 dnl
5091 dnl  wxWidgets module
5092 dnl
5093 AC_ARG_ENABLE(wxwidgets,
5094   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5095
5096 if test "${enable_wxwidgets}" = "yes"
5097 then
5098   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5099   WXWIDGETS_PATH="${PATH}"
5100   AC_ARG_WITH(wx-config-path,
5101     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5102     [ if test "${with_wx_config_path}" != "no"
5103       then
5104         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5105       fi ])
5106   WXWIDGETS_NAME="wx-config"
5107   AC_ARG_WITH(wx-config,
5108     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5109     [ if test "${with_wx_config}" != "no"
5110       then
5111         WXWIDGETS_NAME="${with_wx_config}"
5112       fi ])
5113   # look for wx-config
5114   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5115   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5116   then
5117     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5118     then
5119       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5120     fi
5121     AC_LANG_PUSH(C++)
5122     # Turn this error:
5123     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5124     # into a warning. However better would be to fix playlist.cpp
5125     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5126         [ac_cv_cxx_fpermissive],
5127         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5128          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5129                         ac_cv_cxx_fpermissive=no)])
5130     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5131       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5132     fi
5133     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5134     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5135     # check if we must link against gtk2 libs
5136     # if __WXGTK20__ && __WXGTK__ are defined
5137     # for modules/gui/wxwidgets/video.cpp
5138     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5139 #include <wx/wx.h>
5140 #ifdef __WXGTK20__
5141 #error ok, we need to link against gtk2
5142 #endif
5143         ])],[WXGTK=no],[WXGTK=yes])
5144     if test "$WXGTK" = "yes"; then
5145       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5146     fi
5147     if ${WX_CONFIG} --unicode
5148     then 
5149       # wxwidgets should provide the following flags but does not
5150       # the following is required to compile for win32
5151       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5152     else
5153       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5154     fi
5155     if test "$have_libcdio" = "yes"
5156     then 
5157       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5158       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5159     else 
5160       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5161     fi
5162
5163     if test "$have_libvcdinfo" = "yes"
5164     then 
5165       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5166       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5167     else 
5168       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5169     fi
5170
5171     # now look for the wxprec.h header
5172     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5173     ac_cv_wx_headers=yes
5174     AC_CHECK_HEADERS(wx/wxprec.h, , [
5175       ac_cv_wx_headers=no
5176       echo "Cannot find wxWidgets development headers."
5177     ])
5178     if test "${ac_cv_wx_headers}" = "yes"
5179     then
5180       VLC_ADD_PLUGINS([wxwidgets])
5181       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5182       ALIASES="${ALIASES} wxvlc"
5183     fi
5184     CPPFLAGS="${CPPFLAGS_save}"
5185     AC_LANG_POP(C++)
5186   fi
5187   dnl WxWidgets plugin will yield incorrect code without this
5188   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5189 fi
5190
5191 dnl
5192 dnl QT 4
5193 dnl
5194 enableqt4=false
5195 AC_ARG_ENABLE(qt4,
5196   [  --enable-qt4            QT 4 support (default enabled) ])
5197 AS_IF([test "${enable_qt4}" != "no" &&
5198   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5199   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5200     [ VLC_ADD_PLUGINS([qt4])
5201       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5202       ALIASES="${ALIASES} qvlc"
5203       enableqt4=true
5204       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5205           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5206       else
5207           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5208       fi
5209       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5210       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5211       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5212       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5213       ],
5214       AS_IF([test "${enable_qt4}" = "yes"],[
5215     AC_MSG_ERROR(QT4 library not found)
5216       ],[
5217     AC_MSG_WARN(QT4 library not found)
5218       ])
5219     )
5220 ])
5221 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5222
5223 dnl
5224 dnl  WinCE GUI module
5225 dnl
5226 if test "${SYS}" = "mingwce"; then
5227   VLC_ADD_BUILTINS([wince])
5228   VLC_ADD_CXXFLAGS([wince],[])
5229   VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5230   dnl Gross hack
5231   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5232 elif test "${SYS}" = "mingw32"; then
5233   VLC_ADD_CXXFLAGS([wince],[])
5234   VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5235   dnl Gross hack
5236   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5237 fi
5238
5239 dnl
5240 dnl Simple test for skins2 dependency
5241 dnl
5242 if test "${enable_skins2}" != "no"
5243 then
5244   if test "${WX_CONFIG}" = "no"
5245   then
5246     AC_MSG_ERROR([The skins2 module depends on the wxWidgets 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 wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
5247   fi
5248 fi
5249
5250 dnl dnl
5251 dnl dnl  Qt module
5252 dnl dnl
5253 dnl AC_ARG_ENABLE(qt,
5254 dnl   [  --enable-qt             Qt interface support (default disabled)],
5255 dnl   [if test "${enable_qt}" = "yes"; then
5256 dnl      VLC_ADD_PLUGINS([qt])
5257 dnl      ALIASES="${ALIASES} qvlc"
5258 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5259 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5260 dnl      AC_CHECK_LIB(qt-mt,main,[
5261 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5262 dnl      ],[
5263 dnl        AC_CHECK_LIB(qt,main,[
5264 dnl          VLC_ADD_LIBS([qt],[-lqt])
5265 dnl        ])
5266 dnl      ])
5267 dnl      LDFLAGS="${LDFLAGS_save}"
5268 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5269 dnl      if test -x ${QTDIR}/bin/moc
5270 dnl      then
5271 dnl        MOC=${QTDIR}/bin/moc
5272 dnl      else
5273 dnl        MOC=moc
5274 dnl      fi
5275 dnl    fi])
5276 dnl 
5277 dnl dnl
5278 dnl dnl  KDE module
5279 dnl dnl
5280 dnl AC_ARG_ENABLE(kde,
5281 dnl   [  --enable-kde            KDE interface support (default disabled)],
5282 dnl   [if test "${enable_kde}" = "yes"; then
5283 dnl      VLC_ADD_PLUGINS([kde])
5284 dnl      ALIASES="${ALIASES} kvlc"
5285 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5286 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5287 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5288 dnl      AC_CHECK_LIB(kfile,main,[
5289 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5290 dnl      ])
5291 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5292 dnl      AC_CHECK_LIB(kdeui,main,[
5293 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5294 dnl      ])
5295 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5296 dnl      AC_CHECK_LIB(kio,main,[
5297 dnl        VLC_ADD_LIBS([kde],[-lkio])
5298 dnl      ])
5299 dnl      LDFLAGS="${LDFLAGS_save}"
5300 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5301 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5302 dnl      if test -x ${QTDIR}/bin/moc
5303 dnl      then
5304 dnl        MOC=${QTDIR}/bin/moc
5305 dnl      else
5306 dnl        MOC=moc
5307 dnl      fi
5308 dnl    fi])
5309
5310 dnl
5311 dnl  Opie QT embedded module
5312 dnl
5313 AC_ARG_ENABLE(opie,
5314   [  --enable-opie           Qt embedded interface support (default disabled)],
5315   [if test "${enable_opie}" = "yes"; then
5316      AC_ARG_WITH(qte,
5317      [    --with-qte=PATH       Qt Embedded headers and libraries])
5318      if test "${with_qte}" != "no" -a -n "${with_qte}"
5319      then
5320        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5321        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])
5322      else
5323        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5324        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5325      fi
5326      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5327      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5328        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5329      ] )
5330      CPPFLAGS="${CPPFLAGS_save}"
5331
5332      VLC_ADD_PLUGINS([opie])
5333      NEED_QTE_MAIN=yes
5334      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5335      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5336      if test "${with_qte}" != "no" -a -n "${with_qte}"
5337      then
5338        MOC=${with_qte}/bin/moc
5339      else
5340        MOC=${QTDIR}/bin/moc
5341      fi
5342    fi])
5343
5344 dnl
5345 dnl  MacOS X video output/gui modules
5346 dnl
5347 AC_ARG_ENABLE(macosx,
5348   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5349 if test "x${enable_macosx}" = "xyes"
5350 then
5351 #  VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5352   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5353   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5354   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5355   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5356   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5357   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5358   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5359   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5360   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5361   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5362
5363 #  VLC_ADD_PLUGINS([access_eyetv])
5364   VLC_ADD_BUILTINS([macosx minimal_macosx])
5365  
5366   ORIGCFLAGS=$CFLAGS
5367   CFLAGS="$CFLAGS -x objective-c"
5368   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5369   CFLAGS=$ORIGCFLAGS
5370 fi
5371
5372 dnl
5373 dnl  QNX RTOS module
5374 dnl
5375 AC_ARG_ENABLE(qnx,
5376   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5377     if test "${enable_qnx}" != "no"
5378     then
5379       AC_CHECK_HEADERS(Ph.h, [
5380         VLC_ADD_PLUGINS([qnx])
5381         VLC_ADD_LIBS([qnx],[-lasound -lph])
5382       ])
5383     fi
5384
5385 dnl
5386 dnl  ncurses module
5387 dnl
5388 AC_ARG_ENABLE(ncurses,
5389   [  --disable-ncurses       ncurses interface support (default enabled)],
5390   [if test "${enable_ncurses}" != "no"; then
5391     AC_CHECK_HEADER(ncurses.h,
5392       [AC_CHECK_LIB(ncursesw, mvprintw,
5393         [VLC_ADD_PLUGINS([ncurses])
5394         VLC_ADD_LIBS([ncurses],[-lncursesw])
5395         ALIASES="${ALIASES} nvlc"
5396         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5397         ],
5398         [AC_CHECK_LIB( ncurses, mvprintw,
5399           [VLC_ADD_PLUGINS([ncurses])
5400           ALIASES="${ALIASES} nvlc"
5401           VLC_ADD_LIBS([ncurses],[-lncurses])],
5402           [AS_IF([test "x${enable_ncurses}" != "x"], [
5403             AC_MSG_ERROR([libncurses not found])])]
5404         )]
5405       )]
5406     )
5407   fi]
5408 )
5409
5410 dnl
5411 dnl  XOSD plugin
5412 dnl
5413 AC_ARG_ENABLE(xosd,
5414   [  --enable-xosd           xosd interface support (default disabled)])
5415 if test "${enable_xosd}" = "yes"
5416 then
5417   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5418   AC_CHECK_LIB(xosd,xosd_set_offset,
5419       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5420     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5421         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5422       AC_TRY_COMPILE([#include <xosd.h>],
5423          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5424           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5425   if test "${have_xosd}" = "true"
5426   then
5427     VLC_ADD_PLUGINS([xosd])
5428     VLC_ADD_LIBS([xosd],[-lxosd])
5429   fi
5430 fi
5431
5432 dnl
5433 dnl Framebuffer (overlay) plugin
5434 dnl
5435 AC_ARG_ENABLE(fbosd,
5436   [  --enable-fbosd          fbosd interface support (default disabled)])
5437 if test "${enable_fbosd}" = "yes"
5438 then
5439   AC_CHECK_HEADERS(linux/fb.h, [
5440     VLC_ADD_PLUGINS([fbosd])
5441  ])
5442 fi
5443
5444 dnl
5445 dnl Visualisation plugin
5446 dnl
5447 AC_ARG_ENABLE(visual,
5448   [  --enable-visual         visualisation plugin (default enabled)])
5449 if test "${enable_visual}" != "no"
5450 then
5451     VLC_ADD_PLUGINS([visual])
5452 fi
5453
5454 dnl
5455 dnl OpenGL visualisation plugin
5456 dnl
5457 AC_ARG_ENABLE(galaktos,
5458   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5459 if test "${enable_galaktos}" = "yes"
5460 then
5461   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5462     VLC_ADD_PLUGINS([galaktos])
5463     if test "${SYS}" != "mingw32"; then
5464       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5465     else
5466       VLC_ADD_LIBS([galaktos],[-lopengl32])
5467     fi
5468   ])
5469 fi
5470
5471 dnl
5472 dnl  goom visualization plugin
5473 dnl
5474 AC_ARG_ENABLE(goom,
5475 [  --enable-goom           goom visualisation plugin (default disabled)])
5476 if test "${enable_goom}" = "yes"
5477 then
5478   AC_ARG_WITH(goom-tree,
5479     [    --with-goom-tree=PATH goom tree for static linking (required)])
5480
5481   dnl
5482   dnl test for --with-goom-tree
5483   dnl
5484   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5485     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5486     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5487     if test -z "${real_goom_tree}"; then
5488       dnl  The given directory can't be found
5489       AC_MSG_RESULT(no)
5490       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5491     fi
5492     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5493       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5494       VLC_ADD_BUILTINS([goom])
5495       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5496       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5497     else
5498       dnl  The given libgoom2 wasn't built, try to look for the old goom
5499       AC_MSG_RESULT(no)
5500       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5501       if test -f "${real_goom_tree}/libgoom.a"; then
5502         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5503         VLC_ADD_BUILTINS([goom])
5504         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5505         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5506       else
5507         dnl  The given libgoom wasn't built
5508         AC_MSG_RESULT(no)
5509         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5510       fi
5511     fi
5512   else
5513     AC_CHECK_HEADERS(goom/goom.h, [
5514       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5515       AC_CHECK_LIB(goom2, goom_init, [
5516         VLC_ADD_PLUGINS([goom])
5517         VLC_ADD_LIBS([goom],[-lgoom2])
5518       ],[
5519         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5520       ])
5521       LDFLAGS="${LDFLAGS_save}"
5522     ])
5523   fi
5524 fi
5525
5526 dnl
5527 dnl  AtmoLight (homebrew AmbiLight)
5528 dnl
5529 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5530    AC_ARG_ENABLE(atmo,
5531 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5532    if test "${enable_atmo}" != "no"; then
5533       AC_LANG_PUSH(C++)
5534       VLC_ADD_PLUGINS([atmo])
5535       AC_LANG_POP(C++)
5536    fi
5537 fi
5538
5539 dnl
5540 dnl  Bonjour services discovery
5541 dnl
5542 AC_ARG_ENABLE(bonjour,
5543   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5544 if test "${enable_bonjour}" != "no"
5545 then
5546   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5547     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5548        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5549       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5550       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5551       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5552       VLC_ADD_PLUGINS([bonjour]) ],
5553     [AC_MSG_WARN(avahi-client library not found)])
5554 fi
5555
5556 dnl
5557 dnl  Lirc plugin
5558 dnl
5559 AC_ARG_ENABLE(lirc,
5560   [  --enable-lirc           lirc support (default disabled)])
5561 if test "${enable_lirc}" = "yes"
5562 then
5563   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5564   if test "${have_lirc}" = "true"
5565   then
5566     VLC_ADD_PLUGINS([lirc])
5567     VLC_ADD_LIBS([lirc],[-llirc_client])
5568   fi
5569 fi
5570
5571
5572 AC_ARG_WITH(,[Misc options:])
5573
5574 dnl
5575 dnl libgcrypt
5576 dnl
5577 AC_ARG_ENABLE(libgcrypt,
5578   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5579
5580 GCRYPT_PATH="${PATH}"
5581 AC_ARG_WITH(libgcrypt-config-path,
5582 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5583    [ if test "${with_libgcrypt_config_path}" != "no"
5584      then
5585        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5586      fi ])
5587
5588 if test "${enable_libgcrypt}" != "no"
5589 then
5590   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5591   dnl it and looks for libgcrypt headers in the wrong place.
5592   if test "${host_cpu}" = "${build_cpu}"
5593   then
5594     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5595   else
5596     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5597   fi
5598 fi
5599 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5600 AS_IF([test "${have_libgcrypt}" = "yes"],[
5601         # look for libgcrypt-config
5602         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5603         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5604         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5605 ])
5606
5607 dnl
5608 dnl TLS/SSL
5609 dnl
5610 AC_ARG_ENABLE(gnutls,
5611   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5612
5613 AS_IF([test "${enable_gnutls}" != "no"], [
5614   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5615     VLC_ADD_PLUGINS([gnutls])
5616     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5617     AS_IF([test "${SYS}" = "mingw32"], [
5618       dnl pkg-config --libs gnutls omits these
5619       VLC_ADD_LIBS([gnutls], [-lz])
5620       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5621     ])
5622     AS_IF([test "${have_libgcrypt}" = "yes"],[
5623       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5624       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5625     ], [-lgpg-error])
5626     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5627   ], [
5628     AS_IF([test "${enable_gnutls}" = "yes"], [
5629       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5630     ])
5631   ])
5632 ])
5633
5634 dnl
5635 dnl update checking system
5636 dnl
5637 AC_ARG_ENABLE(update-check,
5638   [  --enable-update-check   update checking system (default disabled)])
5639 if test "${enable_update_check}" = "yes"
5640 then
5641   if test "${have_libgcrypt}" != "yes"
5642   then
5643     AC_MSG_ERROR([libgcrypt is required for update checking system])
5644   fi
5645   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5646   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5647   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5648 fi
5649
5650 dnl
5651 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5652 dnl
5653 dnl  We give the user the opportunity to specify
5654 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5655 dnl
5656 AC_ARG_WITH(words,
5657   [    --with-words=endianness set endianness (big or little)])
5658   case "${with_words}" in
5659     big)
5660       ac_cv_c_bigendian=yes
5661       ;;
5662     little)
5663       ac_cv_c_bigendian=no
5664       ;;
5665     *)
5666       dnl  Try to guess endianness by matching patterns on a compiled
5667       dnl  binary, by looking for an ASCII or EBCDIC string
5668       AC_CACHE_CHECK([whether the byte order is big-endian],
5669         [ac_cv_c_bigendian],
5670         [ac_cv_c_bigendian="unknown"
5671         [cat >conftest.c <<EOF
5672         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5673         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5674         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5675         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5676         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5677         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5678         int main(void) { _a(); _e(); return 0; }
5679 EOF
5680         ]
5681         if test -f conftest.c
5682         then
5683           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5684               && test -f conftest.o
5685           then
5686             if test "`strings conftest.o | grep BIGenDianSyS`"
5687             then
5688               ac_cv_c_bigendian="yes"
5689             fi
5690             if test "`strings conftest.o | grep LiTTleEnDian`"
5691             then
5692               ac_cv_c_bigendian="no"
5693             fi
5694           fi
5695         fi
5696       ])
5697       if test "${ac_cv_c_bigendian}" = "unknown"
5698       then
5699         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5700       fi
5701       ;;
5702   esac
5703 dnl  Now we know what to use for endianness, just put it in the header
5704 if test "${ac_cv_c_bigendian}" = "yes"
5705 then
5706   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5707 fi
5708
5709 dnl
5710 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5711 dnl
5712 loader=false
5713 AC_ARG_ENABLE(loader,
5714   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5715 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5716 AS_IF([test "${enable_loader}" = "yes"],
5717   [ VLC_ADD_PLUGINS([dmo])
5718     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5719     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5720     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5721     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5722     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5723     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5724   ])
5725
5726 dnl
5727 dnl  Microsoft ActiveX support
5728 dnl
5729 activex=false
5730 AC_ARG_ENABLE(activex,
5731   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5732 AC_ARG_WITH(wine-sdk-path,
5733   [    --with-wine-sdk-path=PATH path to wine sdk])
5734 if test "${enable_activex}" != "no"
5735 then
5736   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5737   then
5738     AC_CHECK_PROGS(MIDL, [midl], no)
5739     if test "${with_wine_sdk_path}" != ""
5740     then
5741        WINE_SDK_PATH=${with_wine_sdk_path}
5742        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5743     else
5744        WIDL=no
5745     fi
5746     AC_LANG_PUSH(C++)
5747     AC_CHECK_HEADERS(ole2.h, 
5748       [AC_CHECK_HEADERS(olectl.h,
5749         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5750           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5751           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5752           AC_CHECK_HEADERS(objsafe.h,
5753             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5754             [
5755              #if HAVE_OLE2_H
5756              #   include <ole2.h>
5757              #endif
5758              ]
5759           )
5760           activex=:
5761           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5762         ],
5763         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5764       )],
5765       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5766     )
5767     AC_LANG_POP(C++)
5768   fi
5769 fi
5770 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5771 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5772 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5773 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5774 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5775
5776 dnl
5777 dnl  Mozilla plugin
5778 dnl
5779 mozilla=false
5780 AC_ARG_ENABLE(mozilla,
5781   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5782 AC_ARG_WITH(mozilla-sdk-path,
5783   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5784 AC_LANG_PUSH(C++)
5785 if test "${enable_mozilla}" = "yes" 
5786 then
5787   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5788   need_xpcom_libs=false
5789
5790   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5791   then
5792     dnl New firefox-1.5 SDK api
5793     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5794       [
5795         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5796           [],
5797           [
5798             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5799               [],
5800               [
5801                 PKG_CHECK_MODULES([NSPR], [nspr],
5802                   [],
5803                   [
5804                     AC_MSG_ERROR([Please install the nspr development tools.])
5805                   ]
5806                 )
5807               ]
5808             )
5809           ])
5810         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5811         MOZILLA_REQUIRED_HEADERS=1
5812         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5813         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5814         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5815           [#if HAVE_NPAPI_H
5816            # include <npapi.h>
5817            #endif
5818           ])
5819         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5820             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5821         fi
5822         MOZILLA_REQUIRED_HEADERS=
5823         mozilla=:
5824         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5825         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5826             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5827         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5828             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5829         else
5830             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5831         fi
5832         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5833             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5834             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5835         fi
5836         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5837         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5838         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5839         VLC_ADD_PLUGINS([mozilla])
5840         MOZILLA_CONFIG=
5841         CPPFLAGS="${CPPFLAGS_save}"
5842       ],
5843       [
5844         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5845         if test "${MOZILLA_CONFIG}" = "no"
5846         then
5847           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5848           if test "${SEAMONKEY_CONFIG}" = "no"
5849           then
5850             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5851             if test "${XULRUNNER_CONFIG}" = "no"
5852             then
5853               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5854             else
5855               have_xul=true
5856               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5857             fi
5858           else
5859             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5860           fi
5861         fi
5862       ]
5863     )
5864     if test ! -z "${MOZILLA_CONFIG}"
5865     then
5866       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5867         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5868         AC_CHECK_LIB(Xt,XtStrings,
5869          [
5870            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5871            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5872          ],
5873          [],
5874          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5875         ])
5876         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5877         LDFLAGS="${LDFLAGS_save}"
5878       fi
5879
5880       mozilla=:
5881       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5882       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5883       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5884       if ${need_xpcom_libs}; then
5885          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5886       else
5887          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5888       fi
5889       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5890       MOZILLA_REQUIRED_HEADERS=1
5891       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5892       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5893       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5894         [#if HAVE_NPAPI_H
5895          # include <npapi.h>
5896          #endif
5897         ])
5898       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5899       then
5900         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5901       fi
5902       MOZILLA_REQUIRED_HEADERS=
5903       CPPFLAGS="${CPPFLAGS_save}"
5904       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5905     fi
5906     dnl End of moz_sdk = ""
5907   else
5908     dnl special case for mingw32
5909     if test "${SYS}" = "mingw32"
5910     then
5911       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5912       dnl latest gecko sdk does not have an xpcom directory
5913       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5914           mozilla_sdk_xpcom="/xpcom"
5915       fi
5916     fi
5917
5918     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5919     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5920     MOZILLA_REQUIRED_HEADERS=1
5921     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5922     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5923     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5924         [#if HAVE_NPAPI_H
5925           #include <npapi.h>
5926           #endif
5927         ])
5928     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5929     then
5930         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5931     fi
5932     MOZILLA_REQUIRED_HEADERS=
5933     mozilla=:
5934     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5935     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])
5936     if ${need_xpcom_libs}; then
5937        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])
5938       if test "${SYS}" = "mingw32"; then
5939         dnl latest gecko sdk does not have embedstring
5940         if test -d "${real_mozilla_sdk}/embedstring/bin"
5941         then
5942           VLC_ADD_LIBS([mozilla],[-lembedstring])
5943         fi
5944       fi
5945     fi
5946     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5947
5948     if test -n "${CYGPATH}"; then
5949       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5950     fi
5951     CPPFLAGS="${CPPFLAGS_save}"
5952   fi
5953 fi
5954 AC_LANG_POP(C++)
5955 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5956
5957 dnl Tests for Osso and Xsp
5958 if test "${enable_x11}" != "no" &&
5959   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5960    test "${enable_x11}" = "yes"); then
5961    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5962       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5963           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5964           VLC_ADD_LIBS([x11],[-losso])
5965       ])
5966    ])
5967    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5968       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5969       VLC_ADD_LIBS([x11],[-lXsp])
5970    ])
5971 fi
5972
5973 dnl
5974 dnl  Mediacontrol Python bindings
5975 dnl
5976 AC_ARG_ENABLE(python-bindings,
5977   [  --enable-python-bindings Enable Python bindings (default disabled)])
5978 dnl TODO: look for python dev headers
5979 AS_IF([test "${enable_python_bindings}" = "yes"],
5980       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5981      ) 
5982
5983 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5984
5985 dnl
5986 dnl  Java bindings
5987 dnl
5988 AC_ARG_ENABLE(java-bindings,
5989   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5990 if test "${enable_java_bindings}" = "yes"
5991 then
5992   AS_IF([test "x${JAVA_HOME}" == "x"],
5993         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5994   AC_PROG_JAVAC
5995   AC_PROG_JAVA
5996   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5997   if test "${JAVAC}" == "javac${EXEEXT}"
5998   then
5999     JAVAC="javac${EXEEXT} -cp ./ "
6000   fi
6001 fi
6002 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
6003
6004 dnl
6005 dnl  test plugins
6006 dnl
6007 AC_ARG_ENABLE(testsuite,
6008   [  --enable-testsuite      build test modules (default disabled)])
6009 if test "${enable_testsuite}" = "yes"
6010 then
6011   TESTS="test1 test2 test3 test4"
6012
6013   dnl  we define those so that bootstrap sets the right linker
6014   VLC_ADD_CXXFLAGS([test2],[])
6015   VLC_ADD_OBJCFLAGS([test3],[])
6016   dnl  this one is needed until automake knows what to do
6017   VLC_ADD_LIBS([test3],[-lobjc])
6018
6019   VLC_ADD_PLUGINS([${TESTS}])
6020 fi
6021
6022 dnl
6023 dnl Microsoft Layer for Unicode for WIN9x/ME
6024 dnl
6025 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
6026 then
6027     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
6028         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
6029     ])
6030 fi
6031
6032 dnl
6033 dnl  gtk_main plugin
6034 dnl
6035 if test "${NEED_GTK_MAIN}" != "no"
6036 then
6037     VLC_ADD_PLUGINS([gtk_main])
6038     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6039     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6040 fi
6041
6042 if test "${NEED_GNOME_MAIN}" != "no"
6043 then
6044     VLC_ADD_PLUGINS([gnome_main])
6045     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6046     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6047 fi
6048
6049 if test "${NEED_GTK2_MAIN}" != "no"
6050 then
6051     VLC_ADD_PLUGINS([gtk2_main])
6052     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6053     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6054     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6055     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6056 fi
6057
6058 if test "${NEED_GNOME2_MAIN}" != "no"
6059 then
6060     VLC_ADD_PLUGINS([gnome2_main])
6061     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6062     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6063 fi
6064
6065 dnl
6066 dnl  qte_main plugin
6067 dnl
6068 if test "${NEED_QTE_MAIN}" != "no"
6069 then
6070     VLC_ADD_PLUGINS([qte_main])
6071     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6072     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6073     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6074 fi
6075
6076
6077 dnl
6078 dnl  Plugin and builtin checks
6079 dnl
6080 plugin_support=yes
6081
6082 dnl Automagically disable plugins if there is no system support for
6083 dnl dynamically loadable files (.so, .dll, .dylib).
6084 dnl don't forget vlc-win32 still can load .dll as plugins
6085 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6086   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6087   plugin_support=no
6088 ])
6089
6090 AS_IF([test "${enable_shared}" = "no"], [
6091   plugin_support=no
6092 ])
6093
6094 AS_IF([test "${plugin_support}" != "no"], [
6095   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6096 ])
6097
6098 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6099
6100 dnl Temporary(?) hack for plugins/builtins transition
6101 VLC_ADD_PLUGINS([${BUILTINS}])
6102 BUILTINS=""
6103
6104 dnl
6105 dnl Pic and shared libvlc stuff
6106 dnl
6107 AS_IF([test "${SYS}" = "mingw32"], [
6108   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6109   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6110 ])
6111
6112 dnl
6113 dnl  Stuff used by the program
6114 dnl
6115 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6116 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6117 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6118 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6119 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6120 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6121 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6122 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6123 AC_SUBST(VERSION_MAJOR)
6124 AC_SUBST(VERSION_MINOR)
6125 AC_SUBST(VERSION_REVISION)
6126 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6127 if test "${build_os}" = "cygwin"
6128 then
6129     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6130 else
6131     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6132 fi
6133 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6134 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6135
6136 dnl
6137 dnl  Handle substvars that use $(top_srcdir)
6138 dnl
6139 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6140 AC_SUBST(VLC_CONFIG)
6141 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6142
6143 dnl
6144 dnl  Restore *FLAGS
6145 dnl
6146 VLC_RESTORE_FLAGS
6147
6148 dnl
6149 dnl  Create the vlc-config script
6150 dnl
6151 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6152
6153 dnl
6154 dnl  Configuration is finished
6155 dnl
6156 AC_SUBST(SYS)
6157 AC_SUBST(ARCH)
6158 AC_SUBST(ALIASES)
6159 AC_SUBST(ASM)
6160 AC_SUBST(MOC)
6161 AC_SUBST(RCC)
6162 AC_SUBST(UIC)
6163 AC_SUBST(WINDRES)
6164 AC_SUBST(MOZILLA_SDK_PATH)
6165 AC_SUBST(WINE_SDK_PATH)
6166 AC_SUBST(LIBEXT)
6167 AC_SUBST(AM_CPPFLAGS)
6168 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6169 AC_SUBST(FILE_LIBVLC_DLL)
6170 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6171
6172 dnl Create vlc-config.in
6173 VLC_OUTPUT_VLC_CONFIG_IN
6174
6175 AC_CONFIG_FILES([
6176   extras/package/win32/vlc.win32.nsi
6177   Makefile
6178   projects/activex/Makefile
6179   projects/activex/axvlc.inf
6180   bindings/Makefile
6181   bindings/java/Makefile
6182   bindings/java/src/Makefile
6183   bindings/python/Makefile
6184   doc/Makefile
6185   extras/package/ipkg/Makefile
6186   libs/loader/Makefile
6187   libs/srtp/Makefile
6188   modules/Makefile
6189   projects/mozilla/Makefile
6190   m4/Makefile
6191   po/Makefile.in
6192   share/Makefile
6193   src/Makefile
6194 ])
6195
6196 AC_CONFIG_FILES([
6197   modules/access/Makefile
6198   modules/access/bda/Makefile
6199   modules/access/dshow/Makefile
6200   modules/access/dvb/Makefile
6201   modules/access/mms/Makefile
6202   modules/access/cdda/Makefile
6203   modules/access/rtsp/Makefile
6204   modules/access/v4l2/Makefile
6205   modules/access/vcd/Makefile
6206   modules/access/vcdx/Makefile
6207   modules/access/screen/Makefile
6208   modules/access_filter/Makefile
6209   modules/access_output/Makefile
6210   modules/audio_filter/Makefile
6211   modules/audio_filter/channel_mixer/Makefile
6212   modules/audio_filter/converter/Makefile
6213   modules/audio_filter/resampler/Makefile
6214   modules/audio_filter/spatializer/Makefile
6215   modules/audio_mixer/Makefile
6216   modules/audio_output/Makefile
6217   modules/codec/Makefile
6218   modules/codec/cmml/Makefile
6219   modules/codec/dmo/Makefile
6220   modules/codec/ffmpeg/Makefile
6221   modules/codec/subtitles/Makefile
6222   modules/codec/spudec/Makefile
6223   modules/codec/xvmc/Makefile
6224   modules/control/Makefile
6225   modules/control/http/Makefile
6226   modules/demux/Makefile
6227   modules/demux/asf/Makefile
6228   modules/demux/avi/Makefile
6229   modules/demux/mp4/Makefile
6230   modules/demux/mpeg/Makefile
6231   modules/demux/playlist/Makefile
6232   modules/gui/Makefile
6233   modules/gui/beos/Makefile
6234   modules/gui/pda/Makefile
6235   modules/gui/macosx/Makefile
6236   modules/gui/minimal_macosx/Makefile
6237   modules/gui/qnx/Makefile
6238   modules/gui/qt4/Makefile
6239   modules/gui/skins2/Makefile
6240   modules/gui/wxwidgets/Makefile
6241   modules/gui/wince/Makefile
6242   modules/meta_engine/Makefile
6243   modules/misc/Makefile
6244   modules/misc/dummy/Makefile
6245   modules/misc/lua/Makefile
6246   modules/misc/memcpy/Makefile
6247   modules/misc/notify/Makefile
6248   modules/misc/testsuite/Makefile
6249   modules/misc/playlist/Makefile
6250   modules/misc/osd/Makefile
6251   modules/misc/xml/Makefile
6252   modules/misc/probe/Makefile
6253   modules/mux/Makefile
6254   modules/mux/mpeg/Makefile
6255   modules/mux/rtp/Makefile
6256   modules/packetizer/Makefile
6257   modules/services_discovery/Makefile
6258   modules/stream_out/Makefile
6259   modules/stream_out/transrate/Makefile
6260   modules/video_chroma/Makefile
6261   modules/video_filter/Makefile
6262   modules/video_filter/atmo/Makefile
6263   modules/video_output/Makefile
6264   modules/video_output/msw/Makefile
6265   modules/video_output/qte/Makefile
6266   modules/video_output/x11/Makefile
6267   modules/visualization/Makefile
6268   modules/visualization/visual/Makefile
6269   modules/visualization/galaktos/Makefile
6270 ])
6271
6272 dnl Generate makefiles
6273 AC_OUTPUT
6274
6275 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6276 # not provided with the source
6277 ${SHELL} ./config.status --file=vlc-config
6278 chmod 0755 vlc-config
6279
6280 dnl echo "Enabled builtin modules :"
6281 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6282
6283 dnl echo "Enabled plugin modules :"
6284 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6285
6286 dnl Shortcut to nice compile message
6287 rm -f compile
6288 echo '#! /bin/sh' >compile
6289
6290 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6291 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >> compile
6292 chmod a+x compile
6293
6294 printf "
6295 vlc configuration
6296 --------------------
6297 vlc version           : ${VERSION}
6298 system                : ${SYS}
6299 architecture          : ${ARCH}
6300 build flavour         : "
6301 test "${enable_debug}" = "yes" && printf "debug "
6302 test "${enable_cprof}" = "yes" && printf "cprof "
6303 test "${enable_gprof}" = "yes" && printf "gprof "
6304 test "${enable_optimizations}" = "yes" && printf "optim "
6305 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6306 echo "
6307 vlc aliases           :${ALIASES}
6308 plugins/bindings      :${PLUGINS_BINDINGS}
6309
6310 You can check which modules have been enabled 
6311 with \`./vlc-config --list plugin'.
6312 You can tune the compiler flags in vlc-config.
6313 To build vlc and its plugins, type \`./compile' or \`make'.
6314 "
6315 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6316    echo ""
6317    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6318    echo "         turned off."
6319    echo "         FFmpeg will be REALLY slow."
6320    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6321    echo ""
6322 fi