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