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