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