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