920d5b9889f24b911d2b0bc5eb2c0e6b7f12dc9d
[vlc.git] / 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
12 AC_PREREQ(2.59) dnl this really should be 2.59c
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
17
18 AM_INIT_AUTOMAKE([1.9 check-news dist-bzip2 no-dist-gzip -Wall])
19 AM_CONFIG_HEADER(config.h)
20
21 dnl Too many people are not aware of maintainer mode:
22 dnl If you want to use it, you definitely know what you are doing, so
23 dnl you can specify "--disable-maintainer-mode". But if you want the default
24 dnl automake behavior, you've likely never heard of maintainer mode, so we
25 dnl can't expect you to enable it manually.
26
27 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
28         [enable_maintainer_mode="yes"])
29 AM_MAINTAINER_MODE
30
31 dnl
32 dnl  Save *FLAGS
33 dnl
34 VLC_SAVE_FLAGS
35
36 dnl
37 dnl Check for tools
38 dnl
39 AC_PROG_CC_C99
40 AC_USE_SYSTEM_EXTENSIONS
41 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
42 AM_PROG_CC_C_O
43 AC_PROG_CXX
44 AC_PROG_CPP
45 AC_PROG_OBJC
46 _AM_DEPENDENCIES([OBJC])
47 AC_PROG_EGREP
48 AC_PROG_MAKE_SET
49 AC_PROG_INSTALL
50 AM_PROG_AS
51
52 dnl Find the right ranlib, even when cross-compiling
53 AC_CHECK_TOOL(RANLIB, ranlib, :)
54 AC_CHECK_TOOL(STRIP, strip, :)
55 AC_CHECK_TOOL(AR, ar, :)
56 AC_CHECK_TOOL(LD, ld, :)
57 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
58
59 dnl Check for compiler properties
60 AC_C_CONST
61 AC_C_INLINE
62 AC_C_RESTRICT
63
64 dnl
65 dnl  Check for the contrib directory
66 dnl
67 AC_ARG_WITH(contrib,
68     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
69   if test "${with_contrib}" != "no"; then 
70     AC_MSG_CHECKING([for libs in extras/contrib])
71     topdir="`dirname $0`"
72     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
73        topdir="`pwd`/$topdir"
74     fi
75    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
76       if test "${with_contrib}" = "yes"; then
77         AC_MSG_RESULT([no])
78         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
79       else
80         AC_MSG_RESULT([no])
81         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
82       fi
83      else
84   if test -d ${topdir}/extras/contrib/lib; then
85     AC_MSG_RESULT([yes])
86     export PATH=${topdir}/extras/contrib/bin:$PATH
87     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
88     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
89     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
90     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
91     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
92     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
93     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
95     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
96         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
97     else
98         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
99     fi
100     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
101     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
102
103 dnl kludge because only the debian package provides a ffmpeg-config
104     if test -z $with_ffmpeg_config_path; then 
105        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
106     fi
107     if test -z $with_live555_tree; then
108        with_live555_tree=${topdir}/extras/contrib/src/live
109     fi
110     if test -z $with_goom_tree; then
111        with_goom_tree=${topdir}/extras/contrib/src/goom
112     fi
113     if test -z $with_mozilla_sdk_path; then
114        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
115     fi
116     if test -z $with_cyberlink_tree; then
117        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
118     fi
119     if test -z $with_libmpeg2_tree; then
120        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
121     fi
122     if test -z $with_a52_tree; then
123        with_a52_tree=${topdir}/extras/contrib/src/a52dec
124     fi
125
126     if test ".`uname -s`" = ".Darwin"; then
127       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
128       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
129     elif test ".`uname -s`" = ".BeOS"; then
130       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
131       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
132     fi
133   else
134      AC_MSG_RESULT([no])
135   fi
136   fi
137 fi
138 dnl
139 dnl  Set default values
140 dnl
141 LDFLAGS_vlc="${LDFLAGS}"
142
143 dnl
144 dnl  Check the operating system
145 dnl
146 case "${host_os}" in
147   "")
148     SYS=unknown
149     ;;
150   linux*)
151     SYS=linux
152     ;;
153   bsdi*)
154     SYS=bsdi
155     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
156     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
157     ;;
158   *bsd*)
159     SYS="${host_os}"
160     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
161     case "${host_os}" in
162       freebsd*)
163         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
164         CPPFLAGS="${CPPFLAGS_save}"
165         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
166         LDFLAGS="${LDFLAGS_save}"
167         ;;
168     esac
169     ;;
170   darwin*)
171     SYS=darwin
172     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
173     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
174     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
175     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
176     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
177     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
178     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
179     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
180     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
181     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
182     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
183     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
184     AC_ARG_ENABLE(macosx-defaults,
185         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
186     if test "x${enable_macosx_defaults}" != "xno"
187     then
188         echo ""
189         echo "Building with Mac OS X defaults:"
190         enable_faad="yes"
191         echo "  Assuming --enable-faad"
192         enable_flac="yes"
193         echo "  Assuming --enable-flac"
194         enable_theora="yes"
195         echo "  Assuming --enable-theora"
196         enable_shout="yes"
197         echo "  Assuming --enable-shout"
198         enable_cddax="yes"
199         echo "  Assuming --enable-cddax"
200         enable_vcdx="yes"
201         echo "  Assuming --enable-vcdx"
202         enable_caca="yes"
203         echo "  Assuming --enable-caca"
204         enable_goom="yes"
205         echo "  Assuming --enable-goom"
206         enable_ncurses="yes"
207         echo "  Assuming --enable-ncurses"
208         enable_twolame="yes"
209         echo "  Assuming --enable-twolame"
210         enable_realrtsp="yes"
211         echo "  Assuming --enable-realrtsp"
212
213         enable_skins2="no"
214         echo "  Assuming --disable-skins2"
215         enable_x11="no"
216         echo "  Assuming --disable-x11"
217         enable_glx="no"
218         echo "  Assuming --disable-glx"
219         enable_xvideo="no"
220         echo "  Assuming --disable-xvideo"
221
222     fi
223     ;;
224   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
225     AC_CHECK_TOOL(WINDRES, windres, :)
226
227     case "${host_os}" in
228       *mingw32*)
229         SYS=mingw32
230         ;;
231       *cygwin*)
232         dnl Check if we are using the mno-cygwin mode in which case we are
233         dnl actually dealing with a mingw32 compiler.
234         AC_EGREP_CPP(yes,
235             [#ifdef WIN32
236              yes
237              #endif],
238             SYS=mingw32, SYS=cygwin)
239         ;;
240       *wince* | *mingwce* | *pe*)
241         SYS=mingwce
242         ;;
243     esac
244
245     if test "${SYS}" = "mingw32"; then
246         # add ws2_32 for closesocket, select, recv
247         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
248         VLC_ADD_LDFLAGS([vlc],[-mwindows])
249         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
250         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
251         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 flac ts audioscrobbler],[-lws2_32])
252     fi
253     if test "${SYS}" = "mingwce"; then
254         # add ws2 for closesocket, select, recv
255         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
256         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
257         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
258    fi
259     ;;
260   *nto*)
261     SYS=nto
262     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
263     ;;
264   solaris*)
265     SYS=solaris
266     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
267     # Perhaps it is useful other places as well? 
268     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
269     ;;
270   hpux*)
271     SYS=hpux
272     ;;
273   beos)
274     SYS=beos
275     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
276     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
277     VLC_ADD_CXXFLAGS([beos],[])
278     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
279     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
280     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
281     VLC_ADD_LIBS([access_file],[-lpoll])
282     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
283     dnl Check for BONE
284     if test -f /boot/beos/system/lib/libbind.so; then
285         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
286     else
287         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
288     fi
289
290     dnl Ugly check for Zeta
291     if test -f /boot/beos/system/lib/libzeta.so; then
292         VLC_ADD_LIBS([beos],[-lzeta])
293     fi
294     ;;
295   *)
296     SYS="${host_os}"
297     ;;
298 esac
299 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
300 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
301 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
302 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
303
304 dnl
305 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
306 dnl for program foo on win32
307
308 case "${build_os}" in
309     cygwin|msys)
310         ac_executable_extensions=".exe"
311         ;;
312     *)
313         ;;
314 esac
315
316 dnl 
317 dnl  Libtool
318 dnl  It's very bad, but our former custom system was worst
319 dnl  -- Courmisch
320 dnl
321
322 dnl override platform specific check for dependent libraries
323 dnl otherwise libtool linking of shared libraries will
324 dnl fail on anything other than pass_all.
325 AC_CACHE_VAL(lt_cv_deplibs_check_method,
326     [lt_cv_deplibs_check_method=pass_all])
327
328 AC_DISABLE_STATIC
329 AC_DISABLE_FAST_INSTALL
330 AC_LIBTOOL_DLOPEN
331 AC_LIBTOOL_WIN32_DLL
332 m4_undefine([AC_PROG_F77])
333 m4_defun([AC_PROG_F77],[])
334 AC_PROG_LIBTOOL
335
336 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
337 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
338
339 lt_cv_deplibs_check_method=pass_all
340
341
342 dnl
343 dnl  Check for Mac OS X SDK settings
344 dnl
345 AC_ARG_WITH(macosx-sdk,
346    [  --with-macosx-sdk       compile with the Mac OS X 10.4u SDK],[], with_macosx_sdk=no)
347 if test "${with_macosx_sdk}" != "no" ; then
348     CC="${CC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
349     CXX="${CXX} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
350     OBJC="${OBJC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
351     LD="${LD} -syslibroot /Developer/SDKs/MacOSX10.4u.sdk"
352     CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CFLAGS="${CFLAGS_save}"
353     CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CXXFLAGS="${CXXFLAGS_save}"
354     OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; OBJCFLAGS="${OBJCFLAGS_save}"
355     MACOSX_DEPLOYMENT_TARGET="10.4"
356     export MACOSX_DEPLOYMENT_TARGET
357 fi
358
359 dnl
360 dnl Gettext stuff
361 dnl
362 AM_GNU_GETTEXT_VERSION(0.16.1)
363 AM_GNU_GETTEXT
364 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
365   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
366   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
367 ], [
368   VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
369 ])
370
371 dnl
372 dnl Iconv stuff
373 dnl
374 AS_IF([test "$am_cv_func_iconv" != "yes"],
375         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
376 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
377 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
378
379 dnl Check for the need to include the mingwex lib for mingw32
380 if test "${SYS}" = "mingw32"
381 then
382     AC_CHECK_LIB(mingwex,opendir,
383         AC_CHECK_LIB(mingw32,opendir,,
384             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
385     )
386 fi
387
388 dnl Check for fnative-struct or mms-bitfields support for mingw32
389 if test "${SYS}" = "mingw32"
390 then
391     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
392         [ac_cv_c_mms_bitfields],
393         [CFLAGS="${CFLAGS_save} -mms-bitfields"
394          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
395     if test "${ac_cv_c_mms_bitfields}" != "no"; then
396         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
397         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
398     else
399         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
400             [ac_cv_c_fnative_struct],
401             [CFLAGS="${CFLAGS_save} -fnative-struct"
402              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
403         if test "${ac_cv_c_fnative_struct}" != "no"; then
404             CFLAGS_save="${CFLAGS_save} -fnative-struct";
405             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
406         fi
407     fi
408
409     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
410 fi
411
412 dnl Check for fvtable-thunks support for mingw32
413 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
414 then
415 AC_LANG_PUSH(C++)
416     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
417         [ac_cv_cxx_fvtable_thunks],
418         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
419          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
420                         ac_cv_cxx_fvtable_thunks=no)])
421     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
422         CXXFLAGS_mingw32_special="-fvtable-thunks"
423     fi
424
425     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
426 AC_LANG_POP(C++)
427 fi
428
429 dnl Plugin compilation stuff
430
431 VLC_LIBRARY_SUFFIX
432
433 VLC_SYMBOL_PREFIX
434 AC_SUBST(SYMPREF)
435
436 dnl The -DSYS_FOO flag
437 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
438
439 dnl Check for system libs needed
440 need_libc=false
441
442 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)
443
444 dnl Check for usual libc functions
445 AC_CHECK_FUNCS(strdup strndup strnlen atof)
446 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
447 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
448 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
449
450 AS_IF([test "${SYS}" = "linux"], [
451   AC_CHECK_FUNCS(tee)
452 ])
453
454 dnl Check for setlocal and langinfo
455 AC_CHECK_FUNCS(setlocale)
456 AC_CHECK_HEADERS(langinfo.h)
457 AC_CHECK_FUNCS(nl_langinfo)
458
459 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
460   [AC_TRY_LINK([#include <langinfo.h>],
461     [char* cs = nl_langinfo(CODESET);],
462     ac_cv_langinfo_codeset=yes,
463     ac_cv_langinfo_codeset=no)
464   ])
465 if test ${ac_cv_langinfo_codeset} = yes; then
466   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
467     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
468 fi
469
470 AC_CHECK_FUNCS(connect,,[
471   AC_CHECK_LIB(socket,connect,[
472     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
473     LIBS_socket="-lsocket"
474   ])
475 ])
476
477 AC_CHECK_FUNCS(send,,[
478   AC_CHECK_LIB(socket,send,[
479     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
480   ])
481 ])
482
483 AC_CHECK_FUNCS(gethostbyname,,[
484   AC_CHECK_LIB(nsl,gethostbyname,[
485     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
486   ],[
487     AC_CHECK_LIB(bind,gethostbyname,[
488       VLC_ADD_LIBS([access_mms],[-lbind])
489     ])
490   ])
491 ])
492
493 dnl Check for socklen_t
494 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
495   [AC_TRY_COMPILE(
496      [#include <sys/types.h>
497       #include <sys/socket.h>],
498      [socklen_t len = 42; return len;],
499      ac_cv_type_socklen_t=yes,
500      ac_cv_type_socklen_t=no)])
501 if test "${ac_cv_type_socklen_t}" != "no"; then
502   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
503 fi
504
505 dnl Check for struct sockaddr_storage
506 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
507 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
508 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
509   [AC_TRY_COMPILE(
510     [#include <sys/types.h>
511      #if defined( UNDER_CE )
512      # include <winsock.h>
513      #elif defined( WIN32 )
514      # include <winsock2.h>
515      #else
516      # include <sys/socket.h>
517      #endif], [struct sockaddr_storage addr;],
518      ac_cv_struct_sockaddr_storage=yes,
519      ac_cv_struct_sockaddr_storage=no)])
520 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
521   AC_DEFINE(sockaddr_storage, sockaddr)
522   AC_DEFINE(ss_family, sa_family)
523 ])
524
525 dnl getaddrinfo, getnameinfo and gai_strerror check
526 dnl  -lnsl and -lsocket are needed on Solaris;
527 dnl  we purposedly make the test fail on Windows
528 LIBS_save="${LIBS}"
529 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
530 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
531
532 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
533 dnl are
534 LIBS="${LIBS_gai}"
535 AC_CHECK_FUNCS([getnameinfo gai_strerror])
536 LIBS="${LIBS_save}"
537
538 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
539 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
540 [#include <sys/types.h>
541 #if defined( WIN32 ) || defined( UNDER_CE )
542 # if defined(UNDER_CE) && defined(sockaddr_storage)
543 #  undef sockaddr_storage
544 # endif
545 # include <winsock2.h>
546 # include <ws2tcpip.h>
547 #else
548 # include <netdb.h>
549 #endif])
550
551 dnl Check for va_copy
552 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
553   AC_TRY_LINK(
554     [#include <stdarg.h>],
555     [va_list ap1, ap2; va_copy(ap1,ap2);],
556     [ac_cv_c_va_copy="yes"],
557     [ac_cv_c_va_copy="no"]))
558 if test "${ac_cv_c_va_copy}" = "yes"; then
559   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
560 fi
561 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
562   AC_TRY_LINK(
563     [#include <stdarg.h>],
564     [va_list ap1, ap2; __va_copy(ap1,ap2);],
565     [ac_cv_c___va_copy="yes"],
566     [ac_cv_c___va_copy="no"]))
567 if test "${ac_cv_c___va_copy}" = "yes"; then
568   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
569 fi
570
571 AC_CHECK_FUNCS(inet_aton,,[
572   AC_CHECK_LIB(resolv,inet_aton,[
573     VLC_ADD_LIBS([libvlc],[-lresolv])
574   ])
575 ])
576
577 dnl Check for getopt (always use builtin one on win32)
578 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
579 need_getopt=:
580 else
581 need_getopt=false
582 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
583 [ # FreeBSD has a gnugetopt library for this:
584   AC_CHECK_LIB([gnugetopt],[getopt_long],
585     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
586      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
587     [need_getopt=:])])
588 fi
589 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
590
591 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
592 AC_TYPE_SIGNAL
593 AC_CHECK_LIB(m,cos,[
594   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
595 ])
596 AC_CHECK_LIB(m,pow,[
597   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])
598 ])
599 AC_CHECK_LIB(m,sqrt,[
600   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
601 ])
602 AC_CHECK_LIB(m,ceil,[
603   VLC_ADD_LIBS([mosaic],[-lm])
604 ])
605 AC_CHECK_LIB(m,exp,[
606   VLC_ADD_LIBS([gaussianblur],[-lm])
607 ])
608 AC_CHECK_LIB(mx,sqrtf,[
609   VLC_ADD_LIBS([x264],[-lmx])
610 ])
611 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
612
613 dnl Check for dynamic plugins
614 ac_cv_have_plugins=no
615
616 # OS X style
617 AC_CHECK_HEADERS(mach-o/dyld.h,
618   [AC_CHECK_FUNCS(NSLinkModule,
619     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
620      ac_cv_have_plugins=yes])])
621
622 # HP-UX style
623 if test "${ac_cv_have_plugins}" = "no"; then
624   AC_CHECK_HEADERS(dl.h)
625   ac_cv_my_have_shl_load=no
626   AC_CHECK_FUNC(shl_load,
627    [ac_cv_my_have_shl_load=yes,
628     AC_CHECK_LIB(dld, shl_load,
629      [ac_cv_my_have_shl_load=yes
630       VLC_ADD_LIBS([libvlc],[-ldld])])])
631   if test "${ac_cv_my_have_shl_load}" = "yes"; then
632     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
633     ac_cv_have_plugins=yes
634   fi
635 fi
636
637 # Whatever style
638 if test "${ac_cv_have_plugins}" = "no"; then
639   AC_CHECK_LIB(dld, dld_link,
640    [VLC_ADD_LIBS([libvlc],[-ldld])
641     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
642     ac_cv_have_plugins=yes])
643 fi
644
645 # Win32 style
646 if test "${ac_cv_have_plugins}" = "no"; then
647   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
648     AC_CHECK_LIB(kernel32, main,
649      [VLC_ADD_LIBS([libvlc],[-lkernel32])
650       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
651       ac_cv_have_plugins=yes])
652   fi
653 fi
654
655 # WinCE style
656 if test "${ac_cv_have_plugins}" = "no"; then
657   if test "${SYS}" = "mingwce"; then
658     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
659     ac_cv_have_plugins=yes
660   fi
661 fi
662
663 # BeOS style
664 if test "${ac_cv_have_plugins}" = "no"; then
665   AC_CHECK_HEADERS(image.h)
666   AC_CHECK_FUNCS(load_add_on,
667    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
668     ac_cv_have_plugins=yes])
669 fi
670
671 # Only test for dlopen() if the others didn't work
672 if test "${ac_cv_have_plugins}" = "no"; then
673   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
674   ac_cv_my_have_dlopen=no
675   AC_CHECK_FUNC(dlopen,
676     ac_cv_my_have_dlopen=yes,
677     AC_CHECK_LIB(dl, dlopen,
678       ac_cv_my_have_dlopen=yes
679       VLC_ADD_LIBS([libvlc],[-ldl]),
680       AC_CHECK_LIB(svld, dlopen,
681         ac_cv_my_have_dlopen=yes
682         VLC_ADD_LIBS([libvlc],[-lsvld]))))
683   if test "${ac_cv_my_have_dlopen}" = "yes"; then
684     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
685     ac_cv_have_plugins=yes
686   fi
687 fi
688
689 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
690 dnl Check for pthreads - borrowed from XMMS
691 THREAD_LIB=error
692 if test "${THREAD_LIB}" = "error"; then
693   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
694 fi
695 if test "${THREAD_LIB}" = "error"; then
696   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
697 fi
698 if test "${THREAD_LIB}" = "error"; then
699   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
700 fi
701 if test "${THREAD_LIB}" = "error"; then
702   AC_CHECK_FUNCS(pthread_mutex_lock)
703   THREAD_LIB=""
704 fi
705
706 dnl Check for cthreads under GNU/Hurd for instance
707 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
708
709 dnl
710 dnl  GNU portable threads
711 dnl
712 AC_ARG_ENABLE(pth,
713   [  --enable-pth            GNU Pth support (default disabled)],
714   [ if test "${enable_pth}" = "yes"; then
715     AC_CHECK_LIB(pth,pth_init)
716     AC_MSG_CHECKING(for pth_init in pth.h)
717     AC_EGREP_HEADER(pth_init,pth.h,[
718       AC_MSG_RESULT(yes)
719       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
720                 Define if <pth.h> defines pth_init)
721       THREAD_LIB="-lpth"
722     ],[
723       AC_MSG_RESULT(no)
724     ])
725     fi
726 ])
727
728 dnl
729 dnl  State Threads
730 dnl
731 AC_ARG_ENABLE(st,
732   [  --enable-st             State Threads (default disabled)],
733   [ if test "${enable_st}" = "yes"; then
734     AC_CHECK_LIB(st,st_init)
735     AC_MSG_CHECKING(for st_init in st.h)
736     AC_EGREP_HEADER(st_init,st.h,[
737       AC_MSG_RESULT(yes)
738       AC_DEFINE(ST_INIT_IN_ST_H, 1,
739                 Define if <st.h> defines st_init)
740       THREAD_LIB="-lst"
741     ],[
742       AC_MSG_RESULT(yes)
743     ])
744     fi
745 ])
746
747 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
748
749 dnl Don't link with rt when using GNU-pth
750 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
751   AC_CHECK_LIB(rt, clock_nanosleep, [
752     VLC_ADD_LIBS([libvlc],[-lrt])
753     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
754   ], [
755     dnl HP/UX port
756     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
757   ])
758
759   have_nanosleep=false
760   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
761     AC_CHECK_LIB(rt,nanosleep,
762       [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
763       [AC_CHECK_LIB(posix4,nanosleep,
764           [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
765     )
766   ])
767   if ${have_nanosleep}; then
768     AC_DEFINE(HAVE_NANOSLEEP, 1,
769               Define if nanosleep is available.)
770   fi
771 fi
772
773 dnl Check for misc headers
774 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
775 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
776   AC_MSG_RESULT(yes)
777   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
778             Define if <pthread.h> defines pthread_cond_t.)],[
779   AC_MSG_RESULT(no)])
780
781 AC_MSG_CHECKING(for pthread_once in pthread.h)
782 AC_EGREP_HEADER(pthread_once,pthread.h,[
783   AC_MSG_RESULT(yes)
784   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
785             Define if <pthread.h> defines pthread_once.)],[
786   AC_MSG_RESULT(no)])
787 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
788
789 AC_MSG_CHECKING(for strncasecmp in strings.h)
790 AC_EGREP_HEADER(strncasecmp,strings.h,[
791   AC_MSG_RESULT(yes)
792   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
793             Define if <strings.h> defines strncasecmp.)],[
794   AC_MSG_RESULT(no)])
795
796 dnl Check for headers
797 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)
798 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
799 AC_CHECK_HEADERS([arpa/inet.h net/if.h netinet/in.h sys/socket.h netinet/udplite.h])
800 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
801 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
802 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
803 AC_CHECK_HEADERS(syslog.h)
804 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
805
806 AC_HEADER_TIME
807
808 AC_CHECK_TYPE(ssize_t, int)
809 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
810
811 dnl Check for dirent
812 need_dirent=false
813 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
814 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
815
816 dnl Mac OS X and other OSes don't have declaration for nanosleep
817 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
818 AC_MSG_CHECKING(for nanosleep in time.h)
819 AC_EGREP_HEADER(nanosleep,time.h,[
820   AC_MSG_RESULT(yes)
821   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
822             Define if <time.h> defines nanosleep.)
823 ],[
824   AC_MSG_RESULT(no)
825 ])
826 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
827
828 dnl Make sure we have timespecs
829 AC_MSG_CHECKING(for timespec in sys/time.h)
830 AC_EGREP_HEADER(timespec,sys/time.h,[
831   AC_MSG_RESULT(yes)
832   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
833             Define if <sys/time.h> defines struct timespec.)
834 ],[
835   AC_MSG_RESULT(no)
836 ])
837
838 dnl Check for threads library
839 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
840 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
841 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
842
843 dnl Find where are the X headers and libraries
844 AC_PATH_XTRA()
845
846 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.
847
848 PKG_PROG_PKG_CONFIG()
849
850 dnl Check for hal
851 AC_ARG_ENABLE(hal,
852   [  --enable-hal            Linux HAL services discovery (default enabled)])
853  
854 if test "${enable_hal}" != "no"
855 then
856   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
857     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
858       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
859       VLC_ADD_PLUGINS([hal probe_hal]) 
860       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
861       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
862     dnl No hal 0.5 Test for 0.2
863     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
864        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
865         VLC_ADD_PLUGINS([hal])
866         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
867         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
868        [AC_MSG_WARN(HAL library not found)])
869     ]
870   )
871 fi
872
873 dnl Check for dbus
874 AC_ARG_ENABLE(dbus,
875   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
876 case "${SYS}" in
877     linux*|*bsd*)
878 if test "${enable_dbus}" != "no"
879 then
880   dnl api stable dbus
881   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
882     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
883       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
884       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
885       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
886       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
887       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
888       dnl Check for dbus control interface
889         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
890         if test "${enable_dbus_control}" != "no"
891         then
892           VLC_ADD_PLUGINS([dbus])
893           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
894           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
895         fi
896       dnl Check for Telepathy
897         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
898         if test "${enable_telepathy}" != "no"; then
899           VLC_ADD_PLUGINS([telepathy])
900           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
901           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
902         fi],
903
904     if ${PKG_CONFIG} --exists dbus-1
905     then
906       [AC_ARG_ENABLE(old-dbus,
907         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
908
909       if test "${enable_old_dbus}" != "yes"
910       then
911         echo ""
912         echo "****** WARNING **** WARNING ***** WARNING *************"
913         echo "*** Your D-Bus version is < 1.0.0"
914         echo "*** You are using old and buggy software and so"
915         echo "*** D-Bus support has been disabled."
916         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
917         echo "*** Alternatively you can force the use of your old and"
918         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
919         echo "*******************************************************"
920         echo ""
921       else
922         dnl not too old dbus
923         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
924           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
925             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
926             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
927             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
928             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
929           dnl older dbus
930           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
931             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
932               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
933               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
934               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
935             dnl much older dbus
936             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
937                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
938                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
939                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
940                [AC_MSG_WARN(DBUS library not found)])
941             ]
942           )]
943         )]
944       fi
945     fi
946   )
947 fi
948 ;;
949 esac
950
951 dnl Build the gtk_main plugins?
952 NEED_GTK_MAIN=no
953 NEED_GNOME_MAIN=no
954 NEED_GTK2_MAIN=no
955 NEED_GNOME2_MAIN=no
956
957 dnl build the qte plugin ?
958 NEED_QTE_MAIN=no
959
960 dnl Check for ntohl, etc.
961 AC_CACHE_CHECK([for ntohl in sys/param.h],
962     [ac_cv_c_ntohl_sys_param_h],
963     [CFLAGS="${CFLAGS_save} -Wall -Werror"
964      AC_TRY_COMPILE([#include <sys/param.h>],
965         [int meuh; ntohl(meuh);],
966         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
967 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
968     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
969 fi
970 CFLAGS="${CFLAGS_save}"
971
972 RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
973 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
974
975 dnl This helps detect broken plugins with undefined symbols
976 dnl Better fail loudly at build-time than silenty at run-time.
977 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
978 dnl RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
979 dnl   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
980 dnl ])
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 Check for variadic macros
1121 AC_CACHE_CHECK([for variadic cpp macros],
1122     [ac_cv_cpp_variadic_macros],
1123     [CFLAGS="${CFLAGS_save}"
1124      AC_TRY_COMPILE(
1125          [#include <stdio.h>
1126           #define a(b,c...) printf(b,##c)],
1127          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1128          ac_cv_cpp_variadic_macros=yes,
1129          ac_cv_cpp_variadic_macros=no)])
1130 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1131     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1132 fi
1133
1134 dnl Checks for __attribute__(aligned()) directive
1135 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1136     [ac_cv_c_attribute_aligned],
1137     [ac_cv_c_attribute_aligned=0
1138         CFLAGS="${CFLAGS_save} -Werror"
1139     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1140         AC_TRY_COMPILE([],
1141         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1142         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1143     done
1144         CFLAGS="${CFLAGS_save}"])
1145 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1146     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1147         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1148 fi
1149
1150 dnl Checks for __attribute__(format()) directive
1151 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1152     [ac_cv_c_attribute_format],
1153     [ac_cv_c_attribute_format=no
1154         CFLAGS="${CFLAGS_save} -Werror"
1155         AC_TRY_COMPILE([],
1156         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1157         [ac_cv_c_attribute_format=yes])
1158         CFLAGS="${CFLAGS_save}"])
1159 if test "${ac_cv_c_attribute_format}" != "no"; then
1160     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1161 fi
1162
1163 dnl Check for __attribute__((packed))
1164 AC_CACHE_CHECK([for __attribute__((packed))],
1165   [ac_cv_c_attribute_packed],
1166   [ac_cv_c_attribute_packed=no
1167    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1168                     [ac_cv_c_attribute_packed=yes])])
1169 if test "${ac_cv_c_attribute_packed}" != "no"; then
1170   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1171 fi
1172
1173 dnl Check for __attribute__((visibility()))
1174 AC_CACHE_CHECK([for __attribute__((visibility()))],
1175   [ac_cv_c_attribute_visibility],
1176   [ac_cv_c_attribute_visibility=no
1177    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1178                     [ac_cv_c_attribute_visibility=yes])])
1179 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1180   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1181 fi
1182
1183 dnl
1184 dnl  Check the CPU
1185 dnl
1186 case "${host_cpu}" in
1187   "")
1188     ARCH=unknown
1189     ;;
1190   *)
1191     ARCH="${host_cpu}"
1192     ;;
1193 esac
1194
1195 dnl
1196 dnl  Enable profiling
1197 dnl
1198 AC_ARG_ENABLE(gprof,
1199 [  --enable-gprof          gprof profiling (default disabled)])
1200 AC_ARG_ENABLE(cprof,
1201 [  --enable-cprof          cprof profiling (default disabled)])
1202 test "${enable_gprof}" != "yes" && enable_gprof="no"
1203 test "${enable_cprof}" != "yes" && enable_cprof="no"
1204
1205 dnl
1206 dnl  default modules
1207 dnl
1208 VLC_ADD_PLUGINS([dummy logger memcpy])
1209 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])
1210 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub cc mpeg_audio lpcm a52 dts cinepak flac])
1211 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1212 VLC_ADD_PLUGINS([converter_fixed mono])
1213 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1214 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1215 VLC_ADD_PLUGINS([playlist export nsc xtag])
1216 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1217 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv smf])
1218 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1219 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1220 VLC_ADD_PLUGINS([access_filter_bandwidth])
1221 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1222 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1223 VLC_ADD_PLUGINS([packetizer_vc1])
1224
1225 dnl
1226 dnl default modules that need g++
1227 dnl
1228 AC_LANG_PUSH(C++)
1229 VLC_ADD_PLUGINS([spatializer])
1230 AC_LANG_POP(C++)
1231
1232 if test "${SYS}" != "mingwce"; then
1233   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1234   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1235   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1236   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1237   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1238   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1239   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1240   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1241 fi
1242
1243 dnl
1244 dnl Some plugins aren't useful on some platforms
1245 dnl
1246 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1247     VLC_ADD_PLUGINS([screensaver motion])
1248 elif test "${SYS}" != "mingwce"; then
1249     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1250     VLC_ADD_LIBS([dmo],[-lole32 -luuid])
1251 else
1252     VLC_ADD_PLUGINS([win32text])
1253 fi
1254 if test "${SYS}" = "darwin"; then
1255     VLC_ADD_PLUGINS([quartztext])
1256     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1257 fi
1258
1259 dnl
1260 dnl  Accelerated modules
1261 dnl
1262 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1263 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1264 MMXEXT_MODULES="memcpymmxext"
1265 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1266 THREEDNOW_MODULES="memcpy3dn"
1267 SSE_MODULES=""
1268 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1269 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1270 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1271
1272 dnl  Check for fully workin MMX intrinsics
1273 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1274 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1275 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1276     [ac_cv_c_mmx_intrinsics],
1277     [CFLAGS="${CFLAGS_save} -O -mmmx"
1278      AC_TRY_COMPILE([#include <mmintrin.h>
1279                      #include <stdint.h>
1280                      uint64_t frobzor;],
1281                     [__m64 a, b, c;
1282                      a = b = c = (__m64)frobzor;
1283                      a = _mm_slli_pi16(a, 3);
1284                      a = _mm_adds_pi16(a, b);
1285                      c = _mm_srli_pi16(c, 8);
1286                      c = _mm_slli_pi16(c, 3);
1287                      b = _mm_adds_pi16(b, c);
1288                      a = _mm_unpacklo_pi8(a, b);
1289                      frobzor = (uint64_t)a;],
1290                     [ac_cv_c_mmx_intrinsics=yes],
1291                     [ac_cv_c_mmx_intrinsics=no])])
1292 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1293   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1294   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1295 fi
1296
1297 dnl  Check for fully workin SSE2 intrinsics
1298 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1299 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1300 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1301     [ac_cv_c_sse2_intrinsics],
1302     [CFLAGS="${CFLAGS_save} -O -msse2"
1303      AC_TRY_COMPILE([#include <emmintrin.h>
1304                      #include <stdint.h>
1305                      uint64_t frobzor;],
1306                     [__m128i a, b, c;
1307                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1308                      a = _mm_slli_epi16(a, 3);
1309                      a = _mm_adds_epi16(a, b);
1310                      c = _mm_srli_epi16(c, 8);
1311                      c = _mm_slli_epi16(c, 3);
1312                      b = _mm_adds_epi16(b, c);
1313                      a = _mm_unpacklo_epi8(a, b);
1314                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1315                     [ac_cv_c_sse2_intrinsics=yes],
1316                     [ac_cv_c_sse2_intrinsics=no])])
1317 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1318   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1319   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1320 fi
1321
1322 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1323     [ac_cv_mmx_inline],
1324     [CFLAGS="${CFLAGS_save}"
1325      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1326                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1327 if test "${ac_cv_mmx_inline}" != "no"; then
1328   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1329   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1330 fi
1331
1332 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1333     [ac_cv_mmxext_inline],
1334     [CFLAGS="${CFLAGS_save}"
1335      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1336                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1337 if test "${ac_cv_mmxext_inline}" != "no"; then
1338   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1339   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1340 fi
1341
1342 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1343     [ac_cv_3dnow_inline],
1344     [CFLAGS="${CFLAGS_save}"
1345      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1346                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1347 if test "${ac_cv_3dnow_inline}" != "no"; then
1348   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1349   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1350 fi
1351
1352 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1353     [ac_cv_sse_inline],
1354     [CFLAGS="${CFLAGS_save}"
1355      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1356                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1357 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1358   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1359   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1360 fi
1361
1362 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1363     [ac_cv_sse2_inline],
1364     [CFLAGS="${CFLAGS_save}"
1365      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1366                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1367 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1368   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1369   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1370 fi
1371
1372 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1373 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1374     [ac_cv_altivec_inline],
1375     [CFLAGS="${CFLAGS_save}"
1376      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1377          ac_cv_altivec_inline=yes,
1378          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1379           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1380             [ac_cv_altivec_inline="-Wa,-m7400"],
1381             ac_cv_altivec_inline=no)
1382          ])])
1383 if test "${ac_cv_altivec_inline}" != "no"; then
1384   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1385   if test "${ac_cv_altivec_inline}" != "yes"; then
1386     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1387     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1388     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1389     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1390     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1391   fi
1392   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1393 fi
1394
1395 dnl The AltiVec C extensions
1396 dnl
1397 dnl There are several possible cases:
1398 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1399 dnl                      need <altivec.h>
1400 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1401 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1402 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1403 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1404 dnl - Others: test should fail
1405 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1406   [ac_cv_c_altivec],
1407   [# OS X/PPC test (gcc 4.x)
1408    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1409    AC_TRY_COMPILE([vector unsigned char foo;],
1410      [vec_ld(0, (unsigned char *)0);],
1411      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1412      [# OS X/PPC test (gcc 3.x)
1413       CFLAGS="${CFLAGS_save} -faltivec"
1414       AC_TRY_COMPILE([vector unsigned char foo;],
1415         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1416         [ac_cv_c_altivec="-faltivec"],
1417         dnl Below this are the Linux tests
1418         [# Linux/PPC test (gcc 4.x)
1419          CFLAGS="${CFLAGS_save} -maltivec"
1420          AC_TRY_COMPILE([#include <altivec.h>],
1421            [vec_ld(0, (unsigned char *)0);],
1422            [ac_cv_c_altivec="-maltivec"],
1423            [# Linux/PPC test (gcc 3.3)
1424             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1425             AC_TRY_COMPILE([#include <altivec.h>],
1426               [vec_ld(0, (unsigned char *)0);],
1427               [ac_cv_c_altivec=""
1428                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1429               [# Linux/PPC test (gcc 3.3)
1430                CFLAGS="${CFLAGS_save} -fvec"
1431                AC_TRY_COMPILE([#include <altivec.h>],
1432                  [vec_ld(0, (unsigned char *)0);],
1433                  [ac_cv_c_altivec="-fvec"],
1434                  [ac_cv_c_altivec=no])
1435               ])
1436            ])
1437         ])
1438      ])
1439    CFLAGS="${CFLAGS_save}"
1440   ])
1441
1442 if test "${ac_cv_c_altivec}" != "no"; then
1443   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1444 fi
1445
1446 AS_IF( test "${enable_altivec}" != "no",
1447 [
1448   AC_CHECK_HEADERS(altivec.h)
1449   CPPFLAGS="${CPPFLAGS_save}"
1450   
1451   if test "${ac_cv_c_altivec}" != "no"; then
1452     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1453     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1454     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1455     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1456     if test "${ac_cv_altivec_inline}" = "no"; then
1457       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1458     fi
1459   fi
1460 ],[
1461   CPPFLAGS="${CPPFLAGS_save}"
1462 ])
1463
1464 AC_CACHE_CHECK([if linker needs -framework vecLib],
1465     [ac_cv_ld_altivec],
1466     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1467      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1468      LDFLAGS="${LDFLAGS_save}"
1469     ])
1470 if test "${ac_cv_ld_altivec}" != "no"; then
1471   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1472 fi
1473 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1474
1475 AC_ARG_WITH(,[])
1476 AC_ARG_WITH(,[Optimization options:])
1477
1478 dnl
1479 dnl  Special arch tuning
1480 dnl
1481 AC_ARG_WITH(tuning,
1482 [  --with-tuning=ARCH      enable special tuning for an architecture
1483                           (default Pentium 2 on IA-32 and G4 on PPC)])
1484 if test -n "${with_tuning}"; then
1485     if test "${with_tuning}" != "no"; then
1486         CFLAGS_TUNING="-mtune=${with_tuning}"
1487     fi
1488 else
1489     if test "${SYS}" = "darwin" -a "${host_cpu}" != "powerpc"; then
1490         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1491     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1492         CFLAGS_TUNING="-mtune=pentium2"
1493     elif test "${host_cpu}" = "x86_64"; then
1494         CFLAGS_TUNING="-mtune=athlon64"
1495     elif test "${host_cpu}" = "powerpc"; then
1496         CFLAGS_TUNING="-mtune=G4";
1497     fi
1498 fi
1499
1500 dnl NOTE: this can't be cached cleanly
1501 AS_IF([test "${CFLAGS_TUNING}"],
1502    [CFLAGS_save="${CFLAGS}"
1503     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1504
1505     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1506     AC_COMPILE_IFELSE([ ],
1507                       [tuning="yes"],
1508                       [CFLAGS_TUNING=""; tuning="no"
1509                        AS_IF([test "${with_tuning}"],
1510                              [AC_MSG_ERROR([requested tuning not supported])])])
1511
1512     AC_MSG_RESULT([$tuning])
1513     CFLAGS="${CFLAGS_save}"
1514 ])
1515
1516 dnl
1517 dnl  x86 accelerations
1518 dnl
1519 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"
1520 then
1521     ARCH="${ARCH} mmx"
1522     VLC_ADD_PLUGINS([${ACCEL_MODULES}])
1523 fi
1524 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"
1525 then
1526     ARCH="${ARCH} sse sse2"
1527     VLC_ADD_PLUGINS([${ACCEL_MODULES}])
1528 fi
1529
1530 dnl
1531 dnl  Memory usage
1532 dnl
1533 AC_ARG_ENABLE(optimize-memory,
1534 [  --enable-optimize-memory optimize memory usage over performance])
1535 if test "${enable_optimize_memory}" = "yes"; then
1536   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1537 fi
1538
1539 dnl
1540 dnl  Enable/disable optimizations
1541 dnl
1542 AC_ARG_ENABLE(optimizations,
1543 [  --disable-optimizations disable compiler optimizations (default enabled)])
1544 if test "${enable_optimizations}" != "no"; then
1545    if test "${enable_optimize_memory}" = "yes"; then
1546       enable_optimizations="size"
1547    else
1548       enable_optimizations="speed"
1549    fi
1550 fi
1551
1552 dnl
1553 dnl  AltiVec acceleration
1554 dnl
1555 AC_ARG_ENABLE(altivec,
1556 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1557 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1558     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1559 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1560     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1561
1562 dnl
1563 dnl  Debugging mode
1564 dnl
1565 AC_ARG_ENABLE(debug,
1566 [  --enable-debug          debug mode (default disabled)])
1567 test "${enable_debug}" != "yes" && enable_debug="no"
1568 AH_TEMPLATE(NDEBUG,
1569             [Define to 1 if debug code should NOT be compiled])
1570 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1571
1572 dnl
1573 dnl  Test coverage
1574 dnl
1575 AC_ARG_ENABLE(coverage,
1576         [  --enable-coverage       build for test coverage (default disabled)],,
1577         [enable_coverage="no"])
1578 AS_IF([test "${enable_coverage}" != "no"], [
1579         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1580         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1581         LDFLAGS="-lgcov ${LDFLAGS}"
1582         dnl ugly...
1583         CFLAGS_save="${CFLAGS}"
1584         CXXFLAGS_save="${CXXFLAGS}"
1585         LDFLAGS_save="${LDFLAGS}"
1586 ])
1587
1588 dnl
1589 dnl  Enable release-specific flags
1590 dnl
1591 AC_ARG_ENABLE(release,
1592 [  --enable-release        activate extra optimizations (default disabled)])
1593 test "${enable_release}" != "yes" && enable_release="no"
1594
1595 dnl
1596 dnl Stream output
1597 dnl
1598 AC_ARG_ENABLE(sout,
1599   [  --enable-sout           Stream output modules (default enabled)])
1600 if test "${enable_sout}" != "no"
1601 then
1602   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1603   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1604   VLC_ADD_PLUGINS([packetizer_copy])
1605
1606   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1607   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1608   VLC_ADD_PLUGINS([stream_out_gather])
1609 #  VLC_ADD_PLUGINS([stream_out_transrate])
1610 #  VLC_ADD_PLUGINS([rtcp])
1611   VLC_ADD_PLUGINS([profile_parser])
1612
1613   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1614 fi
1615
1616 AC_ARG_ENABLE(switcher,
1617   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1618
1619 dnl Check for libshout
1620 AC_ARG_ENABLE(shout,
1621   [  --enable-shout          libshout output plugin (default disabled)])
1622 if test "${enable_shout}" = "yes"; then
1623   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1624     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1625      VLC_ADD_PLUGINS([access_output_shout])
1626      VLC_ADD_LIBS([access_output_shout],[$SHOUT_LIBS])
1627      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1628     [AC_MSG_WARN(libshout library not found)])
1629 fi
1630
1631 dnl Lua modules
1632 AC_ARG_ENABLE(lua,
1633   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1634 if test "${enable_lua}" != "no"
1635 then
1636   PKG_CHECK_MODULES(LUA, lua5.1,
1637     [ have_lua=yes ],
1638     [
1639     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1640     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1641       [ have_lua=yes ],
1642       [ 
1643         have_lua=yes
1644         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1645           [],  
1646           [ have_lua=no ] )
1647         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1648           [LUA_LIBS="-llua5.1"],
1649           AC_CHECK_LIB( lua51 , luaL_newstate, 
1650             [LUA_LIBS="-llua51"],
1651                   AC_CHECK_LIB( lua , luaL_newstate, 
1652                     [LUA_LIBS="-llua"],
1653               [ have_lua=no
1654                 AC_MSG_WARN([lua >= 5.1 not found!])
1655               ])
1656             )
1657           )
1658       ])
1659     ])
1660   if test "x${have_lua}" = "xyes" ;  then
1661      AC_DEFINE(HAVE_LUA, [], [Define if you have the lua library])
1662      VLC_ADD_PLUGINS([lua])
1663      VLC_ADD_LIBS([lua],[$LUA_LIBS])
1664      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1665   fi
1666 fi
1667
1668 dnl
1669 dnl HTTP daemon
1670 dnl
1671 AC_ARG_ENABLE(httpd,
1672   [  --enable-httpd          HTTP daemon (default enabled)])
1673 if test "${enable_httpd}" != "no"
1674 then
1675   VLC_ADD_PLUGINS([http])
1676   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1677 fi
1678
1679 dnl
1680 dnl VideoLAN manager
1681 dnl
1682 AC_ARG_ENABLE(vlm,
1683   [  --enable-vlm            VideoLAN manager (default enabled)])
1684 if test "${enable_vlm}" != "no"
1685 then
1686   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1687 fi
1688
1689 dnl
1690 dnl Growl notification plugin
1691 dnl
1692 AC_ARG_ENABLE(growl,
1693   [  --enable-growl          growl notification plugin (default enabled)])
1694 AS_IF([test "${enable_growl}" != "no"], [
1695     VLC_ADD_PLUGINS([growl])
1696   ]
1697 )
1698
1699 dnl
1700 dnl Libnotify notification plugin
1701 dnl
1702
1703 AC_ARG_ENABLE(notify,
1704   [  --enable-notify         libnotify notification plugin (default enabled)])
1705 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1706     PKG_CHECK_MODULES(NOTIFY, libnotify,
1707       [
1708         VLC_ADD_PLUGINS([notify])
1709         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1710         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1711       ],[
1712         AS_IF([test "${enable_notify}" = "yes"],[
1713                AC_MSG_WARN( libnotify not found) ])
1714       ])
1715   ])
1716
1717 dnl
1718 dnl Audioscrobbler plugin
1719 dnl
1720
1721 AC_ARG_ENABLE(audioscrobbler,
1722   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1723 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1724         VLC_ADD_PLUGINS([audioscrobbler])
1725   ])
1726
1727 dnl
1728 dnl Musicbrainz plugin
1729 dnl
1730 AC_ARG_ENABLE(musicbrainz,
1731   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1732   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1733       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1734         [ VLC_ADD_PLUGINS([musicbrainz])
1735           VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1736           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1737        [AC_MSG_WARN(MusicBrainz library not found)])
1738    ])
1739
1740
1741 dnl
1742 dnl Taglibplugin
1743 dnl
1744 AC_ARG_ENABLE(taglib,
1745   [  --disable-taglib Taglib support (default enabled) ])
1746   AS_IF([test "${enable_taglib}" != "no"],[
1747     PKG_CHECK_MODULES(TAGLIB, taglib,
1748       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1749         VLC_ADD_PLUGINS([taglib])
1750         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1751        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1752       [AC_MSG_WARN(TagLib library not found)])
1753   ])
1754
1755
1756 dnl
1757 dnl  Input plugins
1758 dnl
1759
1760 AC_ARG_WITH(,[Input plugins:])
1761
1762 dnl  live555 input
1763 dnl
1764 if test "${enable_livedotcom}" 
1765 then
1766   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1767 fi
1768
1769 if test "${enable_livedotcom}" = "no"
1770 then
1771   enable_live555="no"
1772 fi
1773 AC_ARG_ENABLE(live555,
1774 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1775 if test "${enable_live555}" != "no"; then
1776   AC_ARG_WITH(live555-tree,
1777     [    --with-live555-tree=PATH live.com tree for static linking])
1778
1779   dnl
1780   dnl test for --with-live555-tree
1781   dnl
1782   if test "${with_livedotcom_tree}" 
1783   then
1784     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1785   with_live555_tree="${with_livedotcom_tree}"
1786   fi
1787
1788   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1789     AC_LANG_PUSH(C++)
1790     CPPFLAGS_save="${CPPFLAGS}"
1791     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1792     if test "${SYS}" = "solaris"; then
1793       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1794     fi
1795     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1796     AC_CHECK_HEADERS(liveMedia.hh, [
1797       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1798       AC_CHECK_LIB(liveMedia_pic, main, [
1799         # We have -lliveMedia_pic, build plugins
1800         VLC_ADD_PLUGINS([live555])
1801         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1802       ], [
1803         AC_CHECK_LIB(liveMedia, main, [
1804           # We only have -lliveMedia, do builtins
1805           VLC_ADD_BUILTINS([live555])
1806           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1807         ])
1808       ])
1809       if test "${SYS}" = "mingw32"; then
1810         # add ws2_32 for closesocket, select, recv
1811         VLC_ADD_LIBS([live555],[-lws2_32])
1812       fi
1813     ])
1814     CPPFLAGS="${CPPFLAGS_save}"
1815     AC_LANG_POP(C++)
1816   else
1817     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1818     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1819     if test -z "${real_live555_tree}"; then
1820       dnl  The given directory can't be found
1821       AC_MSG_RESULT(no)
1822       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1823     fi
1824     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1825       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1826
1827       VLC_ADD_BUILTINS([live555])
1828
1829       if test "${SYS}" = "mingw32"; then
1830         # add ws2_32 for closesocket, select, recv
1831         VLC_ADD_LIBS([live555],[-lws2_32])
1832       fi
1833
1834       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1835       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1836       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1837       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1838
1839       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1840       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1841       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1842       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1843       if test "${SYS}" = "solaris"; then
1844         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1845       fi
1846     else
1847       dnl  The given live555 wasn't built
1848         AC_MSG_RESULT(no)
1849       if test "${enable_live555}" = "yes"; then
1850         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1851       fi        
1852     fi
1853   fi
1854 fi
1855
1856 dnl
1857 dnl  special access module for dc1394 input
1858 dnl
1859 AC_ARG_ENABLE(dc1394,
1860   [  --enable-dc1394         dc1394 access module (default disabled)])
1861 if test "${enable_dc1394}" = "yes"
1862 then
1863   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1864     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1865         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1866 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1867               VLC_ADD_PLUGINS([dc1394])
1868               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1869 dnl         ],
1870 dnl         [
1871 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1872 dnl         ])
1873       ],
1874       [
1875         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1876       ])
1877     ],
1878     [
1879       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1880     ])
1881   ],
1882   [
1883     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1884   ])
1885 fi
1886
1887 dnl
1888 dnl dv module: digital video module check for libraw1394
1889 dnl
1890 AC_ARG_ENABLE(dv,
1891 [  --enable-dv             dv input module (default disabled)])
1892 if test "${enable_dv}" = "yes"
1893 then
1894   AC_ARG_WITH(dv-raw1394,
1895   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1896   AC_ARG_WITH(dv-raw1394-tree,
1897   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1898
1899   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1900   then
1901     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1902     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1903     then
1904       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1905       AC_MSG_RESULT(yes)
1906       VLC_ADD_PLUGINS([access_dv])
1907       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1908       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1909     else
1910       dnl  No libraw1394 could be found, sorry
1911       AC_MSG_RESULT(no)
1912       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1913     fi
1914   else
1915     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1916     [ VLC_ADD_PLUGINS([access_dv])
1917         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1918     ],[
1919         if test -n "${enable_dv}"
1920         then
1921           AC_MSG_ERROR([cannot find libraw1394 headers])
1922         fi
1923     ])
1924   fi
1925
1926   dnl Check for static linking of libraw1394
1927   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1928   then
1929     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1930     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1931     if test -z "${real_dv_raw1394_tree}"
1932     then
1933       dnl  The given directory can't be found
1934       AC_MSG_RESULT(no)
1935       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1936     fi
1937     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1938     then
1939       dnl  Use a custom libraw1394
1940       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1941       VLC_ADD_BUILTINS([access_dv])
1942       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1943       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1944     else
1945       dnl  The given libraw1394 wasn't built
1946       AC_MSG_RESULT(no)
1947       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1948     fi
1949   fi
1950
1951   dnl
1952   dnl Check for libavc1394
1953   dnl
1954
1955   AC_ARG_WITH(dv-avc1394,
1956   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1957   AC_ARG_WITH(dv-avc1394-tree,
1958   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1959
1960   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1961   then
1962     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1963     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1964     then
1965       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1966       AC_MSG_RESULT(yes)
1967       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1968       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1969     else
1970       dnl  No libavc1394 could be found, sorry
1971       AC_MSG_RESULT(no)
1972       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1973     fi
1974   else
1975     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1976     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1977     ],[
1978         if test -n "${enable_dv}"
1979         then
1980           AC_MSG_ERROR([cannot find libavc1394 headers])
1981         fi
1982     ])
1983   fi
1984
1985   dnl Check for static linking of libavc1394
1986   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1987   then
1988     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1989     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1990     if test -z "${real_dv_avc1394_tree}"
1991     then
1992       dnl  The given directory can't be found
1993       AC_MSG_RESULT(no)
1994       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1995     fi
1996     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1997     then
1998       dnl  Use a custom libavc1394
1999       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
2000       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
2001       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
2002     else
2003       dnl  The given libavc1394 wasn't built
2004       AC_MSG_RESULT(no)
2005       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
2006     fi
2007   fi
2008 fi
2009
2010 dnl
2011 dnl dvdread module: check for libdvdread
2012 dnl
2013 AC_ARG_ENABLE(dvdread,
2014 [  --enable-dvdread        dvdread input module (default disabled)])
2015 if test "${enable_dvdread}" != "no"
2016 then
2017   AC_ARG_WITH(dvdread,
2018   [    --with-dvdread=PATH   libdvdread headers and libraries])
2019   AC_ARG_WITH(dvdread-tree,
2020   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2021
2022   dnl Temporary hack (yeah, sure ;)
2023   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2024       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2025   fi
2026
2027   if test -z "${with_dvdread}"
2028   then
2029     if test -z "${with_dvdread_tree}"
2030     then
2031       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2032         [ VLC_ADD_PLUGINS([dvdread])
2033           VLC_ADD_LIBS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
2034         ],[
2035           if test -n "${enable_dvdread}"
2036           then
2037             AC_MSG_ERROR([cannot find libdvdread headers])
2038           fi
2039         ])
2040     else
2041       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2042       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2043       if test -z "${real_dvdread_tree}"
2044       then
2045         dnl  The given directory can't be found
2046         AC_MSG_RESULT(no)
2047         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2048       fi
2049       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2050       then
2051         dnl  Use a custom libdvdread
2052         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2053         VLC_ADD_BUILTINS([dvdread])
2054         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
2055         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2056       else
2057         dnl  The given libdvdread wasn't built
2058         AC_MSG_RESULT(no)
2059         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2060       fi
2061     fi
2062   else
2063     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2064     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2065     then
2066       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2067       AC_MSG_RESULT(yes)
2068       VLC_ADD_PLUGINS([dvdread])
2069       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
2070       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2071     else
2072       dnl  No libdvdread could be found, sorry
2073       AC_MSG_RESULT(no)
2074       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2075     fi
2076   fi
2077 fi
2078
2079 dnl
2080 dnl  libdvdnav plugin
2081 dnl
2082 AC_ARG_ENABLE(dvdnav,
2083   [  --enable-dvdnav         dvdnav input module (default enabled)])
2084 if test "${enable_dvdnav}" != "no"
2085 then
2086   dnl Same hack than dvdread
2087   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2088       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2089   fi
2090
2091   DVDNAV_PATH="${PATH}"
2092   AC_ARG_WITH(dvdnav-config-path,
2093     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2094     [ if test "${with_dvdnav_config_path}" != "no"
2095       then
2096         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2097       fi ])
2098   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2099   if test "${DVDNAV_CONFIG}" != "no"
2100   then
2101     VLC_ADD_PLUGINS([dvdnav])
2102     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2103     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2104   fi
2105 fi
2106
2107 dnl
2108 dnl  Windows DirectShow access module
2109 dnl
2110 AC_ARG_ENABLE(dshow,
2111   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2112 if test "${enable_dshow}" != "no"
2113 then
2114   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2115   then
2116     AC_LANG_PUSH(C++)
2117       AC_CHECK_HEADERS(dshow.h,
2118       [ VLC_ADD_PLUGINS([dshow])
2119         VLC_ADD_CXXFLAGS([dshow],[])
2120         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2121     AC_LANG_POP(C++)
2122   fi
2123 fi
2124
2125 dnl
2126 dnl  Windows DirectShow BDA access module
2127 dnl
2128 AC_ARG_ENABLE(bda,
2129   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2130 if test "${enable_bda}" != "no"
2131 then
2132   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2133   then
2134       AC_CHECK_HEADERS(dshow.h,
2135       [ VLC_ADD_PLUGINS([bda])
2136         VLC_ADD_CXXFLAGS([bda],[])
2137         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2138   fi
2139 fi
2140
2141
2142 dnl
2143 dnl  OpenCV wrapper and example filters
2144 dnl
2145 AC_ARG_ENABLE(opencv,
2146   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2147 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2148 then
2149   AC_ARG_WITH(opencv-tree,
2150   [    --with-opencv-tree=PATH opencv tree for linking])
2151   if test -n "${with_opencv_tree}"
2152   then
2153     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2154     then
2155           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2156           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2157             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2158       then
2159         AC_MSG_RESULT(yes)
2160         VLC_ADD_PLUGINS([opencv_wrapper])
2161         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2162         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])
2163         AC_LANG_PUSH(C++)
2164         VLC_ADD_PLUGINS([opencv_example])
2165         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2166         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])
2167         AC_LANG_POP(C++)        
2168           else
2169         dnl  No opencv could be found, sorry
2170         AC_MSG_RESULT(no)
2171         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2172           fi
2173     else
2174           AC_MSG_WARN([--enable-opencv currently only works on windows])
2175     fi
2176   fi  
2177 fi
2178
2179
2180 dnl
2181 dnl  libsmbclient plugin
2182 dnl
2183 AC_ARG_ENABLE(smb,
2184   [  --enable-smb            smb input module (default enabled)])
2185 if test "${enable_smb}" != "no"; then
2186   AC_CHECK_HEADERS(libsmbclient.h,
2187     [ VLC_ADD_PLUGINS([access_smb])
2188       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2189     [ if test -n "${enable_smb}"; then
2190         AC_MSG_ERROR([cannot find libsmbclient headers])
2191      fi ])
2192   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2193     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
2194     [#include <libsmbclient.h>])
2195 fi
2196
2197 dnl
2198 dnl  libdvbpsi ts demux/mux
2199 dnl
2200 AC_ARG_ENABLE(dvbpsi,
2201   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2202 if test "${enable_dvbpsi}" != "no"
2203 then
2204   AC_ARG_WITH(dvbpsi,
2205   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2206   AC_ARG_WITH(dvbpsi,
2207   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2208   case "${with_dvbpsi}" in
2209   ""|yes)
2210     if test -z "${with_dvbpsi_tree}"
2211     then
2212       AC_CHECK_HEADERS(dvbpsi/dr.h,
2213         [ VLC_ADD_PLUGINS([ts])
2214           if test "${enable_sout}" != "no"; then
2215             VLC_ADD_PLUGINS([mux_ts])
2216           fi
2217           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2218         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2219         [#if defined( HAVE_STDINT_H )
2220 #   include <stdint.h>
2221 #elif defined( HAVE_INTTYPES_H )
2222 #   include <inttypes.h>
2223 #endif
2224 #include <dvbpsi/dvbpsi.h>
2225 #include <dvbpsi/descriptor.h>
2226 #include <dvbpsi/pat.h>
2227 #include <dvbpsi/pmt.h>])
2228     else
2229       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2230       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2231       if test -z "${real_dvbpsi_tree}"
2232       then
2233         dnl  The given directory can't be found
2234         AC_MSG_RESULT(no)
2235         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2236       fi
2237       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2238       then
2239         dnl  Use a custom libdvbpsi
2240         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2241         VLC_ADD_BUILTINS([ts])
2242         if test "${enable_sout}" != "no"; then
2243           VLC_ADD_BUILTINS([mux_ts])
2244         fi
2245         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2246         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2247       else
2248         dnl  The given libdvbpsi wasn't built
2249         AC_MSG_RESULT(no)
2250         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2251       fi
2252     fi
2253   ;;
2254   no)
2255     dnl  Compile without dvbpsi
2256   ;;
2257   *)
2258     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2259     if test -z "${with_dvbpsi}"
2260     then
2261       LDFLAGS_test=""
2262       CPPFLAGS_test=""
2263     else
2264       LDFLAGS_test="-L${with_dvbpsi}/lib"
2265       CPPFLAGS_test="-I${with_dvbpsi}/include"
2266     fi
2267     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2268     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2269       VLC_ADD_PLUGINS([ts])
2270       if test "${enable_sout}" != "no"; then
2271         VLC_ADD_PLUGINS([mux_ts])
2272       fi
2273       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2274       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2275
2276     ],[
2277       if test -n "${enable_dvbpsi}"
2278       then
2279         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])
2280       fi
2281     ])
2282     CPPFLAGS="${CPPFLAGS_save}"
2283   ;;
2284   esac
2285   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2286     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2287   ], [], [${LDFLAGS_ts}])
2288
2289 fi
2290
2291 dnl
2292 dnl  Video4Linux plugin
2293 dnl
2294 AC_ARG_ENABLE(v4l,
2295   [  --enable-v4l            Video4Linux input support (default disabled)])
2296 if test "${enable_v4l}" = "yes"
2297 then
2298   AC_ARG_WITH(v4l,
2299     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2300   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2301   then
2302     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2303   fi
2304
2305   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2306   AC_CHECK_HEADERS(linux/videodev.h, [
2307     VLC_ADD_PLUGINS([v4l])
2308   ],[])
2309   CPPFLAGS="${CPPFLAGS_save}"
2310 fi
2311
2312 dnl
2313 dnl  Video4Linux plugin
2314 dnl
2315 AC_ARG_ENABLE(v4l2,
2316   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2317 if test "${enable_v4l2}" = "yes"
2318 then
2319   AC_ARG_WITH(v4l2,
2320     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2321   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2322   then
2323     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2324   fi
2325
2326   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2327   AC_CHECK_HEADERS(linux/videodev2.h, [
2328     VLC_ADD_PLUGINS([v4l2])
2329   ],[])
2330   CPPFLAGS="${CPPFLAGS_save}"
2331 fi
2332
2333
2334 dnl
2335 dnl  special access module for Hauppauge PVR cards
2336 dnl
2337 AC_ARG_ENABLE(pvr,
2338   [  --enable-pvr            PVR cards access module (default disabled)])
2339 if test "${enable_pvr}" = "yes"
2340 then
2341   VLC_ADD_PLUGINS([pvr])
2342   AC_ARG_WITH(videodev2,
2343     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2344   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2345   then
2346     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2347   fi
2348     
2349
2350   AC_CACHE_CHECK([for new linux/videodev2.h],
2351       [new_linux_videodev2_h],
2352       [AC_TRY_COMPILE([
2353           #include <sys/types.h>
2354           #   ifdef VIDEODEV2_H_FILE
2355           #   include VIDEODEV2_H_FILE
2356           #   else
2357           #   include <linux/videodev2.h>
2358           #   endif
2359           ],
2360           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2361           new_linux_videodev2_h=yes,
2362           new_linux_videodev2_h=no)])
2363   if test "${new_linux_videodev2_h}" != "no"; then
2364     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2365   fi
2366 fi
2367
2368 dnl
2369 dnl  gnomeVFS access module
2370 dnl
2371 AC_ARG_ENABLE(gnomevfs,
2372   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2373 if test "${enable_gnomevfs}" = "yes" 
2374 then
2375   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2376     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2377     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2378     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2379     VLC_ADD_PLUGINS([access_gnomevfs]),
2380     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2381 fi
2382
2383 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2384 AC_ARG_ENABLE(libcdio,
2385   [  --enable-libcdio        CD input and control library support (default enabled)])
2386
2387
2388 have_libcdio=no
2389 have_libvcdinfo=no
2390 if test "${enable_libcdio}" != "no"
2391 then
2392   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2393      have_libcdio=yes
2394      AC_DEFINE(HAVE_LIBCDIO, [], 
2395      [Define if you have libcdio 0.78.2 or greater installed]),
2396      [AC_MSG_WARN(CD Reading and information library not found)])
2397
2398   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2399      [have_libvcdinfo=yes
2400      AC_DEFINE(HAVE_VCDINFO, [], 
2401      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2402      [AC_MSG_WARN(VCD information library not found)])
2403 fi
2404
2405 dnl
2406 dnl  VCDX and CDDAX modules
2407 dnl
2408 AC_ARG_ENABLE(cddax,
2409   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2410  
2411 AC_ARG_ENABLE(libcddb,
2412   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2413  
2414 if test "${enable_cddax}" = "yes"
2415 then
2416   if test "$have_libcdio" = "yes"
2417   then
2418     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2419     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2420     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2421     VLC_ADD_PLUGINS([cddax])
2422     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2423     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2424     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2425   else 
2426     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2427     HAVE_CDDAX=no
2428   fi
2429
2430   if test "$enable_libcddb" != "no"; then
2431     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2432       HAVE_LIBCDDB=yes 
2433       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2434       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2435       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2436       ],
2437       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2438       HAVE_LIBCDDB=no])
2439   fi
2440  
2441 fi
2442
2443 AC_ARG_ENABLE(vcdx,
2444   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2445  
2446 if test "${enable_vcdx}" = "yes"
2447 then
2448   if test "${have_libvcdinfo}" = "yes"
2449   then
2450     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2451     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2452   else 
2453     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2454     HAVE_VCDX=no
2455   fi
2456
2457   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2458    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2459     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2460     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2461     HAVE_VCDX=no])
2462
2463   if test "$have_libvcdinfo" = "yes"
2464   then
2465     AC_DEFINE(HAVE_VCDX, [], 
2466     [Define for the VCD plugin using libcdio/libvcdinfo])
2467     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2468     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2469     VLC_ADD_PLUGINS([vcdx])
2470   else 
2471     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2472     HAVE_VCDX=no
2473   fi
2474 fi
2475
2476 dnl
2477 dnl  Built-in CD-DA and VCD module
2478 dnl
2479 AC_ARG_ENABLE(cdda,           
2480   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2481  
2482 AC_ARG_ENABLE(vcd,
2483   [  --enable-vcd            built-in VCD (default enabled)])
2484
2485 if test "${enable_vcd}" != "no"
2486 then
2487   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2488   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2489     AC_MSG_RESULT(yes)
2490     VLC_ADD_PLUGINS([vcd cdda])
2491   ],[
2492     AC_MSG_RESULT(no)
2493   ])
2494
2495   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2496   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2497     AC_MSG_RESULT(yes)
2498     VLC_ADD_PLUGINS([vcd cdda])
2499     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2500   ],[
2501     AC_MSG_RESULT(no)
2502   ])
2503
2504   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2505   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2506     AC_MSG_RESULT(yes)
2507     VLC_ADD_PLUGINS([vcd cdda])
2508     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2509   ],[
2510     AC_MSG_RESULT(no)
2511   ])
2512
2513   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2514   then
2515     VLC_ADD_PLUGINS([vcd cdda])
2516   fi
2517
2518   if test "${SYS}" = "darwin"
2519   then
2520     VLC_ADD_PLUGINS([vcd cdda])
2521     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2522     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2523   fi
2524
2525   if test "$enable_libcddb" != "no"; then
2526     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2527       HAVE_LIBCDDB=yes 
2528       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2529       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2530       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2531       ],:
2532       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2533       HAVE_LIBCDDB=no])
2534   fi
2535 fi
2536
2537 dnl
2538 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2539 dnl
2540 AC_ARG_ENABLE(dvb,
2541   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2542
2543 if test "${enable_dvb}" = "yes"
2544 then
2545   AC_ARG_WITH(dvb,
2546   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2547   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2548   then
2549     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2550   fi
2551   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2552   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2553     if test -z "${with_dvbpsi_tree}"
2554     then
2555       VLC_ADD_PLUGINS([dvb])
2556     else
2557       VLC_ADD_BUILTINS([dvb])
2558     fi
2559   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2560   CPPFLAGS="${CPPFLAGS_save}"
2561 fi
2562
2563 dnl
2564 dnl  Screen capture module
2565 dnl
2566 AC_ARG_ENABLE(screen,
2567   [  --enable-screen         Screen capture support (default enabled)])
2568 if test "${enable_screen}" != "no"; then
2569   if test "${SYS}" = "darwin"; then
2570     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2571       VLC_ADD_PLUGINS([screen])
2572       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2573     ])
2574   elif test "${SYS}" = "mingw32"; then
2575     VLC_ADD_PLUGINS([screen])
2576     VLC_ADD_LIBS([screen],[-lgdi32])
2577   elif test "${SYS}" = "mingwce"; then
2578     CPPFLAGS="${CPPFLAGS_save}"
2579   elif test "${SYS}" = "beos"; then
2580     VLC_ADD_PLUGINS([screen])
2581     VLC_ADD_CXXFLAGS([screen],[])
2582     VLC_ADD_LIBS([screen],[-lbe])
2583   else
2584     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2585     AC_CHECK_HEADERS(X11/Xlib.h, [
2586       VLC_ADD_PLUGINS([screen])
2587       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2588       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2589     ])
2590     CPPFLAGS="${CPPFLAGS_save}"
2591   fi
2592 fi
2593
2594 dnl
2595 dnl  ipv6 plugin - not for QNX yet
2596 dnl
2597 have_ipv6=no
2598 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2599   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2600 ])
2601
2602 AS_IF([test "${have_ipv6}" = "yes"], [
2603   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2604
2605
2606 AC_CHECK_FUNCS(inet_ntop,[
2607   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2608
2609
2610 dnl
2611 dnl  ogg demux plugin
2612 dnl
2613 AC_ARG_ENABLE(ogg,
2614   [  --enable-ogg            Ogg demux support (default enabled)])
2615 if test "${enable_ogg}" != "no"
2616 then
2617   AC_ARG_WITH(ogg-tree,
2618   [    --with-ogg-tree=PATH  ogg tree for static linking])
2619   if test -n "${with_ogg_tree}"
2620   then
2621     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2622     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2623     if test -z "${real_ogg_tree}"
2624     then
2625       dnl  The given directory can't be found
2626       AC_MSG_RESULT(no)
2627       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2628     fi
2629     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2630     then
2631       dnl  Use a custom ogg
2632       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2633       VLC_ADD_PLUGINS([ogg])
2634       if test "${enable_sout}" != "no"; then
2635         VLC_ADD_PLUGINS([mux_ogg])
2636       fi
2637       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2638       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2639     else
2640       dnl  The given ogg wasn't built
2641       AC_MSG_RESULT(no)
2642       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2643     fi
2644   else
2645     AC_CHECK_HEADERS(ogg/ogg.h, [
2646       AC_CHECK_LIB( ogg, oggpack_read, [
2647         VLC_ADD_PLUGINS([ogg])
2648         if test "${enable_sout}" != "no"; then
2649           VLC_ADD_PLUGINS([mux_ogg])
2650         fi
2651         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2652      ],[])
2653   fi
2654 fi
2655
2656 dnl
2657 dnl  matroska demux plugin
2658 dnl
2659 AC_ARG_ENABLE(mkv,
2660   [  --enable-mkv            Matroska demux support (default enabled)])
2661 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2662   AC_LANG_PUSH(C++)
2663   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2664     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2665     AC_EGREP_CPP(yes,
2666       [#include <ebml/EbmlVersion.h>
2667        #ifdef LIBEBML_VERSION
2668        #if LIBEBML_VERSION >= 0x000706
2669        yes
2670        #endif
2671        #endif],
2672       [AC_MSG_RESULT([yes])
2673         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2674           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2675           AC_EGREP_CPP(yes,
2676             [#include <matroska/KaxVersion.h>
2677              #ifdef LIBMATROSKA_VERSION
2678              #if LIBMATROSKA_VERSION >= 0x000705
2679              yes
2680              #endif
2681              #endif],
2682             [AC_MSG_RESULT([yes])
2683               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2684               VLC_ADD_CXXFLAGS([mkv],[])
2685               if test "${SYS}" = "darwin"; then
2686                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2687               fi
2688               AC_CHECK_LIB(ebml_pic, main, [
2689                 VLC_ADD_PLUGINS([mkv])
2690                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2691               ],
2692                 AC_CHECK_LIB(ebml, main, [
2693                   VLC_ADD_PLUGINS([mkv])
2694                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2695                 ]) 
2696               )
2697             ],
2698             [AC_MSG_RESULT([no])
2699               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.])
2700           ])
2701         ])
2702       ],
2703       [AC_MSG_RESULT([no])
2704         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.])
2705     ])
2706   ])
2707   AC_LANG_POP(C++)
2708 fi
2709
2710 dnl
2711 dnl  modplug demux plugin
2712 dnl
2713 AC_ARG_ENABLE(mod,
2714   [  --enable-mod            Mod demux support (default enabled)])
2715 if test "${enable_mod}" != "no"
2716 then
2717   AC_ARG_WITH(mod-tree,
2718   [    --with-mod-tree=PATH mod tree for static linking])
2719   if test -n "${with_mod_tree}"
2720   then
2721     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2722     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2723     if test -z "${real_mod_tree}"
2724     then
2725       dnl  The given directory can't be found
2726       AC_MSG_RESULT(no)
2727       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2728     fi
2729     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2730     then
2731       dnl  Use a custom mod
2732       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2733       VLC_ADD_PLUGINS([mod])
2734       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2735       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2736     else
2737       dnl  The given mod wasn't built
2738       AC_MSG_RESULT(no)
2739       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2740     fi
2741   else
2742     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2743       VLC_ADD_PLUGINS([mod])
2744       VLC_ADD_CXXFLAGS([mod],[])
2745       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2746   fi
2747 fi
2748
2749 dnl
2750 dnl  mpc demux plugin
2751 dnl
2752 AC_ARG_ENABLE(mpc,
2753   [  --enable-mpc            Mpc demux support (default enabled)])
2754 if test "${enable_mpc}" != "no"
2755 then
2756   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2757     VLC_ADD_PLUGINS([mpc])
2758     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2759 fi
2760
2761 dnl
2762 dnl  game music emu demux plugin
2763 dnl
2764 AC_ARG_ENABLE(gme,
2765   [  --enable-gme            Game Music Emu demux support (default enabled)])
2766 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2767 then
2768   AC_LANG_PUSH(C++)
2769   AC_ARG_WITH(gme-tree,
2770   [    --with-gme-tree=PATH gme tree for static linking])
2771   if test -n "${with_gme_tree}"
2772   then
2773     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2774     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2775     if test -z "${real_gme_tree}"
2776     then
2777       dnl  The given directory can't be found
2778       AC_MSG_RESULT(no)
2779       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2780     fi
2781     if test -f "${real_gme_tree}/gme/libgme.a"
2782     then
2783       dnl  Use a custom gme
2784       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2785       VLC_ADD_PLUGINS([gme])
2786       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2787       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2788     else
2789       dnl  The given gme wasn't built
2790       AC_MSG_RESULT(no)
2791       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2792     fi
2793   else
2794       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2795   fi
2796   AC_LANG_POP(C++)
2797 fi
2798
2799 dnl
2800 dnl  Codec plugins
2801 dnl
2802
2803 AC_ARG_WITH(,[Codec plugins:])
2804
2805 dnl
2806 dnl  mad plugin
2807 dnl
2808 AC_ARG_ENABLE(mad,
2809   [  --enable-mad            libmad module (default enabled)])
2810 if test "${enable_mad}" != "no"
2811 then
2812   AC_ARG_WITH(mad,
2813     [    --with-mad=PATH       path to libmad],[],[])
2814   if test "${with_mad}" != "no" -a -n "${with_mad}"
2815   then
2816     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2817     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2818   fi
2819
2820   AC_ARG_WITH(mad-tree,
2821     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2822   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2823   then
2824     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2825     if test -z "${real_mad_tree}"
2826     then
2827       dnl  The given directory can't be found
2828       AC_MSG_RESULT(no)
2829       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2830     fi
2831     dnl  Use a custom libmad
2832     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2833     if test -f ${real_mad_tree}/mad.h
2834     then
2835       AC_MSG_RESULT(yes)
2836       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2837       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2838       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2839       AC_CHECK_LIB(mad, mad_bit_init, [
2840         VLC_ADD_BUILTINS([mpgatofixed32])
2841         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2842         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2843       ],[])
2844       LDFLAGS="${LDFLAGS_save}"
2845     else
2846       AC_MSG_RESULT(no)
2847       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2848     fi
2849   else
2850     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2851     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2852     AC_CHECK_HEADERS(mad.h, ,
2853       [ 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.]) ])
2854     AC_CHECK_LIB(mad, mad_bit_init, [
2855       VLC_ADD_PLUGINS([mpgatofixed32])
2856       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2857       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2858     CPPFLAGS="${CPPFLAGS_save}"
2859     LDFLAGS="${LDFLAGS_save}"
2860   fi
2861 fi
2862
2863 dnl
2864 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2865 dnl
2866 AC_ARG_ENABLE( id3tag,
2867   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2868 AS_IF([test "${enable_id3tag}" != "no"], [
2869   AC_CHECK_HEADERS(id3tag.h, [
2870     AC_CHECK_HEADERS(zlib.h, [
2871       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2872       VLC_ADD_PLUGINS([id3tag])
2873     ])
2874   ])
2875 ])
2876
2877 dnl
2878 dnl  ffmpeg decoder/demuxer plugin
2879 dnl
2880 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2881 dnl                               4- default place,
2882
2883 AC_ARG_ENABLE(ffmpeg,
2884 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2885 if test "${enable_ffmpeg}" != "no"
2886 then
2887
2888 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2889
2890  AC_ARG_WITH(ffmpeg-mp3lame,
2891    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2892    [
2893      if test "$with_ffmpeg_mp3lame" = "yes";    then
2894         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2895      fi])
2896
2897  AC_ARG_WITH(ffmpeg-faac,
2898    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2899    [
2900      if test "$with_ffmpeg_faac" = "yes"; then
2901         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2902      fi])
2903
2904  AC_ARG_WITH(ffmpeg-dts,
2905    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2906    [
2907      if test "$with_ffmpeg_dts" = "yes"; then
2908              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2909              AC_CHECK_LIB(dts_pic, dts_free, 
2910                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2911                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2912              LDFLAGS="${LDFLAGS_save}"
2913      fi])
2914
2915  AC_ARG_WITH(ffmpeg-vorbis,
2916    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2917    [
2918      if test "$with_ffmpeg_vorbis" = "yes"; then
2919         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2920      fi])
2921
2922  AC_ARG_WITH(ffmpeg-theora,
2923    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2924    [
2925      if test "$with_ffmpeg_theora" = "yes"; then
2926         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2927      fi])
2928
2929  AC_ARG_WITH(ffmpeg-ogg,
2930    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2931    [
2932      if test "$with_ffmpeg_ogg" = "yes"; then
2933         VLC_ADD_LIBS([ffmpeg],[-logg])
2934      fi])
2935
2936  AC_ARG_WITH(ffmpeg-zlib,
2937    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2938    [
2939      if test "$with_ffmpeg_zlib" = "yes"; then
2940         VLC_ADD_LIBS([ffmpeg],[-lz])
2941      fi])
2942
2943  AC_ARG_WITH(ffmpeg-amrnb,
2944    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2945    [
2946      if test "$with_ffmpeg_amrnb" = "yes";      then
2947         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2948      fi])
2949
2950  AC_ARG_WITH(ffmpeg-amrwb,
2951    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2952    [
2953      if test "$with_ffmpeg_amrwb" = "yes";      then
2954         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
2955      fi])
2956
2957  AC_ARG_WITH(ffmpeg-x264,
2958    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libamrnb support],
2959    [
2960      if test "$with_ffmpeg_x264" = "yes";       then
2961         VLC_ADD_LIBS([ffmpeg],[-lx264])
2962      fi])
2963
2964  AC_ARG_WITH(ffmpeg-a52,
2965    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
2966    [
2967      if test "$with_ffmpeg_a52" = "yes";        then
2968         VLC_ADD_LIBS([ffmpeg],[-la52])
2969      fi])
2970
2971  dnl
2972  dnl test for --with-ffmpeg-tree
2973  dnl
2974  AC_ARG_WITH(ffmpeg-tree,
2975    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2976
2977  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2978    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2979    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2980    if test -z "${real_ffmpeg_tree}"; then
2981      dnl  The given directory can't be found
2982      AC_MSG_RESULT(no)
2983      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2984    fi
2985    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2986      dnl  The given libavcodec wasn't built
2987      AC_MSG_RESULT(no)
2988      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2989    fi
2990    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2991      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2992        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
2993      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2994         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2995         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2996      else
2997        dnl  The given libavcodec wasn't built with --enable-pp
2998        AC_MSG_RESULT(no)
2999        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3000      fi
3001    fi
3002    dnl  Use a custom libffmpeg
3003    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3004
3005    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3006    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3007    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3008    export PKG_CONFIG_PATH=""
3009    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3010
3011    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3012         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3013         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3014       ,[])
3015    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3016          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3017    ],[
3018         unset PKG_CONFIG_PATH
3019    ])
3020    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[   
3021         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3022    ],[
3023         unset PKG_CONFIG_LIBDIR
3024    ])
3025
3026    VLC_ADD_BUILTINS([ffmpeg])
3027    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3028      VLC_ADD_BUILTINS([stream_out_switcher])
3029    fi
3030
3031    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3032      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3033      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3034      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3035    fi
3036 else
3037
3038 dnl Look for a ffmpeg-config (we are on debian )
3039
3040   FFMPEG_PATH="${PATH}"
3041   AC_ARG_WITH(ffmpeg-config-path,
3042     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
3043     [ if test "${with_ffmpeg_config_path}" != "no"
3044       then
3045         FFMPEG_PATH="${with_ffmpeg_config_path}"
3046       fi ])
3047   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
3048   if test "${FFMPEG_CONFIG}" != "no"
3049   then
3050     AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3051     AC_CHECK_HEADERS(ffmpeg/avformat.h)
3052     AC_CHECK_HEADERS(ffmpeg/avutil.h)
3053     AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3054     VLC_ADD_PLUGINS([ffmpeg])
3055     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3056         VLC_ADD_PLUGINS([stream_out_switcher])
3057     fi
3058     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
3059     VLC_ADD_LIBS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
3060
3061  else
3062
3063 dnl Trying with pkg-config
3064    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3065     [
3066      VLC_SAVE_FLAGS
3067      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3068      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3069      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3070      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3071      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3072      dnl newer ffmpeg have a separate libpostproc
3073      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3074        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3075        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3076        ],[ true ])
3077      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3078      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3079      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3080      if test "${SYS}" = "darwin"; then
3081         VLC_ADD_BUILTINS([ffmpeg])
3082      else
3083         VLC_ADD_PLUGINS([ffmpeg])
3084      fi
3085      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3086         if test "${SYS}" = "darwin"; then
3087             VLC_ADD_BUILTINS([stream_out_switcher])
3088         else
3089             VLC_ADD_PLUGINS([stream_out_switcher])
3090         fi
3091      fi
3092      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3093      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3094
3095      dnl even newer ffmpeg has a libswscale
3096      PKG_CHECK_MODULES(SWSCALE,[libavutil, libswscale],[
3097        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3098        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3099        AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3100 dnl       AC_CHECK_LIB(swscale, sws_getContext,
3101 dnl         [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[])
3102 dnl       ],[ true ])
3103      VLC_RESTORE_FLAGS
3104     ],[
3105
3106     dnl
3107     dnl last chance: at the default place
3108     dnl
3109       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3110       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
3111       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3112       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3113       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3114       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3115
3116       AC_CHECK_LIB(avutil, av_crc_init, [
3117         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3118         LDAVUTIL="-lavutil"])
3119
3120       AC_CHECK_LIB(avcodec, avcodec_init, [
3121         VLC_ADD_BUILTINS([ffmpeg])
3122         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3123         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3124             VLC_ADD_BUILTINS([stream_out_switcher])
3125         fi],
3126          [ 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])
3127
3128       AC_CHECK_LIB(postproc, pp_postprocess, [
3129         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3130       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3131         [$LDAVUTIL])
3132
3133       AC_CHECK_LIB(avformat, av_open_input_stream, [
3134         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3135       LDFLAGS="${LDFLAGS_save}"
3136       CPPFLAGS="${CPPFLAGS_save}"
3137
3138       AC_CHECK_LIB(swscale, sws_getContext, [
3139         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3140         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3141       LDFLAGS="${LDFLAGS_save}"
3142       CPPFLAGS="${CPPFLAGS_save}"
3143     ])
3144   fi
3145  fi 
3146 fi
3147
3148 dnl
3149 dnl  ffmpegaltivec plugin
3150 dnl
3151 AC_ARG_ENABLE(ffmpegaltivec,
3152 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3153 if test "${enable_ffmpegaltivec}" = "yes"
3154 then
3155   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3156     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3157     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3158     if test -z "${real_ffmpeg_tree}"; then
3159       dnl  The given directory can't be found
3160       AC_MSG_RESULT(no)
3161       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3162     fi
3163     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3164       dnl  The given libavcodecaltivec wasn't built
3165       AC_MSG_RESULT(no)
3166       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3167     fi
3168     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3169       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3170       AC_MSG_RESULT(no)
3171       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3172     fi
3173     dnl  Use a custom libffmpeg
3174     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3175     VLC_ADD_BUILTINS([ffmpegaltivec])
3176     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3177     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3178     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3179
3180     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3181       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3182       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3183       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3184     fi
3185     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3186     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3187   fi
3188 fi
3189
3190 dnl
3191 dnl  faad decoder plugin
3192 dnl
3193 AC_ARG_ENABLE(faad,
3194 [  --enable-faad           faad codec (default disabled)])
3195 if test "${enable_faad}" = "yes"
3196 then
3197   AC_ARG_WITH(faad-tree,
3198   [    --with-faad-tree=PATH faad tree for static linking])
3199   if test -n "${with_faad_tree}"
3200   then
3201     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3202     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3203     if test -z "${real_faad_tree}"
3204     then
3205       dnl  The given directory can't be found
3206       AC_MSG_RESULT(no)
3207       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3208     fi
3209     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3210     then
3211       dnl  Use a custom faad
3212       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3213       VLC_ADD_BUILTINS([faad])
3214       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3215       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3216     else
3217       dnl  The given libfaad wasn't built
3218       AC_MSG_RESULT(no)
3219       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3220     fi
3221   else
3222     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3223     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
3224     AC_CHECK_HEADERS(faad.h, ,
3225       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3226     AC_CHECK_LIB(faad, faacDecOpen, [
3227       VLC_ADD_PLUGINS([faad])
3228       VLC_ADD_LIBS([faad],[-lfaad]) ],
3229       AC_CHECK_LIB(faad, NeAACDecOpen, [
3230         VLC_ADD_PLUGINS([faad])
3231         VLC_ADD_LIBS([faad],[-lfaad]) ],
3232         [ AC_MSG_ERROR([Cannot find libfaad library...]) ],[-lm]))
3233     LDFLAGS="${LDFLAGS_save}"
3234     CPPFLAGS="${CPPFLAGS_save}"
3235   fi
3236 fi
3237
3238 dnl
3239 dnl twolame encoder plugin
3240 dnl
3241 AC_ARG_ENABLE(twolame,
3242 [  --enable-twolame        twolame codec (default disabled)])
3243 if test "${enable_twolame}" = "yes"
3244 then
3245   AC_ARG_WITH(twolame-tree,
3246   [    --with-twolame-tree=PATH twolame tree for static linking])
3247   if test -n "${with_twolame_tree}"
3248   then
3249     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3250     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3251     if test -z "${real_twolame_tree}"
3252     then
3253       dnl  The given directory can't be found
3254       AC_MSG_RESULT(no)
3255       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3256     fi
3257     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3258     then
3259       dnl  Use a custom twolame
3260       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3261       VLC_ADD_BUILTINS([twolame])
3262       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3263       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3264     else
3265       dnl  The given libtwolame wasn't built
3266       AC_MSG_RESULT(no)
3267       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3268     fi
3269   else
3270     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3271     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3272     AC_CHECK_HEADERS(twolame.h, ,
3273       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3274     AC_CHECK_LIB(twolame, twolame_init, [
3275       VLC_ADD_PLUGINS([twolame])
3276       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3277       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3278         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3279     LDFLAGS="${LDFLAGS_save}"  
3280     CPPFLAGS="${CPPFLAGS_save}"
3281   fi
3282 fi
3283
3284 dnl
3285 dnl  QuickTime plugin
3286 dnl
3287 AC_ARG_ENABLE(quicktime,
3288   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3289 if test "${enable_quicktime}" != "no" &&
3290   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3291 then
3292   if test "${SYS}" = "mingw32"; then
3293     VLC_ADD_BUILTINS([quicktime])
3294   else
3295   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3296     [ VLC_ADD_BUILTINS([quicktime])
3297       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3298     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3299   fi
3300 fi
3301
3302 dnl
3303 dnl  Real plugin
3304 dnl
3305 AC_ARG_ENABLE(real,
3306   [  --enable-real           Real audio module (default disabled)])
3307 if test "${enable_real}" = "yes"; then
3308   VLC_ADD_PLUGINS([realaudio])
3309 fi
3310
3311 dnl
3312 dnl  Real RTSP plugin
3313 dnl
3314 AC_ARG_ENABLE(realrtsp,
3315   [  --enable-realrtsp       Real RTSP module (default disabled)])
3316 if test "${enable_realrtsp}" = "yes"; then
3317   VLC_ADD_PLUGINS([access_realrtsp])
3318 fi
3319
3320 dnl
3321 dnl MP4 module
3322 dnl
3323 AC_CHECK_HEADERS(zlib.h, [
3324   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3325 ] )
3326
3327 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3328   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3329 ] )
3330
3331 dnl
3332 dnl skins2 module
3333 dnl
3334 AC_ARG_ENABLE(libtar,
3335   [  --enable-libtar support for skins2 (default enabled)])
3336
3337 AS_IF([test "${enable_libtar}" != "no"],[
3338   AC_CHECK_HEADERS(libtar.h, [
3339     VLC_ADD_LIBS([skins2],[-ltar])
3340   ] )
3341 ])
3342
3343 dnl
3344 dnl A52/AC3 decoder plugin
3345 dnl
3346 AC_ARG_ENABLE(a52,
3347   [  --enable-a52            A/52 support with liba52 (default enabled)])
3348 if test "${enable_a52}" != "no"
3349 then
3350   AC_ARG_WITH(a52,
3351     [    --with-a52=PATH       a52 headers and libraries])
3352   AC_ARG_WITH(a52-tree,
3353     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3354   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3355   then
3356     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3357     if test -z "${real_a52_tree}"
3358     then
3359       dnl  The given directory can't be found
3360       AC_MSG_RESULT(no)
3361       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3362     fi
3363     dnl  Use a custom a52dec
3364     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3365     if test -f ${real_a52_tree}/include/a52.h
3366     then
3367       AC_MSG_RESULT(yes)
3368       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3369       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3370       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32} -lm"
3371       AC_CHECK_LIB(a52, a52_free, [
3372         VLC_ADD_BUILTINS([a52tofloat32])
3373         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3374         VLC_ADD_LIBS([a52tofloat32],[-la52])
3375         ],[
3376         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3377         then
3378           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3379         else
3380           AC_MSG_ERROR([the specified tree hasn't been compiled])
3381         fi
3382       ])
3383       LDFLAGS="${LDFLAGS_save}"
3384     else
3385       AC_MSG_RESULT(no)
3386       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3387     fi
3388   else
3389     if test -z "${with_a52}"
3390     then
3391       LDFLAGS_test=""
3392       CPPFLAGS_test=""
3393     else
3394       LDFLAGS_test="-L${with_a52}/lib"
3395       CPPFLAGS_test="-I${with_a52}/include"
3396     fi
3397     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3398     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3399     AC_CHECK_HEADERS(a52dec/a52.h, [
3400       AC_CHECK_LIB(a52, a52_free, [
3401         VLC_ADD_PLUGINS([a52tofloat32])
3402         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3403         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3404       ],[
3405         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.])
3406         ])
3407     ],[
3408       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.])
3409     ])
3410     CPPFLAGS="${CPPFLAGS_save}"
3411     LDFLAGS="${LDFLAGS_save}"
3412   fi
3413 fi
3414
3415 AC_ARG_WITH(a52-fixed,
3416       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3417       [
3418         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3419
3420 dnl
3421 dnl DTS Coherent Acoustics decoder plugin
3422 dnl
3423 AS_IF([test "x${enable_dts}" != "x"], [
3424   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3425 ])
3426 AS_IF([test "x${with_dts_tree}" != "x"], [
3427   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3428 ])
3429
3430 AC_ARG_ENABLE(dca,
3431   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3432 AS_IF([test "${enable_dca}" != "no"], [
3433   AC_ARG_WITH(dca-tree,
3434     [    --with-dca-tree=PATH  libdca tree for static linking],,
3435     [with_dca_tree="no"])
3436   AS_IF([test "${with_dca_tree}" != "no"], [
3437     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3438     AS_IF([test -z "${real_dca_tree}"], [
3439       dnl  The given directory can't be found
3440       AC_MSG_RESULT(no)
3441       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3442     ])
3443     dnl  Use a custom libdca
3444     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3445     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3446       AC_MSG_RESULT(yes)
3447       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3448       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3449         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3450       ], [
3451         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3452       ])
3453     ], [
3454       AC_MSG_RESULT(no)
3455       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3456     ])
3457   ], [
3458     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3459       VLC_ADD_PLUGINS([dtstofloat32])
3460       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3461       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3462     ], [
3463       AS_IF([test "x${enable_dca}" != "x"], [
3464         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3465       ])
3466     ])
3467   ])
3468 ])
3469
3470 dnl
3471 dnl  Flac plugin
3472 dnl
3473 AC_ARG_ENABLE(flac,
3474   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3475 if test "${enable_flac}" = "yes"
3476 then
3477   AC_ARG_WITH(flac-tree,
3478   [    --with-flac-tree=PATH flac tree for static linking])
3479   if test -n "${with_flac_tree}"
3480   then
3481     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3482     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3483     if test -z "${real_flac_tree}"
3484     then
3485       dnl  The given directory can't be found
3486       AC_MSG_RESULT(no)
3487       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3488     fi
3489     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3490     then
3491       dnl  Use a custom flac
3492       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3493       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3494       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3495       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3496     else
3497       dnl  The given flac wasn't built
3498       AC_MSG_RESULT(no)
3499       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3500     fi
3501   else
3502     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3503       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3504      ],[])
3505   fi
3506 fi
3507
3508 dnl
3509 dnl  Libmpeg2 plugin
3510 dnl
3511 AC_ARG_ENABLE(libmpeg2,
3512   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3513 if test "${enable_libmpeg2}" != "no"
3514 then
3515   AC_ARG_WITH(libmpeg2-tree,
3516   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3517   if test -n "${with_libmpeg2_tree}"
3518   then
3519     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3520     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3521     if test -z "${real_libmpeg2_tree}"
3522     then
3523       dnl  The given directory can't be found
3524       AC_MSG_RESULT(no)
3525       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3526     fi
3527     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3528     then
3529       dnl  Use a custom libmpeg2
3530       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3531       VLC_ADD_BUILTINS([libmpeg2])
3532       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3533       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3534       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3535     else
3536       dnl  The given libmpeg2 wasn't built
3537       AC_MSG_RESULT(no)
3538       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3539     fi
3540   else
3541     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3542       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3543       AC_EGREP_CPP(yes,
3544         [#include <mpeg2dec/mpeg2.h>
3545          #ifdef MPEG2_RELEASE
3546          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3547          yes
3548          #endif
3549          #endif],
3550         [AC_MSG_RESULT([yes])
3551           VLC_ADD_PLUGINS([libmpeg2])
3552           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3553         [AC_MSG_RESULT([no])
3554           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.])])],
3555
3556       [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.])]
3557     )
3558   fi
3559 fi
3560
3561 dnl
3562 dnl  Vorbis plugin
3563 dnl
3564 AC_ARG_ENABLE(vorbis,
3565   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3566 if test "${enable_vorbis}" != "no"
3567 then
3568   AC_ARG_WITH(vorbis-tree,
3569   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3570   if test -n "${with_vorbis_tree}"
3571   then
3572     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3573     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3574     if test -z "${real_vorbis_tree}"
3575     then
3576       dnl  The given directory can't be found
3577       AC_MSG_RESULT(no)
3578       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3579     fi
3580     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3581     then
3582       dnl  Use a custom vorbis 
3583       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3584       VLC_ADD_PLUGINS([vorbis])
3585       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3586       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3587     else
3588       dnl  The given vorbis wasn't built
3589       AC_MSG_RESULT(no)
3590       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3591     fi
3592   else
3593     AC_CHECK_HEADERS(vorbis/codec.h, [
3594       VLC_ADD_PLUGINS([vorbis])
3595       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3596
3597     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3598       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3599   fi
3600 fi
3601
3602 dnl
3603 dnl  Tremor plugin
3604 dnl
3605 AC_ARG_ENABLE(tremor,
3606   [  --enable-tremor         Tremor decoder support (default disabled)])
3607 if test "${enable_tremor}" = "yes"
3608 then
3609   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3610     VLC_ADD_PLUGINS([tremor])
3611     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3612    ],[])
3613 fi
3614
3615 dnl
3616 dnl  Speex plugin
3617 dnl
3618 AC_ARG_ENABLE(speex,
3619   [  --enable-speex          Speex decoder support (default enabled)])
3620 if test "${enable_speex}" != "no"
3621 then
3622   AC_ARG_WITH(speex-tree,
3623   [    --with-speex-tree=PATH speex tree for static linking])
3624   if test -n "${with_speex_tree}"
3625   then
3626     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3627     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3628     if test -z "${real_speex_tree}"
3629     then
3630       dnl  The given directory can't be found
3631       AC_MSG_RESULT(no)
3632       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3633     fi
3634     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3635     then
3636       dnl  Use a custom speex
3637       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3638       VLC_ADD_PLUGINS([speex])
3639       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3640       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3641     else
3642       dnl  The given speex wasn't built
3643       AC_MSG_RESULT(no)
3644       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3645     fi
3646   else
3647     AC_CHECK_HEADERS(speex/speex.h, [
3648       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3649       AC_CHECK_LIB(speex, speex_decode_int, [
3650         VLC_ADD_PLUGINS([speex])
3651         VLC_ADD_LIBS([speex],[-lspeex]) ],
3652         [ AC_MSG_RESULT([no])
3653           AC_MSG_WARN([Your libspeex is too old, please get the development
3654                        version.]) ],[])
3655       LDFLAGS="${LDFLAGS_save}"
3656       ],[])
3657   fi
3658 fi
3659
3660 dnl
3661 dnl  tarkin decoder plugin
3662 dnl
3663 AC_ARG_ENABLE(tarkin,
3664 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3665 if test "${enable_tarkin}" = "yes"
3666 then
3667   AC_ARG_WITH(tarkin-tree,
3668   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3669   if test -n "${with_tarkin_tree}"
3670   then
3671     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3672     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3673     if test -f "${real_tarkin_tree}/tarkin.o"
3674     then
3675       VLC_ADD_BUILTINS([tarkin])
3676       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3677       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])
3678       AC_MSG_RESULT(yes)
3679     else
3680       dnl  The given tarkin tree wasn't built
3681       AC_MSG_RESULT(no)
3682       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3683                     make sure you compiled tarkin in ${with_tarkin_tree}])
3684     fi
3685   fi
3686 fi
3687
3688 dnl
3689 dnl  theora decoder plugin
3690 dnl
3691 AC_ARG_ENABLE(theora,
3692 [  --enable-theora         experimental theora codec (default disabled)])
3693 if test "${enable_theora}" = "yes"
3694 then
3695   AC_CHECK_HEADERS(theora/theora.h, [
3696     AC_CHECK_LIB(theora, theora_granule_time, [
3697       VLC_ADD_PLUGINS([theora])
3698       theora_libs="-ltheora -logg"
3699       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3700       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3701 You also need to check that you have a libogg posterior to the 1.0 release.])],
3702       [-logg])
3703   ])
3704 fi
3705
3706 dnl
3707 dnl  dirac decoder plugin
3708 dnl
3709 AC_ARG_ENABLE(dirac,
3710 [  --enable-dirac          experimental dirac codec (default disabled)])
3711 if test "${enable_dirac}" = "yes"; then
3712   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.8.0], [
3713       VLC_ADD_PLUGINS([dirac])
3714       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3715       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3716       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3717   ])
3718 fi
3719
3720 dnl
3721 dnl  PNG decoder module
3722 dnl
3723 AC_ARG_ENABLE(png,
3724   [  --enable-png            PNG support (default enabled)])
3725 if test "${enable_png}" != "no"; then
3726 AC_CHECK_HEADERS(png.h, [
3727   LDFLAGS="${LDFLAGS_save} -lz"
3728   AC_CHECK_LIB(png, png_set_rows, [
3729     VLC_ADD_LIBS([png],[-lpng -lz])
3730     VLC_ADD_PLUGINS([png])
3731     VLC_ADD_PLUGINS([osdmenu])
3732     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3733     [],[-lz])
3734   LDFLAGS="${LDFLAGS_save}"
3735   ])
3736 fi
3737
3738 dnl
3739 dnl H264 encoder plugin (using libx264)
3740 dnl
3741 AC_ARG_ENABLE(x264,
3742   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3743 if test "${enable_x264}" != "no"; then
3744   AC_ARG_WITH(x264-tree,
3745     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3746   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3747   then
3748     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3749     if test -z "${real_x264_tree}"
3750     then
3751       dnl  The given directory can't be found
3752       AC_MSG_RESULT(no)
3753       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3754     fi
3755     dnl  Use a custom libx264
3756     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3757     if test -f ${real_x264_tree}/x264.h
3758     then
3759       AC_MSG_RESULT(yes)
3760       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3761       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3762       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3763       AC_CHECK_LIB(x264, x264_encoder_open, [
3764         VLC_ADD_BUILTINS([x264])
3765         VLC_ADD_LIBS([x264],[-lx264])
3766       ],[
3767         AC_MSG_ERROR([the specified tree hasn't been compiled])
3768       ])
3769       LDFLAGS="${LDFLAGS_save}"
3770     else
3771       AC_MSG_RESULT(no)
3772       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3773     fi
3774   else
3775     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3776     AC_CHECK_HEADERS(x264.h, [
3777       AC_CHECK_LIB(x264, x264_encoder_open, [
3778         VLC_ADD_PLUGINS([x264])
3779         VLC_ADD_LIBS([x264],[-lx264])
3780       ],[
3781         if test "${enable_x264}" = "yes"; then
3782             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3783           fi
3784       ])
3785     ])
3786     LDFLAGS="${LDFLAGS_save}"
3787   fi
3788 fi
3789
3790 dnl
3791 dnl libfluidsynth (MIDI synthetizer) plugin
3792 dnl
3793 AC_ARG_ENABLE(fluidsynth,
3794   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default auto)])
3795 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3796   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3797     VLC_ADD_PLUGINS(fluidsynth)
3798     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3799     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3800   ], [
3801     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3802       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3803     ])
3804   ])
3805 ])
3806
3807 dnl
3808 dnl Teletext Modules
3809 dnl vbi decoder plugin (using libzbvi)
3810 dnl telx module
3811 dnl uncompatible
3812 dnl
3813 AC_ARG_ENABLE(zvbi,
3814   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3815 AC_ARG_ENABLE(telx,
3816   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3817
3818 AS_IF( [test "${enable_zvbi}" != "no"],[
3819   AS_IF( [test "${enable_telx}" = "yes"],[
3820     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3821   ],[
3822     PKG_CHECK_MODULES(ZVBI,
3823         zvbi-0.2 >= 0.2.25,
3824         [
3825           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3826           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3827           VLC_ADD_PLUGINS([zvbi])
3828           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3829         ],[
3830           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3831           enable_telx="yes"
3832         ])
3833     ])  
3834   ])
3835 AS_IF( [test "${enable_telx}" = "yes"],[
3836   VLC_ADD_PLUGINS([telx])
3837   ])
3838
3839 dnl
3840 dnl  CMML plugin
3841 dnl
3842 AC_ARG_ENABLE(cmml,
3843   [  --enable-cmml           CMML support (default enabled)])
3844 if test "${enable_cmml}" != "no"
3845 then
3846   VLC_ADD_PLUGINS([cmml])
3847 fi
3848
3849
3850 dnl
3851 dnl  Video plugins
3852 dnl
3853
3854 AC_ARG_WITH(,[Video plugins:])
3855
3856 dnl Check for DPMS
3857 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3858   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3859   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3860     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3861     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3862       AC_MSG_RESULT(yes)
3863       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3864                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3865     ],[
3866       AC_MSG_RESULT(no)
3867     ])
3868   ],,[
3869     #include <X11/Xlib.h>
3870   ])
3871   CPPFLAGS="${CPPFLAGS_save}"
3872 fi
3873
3874 dnl
3875 dnl  X11 module
3876 dnl  (enabled by default except on win32)
3877 dnl
3878 AC_ARG_ENABLE(x11,
3879   [  --enable-x11            X11 support (default enabled)])
3880 if test "${enable_x11}" != "no" &&
3881   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3882    test "${enable_x11}" = "yes"); then
3883   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3884   AC_CHECK_HEADERS(X11/Xlib.h, [
3885     VLC_ADD_PLUGINS([panoramix])
3886     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3887     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3888     AC_CHECK_LIB(Xext, XShmAttach, [
3889       VLC_ADD_PLUGINS([x11])
3890       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3891       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3892     ])
3893   ])
3894   CPPFLAGS="${CPPFLAGS_save}"
3895 fi
3896
3897 dnl
3898 dnl  XVideo module
3899 dnl  (enabled by default except on win32)
3900 dnl
3901 AC_ARG_ENABLE(xvideo,
3902   [  --enable-xvideo         XVideo support (default enabled)])
3903 if test "${enable_xvideo}" != "no" &&
3904   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3905    test "${enable_xvideo}" = "yes"); then
3906   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3907   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3908     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3909     AC_CHECK_LIB(Xv,XvPutImage,[
3910       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3911       # test for libXv_pic.
3912       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3913         VLC_ADD_PLUGINS([xvideo])
3914         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3915         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3916       else
3917         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3918           VLC_ADD_PLUGINS([xvideo])
3919           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3920           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3921         ],[
3922           VLC_ADD_BUILTINS([xvideo])
3923           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3924           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3925         ])
3926       fi
3927     ])
3928     CFLAGS="${CFLAGS_save}"
3929   ]
3930   CPPFLAGS="${CPPFLAGS_save}")
3931 fi
3932
3933 dnl
3934 dnl  GLX module
3935 dnl  (enabled by default except on win32)
3936 dnl
3937 AC_ARG_ENABLE(glx,
3938   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3939 if test "${enable_glx}" != "no" &&
3940   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3941    test "${enable_glx}" = "yes"); then
3942   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3943   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3944   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3945     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3946     choke me
3947     #endif]]),
3948     [
3949       VLC_ADD_PLUGINS([glx])
3950       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3951       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3952     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3953   CPPFLAGS="${CPPFLAGS_save}"
3954 fi
3955
3956 dnl
3957 dnl  XVMC module
3958 dnl  (enabled by default except on win32)
3959 dnl
3960 AC_ARG_ENABLE(xvmc,
3961   [  --enable-xvmc           XVMC support (default disabled)])
3962 if test "${enable_xvmc}" = "yes" &&
3963   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3964    test "${enable_xvmc}" = "yes"); then
3965   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3966   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3967     VLC_ADD_PLUGINS([xvmc])
3968     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3969     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3970   ])
3971   CPPFLAGS="${CPPFLAGS_save}"
3972 fi
3973
3974 dnl
3975 dnl  Check for the Xinerama extension
3976 dnl
3977 AC_ARG_ENABLE(xinerama,
3978   [  --enable-xinerama       Xinerama support (default enabled)])
3979 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3980   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3981    test "${enable_xvideo}" = "yes"); then
3982   ac_cv_have_xinerama="no"
3983   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3984   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3985   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3986     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3987       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3988       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3989       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3990       ac_cv_have_xinerama="yes"
3991     ],[
3992       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3993         VLC_ADD_LIBS([xvideo],[-lXinerama])
3994         VLC_ADD_LIBS([x11],[-lXinerama])
3995         VLC_ADD_LIBS([glx],[-lXinerama])
3996         ac_cv_have_xinerama="yes"
3997       ])
3998     ])
3999   ])
4000   if test "${ac_cv_have_xinerama}" = "yes"; then
4001     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4002   fi
4003   CFLAGS="${CFLAGS_save}"
4004   CPPFLAGS="${CPPFLAGS_save}"
4005
4006 dnl
4007 dnl  Check for XF86VidMode extension
4008 dnl
4009   ac_cv_have_xf86vidmode="no"
4010   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4011   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4012   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4013     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4014       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4015       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4016       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4017       ac_cv_have_xf86vidmode="yes"
4018     ],[
4019       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4020         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4021         VLC_ADD_LIBS([x11],[-lXxf86vm])
4022         VLC_ADD_LIBS([glx],[-lXxf86vm])
4023         ac_cv_have_xf86vidmode="yes"
4024       ])
4025     ])
4026   ],[true],
4027 [#ifdef HAVE_X11_XLIB_H
4028 # include <X11/Xlib.h>
4029 #endif]
4030    )
4031   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4032     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4033   ])
4034   CFLAGS="${CFLAGS_save}"
4035   CPPFLAGS="${CPPFLAGS_save}"
4036
4037 fi
4038
4039 dnl
4040 dnl  OpenGL module
4041 dnl  (enabled by default except on beos)
4042 dnl
4043 AC_ARG_ENABLE(opengl,
4044   [  --enable-opengl         OpenGL support (default enabled)])
4045 if test "${enable_opengl}" != "no" &&
4046    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4047   if test "${SYS}" != "darwin"; then
4048     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4049       VLC_ADD_PLUGINS([opengl])
4050       if test "${SYS}" != "mingw32"; then
4051         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4052       else
4053         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4054       fi
4055     ])
4056   else
4057     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4058     VLC_ADD_PLUGINS([opengl])
4059     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4060   fi
4061 fi
4062
4063 dnl
4064 dnl  SDL module
4065 dnl
4066 AC_ARG_ENABLE(sdl,
4067   [  --enable-sdl            SDL support (default enabled)])
4068 AC_ARG_ENABLE(sdl-image,
4069   [  --enable-sdl-image      SDL image support (default enabled)])
4070 if test "${enable_sdl}" != "no"
4071 then
4072   SDL_PATH="${PATH}"
4073   AC_ARG_WITH(sdl-config-path,
4074     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4075     [ if test "${with_sdl_config_path}" != "no"
4076       then
4077         SDL_PATH="${with_sdl_config_path}:${PATH}"
4078       fi ])
4079   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4080   SDL_CONFIG="${SDL12_CONFIG}"
4081   SDL_HEADER="SDL12/SDL.h"
4082   SDL_IMAGE="SDL12/SDL_image.h"
4083   if test "${SDL_CONFIG}" = "no"
4084   then
4085     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4086     SDL_CONFIG=${SDL11_CONFIG}
4087     SDL_HEADER="SDL11/SDL.h"
4088     SDL_IMAGE="SDL11/SDL_image.h"
4089   fi
4090   if test "${SDL_CONFIG}" = "no"
4091   then
4092     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4093     SDL_HEADER="SDL/SDL.h"
4094     SDL_IMAGE="SDL/SDL_image.h"
4095   fi
4096   # check for cross-compiling
4097   SDL_PREFIX=
4098   AC_ARG_WITH(sdl-prefix,
4099     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4100                                e.g use as:
4101                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4102   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4103   then
4104     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4105   fi
4106   if test "${SDL_CONFIG}" != "no"
4107   then
4108     # SDL on Darwin is heavily patched and can only run SDL_image
4109     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4110       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4111     fi
4112     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4113     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4114     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4115     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4116       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4117       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4118           As a last resort we also test for SDL.h presence),
4119       [ AC_MSG_ERROR([The development package for SDL is not installed.
4120 Please install it and try again. Alternatively you can also configure with
4121 --disable-sdl.])
4122       ])])
4123     AS_IF([ test "${enable_sdl_image}" != "no"],[
4124       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4125         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4126         VLC_ADD_PLUGINS([sdl_image])
4127         AC_CHECK_LIB(png, png_set_rows,
4128           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4129         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4130           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4131         AC_CHECK_LIB(tiff, TIFFClientOpen,
4132           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4133         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4134         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4135             As a last resort we also test for SDL_image.h presence),
4136         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4137   You should install it alongside your SDL package.])
4138         ])])
4139     ])
4140     CPPFLAGS="${CPPFLAGS_save}"
4141     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4142     then
4143       AC_MSG_ERROR([The development package for SDL is not installed.
4144 Please install it and try again. Alternatively you can also configure with
4145 --disable-sdl.])
4146     fi
4147
4148   elif test "${enable_sdl}" =  "yes"
4149   then
4150     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4151 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4152     ])
4153   fi
4154 fi
4155
4156 dnl
4157 dnl  freetype module
4158 dnl
4159 AC_ARG_ENABLE(freetype,
4160   [  --enable-freetype       freetype support (default enabled)])
4161 AC_ARG_ENABLE(fribidi,
4162   [  --enable-fribidi        fribidi support (default enabled)])
4163 if test "${enable_freetype}" != "no"
4164 then
4165   FREETYPE_PATH="${PATH}"
4166   AC_ARG_WITH(freetype-config-path,
4167     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4168     [ if test "${with_freetype_config_path}" != "no"
4169       then
4170         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4171       fi ])
4172   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4173
4174   if test "${FREETYPE_CONFIG}" != "no"
4175   then
4176     VLC_ADD_PLUGINS([freetype])
4177     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4178     VLC_ADD_LIBS([freetype],[`${FREETYPE_CONFIG} --libs`])
4179     if test "${SYS}" = "mingw32"; then
4180        VLC_ADD_LIBS([freetype],[-lxml2])
4181     fi
4182     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4183       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4184        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4185     AC_CHECK_HEADERS(Carbon/Carbon.h,
4186       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4187   elif test "${enable_freetype}" =  "yes"
4188   then
4189     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4190 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4191     ])
4192   fi
4193
4194   dnl fribidi support
4195   if test "${enable_fribidi}" != "no"
4196   then
4197     FRIBIDI_PATH="${PATH}"
4198     AC_ARG_WITH(fribidi-config-path,
4199       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4200       [ if test "${with_fribidi_config_path}" != "no"
4201         then
4202           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4203         fi ])
4204     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4205
4206     if test "${FRIBIDI_CONFIG}" != "no"
4207     then
4208       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4209       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4210       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4211       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4212     fi
4213   fi
4214 fi
4215
4216 dnl
4217 dnl  libxml2 module
4218 dnl
4219 AC_ARG_ENABLE(libxml2,
4220   [  --enable-libxml2        libxml2 support (default enabled)])
4221 if test "${enable_libxml2}" != "no"
4222 then
4223   XML2_PATH="${PATH}"
4224   AC_ARG_WITH(xml2-config-path,
4225     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4226     [ if test "${with_xml2_config_path}" != "no"; then
4227         XML2_PATH="${with_xml2_config_path}:${PATH}"
4228       fi ])
4229   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4230   if test "${XML2_CONFIG}" != "no"; then
4231     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4232     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4233     dnl depends on the xmlTextReader extension
4234     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4235     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4236     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4237       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4238         VLC_ADD_PLUGINS([xml]) ],[
4239           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4240           if test "${enable_xml2}" = "yes"; then
4241             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4242           fi])
4243        ],[
4244       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4245       if test "${enable_xml2}" = "yes"; then
4246         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4247       fi])
4248     LDFLAGS="${LDFLAGS_save}"
4249     CPPFLAGS="${CPPFLAGS_save}"
4250   else
4251     if test "${enable_xml2}" = "yes"; then
4252       AC_MSG_ERROR([Could not find libxml2])
4253     fi
4254   fi
4255 fi
4256
4257 dnl
4258 dnl  SVG module
4259 dnl
4260 AC_ARG_ENABLE(svg,
4261   [  --enable-svg            SVG support (default disabled)])
4262 if test "${enable_svg}" = "yes"
4263 then
4264   PKG_CHECK_MODULES(SVG, 
4265         librsvg-2.0 >= 2.9.0,
4266         [
4267           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4268           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4269           VLC_ADD_PLUGINS([svg]) ],
4270         [AC_MSG_WARN(SVG library not found)])
4271 fi
4272
4273 dnl
4274 dnl Snapshot vout module (with cache)
4275 dnl
4276 AC_ARG_ENABLE(snapshot,
4277   [  --enable-snapshot       snapshot module (default disabled)])
4278 if test "${enable_snapshot}" = "yes"
4279 then
4280   VLC_ADD_PLUGINS([snapshot])
4281 fi
4282
4283 dnl
4284 dnl  Qt Embedded module
4285 dnl  (disabled by default)
4286 dnl
4287 AC_ARG_ENABLE(qte,
4288   [  --enable-qte            QT Embedded support (default disabled)])
4289 if test "${enable_qte}" = "yes"
4290 then
4291   AC_ARG_WITH(qte,
4292   [    --with-qte=PATH       Qt Embedded headers and libraries])
4293   if test "${with_qte}" != "no" -a -n "${with_qte}"
4294   then
4295     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4296     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])
4297   else
4298     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4299     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4300   fi
4301   VLC_ADD_PLUGINS([qte])
4302   NEED_QTE_MAIN=yes
4303   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4304   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4305     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4306   ] )
4307   CPPFLAGS="${CPPFLAGS_save}"
4308 fi
4309
4310 dnl
4311 dnl  Qt Video output module
4312 dnl  (disabled by default)
4313 dnl
4314 dnl AC_ARG_ENABLE(qt_video,
4315 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4316 dnl if test "${enable_qt_video}" = "yes"
4317 dnl then
4318 dnl  VLC_ADD_PLUGINS([qt_video])
4319 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4320 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4321 dnl   AC_CHECK_LIB(qt-mt,main,[
4322 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4323 dnl  ],[
4324 dnl    AC_CHECK_LIB(qt,main,[
4325 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4326 dnl    ])
4327 dnl  ])
4328 dnl  NEED_QTE_MAIN=yes
4329 dnl  LDFLAGS="${LDFLAGS_save}"
4330 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4331 dnl fi
4332
4333 dnl
4334 dnl Roku HD1000 Video output module
4335 dnl
4336 AC_ARG_ENABLE(hd1000v,
4337   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4338 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4339   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4340    test "${enable_hd1000v}" = "yes"); then
4341   AC_LANG_PUSH([C++])
4342   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4343   [
4344     can_build_roku="yes"
4345   ],
4346   [
4347     can_build_roku="no"
4348     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4349   ])
4350   if test "$can_build_roku" = "yes"
4351   then
4352     VLC_ADD_PLUGINS([hd1000v])
4353     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4354   fi
4355   AC_LANG_POP([C++])
4356 fi
4357
4358 dnl
4359 dnl  Windows DirectX module
4360 dnl
4361
4362 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4363 then
4364   VLC_ADD_PLUGINS([panoramix])
4365 fi
4366
4367 AC_ARG_ENABLE(directx,
4368   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4369 if test "${enable_directx}" != "no"
4370 then
4371   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4372   then
4373     AC_ARG_WITH(directx,
4374     [    --with-directx=PATH   Win32 DirectX headers])
4375     if test -z "${with_directx}"
4376     then
4377       AC_CHECK_HEADERS(ddraw.h,
4378       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4379         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4380       ])
4381       AC_CHECK_HEADERS(GL/gl.h,
4382       [ VLC_ADD_PLUGINS([glwin32])
4383         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4384       ])
4385       AC_CHECK_HEADERS(d3d9.h,
4386       [ VLC_ADD_PLUGINS([direct3d])
4387         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4388       ])
4389     else
4390       AC_MSG_CHECKING(for directX headers in ${with_directx})
4391       if test -f ${with_directx}/ddraw.h
4392       then
4393         VLC_ADD_PLUGINS([vout_directx aout_directx])
4394         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4395         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4396         AC_MSG_RESULT(yes)
4397       else
4398         AC_MSG_RESULT(no)
4399         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4400       fi
4401     fi
4402   fi
4403 fi
4404
4405 dnl
4406 dnl  Linux framebuffer module
4407 dnl
4408 AC_ARG_ENABLE(fb,
4409   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4410     if test "${enable_fb}" != "no"
4411     then
4412       AC_CHECK_HEADERS(linux/fb.h, [
4413         VLC_ADD_PLUGINS([fb])
4414       ])
4415     fi
4416
4417 dnl
4418 dnl  Linux MGA module
4419 dnl
4420 AC_ARG_ENABLE(mga,
4421   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4422   [ if test "${enable_mga}" = "yes"
4423     then
4424       VLC_ADD_PLUGINS([mga])
4425     fi ])
4426
4427 dnl
4428 dnl  SVGAlib module
4429 dnl
4430 AC_ARG_ENABLE(svgalib,
4431   [  --enable-svgalib        SVGAlib support (default disabled)])
4432 if test "${enable_svgalib}" = "yes"
4433 then