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