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