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