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