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