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