]> git.sesse.net Git - vlc/blob - configure.ac
Try to fix libtool on macos
[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  CMML plugin
3787 dnl
3788 AC_ARG_ENABLE(cmml,
3789   [  --enable-cmml           CMML support (default enabled)])
3790 if test "${enable_cmml}" != "no"
3791 then
3792   VLC_ADD_PLUGINS([cmml])
3793 fi
3794
3795
3796 dnl
3797 dnl  Video plugins
3798 dnl
3799
3800 AC_ARG_WITH(,[Video plugins:])
3801
3802 dnl Check for DPMS
3803 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3804   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3805   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3806     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3807     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3808       AC_MSG_RESULT(yes)
3809       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3810                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3811     ],[
3812       AC_MSG_RESULT(no)
3813     ])
3814   ],,[
3815     #include <X11/Xlib.h>
3816   ])
3817   CPPFLAGS="${CPPFLAGS_save}"
3818 fi
3819
3820 dnl
3821 dnl  X11 module
3822 dnl  (enabled by default except on win32)
3823 dnl
3824 AC_ARG_ENABLE(x11,
3825   [  --enable-x11            X11 support (default enabled)])
3826 if test "${enable_x11}" != "no" &&
3827   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3828    test "${enable_x11}" = "yes"); then
3829   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3830   AC_CHECK_HEADERS(X11/Xlib.h, [
3831     VLC_ADD_PLUGINS([panoramix])
3832     VLC_ADD_LDFLAGS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3833     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3834     AC_CHECK_LIB(Xext, XShmAttach, [
3835       VLC_ADD_PLUGINS([x11])
3836       VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3837       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3838     ])
3839   ])
3840   CPPFLAGS="${CPPFLAGS_save}"
3841 fi
3842
3843 dnl
3844 dnl  XVideo module
3845 dnl  (enabled by default except on win32)
3846 dnl
3847 AC_ARG_ENABLE(xvideo,
3848   [  --enable-xvideo         XVideo support (default enabled)])
3849 if test "${enable_xvideo}" != "no" &&
3850   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3851    test "${enable_xvideo}" = "yes"); then
3852   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3853   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3854     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3855     AC_CHECK_LIB(Xv,XvPutImage,[
3856       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3857       # test for libXv_pic.
3858       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3859         VLC_ADD_PLUGINS([xvideo])
3860         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3861         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3862       else
3863         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3864           VLC_ADD_PLUGINS([xvideo])
3865           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3866           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3867         ],[
3868           VLC_ADD_BUILTINS([xvideo])
3869           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3870           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3871         ])
3872       fi
3873     ])
3874     CFLAGS="${CFLAGS_save}"
3875   ]
3876   CPPFLAGS="${CPPFLAGS_save}")
3877 fi
3878
3879 dnl
3880 dnl  GLX module
3881 dnl  (enabled by default except on win32)
3882 dnl
3883 AC_ARG_ENABLE(glx,
3884   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3885 if test "${enable_glx}" != "no" &&
3886   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3887    test "${enable_glx}" = "yes"); then
3888   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3889   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3890   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3891     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3892     choke me
3893     #endif]]),
3894     [
3895       VLC_ADD_PLUGINS([glx])
3896       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3897       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3898     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3899   CPPFLAGS="${CPPFLAGS_save}"
3900 fi
3901
3902 dnl
3903 dnl  XVMC module
3904 dnl  (enabled by default except on win32)
3905 dnl
3906 AC_ARG_ENABLE(xvmc,
3907   [  --enable-xvmc            XVMC support (default disabled)])
3908 if test "${enable_xvmc}" = "yes" &&
3909   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3910    test "${enable_xvmc}" = "yes"); then
3911   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3912   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3913     VLC_ADD_PLUGINS([xvmc])
3914     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3915     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3916   ])
3917   CPPFLAGS="${CPPFLAGS_save}"
3918 fi
3919
3920 dnl
3921 dnl  Check for the Xinerama extension
3922 dnl
3923 AC_ARG_ENABLE(xinerama,
3924   [  --enable-xinerama       Xinerama support (default enabled)])
3925 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3926   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3927    test "${enable_xvideo}" = "yes"); then
3928   ac_cv_have_xinerama="no"
3929   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3930   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3931   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3932     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3933       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3934       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3935       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3936       ac_cv_have_xinerama="yes"
3937     ],[
3938       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3939         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3940         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3941         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3942         ac_cv_have_xinerama="yes"
3943       ])
3944     ])
3945   ])
3946   if test "${ac_cv_have_xinerama}" = "yes"; then
3947     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3948   fi
3949   CFLAGS="${CFLAGS_save}"
3950   CPPFLAGS="${CPPFLAGS_save}"
3951
3952 dnl
3953 dnl  Check for XF86VidMode extension
3954 dnl
3955   ac_cv_have_xf86vidmode="no"
3956   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3957   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3958   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3959     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3960       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3961       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3962       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3963       ac_cv_have_xf86vidmode="yes"
3964     ],[
3965       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3966         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3967         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3968         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3969         ac_cv_have_xf86vidmode="yes"
3970       ])
3971     ])
3972   ],[true],
3973 [#ifdef HAVE_X11_XLIB_H
3974 # include <X11/Xlib.h>
3975 #endif]
3976    )
3977   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3978     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3979   ])
3980   CFLAGS="${CFLAGS_save}"
3981   CPPFLAGS="${CPPFLAGS_save}"
3982
3983 fi
3984
3985 dnl
3986 dnl  OpenGL module
3987 dnl  (enabled by default except on beos)
3988 dnl
3989 AC_ARG_ENABLE(opengl,
3990   [  --enable-opengl         OpenGL support (default enabled)])
3991 if test "${enable_opengl}" != "no" &&
3992    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3993   if test "${SYS}" != "darwin"; then
3994     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3995       VLC_ADD_PLUGINS([opengl])
3996       if test "${SYS}" != "mingw32"; then
3997         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3998       else
3999         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
4000       fi
4001     ])
4002   else
4003     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4004     VLC_ADD_PLUGINS([opengl])
4005     VLC_ADD_LDFLAGS([opengl],[-Wl,-framework,OpenGL])
4006   fi
4007 fi
4008
4009 dnl
4010 dnl  SDL module
4011 dnl
4012 AC_ARG_ENABLE(sdl,
4013   [  --enable-sdl            SDL support (default enabled)])
4014 AC_ARG_ENABLE(sdl-image,
4015   [  --enable-sdl-image            SDL image support (default enabled)])
4016 if test "${enable_sdl}" != "no"
4017 then
4018   SDL_PATH="${PATH}"
4019   AC_ARG_WITH(sdl-config-path,
4020     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4021     [ if test "${with_sdl_config_path}" != "no"
4022       then
4023         SDL_PATH="${with_sdl_config_path}:${PATH}"
4024       fi ])
4025   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4026   SDL_CONFIG="${SDL12_CONFIG}"
4027   SDL_HEADER="SDL12/SDL.h"
4028   SDL_IMAGE="SDL12/SDL_image.h"
4029   if test "${SDL_CONFIG}" = "no"
4030   then
4031     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4032     SDL_CONFIG=${SDL11_CONFIG}
4033     SDL_HEADER="SDL11/SDL.h"
4034     SDL_IMAGE="SDL11/SDL_image.h"
4035   fi
4036   if test "${SDL_CONFIG}" = "no"
4037   then
4038     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4039     SDL_HEADER="SDL/SDL.h"
4040     SDL_IMAGE="SDL/SDL_image.h"
4041   fi
4042   # check for cross-compiling
4043   SDL_PREFIX=
4044   AC_ARG_WITH(sdl-prefix,
4045     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4046                                e.g use as:
4047                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4048   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4049   then
4050     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4051   fi
4052   if test "${SDL_CONFIG}" != "no"
4053   then
4054     # SDL on Darwin is heavily patched and can only run SDL_image
4055     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4056       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4057     fi
4058     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4059     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4060     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4061     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4062       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4063       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4064           As a last resort we also test for SDL.h presence),
4065       [ AC_MSG_ERROR([The development package for SDL is not installed.
4066 Please install it and try again. Alternatively you can also configure with
4067 --disable-sdl.])
4068       ])])
4069     AS_IF([ test "${enable_sdl_image}" != "no"],[
4070       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4071         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4072         VLC_ADD_PLUGINS([sdl_image])
4073         AC_CHECK_LIB(png, png_set_rows,
4074           [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
4075         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4076           [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
4077         AC_CHECK_LIB(tiff, TIFFClientOpen,
4078           [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
4079         VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
4080         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4081             As a last resort we also test for SDL_image.h presence),
4082         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4083   You should install it alongside your SDL package.])
4084         ])])
4085     ])
4086     CPPFLAGS="${CPPFLAGS_save}"
4087     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4088     then
4089       AC_MSG_ERROR([The development package for SDL is not installed.
4090 Please install it and try again. Alternatively you can also configure with
4091 --disable-sdl.])
4092     fi
4093
4094   elif test "${enable_sdl}" =  "yes"
4095   then
4096     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4097 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4098     ])
4099   fi
4100 fi
4101
4102 dnl
4103 dnl  freetype module
4104 dnl
4105 AC_ARG_ENABLE(freetype,
4106   [  --enable-freetype       freetype support (default enabled)])
4107 AC_ARG_ENABLE(fribidi,
4108   [  --enable-fribidi        fribidi support (default enabled)])
4109 if test "${enable_freetype}" != "no"
4110 then
4111   FREETYPE_PATH="${PATH}"
4112   AC_ARG_WITH(freetype-config-path,
4113     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4114     [ if test "${with_freetype_config_path}" != "no"
4115       then
4116         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4117       fi ])
4118   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4119
4120   if test "${FREETYPE_CONFIG}" != "no"
4121   then
4122     VLC_ADD_PLUGINS([freetype])
4123     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4124     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
4125     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4126       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4127        VLC_ADD_LDFLAGS([freetype],[-lfontconfig])])
4128     AC_CHECK_HEADERS(Carbon/Carbon.h,
4129       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4130   elif test "${enable_freetype}" =  "yes"
4131   then
4132     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4133 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4134     ])
4135   fi
4136
4137   dnl fribidi support
4138   if test "${enable_fribidi}" != "no"
4139   then
4140     FRIBIDI_PATH="${PATH}"
4141     AC_ARG_WITH(fribidi-config-path,
4142       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4143       [ if test "${with_fribidi_config_path}" != "no"
4144         then
4145           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4146         fi ])
4147     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4148
4149     if test "${FRIBIDI_CONFIG}" != "no"
4150     then
4151       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4152       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4153       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4154       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4155     fi
4156   fi
4157 fi
4158
4159 dnl
4160 dnl  libxml2 module
4161 dnl
4162 AC_ARG_ENABLE(libxml2,
4163   [  --enable-libxml2        libxml2 support (default enabled)])
4164 if test "${enable_libxml2}" != "no"
4165 then
4166   XML2_PATH="${PATH}"
4167   AC_ARG_WITH(xml2-config-path,
4168     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4169     [ if test "${with_xml2_config_path}" != "no"; then
4170         XML2_PATH="${with_xml2_config_path}:${PATH}"
4171       fi ])
4172   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4173   if test "${XML2_CONFIG}" != "no"; then
4174     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4175     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4176     dnl depends on the xmlTextReader extension
4177     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4178     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4179     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4180       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4181         VLC_ADD_PLUGINS([xml]) ],[
4182           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4183           if test "${enable_xml2}" = "yes"; then
4184             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4185           fi])
4186        ],[
4187       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4188       if test "${enable_xml2}" = "yes"; then
4189         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4190       fi])
4191     LDFLAGS="${LDFLAGS_save}"
4192     CPPFLAGS="${CPPFLAGS_save}"
4193   else
4194     if test "${enable_xml2}" = "yes"; then
4195       AC_MSG_ERROR([Could not find libxml2])
4196     fi
4197   fi
4198 fi
4199
4200 dnl
4201 dnl  SVG module
4202 dnl
4203 AC_ARG_ENABLE(svg,
4204   [  --enable-svg            SVG support (default disabled)])
4205 if test "${enable_svg}" = "yes"
4206 then
4207   PKG_CHECK_MODULES(SVG, 
4208         librsvg-2.0 >= 2.9.0,
4209         [
4210           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4211           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4212           VLC_ADD_PLUGINS([svg]) ],
4213         [AC_MSG_WARN(SVG library not found)])
4214 fi
4215
4216 dnl
4217 dnl Snapshot vout module (with cache)
4218 dnl
4219 AC_ARG_ENABLE(snapshot,
4220   [  --enable-snapshot       snapshot module (default disabled)])
4221 if test "${enable_snapshot}" = "yes"
4222 then
4223   VLC_ADD_PLUGINS([snapshot])
4224 fi
4225
4226 dnl
4227 dnl  Qt Embedded module
4228 dnl  (disabled by default)
4229 dnl
4230 AC_ARG_ENABLE(qte,
4231   [  --enable-qte            QT Embedded support (default disabled)])
4232 if test "${enable_qte}" = "yes"
4233 then
4234   AC_ARG_WITH(qte,
4235   [    --with-qte=PATH       Qt Embedded headers and libraries])
4236   if test "${with_qte}" != "no" -a -n "${with_qte}"
4237   then
4238     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4239     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])
4240   else
4241     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4242     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4243   fi
4244   VLC_ADD_PLUGINS([qte])
4245   NEED_QTE_MAIN=yes
4246   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4247   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4248     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4249   ] )
4250   CPPFLAGS="${CPPFLAGS_save}"
4251 fi
4252
4253 dnl
4254 dnl  Qt Video output module
4255 dnl  (disabled by default)
4256 dnl
4257 dnl AC_ARG_ENABLE(qt_video,
4258 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4259 dnl if test "${enable_qt_video}" = "yes"
4260 dnl then
4261 dnl  VLC_ADD_PLUGINS([qt_video])
4262 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
4263 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4264 dnl   AC_CHECK_LIB(qt-mt,main,[
4265 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4266 dnl  ],[
4267 dnl    AC_CHECK_LIB(qt,main,[
4268 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4269 dnl    ])
4270 dnl  ])
4271 dnl  NEED_QTE_MAIN=yes
4272 dnl  LDFLAGS="${LDFLAGS_save}"
4273 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4274 dnl fi
4275
4276 dnl
4277 dnl Roku HD1000 Video output module
4278 dnl
4279 AC_ARG_ENABLE(hd1000v,
4280   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4281 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4282   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4283    test "${enable_hd1000v}" = "yes"); then
4284   AC_LANG_PUSH([C++])
4285   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4286   [
4287     can_build_roku="yes"
4288   ],
4289   [
4290     can_build_roku="no"
4291     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4292   ])
4293   if test "$can_build_roku" = "yes"
4294   then
4295     VLC_ADD_PLUGINS([hd1000v])
4296     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4297   fi
4298   AC_LANG_POP([C++])
4299 fi
4300
4301 dnl
4302 dnl  Windows DirectX module
4303 dnl
4304
4305 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4306 then
4307   VLC_ADD_PLUGINS([panoramix])
4308 fi
4309
4310 AC_ARG_ENABLE(directx,
4311   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4312 if test "${enable_directx}" != "no"
4313 then
4314   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4315   then
4316     AC_ARG_WITH(directx,
4317     [    --with-directx=PATH   Win32 DirectX headers])
4318     if test -z "${with_directx}"
4319     then
4320       AC_CHECK_HEADERS(ddraw.h,
4321       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4322         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4323       ])
4324       AC_CHECK_HEADERS(GL/gl.h,
4325       [ VLC_ADD_PLUGINS([glwin32])
4326         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4327       ])
4328       AC_CHECK_HEADERS(d3d9.h,
4329       [ VLC_ADD_PLUGINS([direct3d])
4330         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4331       ])
4332     else
4333       AC_MSG_CHECKING(for directX headers in ${with_directx})
4334       if test -f ${with_directx}/ddraw.h
4335       then
4336         VLC_ADD_PLUGINS([vout_directx aout_directx])
4337         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4338         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4339         AC_MSG_RESULT(yes)
4340       else
4341         AC_MSG_RESULT(no)
4342         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4343       fi
4344     fi
4345   fi
4346 fi
4347
4348 dnl
4349 dnl  Linux framebuffer module
4350 dnl
4351 AC_ARG_ENABLE(fb,
4352   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4353     if test "${enable_fb}" != "no"
4354     then
4355       AC_CHECK_HEADERS(linux/fb.h, [
4356         VLC_ADD_PLUGINS([fb])
4357       ])
4358     fi
4359
4360 dnl
4361 dnl  Linux MGA module
4362 dnl
4363 AC_ARG_ENABLE(mga,
4364   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4365   [ if test "${enable_mga}" = "yes"
4366     then
4367       VLC_ADD_PLUGINS([mga])
4368     fi ])
4369
4370 dnl
4371 dnl  SVGAlib module
4372 dnl
4373 AC_ARG_ENABLE(svgalib,
4374   [  --enable-svgalib        SVGAlib support (default disabled)])
4375 if test "${enable_svgalib}" = "yes"
4376 then
4377   VLC_ADD_PLUGINS([svgalib])
4378   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4379 fi
4380
4381 dnl
4382 dnl  DirectFB module
4383 dnl
4384 AC_ARG_ENABLE(directfb,
4385   [  --enable-directfb       DirectFB support (default disabled)])
4386 if test "${enable_directfb}" = "yes"
4387 then
4388   if test "${with_directfb}" = "no"
4389   then
4390     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4391     if test "${have_directfb}"= "true"
4392     then
4393         VLC_ADD_PLUGINS([directfb])
4394         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4395         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4396     else
4397         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4398     fi
4399   else
4400     CPPFLAGS_save="${CPPFLAGS}"
4401     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4402     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4403     CPPFLAGS="${CPPFLAGS_save}"
4404     AC_ARG_WITH(directfb,
4405         [    --with-directfb=PATH  path to directfb],
4406         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4407         then
4408             VLC_ADD_PLUGINS([directfb])
4409             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4410             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4411         fi ],
4412         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4413   fi
4414 fi
4415
4416 dnl
4417 dnl  GGI module
4418 dnl
4419 AC_ARG_ENABLE(ggi,
4420   [  --enable-ggi            GGI support (default disabled)])
4421 if test "${enable_ggi}" = "yes"
4422 then
4423   VLC_ADD_PLUGINS([ggi])
4424   VLC_ADD_LDFLAGS([ggi],[-lggi])
4425   AC_ARG_WITH(ggi,
4426     [    --with-ggi=PATH       path to libggi],
4427     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4428       then
4429         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4430         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4431       fi ])
4432 fi
4433
4434 dnl
4435 dnl  Glide module
4436 dnl
4437 AC_ARG_ENABLE(glide,
4438   [  --enable-glide          Glide (3dfx) support (default disabled)])
4439 if test "${enable_glide}" = "yes"
4440 then
4441   CFLAGS_save="${CFLAGS}"
4442   AC_ARG_WITH(glide,
4443     [    --with-glide=PATH     path to libglide],
4444     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4445       then
4446         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4447         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4448         CFLAGS="$CFLAGS -I${with_glide}/include"
4449     fi ])
4450    CFLAGS="$CFLAGS -I/usr/include/glide"
4451    AC_CHECK_HEADER(glide.h,[   
4452       VLC_ADD_PLUGINS([glide])
4453       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4454       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4455     ],[
4456       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4457      ])
4458    CFLAGS="${CFLAGS_save}"
4459 fi
4460
4461 dnl
4462 dnl  AA plugin
4463 dnl
4464 AC_ARG_ENABLE(aa,
4465   [  --enable-aa             aalib output (default disabled)])
4466 if test "${enable_aa}" = "yes"
4467 then
4468   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4469   if test "${have_aa}" = "true"
4470   then
4471     VLC_ADD_PLUGINS([aa])
4472     VLC_ADD_LDFLAGS([aa],[-laa])
4473   fi
4474 fi
4475
4476 dnl
4477 dnl  libcaca plugin
4478 dnl
4479 AC_ARG_ENABLE(caca,
4480   [  --enable-caca           libcaca output (default disabled)])
4481 if test "${enable_caca}" = "yes"
4482 then
4483   CACA_PATH="${PATH}"
4484   AC_ARG_WITH(caca-config-path,
4485     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4486     [ if test "${with_caca_config_path}" != "no"
4487       then
4488         CACA_PATH="${with_caca_config_path}:${PATH}"
4489       fi ])
4490   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4491   if test "${CACA_CONFIG}" != "no"
4492   then
4493     VLC_ADD_PLUGINS([caca])
4494     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4495     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4496   fi
4497 fi
4498
4499 dnl
4500 dnl  win32 GDI plugin
4501 dnl
4502 AC_ARG_ENABLE(wingdi,
4503   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4504 if test "${enable_wingdi}" != "no"; then
4505   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4506     VLC_ADD_PLUGINS([wingdi])
4507     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4508   fi
4509   if test "${SYS}" = "mingwce"; then
4510     VLC_ADD_PLUGINS([wingdi wingapi])
4511   fi
4512 fi
4513
4514 dnl
4515 dnl  Audio plugins
4516 dnl
4517
4518 AC_ARG_WITH(,[Audio plugins:])
4519
4520 dnl
4521 dnl  OSS /dev/dsp module (enabled by default except on win32)
4522 dnl
4523 AC_ARG_ENABLE(oss,
4524   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4525
4526 if test "${enable_oss}" != "no" &&
4527   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4528    test "${enable_oss}" = "yes")
4529 then
4530   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4531     VLC_ADD_PLUGINS([oss])
4532     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4533   ])
4534 fi
4535
4536 dnl
4537 dnl  Esound module
4538 dnl
4539 AC_ARG_ENABLE(esd,
4540   [  --enable-esd            Esound library support (default disabled)],
4541   [if test "${enable_esd}" = "yes"
4542    then
4543      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4544      if test "${ESD_CONFIG}" != "no"
4545      then
4546        VLC_ADD_PLUGINS([esd])
4547        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4548        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4549      fi
4550    fi])
4551
4552 dnl
4553 dnl  Portaudio module
4554 dnl
4555 AC_ARG_ENABLE(portaudio,
4556   [  --enable-portaudio      Portaudio library support (default disabled)],
4557   [if test "${enable_portaudio}" = "yes"
4558    then
4559      VLC_ADD_PLUGINS([portaudio])
4560      VLC_ADD_CXXFLAGS([portaudio],[])
4561      if test "${SYS}" = "mingw32"; then
4562         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4563      else
4564         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4565      fi
4566    fi])
4567
4568 dnl
4569 dnl  aRts module -- broken (freeze wxWidgets)
4570 dnl
4571 AC_ARG_ENABLE(arts,
4572  [  --enable-arts           aRts sound server (default disabled)],
4573  [if test "${enable_arts}" = "yes"
4574   then
4575     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4576     if test "${ARTS_CONFIG}" != "no"
4577     then
4578       VLC_ADD_PLUGINS([arts])
4579       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4580       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4581     fi
4582   fi])
4583
4584 dnl
4585 dnl  ALSA module
4586 dnl
4587 AC_ARG_ENABLE(alsa,
4588   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4589 if test "${enable_alsa}" != "no"
4590 then
4591   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4592   if test "${have_alsa}" = "true"
4593   then
4594     CFLAGS="${CFLAGS_save}"
4595     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4596                     #define ALSA_PCM_NEW_SW_PARAMS_API
4597                     #include <alsa/asoundlib.h>],
4598        [snd_pcm_hw_params_get_period_time(0,0,0);],
4599         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4600     VLC_ADD_PLUGINS([alsa])
4601     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4602   else
4603     if test "${enable_alsa}" = "yes"; then
4604       AC_MSG_ERROR([Could not find ALSA development headers])
4605     fi
4606   fi
4607 fi
4608
4609 dnl
4610 dnl  win32 waveOut plugin
4611 dnl
4612 AC_ARG_ENABLE(waveout,
4613   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4614 if test "${enable_waveout}" != "no"; then
4615   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4616     VLC_ADD_PLUGINS([waveout])
4617     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4618   fi
4619   if test "${SYS}" = "mingwce"; then
4620     VLC_ADD_PLUGINS([waveout])
4621   fi
4622 fi
4623
4624 dnl
4625 dnl  CoreAudio plugin
4626 dnl
4627 AC_ARG_ENABLE(macosx-audio,
4628   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4629 if test "${enable_macosx-audio}" != "no" &&
4630   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4631 then
4632   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4633     [ VLC_ADD_BUILTINS([auhal])
4634       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4635     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4636 fi
4637
4638 dnl
4639 dnl  Roku HD1000 audio
4640 dnl
4641 AC_ARG_ENABLE(hd1000a,
4642   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4643 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4644   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4645    test "${enable_hd1000a}" = "yes")
4646 then
4647   AC_LANG_PUSH([C++])
4648   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4649     VLC_ADD_PLUGINS([hd1000a])
4650     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4651   AC_LANG_POP([C++])
4652 fi
4653
4654 dnl
4655 dnl  JACK modules
4656 dnl
4657 AC_ARG_ENABLE(jack,
4658  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4659  [enable_jack="no"])
4660
4661 AS_IF([test "${enable_jack}" != "no"], [
4662   AC_CHECK_HEADERS(jack/jack.h, [
4663     VLC_ADD_PLUGINS([access_jack jack])
4664     VLC_ADD_LDFLAGS([access_jack jack],[-ljack])
4665   ],[AC_MSG_ERROR([cannot find JACK headers])])
4666 ])
4667
4668 dnl
4669 dnl  CyberLink for C++ UPnP stack
4670 dnl
4671 AC_ARG_ENABLE(cyberlink,
4672   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4673   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4674   AC_ARG_WITH(cyberlink-tree,
4675     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4676
4677   dnl
4678   dnl test for --with-cyberlink-tree
4679   dnl
4680   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4681     AC_LANG_PUSH(C++)
4682     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4683     AS_IF([test -z "${real_cyberlink_tree}"], [
4684       dnl  The given directory can't be found
4685       AC_MSG_RESULT(no)
4686       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4687     ])
4688     CPPFLAGS_save="${CPPFLAGS}"
4689     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4690     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4691     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4692       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4693         VLC_ADD_PLUGINS([upnp_cc]) 
4694       ],[
4695         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4696       ])
4697     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4698     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4699       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4700       dnl The mere fact that we have to make such an ugly check sucks
4701       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4702       LIBS_save="$LIBS"
4703       LIBS_cclink="no"
4704       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4705         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4706         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4707 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4708 using namespace CyberLink;
4709
4710 class testclass : public SearchResponseListener, public MediaPlayer
4711 {
4712     virtual void deviceSearchResponseReceived( SSDPPacket *)
4713     {
4714     }
4715
4716     public:
4717       testclass (void)
4718       {
4719         addSearchResponseListener (this);
4720         start ();
4721       }
4722 };
4723 ],[testclass l;])],[LIBS_cclink="$l"])
4724       done
4725       LIBS="${LIBS_save}"
4726       dnl should not happen - otherwise this needs fixing - hence FAILURE
4727       AS_IF([test "${LIBS_cclink}" = "no"],
4728         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4729       AC_MSG_RESULT([${LIBS_cclink}])
4730       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4731     ], [
4732       AC_MSG_RESULT(no)
4733       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4734     ])
4735     CPPFLAGS="${CPPFLAGS_save}"
4736     AC_LANG_POP([C++])
4737   ])
4738 ])
4739
4740 dnl
4741 dnl UPnP Plugin (Intel SDK)
4742 dnl
4743 AC_ARG_ENABLE(upnp,
4744   [  --enable-upnp           Intel UPnP SDK (default auto)])
4745
4746 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4747 AS_IF([test "x${enable_upnp}" != "xno"], [
4748   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4749   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4750     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4751   ])
4752   AS_IF([test "${has_upnp}" = "yes"], [
4753     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4754   ])
4755 ], [
4756   has_upnp="no"
4757 ])
4758
4759 AS_IF([test "${has_upnp}" = "yes"], [
4760   VLC_ADD_PLUGINS([upnp_intel])
4761 ])
4762
4763
4764 dnl
4765 dnl  Interface plugins
4766 dnl
4767
4768 AC_ARG_WITH(,[Interface plugins:])
4769
4770 dnl special case for BeOS
4771 if test "${SYS}" = "beos"
4772 then
4773     VLC_ADD_BUILTINS([beos])
4774 fi
4775
4776 dnl
4777 dnl Skins2 module
4778 dnl
4779 AC_ARG_ENABLE(skins2,
4780   [  --enable-skins2         Skins2 interface module (default disabled)])
4781 if test "${enable_skins2}" = "yes" ||
4782   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4783    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4784
4785   dnl test for the required libraries
4786   skins2_missing_lib="no"
4787
4788   dnl freetype
4789   if test "${FREETYPE_CONFIG}" != "no"; then
4790     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4791     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4792   else
4793     skins2_missing_lib="yes"
4794     if test "${enable_skins2}" = "yes"; then
4795       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4796     fi
4797   fi
4798
4799   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4800     VLC_ADD_PLUGINS([skins2])
4801     ALIASES="${ALIASES} svlc"
4802     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4803     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4804     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4805
4806   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4807     VLC_ADD_PLUGINS([skins2])
4808     ALIASES="${ALIASES} svlc"
4809     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4810     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4811     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4812
4813   else if test "${skins2_missing_lib}" = "no"; then
4814     VLC_ADD_PLUGINS([skins2])
4815     ALIASES="${ALIASES} svlc"
4816     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4817     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4818     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4819   fi fi fi
4820 fi
4821
4822
4823 dnl dnl
4824 dnl dnl  Gtk+ module
4825 dnl dnl
4826 dnl AC_ARG_ENABLE(gtk,
4827 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4828 dnl if test "${enable_gtk}" != "no"
4829 dnl then
4830 dnl   GTK_PATH="${PATH}"
4831 dnl   AC_ARG_WITH(gtk-config-path,
4832 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4833 dnl     [ if test "${with_gtk_config_path}" != "no"
4834 dnl       then
4835 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4836 dnl       fi ])
4837 dnl   # look for gtk-config
4838 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4839 dnl   GTK_CONFIG=${GTK12_CONFIG}
4840 dnl   if test "${GTK_CONFIG}" = "no"
4841 dnl   then
4842 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4843 dnl   fi
4844 dnl   if test "${GTK_CONFIG}" != "no"
4845 dnl   then
4846 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4847 dnl     then
4848 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.])
4849 dnl     fi
4850 dnl     if test "${SYS}" != "mingw32"; then
4851 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4852 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4853 dnl     else
4854 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4855 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4856 dnl     fi
4857 dnl     # now look for the gtk.h header
4858 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4859 dnl     ac_cv_gtk_headers=yes
4860 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4861 dnl       ac_cv_gtk_headers=no
4862 dnl       echo "Cannot find gtk development headers."
4863 dnl     ])
4864 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4865 dnl     then
4866 dnl       VLC_ADD_PLUGINS([gtk])
4867 dnl       if test "${SYS}" != "mingw32"; then
4868 dnl         NEED_GTK_MAIN=yes
4869 dnl       fi
4870 dnl       ALIASES="${ALIASES} gvlc"
4871 dnl     fi
4872 dnl     CPPFLAGS="${CPPFLAGS_save}"
4873 dnl   fi
4874 dnl fi
4875 dnl 
4876 dnl
4877 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4878 dnl
4879 dnl AC_ARG_ENABLE(gtk2,
4880 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4881 dnl if test "${enable_gtk2}" = "yes"
4882 dnl then
4883 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4884 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4885 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4886 dnl   VLC_ADD_PLUGINS([gtk2])
4887 dnl   if test "${SYS}" != "mingw32"; then
4888 dnl     NEED_GTK2_MAIN=yes
4889 dnl   fi
4890 dnl fi
4891
4892 dnl
4893 dnl  PDA Gtk+2 module
4894 dnl
4895 AC_ARG_ENABLE(pda,
4896   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4897 if test "${enable_pda}" = "yes"
4898 then
4899   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4900   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4901   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4902   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4903   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4904   VLC_ADD_PLUGINS([pda])
4905   if test "${SYS}" != "mingw32"; then
4906     NEED_GTK2_MAIN=yes
4907   fi
4908 fi
4909
4910 dnl dnl
4911 dnl dnl  Gnome module
4912 dnl dnl
4913 dnl AC_ARG_ENABLE(gnome,
4914 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4915 dnl   [if test "${enable_gnome}" = "yes"; then
4916 dnl     # look for gnome-config
4917 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4918 dnl     if test -x ${GNOME_CONFIG}
4919 dnl     then
4920 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4921 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4922 dnl     fi
4923 dnl     # now look for the gnome.h header
4924 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4925 dnl     AC_CHECK_HEADERS(gnome.h, [
4926 dnl       VLC_ADD_PLUGINS([gnome])
4927 dnl       NEED_GTK_MAIN=yes
4928 dnl       NEED_GNOME_MAIN=yes
4929 dnl       ALIASES="${ALIASES} gnome-vlc"
4930 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4931 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4932 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4933 dnl         AC_MSG_RESULT(yes)
4934 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4935 dnl                   Define if <gnome.h> defines strndup.)],[
4936 dnl         AC_MSG_RESULT(no)])
4937 dnl      ],[
4938 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4939 dnl developement tools or remove the --enable-gnome option])
4940 dnl      ])
4941 dnl     CPPFLAGS="${CPPFLAGS_save}"
4942 dnl   fi])
4943
4944 dnl
4945 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4946 dnl
4947 dnl AC_ARG_ENABLE(gnome2,
4948 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4949 dnl if test "${enable_gnome2}" = "yes"
4950 dnl then
4951 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4952 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4953 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4954 dnl   VLC_ADD_PLUGINS([gnome2])
4955 dnl   if test "${SYS}" != "mingw32"; then
4956 dnl     NEED_GNOME2_MAIN=yes
4957 dnl   fi
4958 dnl fi
4959
4960 dnl
4961 dnl  wxWidgets module
4962 dnl
4963 AC_ARG_ENABLE(wxwidgets,
4964   [  --enable-wxwidgets      wxWidgets support (default disabled)])
4965
4966 if test "${enable_wxwidgets}" = "yes"
4967 then
4968   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
4969   WXWIDGETS_PATH="${PATH}"
4970   AC_ARG_WITH(wx-config-path,
4971     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4972     [ if test "${with_wx_config_path}" != "no"
4973       then
4974         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4975       fi ])
4976   WXWIDGETS_NAME="wx-config"
4977   AC_ARG_WITH(wx-config,
4978     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4979     [ if test "${with_wx_config}" != "no"
4980       then
4981         WXWIDGETS_NAME="${with_wx_config}"
4982       fi ])
4983   # look for wx-config
4984   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4985   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4986   then
4987     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
4988     then
4989       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
4990     fi
4991     AC_LANG_PUSH(C++)
4992     # Turn this error:
4993     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4994     # into a warning. However better would be to fix playlist.cpp
4995     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4996         [ac_cv_cxx_fpermissive],
4997         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4998          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4999                         ac_cv_cxx_fpermissive=no)])
5000     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5001       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5002     fi
5003     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
5004     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5005     # check if we must link against gtk2 libs
5006     # if __WXGTK20__ && __WXGTK__ are defined
5007     # for modules/gui/wxwidgets/video.cpp
5008     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5009 #include <wx/wx.h>
5010 #ifdef __WXGTK20__
5011 #error ok, we need to link against gtk2
5012 #endif
5013         ])],[WXGTK=no],[WXGTK=yes])
5014     if test "$WXGTK" = "yes"; then
5015       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5016     fi
5017     if ${WX_CONFIG} --unicode
5018     then 
5019       # wxwidgets should provide the following flags but does not
5020       # the following is required to compile for win32
5021       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5022     else
5023       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5024     fi
5025     if test "$have_libcdio" = "yes"
5026     then 
5027       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
5028       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5029     else 
5030       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5031     fi
5032
5033     if test "$have_libvcdinfo" = "yes"
5034     then 
5035       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
5036       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5037     else 
5038       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5039     fi
5040
5041     # now look for the wxprec.h header
5042     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5043     ac_cv_wx_headers=yes
5044     AC_CHECK_HEADERS(wx/wxprec.h, , [
5045       ac_cv_wx_headers=no
5046       echo "Cannot find wxWidgets development headers."
5047     ])
5048     if test "${ac_cv_wx_headers}" = "yes"
5049     then
5050       VLC_ADD_PLUGINS([wxwidgets])
5051       ALIASES="${ALIASES} wxvlc"
5052     fi
5053     CPPFLAGS="${CPPFLAGS_save}"
5054     AC_LANG_POP(C++)
5055   fi
5056   dnl WxWidgets plugin will yield incorrect code without this
5057   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5058 fi
5059
5060 dnl
5061 dnl QT 4
5062 dnl
5063 enableqt4=false
5064 AC_ARG_ENABLE(qt4,
5065   [  --enable-qt4            QT 4 support (default enabled) ])
5066 AS_IF([test "${enable_qt4}" != "no" &&
5067   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5068   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5069     [ VLC_ADD_PLUGINS([qt4])
5070       ALIASES="${ALIASES} qvlc"
5071       enableqt4=true
5072       VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
5073       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
5074       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5075       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5076       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5077       ],
5078       AS_IF([test "${enable_qt4}" = "yes"],[
5079         AC_MSG_ERROR(QT4 library not found)
5080       ],[
5081          AC_MSG_WARN(QT4 library not found)
5082       ])
5083     )
5084 ])
5085 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5086
5087 dnl
5088 dnl  WinCE GUI module
5089 dnl
5090 if test "${SYS}" = "mingwce"; then
5091   VLC_ADD_BUILTINS([wince])
5092   VLC_ADD_CXXFLAGS([wince],[])
5093   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
5094   dnl Gross hack
5095   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5096 elif test "${SYS}" = "mingw32"; then
5097   VLC_ADD_CXXFLAGS([wince],[])
5098   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5099   dnl Gross hack
5100   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5101 fi
5102
5103 dnl
5104 dnl Simple test for skins2 dependency
5105 dnl
5106 if test "${enable_skins2}" != "no"
5107 then
5108   if test "${WX_CONFIG}" = "no"
5109   then
5110     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.])
5111   fi
5112 fi
5113
5114 dnl dnl
5115 dnl dnl  Qt module
5116 dnl dnl
5117 dnl AC_ARG_ENABLE(qt,
5118 dnl   [  --enable-qt             Qt interface support (default disabled)],
5119 dnl   [if test "${enable_qt}" = "yes"; then
5120 dnl      VLC_ADD_PLUGINS([qt])
5121 dnl      ALIASES="${ALIASES} qvlc"
5122 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
5123 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5124 dnl      AC_CHECK_LIB(qt-mt,main,[
5125 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
5126 dnl      ],[
5127 dnl        AC_CHECK_LIB(qt,main,[
5128 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
5129 dnl        ])
5130 dnl      ])
5131 dnl      LDFLAGS="${LDFLAGS_save}"
5132 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5133 dnl      if test -x ${QTDIR}/bin/moc
5134 dnl      then
5135 dnl        MOC=${QTDIR}/bin/moc
5136 dnl      else
5137 dnl        MOC=moc
5138 dnl      fi
5139 dnl    fi])
5140 dnl 
5141 dnl dnl
5142 dnl dnl  KDE module
5143 dnl dnl
5144 dnl AC_ARG_ENABLE(kde,
5145 dnl   [  --enable-kde            KDE interface support (default disabled)],
5146 dnl   [if test "${enable_kde}" = "yes"; then
5147 dnl      VLC_ADD_PLUGINS([kde])
5148 dnl      ALIASES="${ALIASES} kvlc"
5149 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
5150 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5151 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5152 dnl      AC_CHECK_LIB(kfile,main,[
5153 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
5154 dnl      ])
5155 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5156 dnl      AC_CHECK_LIB(kdeui,main,[
5157 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
5158 dnl      ])
5159 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5160 dnl      AC_CHECK_LIB(kio,main,[
5161 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
5162 dnl      ])
5163 dnl      LDFLAGS="${LDFLAGS_save}"
5164 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5165 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5166 dnl      if test -x ${QTDIR}/bin/moc
5167 dnl      then
5168 dnl        MOC=${QTDIR}/bin/moc
5169 dnl      else
5170 dnl        MOC=moc
5171 dnl      fi
5172 dnl    fi])
5173
5174 dnl
5175 dnl  Opie QT embedded module
5176 dnl
5177 AC_ARG_ENABLE(opie,
5178   [  --enable-opie           Qt embedded interface support (default disabled)],
5179   [if test "${enable_opie}" = "yes"; then
5180      AC_ARG_WITH(qte,
5181      [    --with-qte=PATH       Qt Embedded headers and libraries])
5182      if test "${with_qte}" != "no" -a -n "${with_qte}"
5183      then
5184        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5185        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])
5186      else
5187        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5188        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5189      fi
5190      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5191      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5192        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5193      ] )
5194      CPPFLAGS="${CPPFLAGS_save}"
5195
5196      VLC_ADD_PLUGINS([opie])
5197      NEED_QTE_MAIN=yes
5198      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
5199      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5200      if test "${with_qte}" != "no" -a -n "${with_qte}"
5201      then
5202        MOC=${with_qte}/bin/moc
5203      else
5204        MOC=${QTDIR}/bin/moc
5205      fi
5206    fi])
5207
5208 dnl
5209 dnl  MacOS X module
5210 dnl
5211 ORIGCFLAGS=$CFLAGS
5212 CFLAGS="$CFLAGS -x objective-c"
5213 AC_ARG_ENABLE(macosx,
5214   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
5215   [if test "${enable_macosx}" = "yes"
5216    then
5217      VLC_ADD_PLUGINS([access_eyetv])
5218      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5219      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit])
5220      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
5221    fi],
5222   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
5223     [VLC_ADD_PLUGINS([access_eyetv])
5224      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5225      VLC_ADD_BUILTINS([macosx])
5226      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit])
5227      VLC_ADD_OBJCFLAGS([macosx],[-fobjc-exceptions])
5228     ])])
5229 CFLAGS=$ORIGCFLAGS
5230
5231 dnl
5232 dnl  QNX RTOS module
5233 dnl
5234 AC_ARG_ENABLE(qnx,
5235   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5236     if test "${enable_qnx}" != "no"
5237     then
5238       AC_CHECK_HEADERS(Ph.h, [
5239         VLC_ADD_PLUGINS([qnx])
5240         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
5241       ])
5242     fi
5243
5244 dnl
5245 dnl  ncurses module
5246 dnl
5247 AC_ARG_ENABLE(ncurses,
5248   [  --enable-ncurses        ncurses interface support (default disabled)],
5249   [if test "${enable_ncurses}" = "yes"; then
5250      VLC_ADD_PLUGINS([ncurses])
5251      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
5252    fi])
5253
5254 dnl
5255 dnl  XOSD plugin
5256 dnl
5257 AC_ARG_ENABLE(xosd,
5258   [  --enable-xosd           xosd interface support (default disabled)])
5259 if test "${enable_xosd}" = "yes"
5260 then
5261   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5262   AC_CHECK_LIB(xosd,xosd_set_offset,
5263       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5264     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5265         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5266       AC_TRY_COMPILE([#include <xosd.h>],
5267          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5268           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5269   if test "${have_xosd}" = "true"
5270   then
5271     VLC_ADD_PLUGINS([xosd])
5272     VLC_ADD_LDFLAGS([xosd],[-lxosd])
5273   fi
5274 fi
5275
5276 dnl
5277 dnl Visualisation plugin
5278 dnl
5279 AC_ARG_ENABLE(visual,
5280   [  --enable-visual         visualisation plugin (default enabled)])
5281 if test "${enable_visual}" != "no"
5282 then
5283     VLC_ADD_PLUGINS([visual])
5284 fi
5285
5286 dnl
5287 dnl OpenGL visualisation plugin
5288 dnl
5289 AC_ARG_ENABLE(galaktos,
5290   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5291 if test "${enable_galaktos}" = "yes"
5292 then
5293   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5294     VLC_ADD_PLUGINS([galaktos])
5295     if test "${SYS}" != "mingw32"; then
5296       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
5297     else
5298       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
5299     fi
5300   ])
5301 fi
5302
5303 dnl
5304 dnl  goom visualization plugin
5305 dnl
5306 AC_ARG_ENABLE(goom,
5307 [  --enable-goom           goom visualisation plugin (default disabled)])
5308 if test "${enable_goom}" = "yes"
5309 then
5310   AC_ARG_WITH(goom-tree,
5311     [    --with-goom-tree=PATH goom tree for static linking (required)])
5312
5313   dnl
5314   dnl test for --with-goom-tree
5315   dnl
5316   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5317     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5318     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5319     if test -z "${real_goom_tree}"; then
5320       dnl  The given directory can't be found
5321       AC_MSG_RESULT(no)
5322       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5323     fi
5324     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5325       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5326       VLC_ADD_BUILTINS([goom])
5327       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5328       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5329     else
5330       dnl  The given libgoom2 wasn't built, try to look for the old goom
5331       AC_MSG_RESULT(no)
5332       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5333       if test -f "${real_goom_tree}/libgoom.a"; then
5334         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5335         VLC_ADD_BUILTINS([goom])
5336         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5337         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5338       else
5339         dnl  The given libgoom wasn't built
5340         AC_MSG_RESULT(no)
5341         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5342       fi
5343     fi
5344   else
5345     AC_CHECK_HEADERS(goom/goom.h, [
5346       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5347       AC_CHECK_LIB(goom2, goom_init, [
5348         VLC_ADD_PLUGINS([goom])
5349         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5350       ],[
5351         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5352       ])
5353       LDFLAGS="${LDFLAGS_save}"
5354     ])
5355   fi
5356 fi
5357
5358 dnl
5359 dnl  Bonjour services discovery
5360 dnl
5361 AC_ARG_ENABLE(bonjour,
5362   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5363 if test "${enable_bonjour}" != "no"
5364 then
5365   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5366     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5367        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5368       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5369       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5370       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5371       VLC_ADD_PLUGINS([bonjour]) ],
5372     [AC_MSG_WARN(avahi-client library not found)])
5373 fi
5374
5375 dnl
5376 dnl  Lirc plugin
5377 dnl
5378 AC_ARG_ENABLE(lirc,
5379   [  --enable-lirc           lirc support (default disabled)])
5380 if test "${enable_lirc}" = "yes"
5381 then
5382   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5383   if test "${have_lirc}" = "true"
5384   then
5385     VLC_ADD_PLUGINS([lirc])
5386     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5387   fi
5388 fi
5389
5390
5391 AC_ARG_WITH(,[Misc options:])
5392
5393 dnl
5394 dnl TLS/SSL
5395 dnl
5396 AC_ARG_ENABLE(gnutls,
5397   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5398
5399 AS_IF([test "${enable_gnutls}" != "no"], [
5400   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"])
5401
5402   AS_IF([test "${have_gnutls}" = "yes"], [
5403     VLC_ADD_PLUGINS([gnutls])
5404     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5405     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5406   ], [
5407     AS_IF([test "${enable_gnutls}" = "yes"], [
5408       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5409     ])
5410   ])
5411   AC_CHECK_LIB([gcrypt], [gcry_control], [
5412     VLC_ADD_LDFLAGS([gnutls], [-lgcrypt])
5413   ])
5414 ])
5415
5416 dnl
5417 dnl libgcrypt
5418 dnl
5419 AC_ARG_ENABLE(libgcrypt,
5420   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5421 if test "${enable_libgcrypt}" != "no" -a "${enable_gnutls}" != "no"i
5422 then
5423   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5424   dnl it and looks for libgcrypt headers in the wrong place.
5425   if test "${host_cpu}" = "${build_cpu}"
5426   then
5427     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5428   else
5429     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5430   fi
5431 fi
5432 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5433
5434
5435 dnl
5436 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5437 dnl
5438 dnl  We give the user the opportunity to specify
5439 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5440 dnl
5441 AC_ARG_WITH(words,
5442   [    --with-words=endianness set endianness (big or little)])
5443   case "${with_words}" in
5444     big)
5445       ac_cv_c_bigendian=yes
5446       ;;
5447     little)
5448       ac_cv_c_bigendian=no
5449       ;;
5450     *)
5451       dnl  Try to guess endianness by matching patterns on a compiled
5452       dnl  binary, by looking for an ASCII or EBCDIC string
5453       AC_CACHE_CHECK([whether the byte order is big-endian],
5454         [ac_cv_c_bigendian],
5455         [ac_cv_c_bigendian="unknown"
5456         [cat >conftest.c <<EOF
5457         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5458         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5459         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5460         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5461         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5462         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5463         int main(void) { _a(); _e(); return 0; }
5464 EOF
5465         ]
5466         if test -f conftest.c
5467         then
5468           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5469               && test -f conftest.o
5470           then
5471             if test "`strings conftest.o | grep BIGenDianSyS`"
5472             then
5473               ac_cv_c_bigendian="yes"
5474             fi
5475             if test "`strings conftest.o | grep LiTTleEnDian`"
5476             then
5477               ac_cv_c_bigendian="no"
5478             fi
5479           fi
5480         fi
5481       ])
5482       if test "${ac_cv_c_bigendian}" = "unknown"
5483       then
5484         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5485       fi
5486       ;;
5487   esac
5488 dnl  Now we know what to use for endianness, just put it in the header
5489 if test "${ac_cv_c_bigendian}" = "yes"
5490 then
5491   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5492 fi
5493
5494 dnl
5495 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5496 dnl
5497 loader=false
5498 AC_ARG_ENABLE(loader,
5499   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5500 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5501 AS_IF([test "${enable_loader}" = "yes"],
5502   [ VLC_ADD_PLUGINS([dmo])
5503     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5504     VLC_ADD_LDFLAGS([dmo],[../../../libs/loader/libloader.la -lpthread])
5505     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5506     VLC_ADD_LDFLAGS([quicktime],[../../libs/loader/libloader.la -lpthread])
5507     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5508     VLC_ADD_LDFLAGS([realaudio],[../../libs/loader/libloader.la -ldl -lpthread])
5509   ])
5510
5511 dnl
5512 dnl  Microsoft ActiveX support
5513 dnl
5514 activex=false
5515 AC_ARG_ENABLE(activex,
5516   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5517 AC_ARG_WITH(wine-sdk-path,
5518   [    --with-wine-sdk-path=PATH path to wine sdk])
5519 if test "${enable_activex}" != "no"
5520 then
5521   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5522   then
5523     AC_CHECK_PROGS(MIDL, [midl], no)
5524     if test "${with_wine_sdk_path}" != ""
5525     then
5526        WINE_SDK_PATH=${with_wine_sdk_path}
5527        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5528     else
5529        WIDL=no
5530     fi
5531     AC_LANG_PUSH(C++)
5532     AC_CHECK_HEADERS(ole2.h, 
5533       [AC_CHECK_HEADERS(olectl.h,
5534         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5535           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5536           VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5537           AC_CHECK_HEADERS(objsafe.h,
5538             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5539             [
5540              #if HAVE_OLE2_H
5541              #   include <ole2.h>
5542              #endif
5543              ]
5544           )
5545           activex=:
5546           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5547         ],
5548         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5549       )],
5550       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5551     )
5552     AC_LANG_POP(C++)
5553   fi
5554 fi
5555 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5556 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5557 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5558 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5559 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5560
5561 dnl
5562 dnl  Mozilla plugin
5563 dnl
5564 mozilla=false
5565 AC_ARG_ENABLE(mozilla,
5566   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5567 AC_ARG_WITH(mozilla-sdk-path,
5568   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5569 AC_LANG_PUSH(C++)
5570 if test "${enable_mozilla}" = "yes" 
5571 then
5572   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5573   need_xpcom_libs=false
5574
5575   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5576   then
5577     dnl New firefox-1.5 SDK api
5578     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5579       [
5580         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5581           [],
5582           [
5583             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5584               [],
5585               [
5586                 PKG_CHECK_MODULES([NSPR], [nspr],
5587                   [],
5588                   [
5589                     AC_MSG_ERROR([Please install the nspr development tools.])
5590                   ]
5591                 )
5592               ]
5593             )
5594           ])
5595         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5596         MOZILLA_REQUIRED_HEADERS=1
5597         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5598         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5599         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5600           [#if HAVE_NPAPI_H
5601            # include <npapi.h>
5602            #endif
5603           ])
5604         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5605             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5606         fi
5607         MOZILLA_REQUIRED_HEADERS=
5608         mozilla=:
5609         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5610         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5611             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5612         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5613             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5614         else
5615             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5616         fi
5617         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5618             VLC_ADD_LDFLAGS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt])
5619         fi
5620         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5621         VLC_ADD_LDFLAGS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS} ${MOZILLA_LDFLAGS}])
5622         VLC_ADD_PLUGINS([mozilla])
5623         MOZILLA_CONFIG=
5624         CPPFLAGS="${CPPFLAGS_save}"
5625       ],
5626       [
5627         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5628         if test "${MOZILLA_CONFIG}" = "no"
5629         then
5630           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5631           if test "${SEAMONKEY_CONFIG}" = "no"
5632           then
5633             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5634             if test "${XULRUNNER_CONFIG}" = "no"
5635             then
5636               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5637             else
5638               have_xul=true
5639               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5640             fi
5641           else
5642             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5643           fi
5644         fi
5645       ]
5646     )
5647     if test ! -z "${MOZILLA_CONFIG}"
5648     then
5649       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5650         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5651         AC_CHECK_LIB(Xt,XtStrings,
5652          [
5653            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5654            VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5655          ],
5656          [],
5657          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5658         ])
5659         LDFLAGS="${LDFLAGS_save}"
5660       fi
5661
5662       mozilla=:
5663       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5664       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5665       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5666       if ${need_xpcom_libs}; then
5667          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5668       else
5669          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5670       fi
5671       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5672       MOZILLA_REQUIRED_HEADERS=1
5673       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5674       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5675       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5676         [#if HAVE_NPAPI_H
5677          # include <npapi.h>
5678          #endif
5679         ])
5680       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5681       then
5682         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5683       fi
5684       MOZILLA_REQUIRED_HEADERS=
5685       CPPFLAGS="${CPPFLAGS_save}"
5686       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5687     fi
5688     dnl End of moz_sdk = ""
5689   else
5690     dnl special case for mingw32
5691     if test "${SYS}" = "mingw32"
5692     then
5693       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5694       dnl latest gecko sdk does not have an xpcom directory
5695       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5696           mozilla_sdk_xpcom="/xpcom"
5697       fi
5698     fi
5699
5700     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5701     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5702     MOZILLA_REQUIRED_HEADERS=1
5703     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5704     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5705     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5706         [#if HAVE_NPAPI_H
5707           #include <npapi.h>
5708           #endif
5709         ])
5710     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5711     then
5712         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5713     fi
5714     MOZILLA_REQUIRED_HEADERS=
5715     mozilla=:
5716     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5717     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])
5718     if ${need_xpcom_libs}; then
5719        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])
5720       if test "${SYS}" = "mingw32"; then
5721         dnl latest gecko sdk does not have embedstring
5722         if test -d "${real_mozilla_sdk}/embedstring/bin"
5723         then
5724           VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5725         fi
5726       fi
5727     fi
5728     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5729
5730     if test -n "${CYGPATH}"; then
5731       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5732     fi
5733     CPPFLAGS="${CPPFLAGS_save}"
5734   fi
5735 fi
5736 AC_LANG_POP(C++)
5737 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5738
5739 dnl Tests for Osso and Xsp
5740 AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5741    PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                           
5742        VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5743        VLC_ADD_LDFLAGS([x11],[-losso])
5744    ])
5745 ])
5746 AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5747    VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5748    VLC_ADD_LDFLAGS([x11],[-lXsp])
5749 ])
5750
5751 dnl
5752 dnl  Mediacontrol Python bindings
5753 dnl
5754 AC_ARG_ENABLE(python-bindings,
5755   [  --enable-python-bindings    Enable Python bindings (default disabled)])
5756 dnl TODO: look for python dev headers
5757 AS_IF([test "${enable_python_bindings}" = "yes"],
5758       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5759      ) 
5760
5761 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5762
5763 dnl
5764 dnl  Java bindings
5765 dnl
5766 AC_ARG_ENABLE(java-bindings,
5767   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5768 if test "${enable_java_bindings}" = "yes"
5769 then
5770   AS_IF([test "x${JAVA_HOME}" == "x"],
5771         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5772   AC_PROG_JAVAC
5773   AC_PROG_JAVA
5774   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5775   if test "${JAVAC}" == "javac${EXEEXT}"
5776   then
5777     JAVAC="javac${EXEEXT} -cp ./ "
5778   fi
5779 fi
5780 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5781
5782 dnl
5783 dnl  test plugins
5784 dnl
5785 AC_ARG_ENABLE(testsuite,
5786   [  --enable-testsuite      build test modules (default disabled)])
5787 if test "${enable_testsuite}" = "yes"
5788 then
5789   TESTS="test1 test2 test3 test4"
5790
5791   dnl  we define those so that bootstrap sets the right linker
5792   VLC_ADD_CXXFLAGS([test2],[])
5793   VLC_ADD_OBJCFLAGS([test3],[])
5794   dnl  this one is needed until automake knows what to do
5795   VLC_ADD_LDFLAGS([test3],[-lobjc])
5796
5797   VLC_ADD_PLUGINS([${TESTS}])
5798   #VLC_ADD_BUILTINS([${TESTS}])
5799 fi
5800
5801 dnl
5802 dnl Microsoft Layer for Unicode for WIN9x/ME
5803 dnl
5804 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5805 then
5806     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5807         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5808     ])
5809 fi
5810
5811 dnl
5812 dnl  gtk_main plugin
5813 dnl
5814 if test "${NEED_GTK_MAIN}" != "no"
5815 then
5816     VLC_ADD_PLUGINS([gtk_main])
5817     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5818     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5819 fi
5820
5821 if test "${NEED_GNOME_MAIN}" != "no"
5822 then
5823     VLC_ADD_PLUGINS([gnome_main])
5824     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5825     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5826 fi
5827
5828 if test "${NEED_GTK2_MAIN}" != "no"
5829 then
5830     VLC_ADD_PLUGINS([gtk2_main])
5831     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5832     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5833     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5834     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5835 fi
5836
5837 if test "${NEED_GNOME2_MAIN}" != "no"
5838 then
5839     VLC_ADD_PLUGINS([gnome2_main])
5840     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5841     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5842 fi
5843
5844 dnl
5845 dnl  qte_main plugin
5846 dnl
5847 if test "${NEED_QTE_MAIN}" != "no"
5848 then
5849     VLC_ADD_PLUGINS([qte_main])
5850     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5851     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5852     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5853 fi
5854
5855
5856 dnl
5857 dnl  Plugin and builtin checks
5858 dnl
5859 builtin_support=false
5860 plugin_support=:
5861
5862 dnl Support for plugins - this must be AT THE END
5863 AC_ARG_ENABLE(plugins,
5864   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5865   [if test "${enable_plugins}" = "no"
5866    then
5867      plugin_support=false
5868    fi])
5869
5870 dnl Automagically disable plugins if there is no system support for
5871 dnl dynamically loadable files (.so, .dll, .dylib).
5872 dnl don't forget vlc-win32 still can load .dll as plugins
5873 if test "${ac_cv_have_plugins}" = "no"
5874 then
5875   echo "*** Your system doesn't have plugin support. All plugins will be built"
5876   echo "statically."
5877   plugin_support=false
5878 fi
5879
5880 AS_IF([${plugin_support}], [
5881   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5882 ], [
5883   VLC_ADD_BUILTINS([${PLUGINS}])
5884   PLUGINS=""
5885 ])
5886
5887 dnl
5888 dnl Pic and shared libvlc stuff
5889 dnl
5890 AS_IF([test "${SYS}" = "mingw32" || test "${enable_libtool}" != "no"], [
5891   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5892   VLC_ADD_PLUGINS([${BUILTINS}])
5893   AS_IF([test "${SYS}" = "mingw32"], [
5894     FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5895     VLC_ADD_CPPFLAGS([libvlc],[-DDLL_EXPORT])
5896   ])
5897   BUILTINS=""
5898 ], [
5899   LDFLAGS_vlc="${LDFLAGS_vlc} ${LDFLAGS_libvlc}"
5900   FILE_LIBVLC_DLL=""
5901 ])
5902
5903  dnl Import conditional variables generated by bootstrap
5904 VLC_CONDITIONALS
5905
5906 dnl
5907 dnl  Stuff used by the program
5908 dnl
5909 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5910 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2007 the VideoLAN team", [Copyright string])
5911 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5912 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5913 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5914 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5915 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5916 AC_SUBST(VERSION_MAJOR)
5917 AC_SUBST(VERSION_MINOR)
5918 AC_SUBST(VERSION_REVISION)
5919 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5920 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5921 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5922 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5923
5924 dnl Old definitions for version-dependant plugins
5925 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5926 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5927 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5928
5929 dnl New definitions with value matching 0.9.0 release
5930 module_symbol="0_9_0b"
5931 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5932 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5933 VLC_ENTRY="vlc_entry__${module_symbol}"
5934 AC_SUBST(VLC_ENTRY)
5935
5936 dnl
5937 dnl  Handle substvars that use $(top_srcdir)
5938 dnl
5939 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5940 AC_SUBST(VLC_CONFIG)
5941 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5942
5943 dnl
5944 dnl  Restore *FLAGS
5945 dnl
5946 VLC_RESTORE_FLAGS
5947
5948 dnl
5949 dnl  Create the vlc-config script
5950 dnl
5951 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
5952
5953 dnl
5954 dnl  Configuration is finished
5955 dnl
5956 AC_SUBST(SYS)
5957 AC_SUBST(ARCH)
5958 AC_SUBST(ALIASES)
5959 AC_SUBST(ASM)
5960 AC_SUBST(MOC)
5961 AC_SUBST(RCC)
5962 AC_SUBST(UIC)
5963 AC_SUBST(WINDRES)
5964 AC_SUBST(MOZILLA_SDK_PATH)
5965 AC_SUBST(WINE_SDK_PATH)
5966 AC_SUBST(LIBEXT)
5967 AC_SUBST(AM_CPPFLAGS)
5968 AC_SUBST(ALL_LINGUAS)
5969 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5970 AC_SUBST(FILE_LIBVLC_DLL)
5971
5972 dnl Import substitutions generated by bootstrap
5973 VLC_SUBSTS
5974
5975 dnl Create vlc-config.in
5976 VLC_OUTPUT_VLC_CONFIG_IN
5977
5978 AC_CONFIG_FILES([
5979   vlc.win32.nsi
5980   Makefile
5981   activex/Makefile
5982   activex/axvlc.inf
5983   bindings/Makefile
5984   bindings/java/Makefile
5985   bindings/java/src/Makefile
5986   bindings/python/Makefile
5987   doc/Makefile
5988   intl/Makefile
5989   ipkg/Makefile
5990   libs/loader/Makefile
5991   libs/srtp/Makefile
5992   modules/Makefile
5993   mozilla/Makefile
5994   m4/Makefile
5995   po/Makefile.in
5996   share/Makefile
5997   src/Makefile
5998 ])
5999
6000 AC_CONFIG_FILES([
6001   modules/access/Makefile
6002   modules/access/bda/Makefile
6003   modules/access/dshow/Makefile
6004   modules/access/dvb/Makefile
6005   modules/access/mms/Makefile
6006   modules/access/cdda/Makefile
6007   modules/access/rtsp/Makefile
6008   modules/access/vcd/Makefile
6009   modules/access/vcdx/Makefile
6010   modules/access/screen/Makefile
6011   modules/access_filter/Makefile
6012   modules/access_output/Makefile
6013   modules/audio_filter/Makefile
6014   modules/audio_filter/channel_mixer/Makefile
6015   modules/audio_filter/converter/Makefile
6016   modules/audio_filter/resampler/Makefile
6017   modules/audio_mixer/Makefile
6018   modules/audio_output/Makefile
6019   modules/codec/Makefile
6020   modules/codec/cmml/Makefile
6021   modules/codec/dmo/Makefile
6022   modules/codec/ffmpeg/Makefile
6023   modules/codec/spudec/Makefile
6024   modules/codec/xvmc/Makefile
6025   modules/control/Makefile
6026   modules/control/http/Makefile
6027   modules/demux/Makefile
6028   modules/demux/asf/Makefile
6029   modules/demux/avi/Makefile
6030   modules/demux/mp4/Makefile
6031   modules/demux/mpeg/Makefile
6032   modules/demux/playlist/Makefile
6033   modules/gui/Makefile
6034   modules/gui/beos/Makefile
6035   modules/gui/pda/Makefile
6036   modules/gui/macosx/Makefile
6037   modules/gui/qnx/Makefile
6038   modules/gui/qt4/Makefile
6039   modules/gui/skins2/Makefile
6040   modules/gui/wxwidgets/Makefile
6041   modules/gui/wince/Makefile
6042   modules/meta_engine/Makefile
6043   modules/misc/Makefile
6044   modules/misc/dummy/Makefile
6045   modules/misc/memcpy/Makefile
6046   modules/misc/notify/Makefile
6047   modules/misc/testsuite/Makefile
6048   modules/misc/playlist/Makefile
6049   modules/misc/xml/Makefile
6050   modules/misc/probe/Makefile
6051   modules/mux/Makefile
6052   modules/mux/mpeg/Makefile
6053   modules/mux/rtp/Makefile
6054   modules/packetizer/Makefile
6055   modules/services_discovery/Makefile
6056   modules/stream_out/Makefile
6057   modules/stream_out/transrate/Makefile
6058   modules/video_chroma/Makefile
6059   modules/video_filter/Makefile
6060   modules/video_output/Makefile
6061   modules/video_output/msw/Makefile
6062   modules/video_output/qte/Makefile
6063   modules/video_output/x11/Makefile
6064   modules/visualization/Makefile
6065   modules/visualization/visual/Makefile
6066   modules/visualization/galaktos/Makefile
6067 ])
6068
6069 dnl Generate makefiles
6070 AC_OUTPUT
6071
6072 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6073 # not provided with the source
6074 ${SHELL} ./config.status --file=vlc-config
6075 chmod 0755 vlc-config
6076
6077 dnl echo "Enabled builtin modules :"
6078 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6079
6080 dnl echo "Enabled plugin modules :"
6081 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6082
6083 dnl Shortcut to nice compile message
6084 rm -f compile
6085 echo '#! /bin/sh' >compile
6086
6087 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6088 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
6089 chmod a+x compile
6090
6091 printf "
6092 vlc configuration
6093 --------------------
6094 vlc version           : ${VERSION}
6095 system                : ${SYS}
6096 architecture          : ${ARCH}
6097 build flavour         : "
6098 test "${enable_debug}" = "yes" && printf "debug "
6099 test "${enable_cprof}" = "yes" && printf "cprof "
6100 test "${enable_gprof}" = "yes" && printf "gprof "
6101 test "${enable_optimizations}" = "yes" && printf "optim "
6102 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6103 echo "
6104 vlc aliases           :${ALIASES}
6105 plugins/bindings      :${PLUGINS_BINDINGS}
6106
6107 You can tune the compiler flags in vlc-config.
6108 To build vlc and its plugins, type \`./compile' or \`make'.
6109 "
6110