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