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