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