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