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