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