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