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