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