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