]> git.sesse.net Git - vlc/blob - configure.ac
Missing checks for alloca and mmap
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59) dnl this really should be 2.59c
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225
226         with_macosx_sdk=""
227         echo "  Compiling with default SDK"
228     fi
229     if test ".`uname -p`" = ".i386"; then
230         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
231         dnl without hacking it a lot, we disable mmx and sse.
232         dnl (that bug is about ld being unable to handle
233         dnl text relocation)
234         save_cflags="$CFLAGS"
235         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
236         AC_TRY_LINK(
237             [int a;], [asm("movq _a,%mm0\n");],
238             ac_ld_does_not_support_text_reloc=no,
239             ac_ld_does_not_support_text_reloc=yes)
240         CFLAGS="$save_cflags"
241
242         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
243             enable_mmx="no"
244             echo "  Assuming --disable-mmx (due to a bug in ld)"
245             enable_sse="no"
246             echo "  Assuming --disable-sse (due to a bug in ld)"
247         fi
248     fi
249     dnl
250     dnl  Check for Mac OS X SDK settings
251     dnl
252     AC_ARG_WITH(macosx-sdk,
253        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
254     if test "${with_macosx_sdk}" != "" ; then
255         CC="${CC} -isysroot ${with_macosx_sdk}" 
256         CXX="${CXX} -isysroot ${with_macosx_sdk}"
257         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
258         LD="${LD} -syslibroot ${with_macosx_sdk}"
259     fi
260     AC_ARG_WITH(macosx-version-min,
261        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
262     if test "${with_macosx_version_min}" != "" ; then
263         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
264         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
265         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
266         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
267         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
268         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
269         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
270         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
271         export MACOSX_DEPLOYMENT_TARGET
272     fi
273     ;;
274   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
275     AC_CHECK_TOOL(WINDRES, windres, :)
276
277     case "${host_os}" in
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290       *wince* | *mingwce* | *pe*)
291         SYS=mingwce
292         ;;
293     esac
294
295     if test "${SYS}" = "mingw32"; then
296         # add ws2_32 for closesocket, select, recv
297         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
298         VLC_ADD_LDFLAGS([vlc],[-mwindows])
299         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
300         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
301         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl flac ts audioscrobbler lua],[-lws2_32])
302     fi
303     if test "${SYS}" = "mingwce"; then
304         # add ws2 for closesocket, select, recv
305         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
306         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
307         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
308    fi
309     ;;
310   *nto*)
311     SYS=nto
312     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
313     ;;
314   solaris*)
315     SYS=solaris
316     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
317     # Perhaps it is useful other places as well? 
318     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
319     ;;
320   hpux*)
321     SYS=hpux
322     ;;
323   beos)
324     SYS=beos
325     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
326     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
327     VLC_ADD_CXXFLAGS([beos],[])
328     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
329     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
330     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
331     VLC_ADD_LIBS([access_file],[-lpoll])
332     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
333     dnl Check for BONE
334     if test -f /boot/beos/system/lib/libbind.so; then
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
336     else
337         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
338     fi
339
340     dnl Ugly check for Zeta
341     if test -f /boot/beos/system/lib/libzeta.so; then
342         VLC_ADD_LIBS([beos],[-lzeta])
343     fi
344     ;;
345   *)
346     SYS="${host_os}"
347     ;;
348 esac
349 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
350 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
351 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
352 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
353
354 dnl
355 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
356 dnl for program foo on win32
357
358 case "${build_os}" in
359     cygwin|msys)
360         ac_executable_extensions=".exe"
361     ;;
362     *)
363     ;;
364 esac
365
366 dnl 
367 dnl  Libtool
368 dnl  It's very bad, but our former custom system was worst
369 dnl  -- Courmisch
370 dnl
371
372 dnl override platform specific check for dependent libraries
373 dnl otherwise libtool linking of shared libraries will
374 dnl fail on anything other than pass_all.
375 AC_CACHE_VAL(lt_cv_deplibs_check_method,
376     [lt_cv_deplibs_check_method=pass_all])
377
378 AC_DISABLE_STATIC
379 AC_DISABLE_FAST_INSTALL
380 AC_LIBTOOL_DLOPEN
381 AC_LIBTOOL_WIN32_DLL
382 m4_undefine([AC_PROG_F77])
383 m4_defun([AC_PROG_F77],[])
384 AC_PROG_LIBTOOL
385
386 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
387 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
388
389 lt_cv_deplibs_check_method=pass_all
390
391
392 dnl
393 dnl Gettext stuff
394 dnl
395 AM_GNU_GETTEXT_VERSION(0.16.1)
396 AM_GNU_GETTEXT([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  CMML plugin
3823 dnl
3824 AC_ARG_ENABLE(cmml,
3825   [  --enable-cmml           CMML support (default enabled)])
3826 if test "${enable_cmml}" != "no"
3827 then
3828   VLC_ADD_PLUGINS([cmml])
3829 fi
3830
3831
3832 dnl
3833 dnl  Video plugins
3834 dnl
3835
3836 AC_ARG_WITH(,[Video plugins:])
3837
3838 dnl Check for DPMS
3839 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3840   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3841   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3842     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3843     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3844       AC_MSG_RESULT(yes)
3845       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3846                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3847     ],[
3848       AC_MSG_RESULT(no)
3849     ])
3850   ],,[
3851     #include <X11/Xlib.h>
3852   ])
3853   CPPFLAGS="${CPPFLAGS_save}"
3854 fi
3855
3856 dnl
3857 dnl  X11 module
3858 dnl  (enabled by default except on win32)
3859 dnl
3860 AC_ARG_ENABLE(x11,
3861   [  --enable-x11            X11 support (default enabled)])
3862 if test "${enable_x11}" != "no" &&
3863   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3864    test "${enable_x11}" = "yes"); then
3865   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3866   AC_CHECK_HEADERS(X11/Xlib.h, [
3867     VLC_ADD_PLUGINS([panoramix])
3868     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3869     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3870     AC_CHECK_LIB(Xext, XShmAttach, [
3871       VLC_ADD_PLUGINS([x11])
3872       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3873       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3874     ])
3875   ])
3876   CPPFLAGS="${CPPFLAGS_save}"
3877 fi
3878
3879 dnl
3880 dnl  XVideo module
3881 dnl  (enabled by default except on win32)
3882 dnl
3883 AC_ARG_ENABLE(xvideo,
3884   [  --enable-xvideo         XVideo support (default enabled)])
3885 if test "${enable_xvideo}" != "no" &&
3886   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3887    test "${enable_xvideo}" = "yes"); then
3888   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3889   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3890     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3891     AC_CHECK_LIB(Xv,XvPutImage,[
3892       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3893       # test for libXv_pic.
3894       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3895         VLC_ADD_PLUGINS([xvideo])
3896         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3897         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3898       else
3899         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3900           VLC_ADD_PLUGINS([xvideo])
3901           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3902           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3903         ],[
3904           VLC_ADD_BUILTINS([xvideo])
3905           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3906           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3907         ])
3908       fi
3909     ])
3910     CFLAGS="${CFLAGS_save}"
3911   ]
3912   CPPFLAGS="${CPPFLAGS_save}")
3913 fi
3914
3915 dnl
3916 dnl  GLX module
3917 dnl  (enabled by default except on win32)
3918 dnl
3919 AC_ARG_ENABLE(glx,
3920   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3921 if test "${enable_glx}" != "no" &&
3922   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3923    test "${enable_glx}" = "yes"); then
3924   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3925   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3926   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3927     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3928     choke me
3929     #endif]]),
3930     [
3931       VLC_ADD_PLUGINS([glx])
3932       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3933       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3934     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3935   CPPFLAGS="${CPPFLAGS_save}"
3936 fi
3937
3938 dnl
3939 dnl  XVMC module
3940 dnl  (enabled by default except on win32)
3941 dnl
3942 AC_ARG_ENABLE(xvmc,
3943   [  --enable-xvmc           XVMC support (default disabled)])
3944 if test "${enable_xvmc}" = "yes" &&
3945   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3946    test "${enable_xvmc}" = "yes"); then
3947   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3948   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3949     VLC_ADD_PLUGINS([xvmc])
3950     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3951     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3952   ])
3953   CPPFLAGS="${CPPFLAGS_save}"
3954 fi
3955
3956 dnl
3957 dnl  Check for the Xinerama extension
3958 dnl
3959 AC_ARG_ENABLE(xinerama,
3960   [  --enable-xinerama       Xinerama support (default enabled)])
3961 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3962   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3963    test "${enable_xvideo}" = "yes"); then
3964   ac_cv_have_xinerama="no"
3965   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3966   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3967   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3968     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3969       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3970       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3971       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3972       ac_cv_have_xinerama="yes"
3973     ],[
3974       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3975         VLC_ADD_LIBS([xvideo],[-lXinerama])
3976         VLC_ADD_LIBS([x11],[-lXinerama])
3977         VLC_ADD_LIBS([glx],[-lXinerama])
3978         ac_cv_have_xinerama="yes"
3979       ])
3980     ])
3981   ])
3982   if test "${ac_cv_have_xinerama}" = "yes"; then
3983     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3984   fi
3985   CFLAGS="${CFLAGS_save}"
3986   CPPFLAGS="${CPPFLAGS_save}"
3987
3988 dnl
3989 dnl  Check for XF86VidMode extension
3990 dnl
3991   ac_cv_have_xf86vidmode="no"
3992   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3993   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3994   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3995     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3996       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
3997       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
3998       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
3999       ac_cv_have_xf86vidmode="yes"
4000     ],[
4001       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4002         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4003         VLC_ADD_LIBS([x11],[-lXxf86vm])
4004         VLC_ADD_LIBS([glx],[-lXxf86vm])
4005         ac_cv_have_xf86vidmode="yes"
4006       ])
4007     ])
4008   ],[true],
4009 [#ifdef HAVE_X11_XLIB_H
4010 # include <X11/Xlib.h>
4011 #endif]
4012    )
4013   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4014     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4015   ])
4016   CFLAGS="${CFLAGS_save}"
4017   CPPFLAGS="${CPPFLAGS_save}"
4018
4019 fi
4020
4021 dnl
4022 dnl  OpenGL module
4023 dnl  (enabled by default except on beos)
4024 dnl
4025 AC_ARG_ENABLE(opengl,
4026   [  --enable-opengl         OpenGL support (default enabled)])
4027 if test "${enable_opengl}" != "no" &&
4028    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4029   if test "${SYS}" != "darwin"; then
4030     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4031       VLC_ADD_PLUGINS([opengl])
4032       if test "${SYS}" != "mingw32"; then
4033         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4034       else
4035         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4036       fi
4037     ])
4038   else
4039     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4040     VLC_ADD_PLUGINS([opengl])
4041     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4042   fi
4043 fi
4044
4045 dnl
4046 dnl  SDL module
4047 dnl
4048 AC_ARG_ENABLE(sdl,
4049   [  --enable-sdl            SDL support (default enabled)])
4050 AC_ARG_ENABLE(sdl-image,
4051   [  --enable-sdl-image      SDL image support (default enabled)])
4052 if test "${enable_sdl}" != "no"
4053 then
4054   SDL_PATH="${PATH}"
4055   AC_ARG_WITH(sdl-config-path,
4056     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4057     [ if test "${with_sdl_config_path}" != "no"
4058       then
4059         SDL_PATH="${with_sdl_config_path}:${PATH}"
4060       fi ])
4061   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4062   SDL_CONFIG="${SDL12_CONFIG}"
4063   SDL_HEADER="SDL12/SDL.h"
4064   SDL_IMAGE="SDL12/SDL_image.h"
4065   if test "${SDL_CONFIG}" = "no"
4066   then
4067     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4068     SDL_CONFIG=${SDL11_CONFIG}
4069     SDL_HEADER="SDL11/SDL.h"
4070     SDL_IMAGE="SDL11/SDL_image.h"
4071   fi
4072   if test "${SDL_CONFIG}" = "no"
4073   then
4074     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4075     SDL_HEADER="SDL/SDL.h"
4076     SDL_IMAGE="SDL/SDL_image.h"
4077   fi
4078   # check for cross-compiling
4079   SDL_PREFIX=
4080   AC_ARG_WITH(sdl-prefix,
4081     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4082                                e.g use as:
4083                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4084   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4085   then
4086     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4087   fi
4088   if test "${SDL_CONFIG}" != "no"
4089   then
4090     # SDL on Darwin is heavily patched and can only run SDL_image
4091     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4092       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4093     fi
4094     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4095     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4096     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4097     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4098       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4099       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4100           As a last resort we also test for SDL.h presence),
4101       [ AC_MSG_ERROR([The development package for SDL is not installed.
4102 Please install it and try again. Alternatively you can also configure with
4103 --disable-sdl.])
4104       ])])
4105     AS_IF([ test "${enable_sdl_image}" != "no"],[
4106       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4107         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4108         VLC_ADD_PLUGINS([sdl_image])
4109         AC_CHECK_LIB(png, png_set_rows,
4110           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4111         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4112           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4113         AC_CHECK_LIB(tiff, TIFFClientOpen,
4114           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4115         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4116         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4117             As a last resort we also test for SDL_image.h presence),
4118         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4119   You should install it alongside your SDL package.])
4120         ])])
4121     ])
4122     CPPFLAGS="${CPPFLAGS_save}"
4123     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4124     then
4125       AC_MSG_ERROR([The development package for SDL is not installed.
4126 Please install it and try again. Alternatively you can also configure with
4127 --disable-sdl.])
4128     fi
4129
4130   elif test "${enable_sdl}" =  "yes"
4131   then
4132     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4133 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4134     ])
4135   fi
4136 fi
4137
4138 dnl
4139 dnl  freetype module
4140 dnl
4141 AC_ARG_ENABLE(freetype,
4142   [  --enable-freetype       freetype support (default enabled)])
4143 AC_ARG_ENABLE(fribidi,
4144   [  --enable-fribidi        fribidi support (default enabled)])
4145 if test "${enable_freetype}" != "no"
4146 then
4147    PKG_CHECK_MODULES(FREETYPE, freetype2,[  
4148       VLC_ADD_PLUGINS([freetype])
4149       have_freetype=yes     
4150       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4151       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4152       if test "${SYS}" = "mingw32"; then
4153         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4154      fi
4155     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4156       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4157        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4158     AC_CHECK_HEADERS(Carbon/Carbon.h,
4159       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4160   ],[
4161   have_freetype=no
4162   AS_IF([ test "${enable_freetype}" =  "yes"],[
4163     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4164 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4165       ])
4166     ])
4167   ])
4168
4169   dnl fribidi support
4170   if test "${enable_fribidi}" != "no"
4171   then
4172     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4173       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4174       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4175     ])
4176     fi
4177 fi
4178
4179 dnl
4180 dnl  libxml2 module
4181 dnl
4182 AC_ARG_ENABLE(libxml2,
4183   [  --enable-libxml2        libxml2 support (default enabled)])
4184 if test "${enable_libxml2}" != "no"
4185 then
4186   XML2_PATH="${PATH}"
4187   AC_ARG_WITH(xml2-config-path,
4188     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4189     [ if test "${with_xml2_config_path}" != "no"; then
4190         XML2_PATH="${with_xml2_config_path}:${PATH}"
4191       fi ])
4192   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4193   if test "${XML2_CONFIG}" != "no"; then
4194     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4195     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4196     dnl depends on the xmlTextReader extension
4197     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4198     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4199     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4200       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4201         VLC_ADD_PLUGINS([xml]) ],[
4202           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4203           if test "${enable_xml2}" = "yes"; then
4204             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4205           fi])
4206        ],[
4207       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4208       if test "${enable_xml2}" = "yes"; then
4209         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4210       fi])
4211     LDFLAGS="${LDFLAGS_save}"
4212     CPPFLAGS="${CPPFLAGS_save}"
4213   else
4214     if test "${enable_xml2}" = "yes"; then
4215       AC_MSG_ERROR([Could not find libxml2])
4216     fi
4217   fi
4218 fi
4219
4220 dnl
4221 dnl  SVG module
4222 dnl
4223 AC_ARG_ENABLE(svg,
4224   [  --enable-svg            SVG support (default disabled)])
4225 if test "${enable_svg}" = "yes"
4226 then
4227   PKG_CHECK_MODULES(SVG, 
4228         librsvg-2.0 >= 2.9.0,
4229         [
4230           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4231           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4232           VLC_ADD_PLUGINS([svg]) ],
4233         [AC_MSG_WARN(SVG library not found)])
4234 fi
4235
4236 dnl
4237 dnl Snapshot vout module (with cache)
4238 dnl
4239 AC_ARG_ENABLE(snapshot,
4240   [  --enable-snapshot       snapshot module (default disabled)])
4241 if test "${enable_snapshot}" = "yes"
4242 then
4243   VLC_ADD_PLUGINS([snapshot])
4244 fi
4245
4246 dnl
4247 dnl  Qt Embedded module
4248 dnl  (disabled by default)
4249 dnl
4250 AC_ARG_ENABLE(qte,
4251   [  --enable-qte            QT Embedded support (default disabled)])
4252 if test "${enable_qte}" = "yes"
4253 then
4254   AC_ARG_WITH(qte,
4255   [    --with-qte=PATH       Qt Embedded headers and libraries])
4256   if test "${with_qte}" != "no" -a -n "${with_qte}"
4257   then
4258     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4259     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])
4260   else
4261     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4262     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4263   fi
4264   VLC_ADD_PLUGINS([qte])
4265   NEED_QTE_MAIN=yes
4266   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4267   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4268     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4269   ] )
4270   CPPFLAGS="${CPPFLAGS_save}"
4271 fi
4272
4273 dnl
4274 dnl  Qt Video output module
4275 dnl  (disabled by default)
4276 dnl
4277 dnl AC_ARG_ENABLE(qt_video,
4278 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4279 dnl if test "${enable_qt_video}" = "yes"
4280 dnl then
4281 dnl  VLC_ADD_PLUGINS([qt_video])
4282 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4283 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4284 dnl   AC_CHECK_LIB(qt-mt,main,[
4285 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4286 dnl  ],[
4287 dnl    AC_CHECK_LIB(qt,main,[
4288 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4289 dnl    ])
4290 dnl  ])
4291 dnl  NEED_QTE_MAIN=yes
4292 dnl  LDFLAGS="${LDFLAGS_save}"
4293 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4294 dnl fi
4295
4296 dnl
4297 dnl Roku HD1000 Video output module
4298 dnl
4299 AC_ARG_ENABLE(hd1000v,
4300   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4301 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4302   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4303    test "${enable_hd1000v}" = "yes"); then
4304   AC_LANG_PUSH([C++])
4305   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4306   [
4307     can_build_roku="yes"
4308   ],
4309   [
4310     can_build_roku="no"
4311     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4312   ])
4313   if test "$can_build_roku" = "yes"
4314   then
4315     VLC_ADD_PLUGINS([hd1000v])
4316     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4317   fi
4318   AC_LANG_POP([C++])
4319 fi
4320
4321 dnl
4322 dnl  Windows DirectX module
4323 dnl
4324
4325 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4326 then
4327   VLC_ADD_PLUGINS([panoramix])
4328 fi
4329
4330 AC_ARG_ENABLE(directx,
4331   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4332 if test "${enable_directx}" != "no"
4333 then
4334   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4335   then
4336     AC_ARG_WITH(directx,
4337     [    --with-directx=PATH   Win32 DirectX headers])
4338     if test -z "${with_directx}"
4339     then
4340       AC_CHECK_HEADERS(ddraw.h,
4341       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4342         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4343       ])
4344       AC_CHECK_HEADERS(GL/gl.h,
4345       [ VLC_ADD_PLUGINS([glwin32])
4346         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4347       ])
4348       AC_CHECK_HEADERS(d3d9.h,
4349       [ VLC_ADD_PLUGINS([direct3d])
4350         VLC_ADD_LIBS([direct3d],[-lgdi32])
4351       ])
4352     else
4353       AC_MSG_CHECKING(for directX headers in ${with_directx})
4354       if test -f ${with_directx}/ddraw.h
4355       then
4356         VLC_ADD_PLUGINS([vout_directx aout_directx])
4357         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4358         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4359         AC_MSG_RESULT(yes)
4360       else
4361         AC_MSG_RESULT(no)
4362         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4363       fi
4364     fi
4365   fi
4366 fi
4367
4368 dnl
4369 dnl  Linux framebuffer module
4370 dnl
4371 AC_ARG_ENABLE(fb,
4372   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4373     if test "${enable_fb}" != "no"
4374     then
4375       AC_CHECK_HEADERS(linux/fb.h, [
4376         VLC_ADD_PLUGINS([fb])
4377       ])
4378     fi
4379
4380 dnl
4381 dnl  Linux MGA module
4382 dnl
4383 AC_ARG_ENABLE(mga,
4384   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4385   [ if test "${enable_mga}" = "yes"
4386     then
4387       VLC_ADD_PLUGINS([mga])
4388     fi ])
4389
4390 dnl
4391 dnl  SVGAlib module
4392 dnl
4393 AC_ARG_ENABLE(svgalib,
4394   [  --enable-svgalib        SVGAlib support (default disabled)])
4395 if test "${enable_svgalib}" = "yes"
4396 then
4397   VLC_ADD_PLUGINS([svgalib])
4398   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4399 fi
4400
4401 dnl
4402 dnl  DirectFB module
4403 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4404 dnl  TODO: support for static linking
4405 dnl
4406 AC_ARG_ENABLE(directfb,
4407   [  --enable-directfb       DirectFB support (default disabled)])
4408 AC_ARG_WITH(directfb, 
4409   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4410
4411 if test "${enable_directfb}" = "yes"; then
4412     have_directfb="false"
4413     CPPFLAGS_mydirectfb=
4414     LIBS_mydirectfb=
4415     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4416         dnl Trying the given location
4417         CPPFLAGS_save="${CPPFLAGS}"
4418         LIBS_save="${LIBS}"
4419
4420         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4421         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4422         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4423
4424         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4425         LIBS="${LIBS} ${LIBS_new}"
4426
4427         dnl FIXME: too obscure
4428         AC_CHECK_HEADER([directfb.h], [
4429             AC_CHECK_LIB([direct],[direct_initialize], [
4430                 AC_CHECK_LIB([fusion], [fusion_enter], [
4431                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4432                 ], have_directfb="false")
4433             ], have_directfb="false")
4434         ], have_directfb="false")
4435
4436         dnl Restore flags
4437         CPPFLAGS="${CPPFLAGS_save}"
4438         LIBS="${LIBS_save}"
4439
4440         if test "${have_directfb}" = "true"; then
4441             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4442             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4443         fi
4444     else 
4445         dnl Look for directfb-config
4446         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4447         if test "${DIRECTFB_CONFIG}" != "no"; then
4448             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4449             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4450             have_directfb="true"
4451         else 
4452             dnl Trying with pkg-config
4453             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4454                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4455                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4456                 have_directfb="true"
4457                 ], [have_directfb="false"])
4458         fi
4459     fi
4460     if test "${have_directfb}" = "true"; then
4461         VLC_ADD_PLUGINS([directfb])
4462         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4463         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4464     else 
4465         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4466     fi
4467 fi
4468  
4469
4470
4471 dnl
4472 dnl  GGI module
4473 dnl
4474 AC_ARG_ENABLE(ggi,
4475   [  --enable-ggi            GGI support (default disabled)])
4476 if test "${enable_ggi}" = "yes"
4477 then
4478   VLC_ADD_PLUGINS([ggi])
4479   VLC_ADD_LIBS([ggi],[-lggi])
4480   AC_ARG_WITH(ggi,
4481     [    --with-ggi=PATH       path to libggi],
4482     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4483       then
4484         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4485         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4486       fi ])
4487 fi
4488
4489 dnl
4490 dnl  Glide module
4491 dnl
4492 AC_ARG_ENABLE(glide,
4493   [  --enable-glide          Glide (3dfx) support (default disabled)])
4494 if test "${enable_glide}" = "yes"
4495 then
4496   CFLAGS_save="${CFLAGS}"
4497   AC_ARG_WITH(glide,
4498     [    --with-glide=PATH     path to libglide],
4499     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4500       then
4501         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4502         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4503         CFLAGS="$CFLAGS -I${with_glide}/include"
4504     fi ])
4505    CFLAGS="$CFLAGS -I/usr/include/glide"
4506    AC_CHECK_HEADER(glide.h,[   
4507       VLC_ADD_PLUGINS([glide])
4508       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4509       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4510     ],[
4511       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4512      ])
4513    CFLAGS="${CFLAGS_save}"
4514 fi
4515
4516 dnl
4517 dnl  AA plugin
4518 dnl
4519 AC_ARG_ENABLE(aa,
4520   [  --enable-aa             aalib output (default disabled)])
4521 if test "${enable_aa}" = "yes"
4522 then
4523   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4524   if test "${have_aa}" = "true"
4525   then
4526     VLC_ADD_PLUGINS([aa])
4527     VLC_ADD_LIBS([aa],[-laa])
4528   fi
4529 fi
4530
4531 dnl
4532 dnl  libcaca plugin
4533 dnl
4534 AC_ARG_ENABLE(caca,
4535   [  --enable-caca           libcaca output (default disabled)])
4536 if test "${enable_caca}" = "yes"
4537 then
4538   CACA_PATH="${PATH}"
4539   AC_ARG_WITH(caca-config-path,
4540     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4541     [ if test "${with_caca_config_path}" != "no"
4542       then
4543         CACA_PATH="${with_caca_config_path}:${PATH}"
4544       fi ])
4545   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4546   if test "${CACA_CONFIG}" != "no"
4547   then
4548     VLC_ADD_PLUGINS([caca])
4549     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4550     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4551     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4552                                         caca_event_t ev;]],
4553                                         [[ev.type = 0;]]
4554                        )],
4555                        [],
4556       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4557     )
4558   fi
4559 fi
4560
4561 dnl
4562 dnl  win32 GDI plugin
4563 dnl
4564 AC_ARG_ENABLE(wingdi,
4565   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4566 if test "${enable_wingdi}" != "no"; then
4567   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4568     VLC_ADD_PLUGINS([wingdi])
4569     VLC_ADD_LIBS([wingdi],[-lgdi32])
4570   fi
4571   if test "${SYS}" = "mingwce"; then
4572     VLC_ADD_PLUGINS([wingdi wingapi])
4573   fi
4574 fi
4575
4576 dnl
4577 dnl  Audio plugins
4578 dnl
4579
4580 AC_ARG_WITH(,[Audio plugins:])
4581
4582 dnl
4583 dnl  OSS /dev/dsp module (enabled by default except on win32)
4584 dnl
4585 AC_ARG_ENABLE(oss,
4586   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4587
4588 if test "${enable_oss}" != "no" &&
4589   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4590    test "${enable_oss}" = "yes")
4591 then
4592   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4593     VLC_ADD_PLUGINS([oss])
4594     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4595   ])
4596 fi
4597
4598 dnl
4599 dnl  Esound module
4600 dnl
4601 AC_ARG_ENABLE(esd,
4602   [  --enable-esd            Esound library support (default disabled)],
4603   [if test "${enable_esd}" = "yes"
4604    then
4605      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4606      if test "${ESD_CONFIG}" != "no"
4607      then
4608        VLC_ADD_PLUGINS([esd])
4609        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4610        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4611      fi
4612    fi])
4613
4614 dnl
4615 dnl  Portaudio module
4616 dnl
4617 AC_ARG_ENABLE(portaudio,
4618   [  --enable-portaudio      Portaudio library support (default disabled)],
4619   [if test "${enable_portaudio}" = "yes"
4620    then
4621      VLC_ADD_PLUGINS([portaudio])
4622      VLC_ADD_CXXFLAGS([portaudio],[])
4623      if test "${SYS}" = "mingw32"; then
4624         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4625      else
4626         VLC_ADD_LIBS([portaudio],[-lportaudio])
4627      fi
4628    fi])
4629
4630 dnl
4631 dnl  aRts module -- broken (freeze wxWidgets)
4632 dnl
4633 AC_ARG_ENABLE(arts,
4634  [  --enable-arts           aRts sound server (default disabled)],
4635  [if test "${enable_arts}" = "yes"
4636   then
4637     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4638     if test "${ARTS_CONFIG}" != "no"
4639     then
4640       VLC_ADD_PLUGINS([arts])
4641       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4642       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4643     fi
4644   fi])
4645
4646 dnl
4647 dnl  ALSA module
4648 dnl
4649 AC_ARG_ENABLE(alsa,
4650   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4651 if test "${enable_alsa}" != "no"
4652 then
4653   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4654   if test "${have_alsa}" = "true"
4655   then
4656     CFLAGS="${CFLAGS_save}"
4657     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4658                     #define ALSA_PCM_NEW_SW_PARAMS_API
4659                     #include <alsa/asoundlib.h>],
4660        [snd_pcm_hw_params_get_period_time(0,0,0);],
4661         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4662     VLC_ADD_PLUGINS([alsa])
4663     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4664   else
4665     if test "${enable_alsa}" = "yes"; then
4666       AC_MSG_ERROR([Could not find ALSA development headers])
4667     fi
4668   fi
4669 fi
4670
4671 dnl
4672 dnl  win32 waveOut plugin
4673 dnl
4674 AC_ARG_ENABLE(waveout,
4675   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4676 if test "${enable_waveout}" != "no"; then
4677   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4678     VLC_ADD_PLUGINS([waveout])
4679     VLC_ADD_LIBS([waveout],[-lwinmm])
4680   fi
4681   if test "${SYS}" = "mingwce"; then
4682     VLC_ADD_PLUGINS([waveout])
4683   fi
4684 fi
4685
4686 dnl
4687 dnl  CoreAudio plugin
4688 dnl
4689 AC_ARG_ENABLE(macosx-audio,
4690   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4691 if test "${enable_macosx-audio}" != "no" &&
4692   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4693 then
4694   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4695     [ VLC_ADD_BUILTINS([auhal])
4696       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4697     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4698 fi
4699
4700 dnl
4701 dnl  Roku HD1000 audio
4702 dnl
4703 AC_ARG_ENABLE(hd1000a,
4704   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4705 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4706   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4707    test "${enable_hd1000a}" = "yes")
4708 then
4709   AC_LANG_PUSH([C++])
4710   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4711     VLC_ADD_PLUGINS([hd1000a])
4712     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4713   AC_LANG_POP([C++])
4714 fi
4715
4716 dnl
4717 dnl  JACK modules
4718 dnl
4719 AC_ARG_ENABLE(jack,
4720  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4721  [enable_jack="no"])
4722
4723 AS_IF([test "${enable_jack}" != "no"], [
4724   AC_CHECK_HEADERS(jack/jack.h, [
4725     VLC_ADD_PLUGINS([access_jack jack])
4726     VLC_ADD_LIBS([access_jack jack],[-ljack])
4727   ],[AC_MSG_ERROR([cannot find JACK headers])])
4728 ])
4729
4730 dnl
4731 dnl  CyberLink for C++ UPnP stack
4732 dnl
4733 AC_ARG_ENABLE(cyberlink,
4734   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4735   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4736   AC_ARG_WITH(cyberlink-tree,
4737     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4738
4739   dnl
4740   dnl test for --with-cyberlink-tree
4741   dnl
4742   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4743     AC_LANG_PUSH(C++)
4744     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4745     AS_IF([test -z "${real_cyberlink_tree}"], [
4746       dnl  The given directory can't be found
4747       AC_MSG_RESULT(no)
4748       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4749     ])
4750     CPPFLAGS_save="${CPPFLAGS}"
4751     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4752     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4753     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4754       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4755         VLC_ADD_PLUGINS([upnp_cc]) 
4756       ],[
4757         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4758       ])
4759     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4760     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4761       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4762       dnl The mere fact that we have to make such an ugly check sucks
4763       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4764       LIBS_save="$LIBS"
4765       LIBS_cclink="no"
4766       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4767         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4768         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4769 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4770 using namespace CyberLink;
4771
4772 class testclass : public SearchResponseListener, public MediaPlayer
4773 {
4774     virtual void deviceSearchResponseReceived( SSDPPacket *)
4775     {
4776     }
4777
4778     public:
4779       testclass (void)
4780       {
4781         addSearchResponseListener (this);
4782         start ();
4783       }
4784 };
4785 ],[testclass l;])],[LIBS_cclink="$l"])
4786       done
4787       LIBS="${LIBS_save}"
4788       dnl should not happen - otherwise this needs fixing - hence FAILURE
4789       AS_IF([test "${LIBS_cclink}" = "no"],
4790         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4791       AC_MSG_RESULT([${LIBS_cclink}])
4792       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4793     ], [
4794       AC_MSG_RESULT(no)
4795       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4796     ])
4797     CPPFLAGS="${CPPFLAGS_save}"
4798     AC_LANG_POP([C++])
4799   ])
4800 ])
4801
4802 dnl
4803 dnl UPnP Plugin (Intel SDK)
4804 dnl
4805 AC_ARG_ENABLE(upnp,
4806   [  --enable-upnp           Intel UPnP SDK (default enabled)])
4807
4808 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4809 AS_IF([test "x${enable_upnp}" != "xno"], [
4810   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4811   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4812     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4813   ])
4814   AS_IF([test "${has_upnp}" = "yes"], [
4815     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4816   ])
4817 ], [
4818   has_upnp="no"
4819 ])
4820
4821 AS_IF([test "${has_upnp}" = "yes"], [
4822   VLC_ADD_PLUGINS([upnp_intel])
4823 ])
4824
4825
4826 dnl
4827 dnl  Interface plugins
4828 dnl
4829
4830 AC_ARG_WITH(,[Interface plugins:])
4831
4832 dnl special case for BeOS
4833 if test "${SYS}" = "beos"
4834 then
4835     VLC_ADD_BUILTINS([beos])
4836 fi
4837
4838 dnl
4839 dnl Skins2 module
4840 dnl
4841 AC_ARG_ENABLE(skins2,
4842   [  --enable-skins2         Skins2 interface module (default disabled)])
4843 if test "${enable_skins2}" = "yes" ||
4844   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4845    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4846
4847   dnl test for the required libraries
4848   skins2_missing_lib="no"
4849
4850   dnl freetype
4851   if test "${have_freetype}" != "yes"; then
4852     skins2_missing_lib="yes"
4853     if test "${enable_skins2}" = "yes"; then
4854       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4855     fi
4856   fi
4857
4858   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4859     VLC_ADD_PLUGINS([skins2])
4860     ALIASES="${ALIASES} svlc"
4861     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4862     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4863     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4864
4865   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4866     VLC_ADD_PLUGINS([skins2])
4867     ALIASES="${ALIASES} svlc"
4868     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4869     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4870     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4871
4872   else if test "${skins2_missing_lib}" = "no"; then
4873     VLC_ADD_PLUGINS([skins2])
4874     ALIASES="${ALIASES} svlc"
4875     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4876     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4877     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4878   fi fi fi
4879 fi
4880
4881
4882 dnl dnl
4883 dnl dnl  Gtk+ module
4884 dnl dnl
4885 dnl AC_ARG_ENABLE(gtk,
4886 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4887 dnl if test "${enable_gtk}" != "no"
4888 dnl then
4889 dnl   GTK_PATH="${PATH}"
4890 dnl   AC_ARG_WITH(gtk-config-path,
4891 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4892 dnl     [ if test "${with_gtk_config_path}" != "no"
4893 dnl       then
4894 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4895 dnl       fi ])
4896 dnl   # look for gtk-config
4897 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4898 dnl   GTK_CONFIG=${GTK12_CONFIG}
4899 dnl   if test "${GTK_CONFIG}" = "no"
4900 dnl   then
4901 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4902 dnl   fi
4903 dnl   if test "${GTK_CONFIG}" != "no"
4904 dnl   then
4905 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4906 dnl     then
4907 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.])
4908 dnl     fi
4909 dnl     if test "${SYS}" != "mingw32"; then
4910 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4911 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4912 dnl     else
4913 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4914 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4915 dnl     fi
4916 dnl     # now look for the gtk.h header
4917 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4918 dnl     ac_cv_gtk_headers=yes
4919 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4920 dnl       ac_cv_gtk_headers=no
4921 dnl       echo "Cannot find gtk development headers."
4922 dnl     ])
4923 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4924 dnl     then
4925 dnl       VLC_ADD_PLUGINS([gtk])
4926 dnl       if test "${SYS}" != "mingw32"; then
4927 dnl         NEED_GTK_MAIN=yes
4928 dnl       fi
4929 dnl       ALIASES="${ALIASES} gvlc"
4930 dnl     fi
4931 dnl     CPPFLAGS="${CPPFLAGS_save}"
4932 dnl   fi
4933 dnl fi
4934 dnl 
4935 dnl
4936 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4937 dnl
4938 dnl AC_ARG_ENABLE(gtk2,
4939 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4940 dnl if test "${enable_gtk2}" = "yes"
4941 dnl then
4942 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4943 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4944 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4945 dnl   VLC_ADD_PLUGINS([gtk2])
4946 dnl   if test "${SYS}" != "mingw32"; then
4947 dnl     NEED_GTK2_MAIN=yes
4948 dnl   fi
4949 dnl fi
4950
4951 dnl
4952 dnl  PDA Gtk+2 module
4953 dnl
4954 AC_ARG_ENABLE(pda,
4955   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4956 if test "${enable_pda}" = "yes"
4957 then
4958   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4959   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4960   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4961   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4962   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4963   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4964   VLC_ADD_PLUGINS([pda])
4965   if test "${SYS}" != "mingw32"; then
4966     NEED_GTK2_MAIN=yes
4967   fi
4968 fi
4969
4970 dnl dnl
4971 dnl dnl  Gnome module
4972 dnl dnl
4973 dnl AC_ARG_ENABLE(gnome,
4974 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4975 dnl   [if test "${enable_gnome}" = "yes"; then
4976 dnl     # look for gnome-config
4977 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4978 dnl     if test -x ${GNOME_CONFIG}
4979 dnl     then
4980 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4981 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4982 dnl     fi
4983 dnl     # now look for the gnome.h header
4984 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4985 dnl     AC_CHECK_HEADERS(gnome.h, [
4986 dnl       VLC_ADD_PLUGINS([gnome])
4987 dnl       NEED_GTK_MAIN=yes
4988 dnl       NEED_GNOME_MAIN=yes
4989 dnl       ALIASES="${ALIASES} gnome-vlc"
4990 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4991 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4992 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4993 dnl         AC_MSG_RESULT(yes)
4994 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4995 dnl                   Define if <gnome.h> defines strndup.)],[
4996 dnl         AC_MSG_RESULT(no)])
4997 dnl      ],[
4998 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4999 dnl developement tools or remove the --enable-gnome option])
5000 dnl      ])
5001 dnl     CPPFLAGS="${CPPFLAGS_save}"
5002 dnl   fi])
5003
5004 dnl
5005 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5006 dnl
5007 dnl AC_ARG_ENABLE(gnome2,
5008 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5009 dnl if test "${enable_gnome2}" = "yes"
5010 dnl then
5011 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5012 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5013 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5014 dnl   VLC_ADD_PLUGINS([gnome2])
5015 dnl   if test "${SYS}" != "mingw32"; then
5016 dnl     NEED_GNOME2_MAIN=yes
5017 dnl   fi
5018 dnl fi
5019
5020 dnl
5021 dnl  wxWidgets module
5022 dnl
5023 AC_ARG_ENABLE(wxwidgets,
5024   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5025
5026 if test "${enable_wxwidgets}" = "yes"
5027 then
5028   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5029   WXWIDGETS_PATH="${PATH}"
5030   AC_ARG_WITH(wx-config-path,
5031     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5032     [ if test "${with_wx_config_path}" != "no"
5033       then
5034         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5035       fi ])
5036   WXWIDGETS_NAME="wx-config"
5037   AC_ARG_WITH(wx-config,
5038     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5039     [ if test "${with_wx_config}" != "no"
5040       then
5041         WXWIDGETS_NAME="${with_wx_config}"
5042       fi ])
5043   # look for wx-config
5044   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5045   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5046   then
5047     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5048     then
5049       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5050     fi
5051     AC_LANG_PUSH(C++)
5052     # Turn this error:
5053     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5054     # into a warning. However better would be to fix playlist.cpp
5055     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5056         [ac_cv_cxx_fpermissive],
5057         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5058          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5059                         ac_cv_cxx_fpermissive=no)])
5060     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5061       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5062     fi
5063     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5064     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5065     # check if we must link against gtk2 libs
5066     # if __WXGTK20__ && __WXGTK__ are defined
5067     # for modules/gui/wxwidgets/video.cpp
5068     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5069 #include <wx/wx.h>
5070 #ifdef __WXGTK20__
5071 #error ok, we need to link against gtk2
5072 #endif
5073         ])],[WXGTK=no],[WXGTK=yes])
5074     if test "$WXGTK" = "yes"; then
5075       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5076     fi
5077     if ${WX_CONFIG} --unicode
5078     then 
5079       # wxwidgets should provide the following flags but does not
5080       # the following is required to compile for win32
5081       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5082     else
5083       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5084     fi
5085     if test "$have_libcdio" = "yes"
5086     then 
5087       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5088       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5089     else 
5090       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5091     fi
5092
5093     if test "$have_libvcdinfo" = "yes"
5094     then 
5095       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5096       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5097     else 
5098       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5099     fi
5100
5101     # now look for the wxprec.h header
5102     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5103     ac_cv_wx_headers=yes
5104     AC_CHECK_HEADERS(wx/wxprec.h, , [
5105       ac_cv_wx_headers=no
5106       echo "Cannot find wxWidgets development headers."
5107     ])
5108     if test "${ac_cv_wx_headers}" = "yes"
5109     then
5110       VLC_ADD_PLUGINS([wxwidgets])
5111       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5112       ALIASES="${ALIASES} wxvlc"
5113     fi
5114     CPPFLAGS="${CPPFLAGS_save}"
5115     AC_LANG_POP(C++)
5116   fi
5117   dnl WxWidgets plugin will yield incorrect code without this
5118   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5119 fi
5120
5121 dnl
5122 dnl QT 4
5123 dnl
5124 enableqt4=false
5125 AC_ARG_ENABLE(qt4,
5126   [  --enable-qt4            QT 4 support (default enabled) ])
5127 AS_IF([test "${enable_qt4}" != "no" &&
5128   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5129   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5130     [ VLC_ADD_PLUGINS([qt4])
5131       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5132       ALIASES="${ALIASES} qvlc"
5133       enableqt4=true
5134       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5135           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5136       else
5137           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5138       fi
5139       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5140       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5141       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5142       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5143       ],
5144       AS_IF([test "${enable_qt4}" = "yes"],[
5145     AC_MSG_ERROR(QT4 library not found)
5146       ],[
5147     AC_MSG_WARN(QT4 library not found)
5148       ])
5149     )
5150 ])
5151 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5152
5153 dnl
5154 dnl  WinCE GUI module
5155 dnl
5156 if test "${SYS}" = "mingwce"; then
5157   VLC_ADD_BUILTINS([wince])
5158   VLC_ADD_CXXFLAGS([wince],[])
5159   VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5160   dnl Gross hack
5161   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5162 elif test "${SYS}" = "mingw32"; then
5163   VLC_ADD_CXXFLAGS([wince],[])
5164   VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5165   dnl Gross hack
5166   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5167 fi
5168
5169 dnl
5170 dnl Simple test for skins2 dependency
5171 dnl
5172 if test "${enable_skins2}" != "no"
5173 then
5174   if test "${WX_CONFIG}" = "no"
5175   then
5176     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.])
5177   fi
5178 fi
5179
5180 dnl dnl
5181 dnl dnl  Qt module
5182 dnl dnl
5183 dnl AC_ARG_ENABLE(qt,
5184 dnl   [  --enable-qt             Qt interface support (default disabled)],
5185 dnl   [if test "${enable_qt}" = "yes"; then
5186 dnl      VLC_ADD_PLUGINS([qt])
5187 dnl      ALIASES="${ALIASES} qvlc"
5188 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5189 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5190 dnl      AC_CHECK_LIB(qt-mt,main,[
5191 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5192 dnl      ],[
5193 dnl        AC_CHECK_LIB(qt,main,[
5194 dnl          VLC_ADD_LIBS([qt],[-lqt])
5195 dnl        ])
5196 dnl      ])
5197 dnl      LDFLAGS="${LDFLAGS_save}"
5198 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5199 dnl      if test -x ${QTDIR}/bin/moc
5200 dnl      then
5201 dnl        MOC=${QTDIR}/bin/moc
5202 dnl      else
5203 dnl        MOC=moc
5204 dnl      fi
5205 dnl    fi])
5206 dnl 
5207 dnl dnl
5208 dnl dnl  KDE module
5209 dnl dnl
5210 dnl AC_ARG_ENABLE(kde,
5211 dnl   [  --enable-kde            KDE interface support (default disabled)],
5212 dnl   [if test "${enable_kde}" = "yes"; then
5213 dnl      VLC_ADD_PLUGINS([kde])
5214 dnl      ALIASES="${ALIASES} kvlc"
5215 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5216 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5217 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5218 dnl      AC_CHECK_LIB(kfile,main,[
5219 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5220 dnl      ])
5221 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5222 dnl      AC_CHECK_LIB(kdeui,main,[
5223 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5224 dnl      ])
5225 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5226 dnl      AC_CHECK_LIB(kio,main,[
5227 dnl        VLC_ADD_LIBS([kde],[-lkio])
5228 dnl      ])
5229 dnl      LDFLAGS="${LDFLAGS_save}"
5230 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5231 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5232 dnl      if test -x ${QTDIR}/bin/moc
5233 dnl      then
5234 dnl        MOC=${QTDIR}/bin/moc
5235 dnl      else
5236 dnl        MOC=moc
5237 dnl      fi
5238 dnl    fi])
5239
5240 dnl
5241 dnl  Opie QT embedded module
5242 dnl
5243 AC_ARG_ENABLE(opie,
5244   [  --enable-opie           Qt embedded interface support (default disabled)],
5245   [if test "${enable_opie}" = "yes"; then
5246      AC_ARG_WITH(qte,
5247      [    --with-qte=PATH       Qt Embedded headers and libraries])
5248      if test "${with_qte}" != "no" -a -n "${with_qte}"
5249      then
5250        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5251        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])
5252      else
5253        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5254        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5255      fi
5256      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5257      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5258        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5259      ] )
5260      CPPFLAGS="${CPPFLAGS_save}"
5261
5262      VLC_ADD_PLUGINS([opie])
5263      NEED_QTE_MAIN=yes
5264      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5265      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5266      if test "${with_qte}" != "no" -a -n "${with_qte}"
5267      then
5268        MOC=${with_qte}/bin/moc
5269      else
5270        MOC=${QTDIR}/bin/moc
5271      fi
5272    fi])
5273
5274 dnl
5275 dnl  MacOS X video output/gui modules
5276 dnl
5277 AC_ARG_ENABLE(macosx,
5278   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5279 if test "x${enable_macosx}" = "xyes"
5280 then
5281   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5282   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5283   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5284   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5285   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5286   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5287   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5288   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5289   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5290   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5291   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer], [-fobjc-exceptions] )
5292
5293   VLC_ADD_PLUGINS([access_eyetv])
5294   VLC_ADD_BUILTINS([macosx minimal_macosx])
5295  
5296   ORIGCFLAGS=$CFLAGS
5297   CFLAGS="$CFLAGS -x objective-c"
5298   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5299   CFLAGS=$ORIGCFLAGS
5300 fi
5301
5302 dnl
5303 dnl  QNX RTOS module
5304 dnl
5305 AC_ARG_ENABLE(qnx,
5306   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5307     if test "${enable_qnx}" != "no"
5308     then
5309       AC_CHECK_HEADERS(Ph.h, [
5310         VLC_ADD_PLUGINS([qnx])
5311         VLC_ADD_LIBS([qnx],[-lasound -lph])
5312       ])
5313     fi
5314
5315 dnl
5316 dnl  ncurses module
5317 dnl
5318 AC_ARG_ENABLE(ncurses,
5319   [  --disable-ncurses       ncurses interface support (default enabled)],
5320   [if test "${enable_ncurses}" != "no"; then
5321     AC_CHECK_HEADER(ncurses.h,
5322       [AC_CHECK_LIB(ncursesw, mvprintw,
5323         [VLC_ADD_PLUGINS([ncurses])
5324         VLC_ADD_LIBS([ncurses],[-lncursesw])
5325         ALIASES="${ALIASES} nvlc"
5326         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5327         ],
5328         [AC_CHECK_LIB( ncurses, mvprintw,
5329           [VLC_ADD_PLUGINS([ncurses])
5330           ALIASES="${ALIASES} nvlc"
5331           VLC_ADD_LIBS([ncurses],[-lncurses])],
5332           [AS_IF([test "x${enable_ncurses}" != "x"], [
5333             AC_MSG_ERROR([libncurses not found])])]
5334         )]
5335       )]
5336     )
5337   fi]
5338 )
5339
5340 dnl
5341 dnl  XOSD plugin
5342 dnl
5343 AC_ARG_ENABLE(xosd,
5344   [  --enable-xosd           xosd interface support (default disabled)])
5345 if test "${enable_xosd}" = "yes"
5346 then
5347   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5348   AC_CHECK_LIB(xosd,xosd_set_offset,
5349       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5350     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5351         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5352       AC_TRY_COMPILE([#include <xosd.h>],
5353          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5354           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5355   if test "${have_xosd}" = "true"
5356   then
5357     VLC_ADD_PLUGINS([xosd])
5358     VLC_ADD_LIBS([xosd],[-lxosd])
5359   fi
5360 fi
5361
5362 dnl
5363 dnl Framebuffer (overlay) plugin
5364 dnl
5365 AC_ARG_ENABLE(fbosd,
5366   [  --enable-fbosd          fbosd interface support (default disabled)])
5367 if test "${enable_fbosd}" = "yes"
5368 then
5369   AC_CHECK_HEADERS(linux/fb.h, [
5370     VLC_ADD_PLUGINS([fbosd])
5371  ])
5372 fi
5373
5374 dnl
5375 dnl Visualisation plugin
5376 dnl
5377 AC_ARG_ENABLE(visual,
5378   [  --enable-visual         visualisation plugin (default enabled)])
5379 if test "${enable_visual}" != "no"
5380 then
5381     VLC_ADD_PLUGINS([visual])
5382 fi
5383
5384 dnl
5385 dnl OpenGL visualisation plugin
5386 dnl
5387 AC_ARG_ENABLE(galaktos,
5388   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5389 if test "${enable_galaktos}" = "yes"
5390 then
5391   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5392     VLC_ADD_PLUGINS([galaktos])
5393     if test "${SYS}" != "mingw32"; then
5394       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5395     else
5396       VLC_ADD_LIBS([galaktos],[-lopengl32])
5397     fi
5398   ])
5399 fi
5400
5401 dnl
5402 dnl  goom visualization plugin
5403 dnl
5404 AC_ARG_ENABLE(goom,
5405 [  --enable-goom           goom visualisation plugin (default disabled)])
5406 if test "${enable_goom}" = "yes"
5407 then
5408   AC_ARG_WITH(goom-tree,
5409     [    --with-goom-tree=PATH goom tree for static linking (required)])
5410
5411   dnl
5412   dnl test for --with-goom-tree
5413   dnl
5414   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5415     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5416     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5417     if test -z "${real_goom_tree}"; then
5418       dnl  The given directory can't be found
5419       AC_MSG_RESULT(no)
5420       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5421     fi
5422     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5423       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5424       VLC_ADD_BUILTINS([goom])
5425       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5426       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5427     else
5428       dnl  The given libgoom2 wasn't built, try to look for the old goom
5429       AC_MSG_RESULT(no)
5430       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5431       if test -f "${real_goom_tree}/libgoom.a"; then
5432         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5433         VLC_ADD_BUILTINS([goom])
5434         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5435         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5436       else
5437         dnl  The given libgoom wasn't built
5438         AC_MSG_RESULT(no)
5439         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5440       fi
5441     fi
5442   else
5443     AC_CHECK_HEADERS(goom/goom.h, [
5444       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5445       AC_CHECK_LIB(goom2, goom_init, [
5446         VLC_ADD_PLUGINS([goom])
5447         VLC_ADD_LIBS([goom],[-lgoom2])
5448       ],[
5449         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5450       ])
5451       LDFLAGS="${LDFLAGS_save}"
5452     ])
5453   fi
5454 fi
5455
5456 dnl
5457 dnl  Bonjour services discovery
5458 dnl
5459 AC_ARG_ENABLE(bonjour,
5460   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5461 if test "${enable_bonjour}" != "no"
5462 then
5463   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5464     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5465        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5466       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5467       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5468       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5469       VLC_ADD_PLUGINS([bonjour]) ],
5470     [AC_MSG_WARN(avahi-client library not found)])
5471 fi
5472
5473 dnl
5474 dnl  Lirc plugin
5475 dnl
5476 AC_ARG_ENABLE(lirc,
5477   [  --enable-lirc           lirc support (default disabled)])
5478 if test "${enable_lirc}" = "yes"
5479 then
5480   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5481   if test "${have_lirc}" = "true"
5482   then
5483     VLC_ADD_PLUGINS([lirc])
5484     VLC_ADD_LIBS([lirc],[-llirc_client])
5485   fi
5486 fi
5487
5488
5489 AC_ARG_WITH(,[Misc options:])
5490
5491 dnl
5492 dnl libgcrypt
5493 dnl
5494 AC_ARG_ENABLE(libgcrypt,
5495   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5496
5497 GCRYPT_PATH="${PATH}"
5498 AC_ARG_WITH(libgcrypt-config-path,
5499 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5500    [ if test "${with_libgcrypt_config_path}" != "no"
5501      then
5502        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5503      fi ])
5504
5505 if test "${enable_libgcrypt}" != "no"
5506 then
5507   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5508   dnl it and looks for libgcrypt headers in the wrong place.
5509   if test "${host_cpu}" = "${build_cpu}"
5510   then
5511     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5512   else
5513     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5514   fi
5515 fi
5516 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5517 AS_IF([test "${have_libgcrypt}" = "yes"],[
5518         # look for libgcrypt-config
5519         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5520         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5521         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5522 ])
5523
5524 dnl
5525 dnl TLS/SSL
5526 dnl
5527 AC_ARG_ENABLE(gnutls,
5528   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5529
5530 AS_IF([test "${enable_gnutls}" != "no"], [
5531   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5532     VLC_ADD_PLUGINS([gnutls])
5533     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5534     AS_IF([test "${SYS}" = "mingw32"], [
5535       dnl pkg-config --libs gnutls omits these
5536       VLC_ADD_LIBS([gnutls], [-lz])
5537       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5538     ])
5539     AS_IF([test "${have_libgcrypt}" = "yes"],[
5540       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5541       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5542     ], [-lgpg-error])
5543     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5544   ], [
5545     AS_IF([test "${enable_gnutls}" = "yes"], [
5546       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5547     ])
5548   ])
5549 ])
5550
5551 dnl
5552 dnl update checking system
5553 dnl
5554 AC_ARG_ENABLE(update-check,
5555   [  --enable-update-check   update checking system (default disabled)])
5556 if test "${enable_update_check}" = "yes"
5557 then
5558   if test "${have_libgcrypt}" != "yes"
5559   then
5560     AC_MSG_ERROR([libgcrypt is required for update checking system])
5561   fi
5562   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5563   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5564   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5565 fi
5566
5567 dnl
5568 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5569 dnl
5570 dnl  We give the user the opportunity to specify
5571 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5572 dnl
5573 AC_ARG_WITH(words,
5574   [    --with-words=endianness set endianness (big or little)])
5575   case "${with_words}" in
5576     big)
5577       ac_cv_c_bigendian=yes
5578       ;;
5579     little)
5580       ac_cv_c_bigendian=no
5581       ;;
5582     *)
5583       dnl  Try to guess endianness by matching patterns on a compiled
5584       dnl  binary, by looking for an ASCII or EBCDIC string
5585       AC_CACHE_CHECK([whether the byte order is big-endian],
5586         [ac_cv_c_bigendian],
5587         [ac_cv_c_bigendian="unknown"
5588         [cat >conftest.c <<EOF
5589         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5590         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5591         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5592         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5593         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5594         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5595         int main(void) { _a(); _e(); return 0; }
5596 EOF
5597         ]
5598         if test -f conftest.c
5599         then
5600           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5601               && test -f conftest.o
5602           then
5603             if test "`strings conftest.o | grep BIGenDianSyS`"
5604             then
5605               ac_cv_c_bigendian="yes"
5606             fi
5607             if test "`strings conftest.o | grep LiTTleEnDian`"
5608             then
5609               ac_cv_c_bigendian="no"
5610             fi
5611           fi
5612         fi
5613       ])
5614       if test "${ac_cv_c_bigendian}" = "unknown"
5615       then
5616         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5617       fi
5618       ;;
5619   esac
5620 dnl  Now we know what to use for endianness, just put it in the header
5621 if test "${ac_cv_c_bigendian}" = "yes"
5622 then
5623   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5624 fi
5625
5626 dnl
5627 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5628 dnl
5629 loader=false
5630 AC_ARG_ENABLE(loader,
5631   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5632 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5633 AS_IF([test "${enable_loader}" = "yes"],
5634   [ VLC_ADD_PLUGINS([dmo])
5635     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5636     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5637     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5638     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5639     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5640     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5641   ])
5642
5643 dnl
5644 dnl  Microsoft ActiveX support
5645 dnl
5646 activex=false
5647 AC_ARG_ENABLE(activex,
5648   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5649 AC_ARG_WITH(wine-sdk-path,
5650   [    --with-wine-sdk-path=PATH path to wine sdk])
5651 if test "${enable_activex}" != "no"
5652 then
5653   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5654   then
5655     AC_CHECK_PROGS(MIDL, [midl], no)
5656     if test "${with_wine_sdk_path}" != ""
5657     then
5658        WINE_SDK_PATH=${with_wine_sdk_path}
5659        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5660     else
5661        WIDL=no
5662     fi
5663     AC_LANG_PUSH(C++)
5664     AC_CHECK_HEADERS(ole2.h, 
5665       [AC_CHECK_HEADERS(olectl.h,
5666         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5667           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5668           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5669           AC_CHECK_HEADERS(objsafe.h,
5670             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5671             [
5672              #if HAVE_OLE2_H
5673              #   include <ole2.h>
5674              #endif
5675              ]
5676           )
5677           activex=:
5678           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5679         ],
5680         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5681       )],
5682       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5683     )
5684     AC_LANG_POP(C++)
5685   fi
5686 fi
5687 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5688 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5689 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5690 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5691 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5692
5693 dnl
5694 dnl  Mozilla plugin
5695 dnl
5696 mozilla=false
5697 AC_ARG_ENABLE(mozilla,
5698   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5699 AC_ARG_WITH(mozilla-sdk-path,
5700   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5701 AC_LANG_PUSH(C++)
5702 if test "${enable_mozilla}" = "yes" 
5703 then
5704   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5705   need_xpcom_libs=false
5706
5707   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5708   then
5709     dnl New firefox-1.5 SDK api
5710     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5711       [
5712         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5713           [],
5714           [
5715             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5716               [],
5717               [
5718                 PKG_CHECK_MODULES([NSPR], [nspr],
5719                   [],
5720                   [
5721                     AC_MSG_ERROR([Please install the nspr development tools.])
5722                   ]
5723                 )
5724               ]
5725             )
5726           ])
5727         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5728         MOZILLA_REQUIRED_HEADERS=1
5729         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5730         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5731         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5732           [#if HAVE_NPAPI_H
5733            # include <npapi.h>
5734            #endif
5735           ])
5736         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5737             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5738         fi
5739         MOZILLA_REQUIRED_HEADERS=
5740         mozilla=:
5741         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5742         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5743             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5744         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5745             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5746         else
5747             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5748         fi
5749         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5750             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5751             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5752         fi
5753         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5754         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5755         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5756         VLC_ADD_PLUGINS([mozilla])
5757         MOZILLA_CONFIG=
5758         CPPFLAGS="${CPPFLAGS_save}"
5759       ],
5760       [
5761         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5762         if test "${MOZILLA_CONFIG}" = "no"
5763         then
5764           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5765           if test "${SEAMONKEY_CONFIG}" = "no"
5766           then
5767             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5768             if test "${XULRUNNER_CONFIG}" = "no"
5769             then
5770               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5771             else
5772               have_xul=true
5773               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5774             fi
5775           else
5776             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5777           fi
5778         fi
5779       ]
5780     )
5781     if test ! -z "${MOZILLA_CONFIG}"
5782     then
5783       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5784         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5785         AC_CHECK_LIB(Xt,XtStrings,
5786          [
5787            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5788            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5789          ],
5790          [],
5791          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5792         ])
5793         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5794         LDFLAGS="${LDFLAGS_save}"
5795       fi
5796
5797       mozilla=:
5798       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5799       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5800       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5801       if ${need_xpcom_libs}; then
5802          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5803       else
5804          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5805       fi
5806       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5807       MOZILLA_REQUIRED_HEADERS=1
5808       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5809       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5810       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5811         [#if HAVE_NPAPI_H
5812          # include <npapi.h>
5813          #endif
5814         ])
5815       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5816       then
5817         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5818       fi
5819       MOZILLA_REQUIRED_HEADERS=
5820       CPPFLAGS="${CPPFLAGS_save}"
5821       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5822     fi
5823     dnl End of moz_sdk = ""
5824   else
5825     dnl special case for mingw32
5826     if test "${SYS}" = "mingw32"
5827     then
5828       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5829       dnl latest gecko sdk does not have an xpcom directory
5830       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5831           mozilla_sdk_xpcom="/xpcom"
5832       fi
5833     fi
5834
5835     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5836     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5837     MOZILLA_REQUIRED_HEADERS=1
5838     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5839     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5840     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5841         [#if HAVE_NPAPI_H
5842           #include <npapi.h>
5843           #endif
5844         ])
5845     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5846     then
5847         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5848     fi
5849     MOZILLA_REQUIRED_HEADERS=
5850     mozilla=:
5851     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5852     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])
5853     if ${need_xpcom_libs}; then
5854        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])
5855       if test "${SYS}" = "mingw32"; then
5856         dnl latest gecko sdk does not have embedstring
5857         if test -d "${real_mozilla_sdk}/embedstring/bin"
5858         then
5859           VLC_ADD_LIBS([mozilla],[-lembedstring])
5860         fi
5861       fi
5862     fi
5863     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5864
5865     if test -n "${CYGPATH}"; then
5866       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5867     fi
5868     CPPFLAGS="${CPPFLAGS_save}"
5869   fi
5870 fi
5871 AC_LANG_POP(C++)
5872 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5873
5874 dnl Tests for Osso and Xsp
5875 if test "${enable_x11}" != "no" &&
5876   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5877    test "${enable_x11}" = "yes"); then
5878    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5879       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5880           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5881           VLC_ADD_LIBS([x11],[-losso])
5882       ])
5883    ])
5884    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5885       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5886       VLC_ADD_LIBS([x11],[-lXsp])
5887    ])
5888 fi
5889
5890 dnl
5891 dnl  Mediacontrol Python bindings
5892 dnl
5893 AC_ARG_ENABLE(python-bindings,
5894   [  --enable-python-bindings Enable Python bindings (default disabled)])
5895 dnl TODO: look for python dev headers
5896 AS_IF([test "${enable_python_bindings}" = "yes"],
5897       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5898      ) 
5899
5900 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5901
5902 dnl
5903 dnl  Java bindings
5904 dnl
5905 AC_ARG_ENABLE(java-bindings,
5906   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5907 if test "${enable_java_bindings}" = "yes"
5908 then
5909   AS_IF([test "x${JAVA_HOME}" == "x"],
5910         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5911   AC_PROG_JAVAC
5912   AC_PROG_JAVA
5913   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5914   if test "${JAVAC}" == "javac${EXEEXT}"
5915   then
5916     JAVAC="javac${EXEEXT} -cp ./ "
5917   fi
5918 fi
5919 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5920
5921 dnl
5922 dnl  test plugins
5923 dnl
5924 AC_ARG_ENABLE(testsuite,
5925   [  --enable-testsuite      build test modules (default disabled)])
5926 if test "${enable_testsuite}" = "yes"
5927 then
5928   TESTS="test1 test2 test3 test4"
5929
5930   dnl  we define those so that bootstrap sets the right linker
5931   VLC_ADD_CXXFLAGS([test2],[])
5932   VLC_ADD_OBJCFLAGS([test3],[])
5933   dnl  this one is needed until automake knows what to do
5934   VLC_ADD_LIBS([test3],[-lobjc])
5935
5936   VLC_ADD_PLUGINS([${TESTS}])
5937 fi
5938
5939 dnl
5940 dnl Microsoft Layer for Unicode for WIN9x/ME
5941 dnl
5942 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5943 then
5944     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5945         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5946     ])
5947 fi
5948
5949 dnl
5950 dnl  gtk_main plugin
5951 dnl
5952 if test "${NEED_GTK_MAIN}" != "no"
5953 then
5954     VLC_ADD_PLUGINS([gtk_main])
5955     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5956     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5957 fi
5958
5959 if test "${NEED_GNOME_MAIN}" != "no"
5960 then
5961     VLC_ADD_PLUGINS([gnome_main])
5962     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5963     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5964 fi
5965
5966 if test "${NEED_GTK2_MAIN}" != "no"
5967 then
5968     VLC_ADD_PLUGINS([gtk2_main])
5969     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5970     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5971     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5972     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5973 fi
5974
5975 if test "${NEED_GNOME2_MAIN}" != "no"
5976 then
5977     VLC_ADD_PLUGINS([gnome2_main])
5978     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5979     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5980 fi
5981
5982 dnl
5983 dnl  qte_main plugin
5984 dnl
5985 if test "${NEED_QTE_MAIN}" != "no"
5986 then
5987     VLC_ADD_PLUGINS([qte_main])
5988     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5989     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5990     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5991 fi
5992
5993
5994 dnl
5995 dnl  Plugin and builtin checks
5996 dnl
5997 plugin_support=yes
5998
5999 dnl Automagically disable plugins if there is no system support for
6000 dnl dynamically loadable files (.so, .dll, .dylib).
6001 dnl don't forget vlc-win32 still can load .dll as plugins
6002 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6003   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6004   plugin_support=no
6005 ])
6006
6007 AS_IF([test "${enable_shared}" = "no"], [
6008   plugin_support=no
6009 ])
6010
6011 AS_IF([test "${plugin_support}" != "no"], [
6012   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6013 ])
6014
6015 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6016
6017 dnl Temporary(?) hack for plugins/builtins transition
6018 VLC_ADD_PLUGINS([${BUILTINS}])
6019 BUILTINS=""
6020
6021 dnl
6022 dnl Pic and shared libvlc stuff
6023 dnl
6024 AS_IF([test "${SYS}" = "mingw32"], [
6025   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6026   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6027 ])
6028
6029 dnl
6030 dnl  Stuff used by the program
6031 dnl
6032 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6033 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6034 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6035 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6036 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6037 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6038 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6039 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6040 AC_SUBST(VERSION_MAJOR)
6041 AC_SUBST(VERSION_MINOR)
6042 AC_SUBST(VERSION_REVISION)
6043 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6044 if test "${SYS}" = "cygwin"
6045 then
6046     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6047 else
6048     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6049 fi
6050 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6051 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6052
6053 dnl
6054 dnl  Handle substvars that use $(top_srcdir)
6055 dnl
6056 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6057 AC_SUBST(VLC_CONFIG)
6058 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6059
6060 dnl
6061 dnl  Restore *FLAGS
6062 dnl
6063 VLC_RESTORE_FLAGS
6064
6065 dnl
6066 dnl  Create the vlc-config script
6067 dnl
6068 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6069
6070 dnl
6071 dnl  Configuration is finished
6072 dnl
6073 AC_SUBST(SYS)
6074 AC_SUBST(ARCH)
6075 AC_SUBST(ALIASES)
6076 AC_SUBST(ASM)
6077 AC_SUBST(MOC)
6078 AC_SUBST(RCC)
6079 AC_SUBST(UIC)
6080 AC_SUBST(WINDRES)
6081 AC_SUBST(MOZILLA_SDK_PATH)
6082 AC_SUBST(WINE_SDK_PATH)
6083 AC_SUBST(LIBEXT)
6084 AC_SUBST(AM_CPPFLAGS)
6085 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6086 AC_SUBST(FILE_LIBVLC_DLL)
6087 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6088
6089 dnl Create vlc-config.in
6090 VLC_OUTPUT_VLC_CONFIG_IN
6091
6092 AC_CONFIG_FILES([
6093   vlc.win32.nsi
6094   Makefile
6095   activex/Makefile
6096   activex/axvlc.inf
6097   bindings/Makefile
6098   bindings/java/Makefile
6099   bindings/java/src/Makefile
6100   bindings/python/Makefile
6101   doc/Makefile
6102   ipkg/Makefile
6103   libs/loader/Makefile
6104   libs/srtp/Makefile
6105   modules/Makefile
6106   mozilla/Makefile
6107   m4/Makefile
6108   po/Makefile.in
6109   share/Makefile
6110   src/Makefile
6111 ])
6112
6113 AC_CONFIG_FILES([
6114   modules/access/Makefile
6115   modules/access/bda/Makefile
6116   modules/access/dshow/Makefile
6117   modules/access/dvb/Makefile
6118   modules/access/mms/Makefile
6119   modules/access/cdda/Makefile
6120   modules/access/rtsp/Makefile
6121   modules/access/v4l2/Makefile
6122   modules/access/vcd/Makefile
6123   modules/access/vcdx/Makefile
6124   modules/access/screen/Makefile
6125   modules/access_filter/Makefile
6126   modules/access_output/Makefile
6127   modules/audio_filter/Makefile
6128   modules/audio_filter/channel_mixer/Makefile
6129   modules/audio_filter/converter/Makefile
6130   modules/audio_filter/resampler/Makefile
6131   modules/audio_filter/spatializer/Makefile
6132   modules/audio_mixer/Makefile
6133   modules/audio_output/Makefile
6134   modules/codec/Makefile
6135   modules/codec/cmml/Makefile
6136   modules/codec/dmo/Makefile
6137   modules/codec/ffmpeg/Makefile
6138   modules/codec/subtitles/Makefile
6139   modules/codec/spudec/Makefile
6140   modules/codec/xvmc/Makefile
6141   modules/control/Makefile
6142   modules/control/http/Makefile
6143   modules/demux/Makefile
6144   modules/demux/asf/Makefile
6145   modules/demux/avi/Makefile
6146   modules/demux/mp4/Makefile
6147   modules/demux/mpeg/Makefile
6148   modules/demux/playlist/Makefile
6149   modules/gui/Makefile
6150   modules/gui/beos/Makefile
6151   modules/gui/pda/Makefile
6152   modules/gui/macosx/Makefile
6153   modules/gui/minimal_macosx/Makefile
6154   modules/gui/qnx/Makefile
6155   modules/gui/qt4/Makefile
6156   modules/gui/skins2/Makefile
6157   modules/gui/wxwidgets/Makefile
6158   modules/gui/wince/Makefile
6159   modules/meta_engine/Makefile
6160   modules/misc/Makefile
6161   modules/misc/dummy/Makefile
6162   modules/misc/lua/Makefile
6163   modules/misc/memcpy/Makefile
6164   modules/misc/notify/Makefile
6165   modules/misc/testsuite/Makefile
6166   modules/misc/playlist/Makefile
6167   modules/misc/osd/Makefile
6168   modules/misc/xml/Makefile
6169   modules/misc/probe/Makefile
6170   modules/mux/Makefile
6171   modules/mux/mpeg/Makefile
6172   modules/mux/rtp/Makefile
6173   modules/packetizer/Makefile
6174   modules/services_discovery/Makefile
6175   modules/stream_out/Makefile
6176   modules/stream_out/transrate/Makefile
6177   modules/video_chroma/Makefile
6178   modules/video_filter/Makefile
6179   modules/video_output/Makefile
6180   modules/video_output/msw/Makefile
6181   modules/video_output/qte/Makefile
6182   modules/video_output/x11/Makefile
6183   modules/visualization/Makefile
6184   modules/visualization/visual/Makefile
6185   modules/visualization/galaktos/Makefile
6186 ])
6187
6188 dnl Generate makefiles
6189 AC_OUTPUT
6190
6191 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6192 # not provided with the source
6193 ${SHELL} ./config.status --file=vlc-config
6194 chmod 0755 vlc-config
6195
6196 dnl echo "Enabled builtin modules :"
6197 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6198
6199 dnl echo "Enabled plugin modules :"
6200 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6201
6202 dnl Shortcut to nice compile message
6203 rm -f compile
6204 echo '#! /bin/sh' >compile
6205
6206 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6207 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
6208 chmod a+x compile
6209
6210 printf "
6211 vlc configuration
6212 --------------------
6213 vlc version           : ${VERSION}
6214 system                : ${SYS}
6215 architecture          : ${ARCH}
6216 build flavour         : "
6217 test "${enable_debug}" = "yes" && printf "debug "
6218 test "${enable_cprof}" = "yes" && printf "cprof "
6219 test "${enable_gprof}" = "yes" && printf "gprof "
6220 test "${enable_optimizations}" = "yes" && printf "optim "
6221 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6222 echo "
6223 vlc aliases           :${ALIASES}
6224 plugins/bindings      :${PLUGINS_BINDINGS}
6225
6226 You can check which modules have been enabled 
6227 with \`./vlc-config --list plugin'.
6228 You can tune the compiler flags in vlc-config.
6229 To build vlc and its plugins, type \`./compile' or \`make'.
6230 "
6231 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6232    echo ""
6233    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6234    echo "         turned off."
6235    echo "         FFmpeg will be REALLY slow."
6236    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6237    echo ""
6238 fi