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