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