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