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