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