]> git.sesse.net Git - vlc/blob - configure.ac
Update after filrs added and renamed
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="svn"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59) dnl this really should be 2.59c
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then 
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225
226         with_macosx_sdk=""
227         echo "  Compiling with default SDK"
228     fi
229     if test ".`uname -p`" = ".i386"; then
230         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
231         dnl without hacking it a lot, we disable mmx and sse.
232         dnl (that bug is about ld being unable to handle
233         dnl text relocation)
234         save_cflags="$CFLAGS"
235         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
236         AC_TRY_LINK(
237             [int a;], [asm("movq _a,%mm0\n");],
238             ac_ld_does_not_support_text_reloc=no,
239             ac_ld_does_not_support_text_reloc=yes)
240         CFLAGS="$save_cflags"
241
242         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
243             enable_mmx="no"
244             echo "  Assuming --disable-mmx (due to a bug in ld)"
245             enable_sse="no"
246             echo "  Assuming --disable-sse (due to a bug in ld)"
247         fi
248     fi
249     dnl
250     dnl  Check for Mac OS X SDK settings
251     dnl
252     AC_ARG_WITH(macosx-sdk,
253        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
254     if test "${with_macosx_sdk}" != "" ; then
255         CC="${CC} -isysroot ${with_macosx_sdk}" 
256         CXX="${CXX} -isysroot ${with_macosx_sdk}"
257         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
258         LD="${LD} -syslibroot ${with_macosx_sdk}"
259     fi
260     AC_ARG_WITH(macosx-version-min,
261        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
262     if test "${with_macosx_version_min}" != "" ; then
263         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}" 
264         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
265         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
266         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
267         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
268         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
269         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
270         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
271         export MACOSX_DEPLOYMENT_TARGET
272     fi
273     ;;
274   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
275     AC_CHECK_TOOL(WINDRES, windres, :)
276
277     case "${host_os}" in
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290       *wince* | *mingwce* | *pe*)
291         SYS=mingwce
292         ;;
293     esac
294
295     if test "${SYS}" = "mingw32"; then
296         # add ws2_32 for closesocket, select, recv
297         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
298         VLC_ADD_LDFLAGS([vlc],[-mwindows])
299         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
300         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
301         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl_udp 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_udp],[-lbind -lsocket])
336     else
337         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-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_udp],[-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_udp])
1684     AC_CHECK_HEADERS(Growl/GrowlDefines.h, [
1685       VLC_ADD_PLUGINS([growl])
1686       VLC_ADD_LDFLAGS([growl], [-Wl,-framework,Growl,-framework,AppKit])
1687     ])
1688   ]
1689 )
1690
1691 dnl
1692 dnl Libnotify notification plugin
1693 dnl
1694
1695 AC_ARG_ENABLE(notify,
1696   [  --enable-notify         libnotify notification plugin (default enabled)])
1697 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1698     PKG_CHECK_MODULES(NOTIFY, libnotify,
1699       [
1700         VLC_ADD_PLUGINS([notify])
1701         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1702         VLC_ADD_LIBS(notify, [$NOTIFY_LIBS])
1703       ],[
1704     AS_IF([test "${enable_notify}" = "yes"],[
1705         AC_MSG_WARN( libnotify not found) ])
1706       ])
1707   ])
1708
1709 dnl
1710 dnl Audioscrobbler plugin
1711 dnl
1712
1713 AC_ARG_ENABLE(audioscrobbler,
1714   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1715 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1716         VLC_ADD_PLUGINS([audioscrobbler])
1717   ])
1718
1719 dnl
1720 dnl Musicbrainz plugin
1721 dnl
1722 AC_ARG_ENABLE(musicbrainz,
1723   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1724   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1725       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1726     [ VLC_ADD_PLUGINS([musicbrainz])
1727       VLC_ADD_LIBS([musicbrainz],[$MUSICBRAINZ_LIBS])
1728       VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1729        [AC_MSG_WARN(MusicBrainz library not found)])
1730    ])
1731
1732
1733 dnl
1734 dnl Taglibplugin
1735 dnl
1736 AC_ARG_ENABLE(taglib,
1737   [  --disable-taglib Taglib support (default enabled) ])
1738   AS_IF([test "${enable_taglib}" != "no"],[
1739     PKG_CHECK_MODULES(TAGLIB, taglib,
1740       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1741         VLC_ADD_PLUGINS([taglib])
1742         VLC_ADD_LIBS([taglib],[$TAGLIB_LIBS -lz])
1743        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1744       [AC_MSG_WARN(TagLib library not found)])
1745   ])
1746
1747
1748 dnl
1749 dnl  Input plugins
1750 dnl
1751
1752 AC_ARG_WITH(,[Input plugins:])
1753
1754 dnl  live555 input
1755 dnl
1756 if test "${enable_livedotcom}" 
1757 then
1758   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1759 fi
1760
1761 if test "${enable_livedotcom}" = "no"
1762 then
1763   enable_live555="no"
1764 fi
1765 AC_ARG_ENABLE(live555,
1766 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1767 if test "${enable_live555}" != "no"; then
1768   AC_ARG_WITH(live555-tree,
1769     [    --with-live555-tree=PATH live.com tree for static linking])
1770
1771   dnl
1772   dnl test for --with-live555-tree
1773   dnl
1774   if test "${with_livedotcom_tree}" 
1775   then
1776     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1777   with_live555_tree="${with_livedotcom_tree}"
1778   fi
1779
1780   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1781     AC_LANG_PUSH(C++)
1782     CPPFLAGS_save="${CPPFLAGS}"
1783     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1784     if test "${SYS}" = "solaris"; then
1785       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1786     fi
1787     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1788     AC_CHECK_HEADERS(liveMedia.hh, [
1789       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1790       AC_CHECK_LIB(liveMedia_pic, main, [
1791         # We have -lliveMedia_pic, build plugins
1792         VLC_ADD_PLUGINS([live555])
1793         VLC_ADD_LIBS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1794       ], [
1795         AC_CHECK_LIB(liveMedia, main, [
1796           # We only have -lliveMedia, do builtins
1797           VLC_ADD_BUILTINS([live555])
1798           VLC_ADD_LIBS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1799         ])
1800       ])
1801       if test "${SYS}" = "mingw32"; then
1802         # add ws2_32 for closesocket, select, recv
1803         VLC_ADD_LIBS([live555],[-lws2_32])
1804       fi
1805     ])
1806     CPPFLAGS="${CPPFLAGS_save}"
1807     AC_LANG_POP(C++)
1808   else
1809     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1810     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1811     if test -z "${real_live555_tree}"; then
1812       dnl  The given directory can't be found
1813       AC_MSG_RESULT(no)
1814       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1815     fi
1816     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1817       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1818
1819       VLC_ADD_BUILTINS([live555])
1820
1821       if test "${SYS}" = "mingw32"; then
1822         # add ws2_32 for closesocket, select, recv
1823         VLC_ADD_LIBS([live555],[-lws2_32])
1824       fi
1825
1826       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1827       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1828       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1829       VLC_ADD_LIBS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1830
1831       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1832       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1833       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1834       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1835       if test "${SYS}" = "solaris"; then
1836         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1837       fi
1838     else
1839       dnl  The given live555 wasn't built
1840         AC_MSG_RESULT(no)
1841       if test "${enable_live555}" = "yes"; then
1842         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1843       fi        
1844     fi
1845   fi
1846 fi
1847
1848 dnl
1849 dnl  special access module for dc1394 input
1850 dnl
1851 AC_ARG_ENABLE(dc1394,
1852   [  --enable-dc1394         dc1394 access module (default disabled)])
1853 if test "${enable_dc1394}" = "yes"
1854 then
1855   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1856     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1857         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1858 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1859               VLC_ADD_PLUGINS([dc1394])
1860               VLC_ADD_LIBS([dc1394],[-ldc1394_control -lraw1394])
1861 dnl         ],
1862 dnl         [
1863 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1864 dnl         ])
1865       ],
1866       [
1867         AC_MSG_ERROR([libdc1394 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   ],
1874   [
1875     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1876   ])
1877 fi
1878
1879 dnl
1880 dnl dv module: digital video module check for libraw1394
1881 dnl
1882 AC_ARG_ENABLE(dv,
1883 [  --enable-dv             dv input module (default disabled)])
1884 if test "${enable_dv}" = "yes"
1885 then
1886   AC_ARG_WITH(dv-raw1394,
1887   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1888   AC_ARG_WITH(dv-raw1394-tree,
1889   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1890
1891   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1892   then
1893     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1894     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1895     then
1896       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1897       AC_MSG_RESULT(yes)
1898       VLC_ADD_PLUGINS([access_dv])
1899       VLC_ADD_LIBS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1900       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1901     else
1902       dnl  No libraw1394 could be found, sorry
1903       AC_MSG_RESULT(no)
1904       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1905     fi
1906   else
1907     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1908     [ VLC_ADD_PLUGINS([access_dv])
1909         VLC_ADD_LIBS([access_dv],[-lraw1394 -lavc1394])
1910     ],[
1911         if test -n "${enable_dv}"
1912         then
1913           AC_MSG_ERROR([cannot find libraw1394 headers])
1914         fi
1915     ])
1916   fi
1917
1918   dnl Check for static linking of libraw1394
1919   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1920   then
1921     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1922     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1923     if test -z "${real_dv_raw1394_tree}"
1924     then
1925       dnl  The given directory can't be found
1926       AC_MSG_RESULT(no)
1927       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1928     fi
1929     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1930     then
1931       dnl  Use a custom libraw1394
1932       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1933       VLC_ADD_BUILTINS([access_dv])
1934       VLC_ADD_LIBS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1935       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1936     else
1937       dnl  The given libraw1394 wasn't built
1938       AC_MSG_RESULT(no)
1939       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1940     fi
1941   fi
1942
1943   dnl
1944   dnl Check for libavc1394
1945   dnl
1946
1947   AC_ARG_WITH(dv-avc1394,
1948   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1949   AC_ARG_WITH(dv-avc1394-tree,
1950   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1951
1952   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1953   then
1954     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1955     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1956     then
1957       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1958       AC_MSG_RESULT(yes)
1959       VLC_ADD_LIBS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1960       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1961     else
1962       dnl  No libavc1394 could be found, sorry
1963       AC_MSG_RESULT(no)
1964       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1965     fi
1966   else
1967     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1968     [ VLC_ADD_LIBS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1969     ],[
1970         if test -n "${enable_dv}"
1971         then
1972           AC_MSG_ERROR([cannot find libavc1394 headers])
1973         fi
1974     ])
1975   fi
1976
1977   dnl Check for static linking of libavc1394
1978   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1979   then
1980     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1981     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1982     if test -z "${real_dv_avc1394_tree}"
1983     then
1984       dnl  The given directory can't be found
1985       AC_MSG_RESULT(no)
1986       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1987     fi
1988     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1989     then
1990       dnl  Use a custom libavc1394
1991       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1992       VLC_ADD_LIBS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1993       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1994     else
1995       dnl  The given libavc1394 wasn't built
1996       AC_MSG_RESULT(no)
1997       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1998     fi
1999   fi
2000 fi
2001
2002 dnl
2003 dnl dvdread module: check for libdvdread
2004 dnl
2005 AC_ARG_ENABLE(dvdread,
2006 [  --enable-dvdread        dvdread input module (default disabled)])
2007 if test "${enable_dvdread}" != "no"
2008 then
2009   AC_ARG_WITH(dvdread,
2010   [    --with-dvdread=PATH   libdvdread headers and libraries])
2011   AC_ARG_WITH(dvdread-tree,
2012   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2013
2014   dnl Temporary hack (yeah, sure ;)
2015   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2016       VLC_ADD_LIBS([dvdread],[-ldvdcss])
2017   fi
2018
2019   if test -z "${with_dvdread}"
2020   then
2021     if test -z "${with_dvdread_tree}"
2022     then
2023       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2024         [ VLC_ADD_PLUGINS([dvdread])
2025           VLC_ADD_LIBS([dvdread],[-ldvdread ${LIBS_dvdcss}])
2026         ],[
2027           if test -n "${enable_dvdread}"
2028           then
2029             AC_MSG_ERROR([cannot find libdvdread headers])
2030           fi
2031         ])
2032     else
2033       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2034       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2035       if test -z "${real_dvdread_tree}"
2036       then
2037         dnl  The given directory can't be found
2038         AC_MSG_RESULT(no)
2039         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2040       fi
2041       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2042       then
2043         dnl  Use a custom libdvdread
2044         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2045         VLC_ADD_BUILTINS([dvdread])
2046         VLC_ADD_LIBS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LIBS_dvdcss}])
2047         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2048       else
2049         dnl  The given libdvdread wasn't built
2050         AC_MSG_RESULT(no)
2051         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2052       fi
2053     fi
2054   else
2055     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2056     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2057     then
2058       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2059       AC_MSG_RESULT(yes)
2060       VLC_ADD_PLUGINS([dvdread])
2061       VLC_ADD_LIBS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LIBS_dvdcss}])
2062       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2063     else
2064       dnl  No libdvdread could be found, sorry
2065       AC_MSG_RESULT(no)
2066       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2067     fi
2068   fi
2069 fi
2070
2071 dnl
2072 dnl  libdvdnav plugin
2073 dnl
2074 AC_ARG_ENABLE(dvdnav,
2075   [  --enable-dvdnav         dvdnav input module (default enabled)])
2076 if test "${enable_dvdnav}" != "no"
2077 then
2078   dnl Same hack than dvdread
2079   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2080       VLC_ADD_LIBS([dvdnav],[-ldvdcss])
2081   fi
2082
2083   DVDNAV_PATH="${PATH}"
2084   AC_ARG_WITH(dvdnav-config-path,
2085     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2086     [ if test "${with_dvdnav_config_path}" != "no"
2087       then
2088         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2089       fi ])
2090   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2091   if test "${DVDNAV_CONFIG}" != "no"
2092   then
2093     VLC_ADD_PLUGINS([dvdnav])
2094     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2095     VLC_ADD_LIBS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2096   fi
2097 fi
2098
2099 dnl
2100 dnl  Windows DirectShow access module
2101 dnl
2102 AC_ARG_ENABLE(dshow,
2103   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2104 if test "${enable_dshow}" != "no"
2105 then
2106   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2107   then
2108     AC_LANG_PUSH(C++)
2109       AC_CHECK_HEADERS(dshow.h,
2110       [ VLC_ADD_PLUGINS([dshow])
2111         VLC_ADD_CXXFLAGS([dshow],[])
2112         VLC_ADD_LIBS([dshow],[-lole32 -loleaut32 -luuid]) ])
2113     AC_LANG_POP(C++)
2114   fi
2115 fi
2116
2117 dnl
2118 dnl  Windows DirectShow BDA access module
2119 dnl
2120 AC_ARG_ENABLE(bda,
2121   [  --enable-bda            Win32 DirectShow BDA support (default enabled on Win32)])
2122 if test "${enable_bda}" != "no"
2123 then
2124   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2125   then
2126       AC_CHECK_HEADERS(dshow.h,
2127       [ VLC_ADD_PLUGINS([bda])
2128         VLC_ADD_CXXFLAGS([bda],[])
2129         VLC_ADD_LIBS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2130   fi
2131 fi
2132
2133
2134 dnl
2135 dnl  OpenCV wrapper and example filters
2136 dnl
2137 AC_ARG_ENABLE(opencv,
2138   [  --enable-opencv         OpenCV (computer vision) filter (default disabled)])
2139 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2140 then
2141   AC_ARG_WITH(opencv-tree,
2142   [    --with-opencv-tree=PATH opencv tree for linking])
2143   if test -n "${with_opencv_tree}"
2144   then
2145     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2146     then
2147           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2148           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2149             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2150       then
2151         AC_MSG_RESULT(yes)
2152         VLC_ADD_PLUGINS([opencv_wrapper])
2153         VLC_ADD_LIBS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2154         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])
2155         AC_LANG_PUSH(C++)
2156         VLC_ADD_PLUGINS([opencv_example])
2157         VLC_ADD_LIBS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2158         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])
2159         AC_LANG_POP(C++)        
2160           else
2161         dnl  No opencv could be found, sorry
2162         AC_MSG_RESULT(no)
2163         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2164           fi
2165     else
2166           AC_MSG_WARN([--enable-opencv currently only works on windows])
2167     fi
2168   fi  
2169 fi
2170
2171
2172 dnl
2173 dnl  libsmbclient plugin
2174 dnl
2175 AC_ARG_ENABLE(smb,
2176   [  --enable-smb            smb input module (default enabled)])
2177 if test "${enable_smb}" != "no"; then
2178   AC_CHECK_HEADERS(libsmbclient.h,
2179     [ VLC_ADD_PLUGINS([access_smb])
2180       VLC_ADD_LIBS([access_smb],[-lsmbclient]) ],
2181     [ if test -n "${enable_smb}"; then
2182         AC_MSG_ERROR([cannot find libsmbclient headers])
2183      fi ])
2184   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2185     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], 1, [Define if samba has _SMBCCTX.close_fn]),,
2186     [#include <libsmbclient.h>])
2187 fi
2188
2189 dnl
2190 dnl  libdvbpsi ts demux/mux
2191 dnl
2192 AC_ARG_ENABLE(dvbpsi,
2193   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2194 if test "${enable_dvbpsi}" != "no"
2195 then
2196   AC_ARG_WITH(dvbpsi,
2197   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2198   AC_ARG_WITH(dvbpsi,
2199   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2200   case "${with_dvbpsi}" in
2201   ""|yes)
2202     if test -z "${with_dvbpsi_tree}"
2203     then
2204       AC_CHECK_HEADERS(dvbpsi/dr.h,
2205         [ VLC_ADD_PLUGINS([ts])
2206           if test "${enable_sout}" != "no"; then
2207             VLC_ADD_PLUGINS([mux_ts])
2208           fi
2209           VLC_ADD_LIBS([mux_ts ts dvb],[-ldvbpsi]) ],
2210         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2211         [#if defined( HAVE_STDINT_H )
2212 #   include <stdint.h>
2213 #elif defined( HAVE_INTTYPES_H )
2214 #   include <inttypes.h>
2215 #endif
2216 #include <dvbpsi/dvbpsi.h>
2217 #include <dvbpsi/descriptor.h>
2218 #include <dvbpsi/pat.h>
2219 #include <dvbpsi/pmt.h>])
2220     else
2221       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2222       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2223       if test -z "${real_dvbpsi_tree}"
2224       then
2225         dnl  The given directory can't be found
2226         AC_MSG_RESULT(no)
2227         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2228       fi
2229       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2230       then
2231         dnl  Use a custom libdvbpsi
2232         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2233         VLC_ADD_BUILTINS([ts])
2234         if test "${enable_sout}" != "no"; then
2235           VLC_ADD_BUILTINS([mux_ts])
2236         fi
2237         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2238         VLC_ADD_LIBS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2239       else
2240         dnl  The given libdvbpsi wasn't built
2241         AC_MSG_RESULT(no)
2242         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2243       fi
2244     fi
2245   ;;
2246   no)
2247     dnl  Compile without dvbpsi
2248   ;;
2249   *)
2250     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2251     if test -z "${with_dvbpsi}"
2252     then
2253       LDFLAGS_test=""
2254       CPPFLAGS_test=""
2255     else
2256       LDFLAGS_test="-L${with_dvbpsi}/lib"
2257       CPPFLAGS_test="-I${with_dvbpsi}/include"
2258     fi
2259     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2260     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2261       VLC_ADD_PLUGINS([ts])
2262       if test "${enable_sout}" != "no"; then
2263         VLC_ADD_PLUGINS([mux_ts])
2264       fi
2265       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2266       VLC_ADD_LIBS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2267
2268     ],[
2269       if test -n "${enable_dvbpsi}"
2270       then
2271         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])
2272       fi
2273     ])
2274     CPPFLAGS="${CPPFLAGS_save}"
2275   ;;
2276   esac
2277   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2278     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2279   ], [], [${LIBS_ts}])
2280
2281 fi
2282
2283 dnl
2284 dnl  Video4Linux plugin
2285 dnl
2286 AC_ARG_ENABLE(v4l,
2287   [  --enable-v4l            Video4Linux input support (default disabled)])
2288 if test "${enable_v4l}" = "yes"
2289 then
2290   AC_ARG_WITH(v4l,
2291     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2292   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2293   then
2294     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2295   fi
2296
2297   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2298   AC_CHECK_HEADERS(linux/videodev.h, [
2299     VLC_ADD_PLUGINS([v4l])
2300   ],[])
2301   CPPFLAGS="${CPPFLAGS_save}"
2302 fi
2303
2304 dnl
2305 dnl  Video4Linux2 plugin
2306 dnl
2307 AC_ARG_ENABLE(v4l2,
2308   [  --enable-v4l2           Video4Linux2 input support (default disabled)])
2309 if test "${enable_v4l2}" = "yes"
2310 then
2311   AC_ARG_WITH(v4l2,
2312     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2313   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2314   then
2315     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2316   fi
2317
2318   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_v4l2_alsa="true", have_v4l2_alsa="false"),have_v4l2_alsa="false")
2319   if test "${have_v4l2_alsa}" = "true"
2320   then
2321     CFLAGS="${CFLAGS_save}"
2322     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
2323                     #define ALSA_PCM_NEW_SW_PARAMS_API
2324                     #include <alsa/asoundlib.h>],
2325        [snd_pcm_hw_params_get_period_time(0,0,0);],
2326         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
2327     VLC_ADD_LDFLAGS([v4l2],[-lasound -lm -ldl])
2328     AC_DEFINE(HAVE_ALSA, 1, Define if ALSA is present.)
2329   fi
2330
2331   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2332   AC_CHECK_HEADERS(linux/videodev2.h, [
2333     VLC_ADD_PLUGINS([v4l2])
2334   ],[])
2335   CPPFLAGS="${CPPFLAGS_save}"
2336 fi
2337
2338
2339 dnl
2340 dnl  special access module for Hauppauge PVR cards
2341 dnl
2342 AC_ARG_ENABLE(pvr,
2343   [  --enable-pvr            PVR cards access module (default disabled)])
2344 if test "${enable_pvr}" = "yes"
2345 then
2346   VLC_ADD_PLUGINS([pvr])
2347   AC_ARG_WITH(videodev2,
2348     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2349   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2350   then
2351     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2352   fi
2353     
2354
2355   AC_CACHE_CHECK([for new linux/videodev2.h],
2356       [new_linux_videodev2_h],
2357       [AC_TRY_COMPILE([
2358           #include <sys/types.h>
2359           #   ifdef VIDEODEV2_H_FILE
2360           #   include VIDEODEV2_H_FILE
2361           #   else
2362           #   include <linux/videodev2.h>
2363           #   endif
2364           ],
2365           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2366           new_linux_videodev2_h=yes,
2367           new_linux_videodev2_h=no)])
2368   if test "${new_linux_videodev2_h}" != "no"; then
2369     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2370   fi
2371 fi
2372
2373 dnl
2374 dnl  gnomeVFS access module
2375 dnl
2376 AC_ARG_ENABLE(gnomevfs,
2377   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2378 if test "${enable_gnomevfs}" = "yes" 
2379 then
2380   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2381     VLC_ADD_LIBS([access_gnomevfs],[$GNOMEVFS_LIBS])
2382     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2383     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2384     VLC_ADD_PLUGINS([access_gnomevfs]),
2385     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2386 fi
2387
2388 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2389 AC_ARG_ENABLE(libcdio,
2390   [  --enable-libcdio        CD input and control library support (default enabled)])
2391
2392
2393 have_libcdio=no
2394 have_libvcdinfo=no
2395 if test "${enable_libcdio}" != "no"
2396 then
2397   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2398      have_libcdio=yes
2399      AC_DEFINE(HAVE_LIBCDIO, 1, 
2400      [Define if you have libcdio 0.78.2 or greater installed]),
2401      [AC_MSG_WARN(CD Reading and information library not found)])
2402
2403   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2404      [have_libvcdinfo=yes
2405      AC_DEFINE(HAVE_VCDINFO, 1, 
2406      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2407      [AC_MSG_WARN(VCD information library not found)])
2408 fi
2409
2410 dnl
2411 dnl  VCDX and CDDAX modules
2412 dnl
2413 AC_ARG_ENABLE(cddax,
2414   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2415  
2416 AC_ARG_ENABLE(libcddb,
2417   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2418  
2419 if test "${enable_cddax}" = "yes"
2420 then
2421   if test "$have_libcdio" = "yes"
2422   then
2423     AC_DEFINE(HAVE_CDDAX, 1, [Define for the audio CD plugin using libcdio])
2424     VLC_ADD_LIBS([cddax],[$LIBCDIO_LIBS])
2425     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2426     VLC_ADD_PLUGINS([cddax])
2427     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2428     VLC_ADD_LIBS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2429     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2430   else 
2431     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2432     HAVE_CDDAX=no
2433   fi
2434
2435   if test "$enable_libcddb" != "no"; then
2436     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2437       HAVE_LIBCDDB=yes 
2438       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2439       VLC_ADD_LIBS([cddax],[$LIBCDDB_LIBS])
2440       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2441       ],
2442       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2443       HAVE_LIBCDDB=no])
2444   fi
2445  
2446 fi
2447
2448 AC_ARG_ENABLE(vcdx,
2449   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2450  
2451 if test "${enable_vcdx}" = "yes"
2452 then
2453   if test "${have_libvcdinfo}" = "yes"
2454   then
2455     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2456     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2457   else 
2458     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2459     HAVE_VCDX=no
2460   fi
2461
2462   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2463    [VLC_ADD_LIBS([vcdx],[$LIBISO9660_LIBS])
2464     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2465     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2466     HAVE_VCDX=no])
2467
2468   if test "$have_libvcdinfo" = "yes"
2469   then
2470     AC_DEFINE(HAVE_VCDX, 1, 
2471     [Define for the VCD plugin using libcdio/libvcdinfo])
2472     VLC_ADD_LIBS([vcdx],[$VCDINFO_LIBS])
2473     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2474     VLC_ADD_PLUGINS([vcdx])
2475   else 
2476     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2477     HAVE_VCDX=no
2478   fi
2479 fi
2480
2481 dnl
2482 dnl  Built-in CD-DA and VCD module
2483 dnl
2484 AC_ARG_ENABLE(cdda,           
2485   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2486  
2487 AC_ARG_ENABLE(vcd,
2488   [  --enable-vcd            built-in VCD (default enabled)])
2489
2490 if test "${enable_vcd}" != "no"
2491 then
2492   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2493   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2494     AC_MSG_RESULT(yes)
2495     VLC_ADD_PLUGINS([vcd cdda])
2496   ],[
2497     AC_MSG_RESULT(no)
2498   ])
2499
2500   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2501   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2502     AC_MSG_RESULT(yes)
2503     VLC_ADD_PLUGINS([vcd cdda])
2504     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2505   ],[
2506     AC_MSG_RESULT(no)
2507   ])
2508
2509   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2510   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2511     AC_MSG_RESULT(yes)
2512     VLC_ADD_PLUGINS([vcd cdda])
2513     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2514   ],[
2515     AC_MSG_RESULT(no)
2516   ])
2517
2518   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2519   then
2520     VLC_ADD_PLUGINS([vcd cdda])
2521   fi
2522
2523   if test "${SYS}" = "darwin"
2524   then
2525     VLC_ADD_PLUGINS([vcd cdda])
2526     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2527     VLC_ADD_LIBS([vcdx cddax cdda],[-liconv])
2528   fi
2529
2530   if test "$enable_libcddb" != "no"; then
2531     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2532       HAVE_LIBCDDB=yes 
2533       AC_DEFINE(HAVE_LIBCDDB, 1, [Define this if you have libcddb installed])
2534       VLC_ADD_LIBS([cdda],[$LIBCDDB_LIBS])
2535       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2536       ],:
2537       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2538       HAVE_LIBCDDB=no])
2539   fi
2540 fi
2541
2542 dnl
2543 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2544 dnl
2545 AC_ARG_ENABLE(dvb,
2546   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2547
2548 if test "${enable_dvb}" = "yes"
2549 then
2550   AC_ARG_WITH(dvb,
2551   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2552   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2553   then
2554     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2555   fi
2556   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2557   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2558     if test -z "${with_dvbpsi_tree}"
2559     then
2560       VLC_ADD_PLUGINS([dvb])
2561     else
2562       VLC_ADD_BUILTINS([dvb])
2563     fi
2564   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2565   CPPFLAGS="${CPPFLAGS_save}"
2566 fi
2567
2568 dnl
2569 dnl  Screen capture module
2570 dnl
2571 AC_ARG_ENABLE(screen,
2572   [  --enable-screen         Screen capture support (default enabled)])
2573 if test "${enable_screen}" != "no"; then
2574   if test "${SYS}" = "darwin"; then
2575     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2576       VLC_ADD_PLUGINS([screen])
2577       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2578     ])
2579   elif test "${SYS}" = "mingw32"; then
2580     VLC_ADD_PLUGINS([screen])
2581     VLC_ADD_LIBS([screen],[-lgdi32])
2582   elif test "${SYS}" = "mingwce"; then
2583     CPPFLAGS="${CPPFLAGS_save}"
2584   elif test "${SYS}" = "beos"; then
2585     VLC_ADD_PLUGINS([screen])
2586     VLC_ADD_CXXFLAGS([screen],[])
2587     VLC_ADD_LIBS([screen],[-lbe])
2588   else
2589     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2590     AC_CHECK_HEADERS(X11/Xlib.h, [
2591       VLC_ADD_PLUGINS([screen])
2592       VLC_ADD_LIBS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2593       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2594     ])
2595     CPPFLAGS="${CPPFLAGS_save}"
2596   fi
2597 fi
2598
2599 dnl
2600 dnl  ipv6 plugin - not for QNX yet
2601 dnl
2602 have_ipv6=no
2603 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2604   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2605 ])
2606
2607 AS_IF([test "${have_ipv6}" = "yes"], [
2608   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2609
2610
2611 AC_CHECK_FUNCS(inet_ntop,[
2612   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2613
2614
2615 dnl
2616 dnl  ogg demux plugin
2617 dnl
2618 AC_ARG_ENABLE(ogg,
2619   [  --enable-ogg            Ogg demux support (default enabled)])
2620 if test "${enable_ogg}" != "no"
2621 then
2622   AC_ARG_WITH(ogg-tree,
2623   [    --with-ogg-tree=PATH  ogg tree for static linking])
2624   if test -n "${with_ogg_tree}"
2625   then
2626     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2627     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2628     if test -z "${real_ogg_tree}"
2629     then
2630       dnl  The given directory can't be found
2631       AC_MSG_RESULT(no)
2632       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2633     fi
2634     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2635     then
2636       dnl  Use a custom ogg
2637       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2638       VLC_ADD_PLUGINS([ogg])
2639       if test "${enable_sout}" != "no"; then
2640         VLC_ADD_PLUGINS([mux_ogg])
2641       fi
2642       VLC_ADD_LIBS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2643       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2644     else
2645       dnl  The given ogg wasn't built
2646       AC_MSG_RESULT(no)
2647       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2648     fi
2649   else
2650     AC_CHECK_HEADERS(ogg/ogg.h, [
2651       AC_CHECK_LIB( ogg, oggpack_read, [
2652         VLC_ADD_PLUGINS([ogg])
2653         if test "${enable_sout}" != "no"; then
2654           VLC_ADD_PLUGINS([mux_ogg])
2655         fi
2656         VLC_ADD_LIBS([ogg mux_ogg],[-logg])])
2657      ],[])
2658   fi
2659 fi
2660
2661 dnl
2662 dnl  matroska demux plugin
2663 dnl
2664 AC_ARG_ENABLE(mkv,
2665   [  --enable-mkv            Matroska demux support (default enabled)])
2666 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2667   AC_LANG_PUSH(C++)
2668   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2669     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2670     AC_EGREP_CPP(yes,
2671       [#include <ebml/EbmlVersion.h>
2672        #ifdef LIBEBML_VERSION
2673        #if LIBEBML_VERSION >= 0x000706
2674        yes
2675        #endif
2676        #endif],
2677       [AC_MSG_RESULT([yes])
2678         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2679           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2680           AC_EGREP_CPP(yes,
2681             [#include <matroska/KaxVersion.h>
2682              #ifdef LIBMATROSKA_VERSION
2683              #if LIBMATROSKA_VERSION >= 0x000705
2684              yes
2685              #endif
2686              #endif],
2687             [AC_MSG_RESULT([yes])
2688               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2689               VLC_ADD_CXXFLAGS([mkv],[])
2690               if test "${SYS}" = "darwin"; then
2691                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2692               fi
2693               AC_CHECK_LIB(ebml_pic, main, [
2694                 VLC_ADD_PLUGINS([mkv])
2695                 VLC_ADD_LIBS([mkv],[-lmatroska -lebml_pic])
2696               ],
2697                 AC_CHECK_LIB(ebml, main, [
2698                   VLC_ADD_PLUGINS([mkv])
2699                   VLC_ADD_LIBS([mkv],[-lmatroska -lebml])
2700                 ]) 
2701               )
2702             ],
2703             [AC_MSG_RESULT([no])
2704               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.])
2705           ])
2706         ])
2707       ],
2708       [AC_MSG_RESULT([no])
2709         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.])
2710     ])
2711   ])
2712   AC_LANG_POP(C++)
2713 fi
2714
2715 dnl
2716 dnl  modplug demux plugin
2717 dnl
2718 AC_ARG_ENABLE(mod,
2719   [  --enable-mod            Mod demux support (default enabled)])
2720 if test "${enable_mod}" != "no"
2721 then
2722   AC_ARG_WITH(mod-tree,
2723   [    --with-mod-tree=PATH mod tree for static linking])
2724   if test -n "${with_mod_tree}"
2725   then
2726     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2727     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2728     if test -z "${real_mod_tree}"
2729     then
2730       dnl  The given directory can't be found
2731       AC_MSG_RESULT(no)
2732       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2733     fi
2734     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2735     then
2736       dnl  Use a custom mod
2737       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2738       VLC_ADD_PLUGINS([mod])
2739       VLC_ADD_LIBS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2740       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2741     else
2742       dnl  The given mod wasn't built
2743       AC_MSG_RESULT(no)
2744       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2745     fi
2746   else
2747     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2748       VLC_ADD_PLUGINS([mod])
2749       VLC_ADD_CXXFLAGS([mod],[])
2750       VLC_ADD_LIBS([mod],[-lmodplug -lstdc++])])
2751   fi
2752 fi
2753
2754 dnl
2755 dnl  mpc demux plugin
2756 dnl
2757 AC_ARG_ENABLE(mpc,
2758   [  --enable-mpc            Mpc demux support (default enabled)])
2759 if test "${enable_mpc}" != "no"
2760 then
2761   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2762     VLC_ADD_PLUGINS([mpc])
2763     VLC_ADD_LIBS([mpc],[-lmpcdec])])
2764 fi
2765
2766 dnl
2767 dnl  game music emu demux plugin
2768 dnl
2769 AC_ARG_ENABLE(gme,
2770   [  --enable-gme            Game Music Emu demux support (default enabled)])
2771 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2772 then
2773   AC_LANG_PUSH(C++)
2774   AC_ARG_WITH(gme-tree,
2775   [    --with-gme-tree=PATH gme tree for static linking])
2776   if test -n "${with_gme_tree}"
2777   then
2778     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2779     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2780     if test -z "${real_gme_tree}"
2781     then
2782       dnl  The given directory can't be found
2783       AC_MSG_RESULT(no)
2784       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2785     fi
2786     if test -f "${real_gme_tree}/gme/libgme.a"
2787     then
2788       dnl  Use a custom gme
2789       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2790       VLC_ADD_PLUGINS([gme])
2791       VLC_ADD_LIBS([gme],[${real_gme_tree}/gme/libgme.a])
2792       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2793     else
2794       dnl  The given gme wasn't built
2795       AC_MSG_RESULT(no)
2796       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2797     fi
2798   else
2799       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2800   fi
2801   AC_LANG_POP(C++)
2802 fi
2803
2804 dnl
2805 dnl  Codec plugins
2806 dnl
2807
2808 AC_ARG_WITH(,[Codec plugins:])
2809
2810 dnl
2811 dnl  mad plugin
2812 dnl
2813 AC_ARG_ENABLE(mad,
2814   [  --enable-mad            libmad module (default enabled)])
2815 if test "${enable_mad}" != "no"
2816 then
2817   AC_ARG_WITH(mad,
2818     [    --with-mad=PATH       path to libmad],[],[])
2819   if test "${with_mad}" != "no" -a -n "${with_mad}"
2820   then
2821     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2822     VLC_ADD_LIBS([mpgatofixed32],[-L${with_mad}/lib])
2823   fi
2824
2825   AC_ARG_WITH(mad-tree,
2826     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2827   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2828   then
2829     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2830     if test -z "${real_mad_tree}"
2831     then
2832       dnl  The given directory can't be found
2833       AC_MSG_RESULT(no)
2834       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2835     fi
2836     dnl  Use a custom libmad
2837     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2838     if test -f ${real_mad_tree}/mad.h
2839     then
2840       AC_MSG_RESULT(yes)
2841       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2842       VLC_ADD_LIBS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2843       LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2844       AC_CHECK_LIB(mad, mad_bit_init, [
2845         VLC_ADD_BUILTINS([mpgatofixed32])
2846         VLC_ADD_LIBS([mpgatofixed32],[-lmad])
2847         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2848       ],[])
2849       LDFLAGS="${LDFLAGS_save}"
2850     else
2851       AC_MSG_RESULT(no)
2852       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2853     fi
2854   else
2855     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2856     LDFLAGS="${LDFLAGS_save} ${LIBS_mpgatofixed32}"
2857     AC_CHECK_HEADERS(mad.h, ,
2858       [ 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.]) ])
2859     AC_CHECK_LIB(mad, mad_bit_init, [
2860       VLC_ADD_PLUGINS([mpgatofixed32])
2861       VLC_ADD_LIBS([mpgatofixed32],[-lmad])],
2862       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2863     CPPFLAGS="${CPPFLAGS_save}"
2864     LDFLAGS="${LDFLAGS_save}"
2865   fi
2866 fi
2867
2868 dnl
2869 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2870 dnl
2871 AC_ARG_ENABLE( id3tag,
2872   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2873 AS_IF([test "${enable_id3tag}" != "no"], [
2874   AC_CHECK_HEADERS(id3tag.h, [
2875     AC_CHECK_HEADERS(zlib.h, [
2876       VLC_ADD_LIBS([id3tag],[-lid3tag -lz])
2877       VLC_ADD_PLUGINS([id3tag])
2878     ])
2879   ])
2880 ])
2881
2882 dnl
2883 dnl  ffmpeg decoder/demuxer plugin
2884 dnl
2885 dnl we try to find ffmpeg using : 1- given tree, 2- pkg-config
2886 dnl                               3- default place,
2887
2888 AC_ARG_ENABLE(ffmpeg,
2889 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2890 if test "${enable_ffmpeg}" != "no"
2891 then
2892
2893 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2894
2895  AC_ARG_WITH(ffmpeg-mp3lame,
2896    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2897    [
2898      if test "$with_ffmpeg_mp3lame" = "yes";    then
2899         VLC_ADD_LIBS([ffmpeg],[-lmp3lame])
2900      fi])
2901
2902  AC_ARG_WITH(ffmpeg-faac,
2903    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2904    [
2905      if test "$with_ffmpeg_faac" = "yes"; then
2906         VLC_ADD_LIBS([ffmpeg],[-lfaac])
2907      fi])
2908
2909  AC_ARG_WITH(ffmpeg-dts,
2910    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2911    [
2912      if test "$with_ffmpeg_dts" = "yes"; then
2913              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
2914              AC_CHECK_LIB(dts_pic, dts_free, 
2915                [ VLC_ADD_LIBS([ffmpeg],[-ldts_pic]) ],
2916                [ VLC_ADD_LIBS([ffmpeg],[-ldts]) ])
2917              LDFLAGS="${LDFLAGS_save}"
2918      fi])
2919
2920  AC_ARG_WITH(ffmpeg-vorbis,
2921    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2922    [
2923      if test "$with_ffmpeg_vorbis" = "yes"; then
2924         VLC_ADD_LIBS([ffmpeg],[-lvorbisenc -lvorbis])
2925      fi])
2926
2927  AC_ARG_WITH(ffmpeg-theora,
2928    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2929    [
2930      if test "$with_ffmpeg_theora" = "yes"; then
2931         VLC_ADD_LIBS([ffmpeg],[-ltheora])
2932      fi])
2933
2934  AC_ARG_WITH(ffmpeg-ogg,
2935    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2936    [
2937      if test "$with_ffmpeg_ogg" = "yes"; then
2938         VLC_ADD_LIBS([ffmpeg],[-logg])
2939      fi])
2940
2941  AC_ARG_WITH(ffmpeg-zlib,
2942    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2943    [
2944      if test "$with_ffmpeg_zlib" = "yes"; then
2945         VLC_ADD_LIBS([ffmpeg],[-lz])
2946      fi])
2947
2948  AC_ARG_WITH(ffmpeg-amrnb,
2949    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2950    [
2951      if test "$with_ffmpeg_amrnb" = "yes";      then
2952         VLC_ADD_LIBS([ffmpeg],[-lamrnb])
2953      fi])
2954
2955  AC_ARG_WITH(ffmpeg-amrwb,
2956    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2957    [
2958      if test "$with_ffmpeg_amrwb" = "yes";      then
2959         VLC_ADD_LIBS([ffmpeg],[-lamrwb])
2960      fi])
2961
2962  AC_ARG_WITH(ffmpeg-x264,
2963    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libx264 support],
2964    [
2965      if test "$with_ffmpeg_x264" = "yes";       then
2966         VLC_ADD_LIBS([ffmpeg],[-lx264])
2967      fi])
2968
2969  AC_ARG_WITH(ffmpeg-a52,
2970    [    --with-ffmpeg-a52 specify if ffmpeg has been compiled with liba52 support],
2971    [
2972      if test "$with_ffmpeg_a52" = "yes";        then
2973         VLC_ADD_LIBS([ffmpeg],[-la52])
2974      fi])
2975
2976  dnl
2977  dnl test for --with-ffmpeg-tree
2978  dnl
2979  AC_ARG_WITH(ffmpeg-tree,
2980    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2981
2982  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2983    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2984    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2985    if test -z "${real_ffmpeg_tree}"; then
2986      dnl  The given directory can't be found
2987      AC_MSG_RESULT(no)
2988      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2989    fi
2990    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2991      dnl  The given libavcodec wasn't built
2992      AC_MSG_RESULT(no)
2993      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2994    fi
2995    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2996      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2997        VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])   
2998      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2999         VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
3000         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
3001      else
3002        dnl  The given libavcodec wasn't built with --enable-pp
3003        AC_MSG_RESULT(no)
3004        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
3005      fi
3006    fi
3007    dnl  Use a custom libffmpeg
3008    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
3009
3010    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
3011    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
3012    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
3013    export PKG_CONFIG_PATH=""
3014    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
3015
3016    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
3017         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
3018         VLC_ADD_LIBS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
3019       ,[])
3020    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3021          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3022    ],[
3023         unset PKG_CONFIG_PATH
3024    ])
3025    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[
3026         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"
3027    ],[
3028         unset PKG_CONFIG_LIBDIR
3029    ])
3030
3031    VLC_ADD_BUILTINS([ffmpeg])
3032    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3033      VLC_ADD_BUILTINS([stream_out_switcher])
3034    fi
3035
3036    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3037      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3038      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3039      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3040    fi
3041
3042     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3043       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3044       VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat -lavformat -lz])
3045       VLC_ADD_CPPFLAGS([ffmpeg],[-I${real_ffmpeg_tree}/libavformat])
3046     fi
3047 else
3048
3049
3050 dnl Trying with pkg-config
3051    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3052     [
3053      VLC_SAVE_FLAGS
3054      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3055      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3056      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3057      AC_CHECK_HEADERS(ffmpeg/avformat.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avformat.h.])] )
3058      AC_CHECK_HEADERS(ffmpeg/avutil.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avutil.h.])] )
3059      dnl newer ffmpeg have a separate libpostproc
3060      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3061        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3062        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3063        ],[ true ])
3064      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3065      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3066      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3067      if test "${SYS}" = "darwin"; then
3068         VLC_ADD_BUILTINS([ffmpeg])
3069      else
3070         VLC_ADD_PLUGINS([ffmpeg])
3071      fi
3072      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3073         if test "${SYS}" = "darwin"; then
3074             VLC_ADD_BUILTINS([stream_out_switcher])
3075         else
3076             VLC_ADD_PLUGINS([stream_out_switcher])
3077         fi
3078      fi
3079      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3080      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3081
3082      dnl even newer ffmpeg has a libswscale
3083      PKG_CHECK_MODULES(SWSCALE,[libswscale],[
3084        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}])
3085        VLC_ADD_LIBS([ffmpeg],[${SWSCALE_LIBS}])
3086 dnl    AC_CHECK_HEADERS(ffmpeg/swscale.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/swscale.h.])])
3087        AC_CHECK_LIB(swscale, sws_getContext,
3088          [AC_CHECK_HEADERS([ffmpeg/avutil.h, ffmpeg/swscale.h])],[],[-lavutil -lm])
3089        ],[ true ])
3090      VLC_RESTORE_FLAGS
3091     ],[
3092
3093     dnl
3094     dnl last chance: at the default place
3095     dnl
3096       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3097       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg} ${LIBS_ffmpeg}"
3098       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3099       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3100       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3101       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3102
3103       AC_CHECK_LIB(avutil, av_crc_init, [
3104         VLC_ADD_LIBS([ffmpeg],[-lavutil])
3105         LDAVUTIL="-lavutil"])
3106
3107       AC_CHECK_LIB(avcodec, avcodec_init, [
3108         VLC_ADD_BUILTINS([ffmpeg])
3109         VLC_ADD_LIBS([ffmpeg],[-lavcodec])
3110         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3111             VLC_ADD_BUILTINS([stream_out_switcher])
3112         fi],
3113          [ 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])
3114
3115       AC_CHECK_LIB(postproc, pp_postprocess, [
3116         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3117       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3118         [$LDAVUTIL])
3119
3120       AC_CHECK_LIB(avformat, av_open_input_stream, [
3121         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3122       LDFLAGS="${LDFLAGS_save}"
3123       CPPFLAGS="${CPPFLAGS_save}"
3124
3125       AC_CHECK_LIB(swscale, sws_getContext, [
3126         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3127         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3128       LDFLAGS="${LDFLAGS_save}"
3129       CPPFLAGS="${CPPFLAGS_save}"
3130     ])
3131   fi
3132 fi
3133
3134 dnl
3135 dnl  ffmpegaltivec plugin
3136 dnl
3137 AC_ARG_ENABLE(ffmpegaltivec,
3138 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3139 if test "${enable_ffmpegaltivec}" = "yes"
3140 then
3141   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3142     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3143     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3144     if test -z "${real_ffmpeg_tree}"; then
3145       dnl  The given directory can't be found
3146       AC_MSG_RESULT(no)
3147       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3148     fi
3149     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3150       dnl  The given libavcodecaltivec wasn't built
3151       AC_MSG_RESULT(no)
3152       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3153     fi
3154     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3155       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3156       AC_MSG_RESULT(no)
3157       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3158     fi
3159     dnl  Use a custom libffmpeg
3160     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3161     VLC_ADD_BUILTINS([ffmpegaltivec])
3162     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3163     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3164     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3165
3166     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3167       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3168       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3169       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3170     fi
3171     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3172     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3173   fi
3174 fi
3175
3176 dnl
3177 dnl  faad decoder plugin
3178 dnl
3179 AC_ARG_ENABLE(faad,
3180 [  --enable-faad           faad codec (default disabled)])
3181 if test "${enable_faad}" = "yes"
3182 then
3183   AC_ARG_WITH(faad-tree,
3184   [    --with-faad-tree=PATH faad tree for static linking])
3185   if test -n "${with_faad_tree}"
3186   then
3187     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3188     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3189     if test -z "${real_faad_tree}"
3190     then
3191       dnl  The given directory can't be found
3192       AC_MSG_RESULT(no)
3193       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3194     fi
3195     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3196     then
3197       dnl  Use a custom faad
3198       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3199       VLC_ADD_BUILTINS([faad])
3200       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3201       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3202     else
3203       dnl  The given libfaad wasn't built
3204       AC_MSG_RESULT(no)
3205       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3206     fi
3207   else
3208     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3209     LDFLAGS="${LDFLAGS_save} ${LIBS_faad}"
3210     AC_CHECK_HEADERS(faad.h, ,
3211       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3212     AC_CHECK_LIB(faad, faacDecOpen, [
3213       VLC_ADD_PLUGINS([faad])
3214       VLC_ADD_LIBS([faad],[-lfaad]) ],
3215       AC_CHECK_LIB(faad, NeAACDecOpen, [
3216         VLC_ADD_PLUGINS([faad])
3217         VLC_ADD_LIBS([faad],[-lfaad]) ],
3218         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3219     LDFLAGS="${LDFLAGS_save}"
3220     CPPFLAGS="${CPPFLAGS_save}"
3221   fi
3222 fi
3223
3224 dnl
3225 dnl twolame encoder plugin
3226 dnl
3227 AC_ARG_ENABLE(twolame,
3228 [  --enable-twolame        twolame codec (default disabled)])
3229 if test "${enable_twolame}" = "yes"
3230 then
3231   AC_ARG_WITH(twolame-tree,
3232   [    --with-twolame-tree=PATH twolame tree for static linking])
3233   if test -n "${with_twolame_tree}"
3234   then
3235     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3236     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3237     if test -z "${real_twolame_tree}"
3238     then
3239       dnl  The given directory can't be found
3240       AC_MSG_RESULT(no)
3241       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3242     fi
3243     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3244     then
3245       dnl  Use a custom twolame
3246       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3247       VLC_ADD_BUILTINS([twolame])
3248       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3249       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3250     else
3251       dnl  The given libtwolame wasn't built
3252       AC_MSG_RESULT(no)
3253       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3254     fi
3255   else
3256     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3257     LDFLAGS="${LDFLAGS_save} ${LIBS_twolame}"
3258     AC_CHECK_HEADERS(twolame.h, ,
3259       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3260     AC_CHECK_LIB(twolame, twolame_init, [
3261       VLC_ADD_PLUGINS([twolame])
3262       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3263       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3264         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3265     LDFLAGS="${LDFLAGS_save}"  
3266     CPPFLAGS="${CPPFLAGS_save}"
3267   fi
3268 fi
3269
3270 dnl
3271 dnl  QuickTime plugin
3272 dnl
3273 AC_ARG_ENABLE(quicktime,
3274   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3275 if test "${enable_quicktime}" != "no" &&
3276   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3277 then
3278   if test "${SYS}" = "mingw32"; then
3279     VLC_ADD_BUILTINS([quicktime])
3280   else
3281   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3282     [ VLC_ADD_BUILTINS([quicktime])
3283       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3284     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3285   fi
3286 fi
3287
3288 dnl
3289 dnl  Real plugin
3290 dnl
3291 AC_ARG_ENABLE(real,
3292   [  --enable-real           Real audio module (default disabled)])
3293 if test "${enable_real}" = "yes"; then
3294   VLC_ADD_PLUGINS([realaudio])
3295 fi
3296
3297 dnl
3298 dnl  Real RTSP plugin
3299 dnl
3300 AC_ARG_ENABLE(realrtsp,
3301   [  --enable-realrtsp       Real RTSP module (default disabled)])
3302 if test "${enable_realrtsp}" = "yes"; then
3303   VLC_ADD_PLUGINS([access_realrtsp])
3304 fi
3305
3306 dnl
3307 dnl MP4 module
3308 dnl
3309 AC_CHECK_HEADERS(zlib.h, [
3310   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3311 ] )
3312
3313 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3314   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3315 ] )
3316
3317 dnl
3318 dnl skins2 module
3319 dnl
3320 AC_ARG_ENABLE(libtar,
3321   [  --enable-libtar support for skins2 (default enabled)])
3322
3323 AS_IF([test "${enable_libtar}" != "no"],[
3324   AC_CHECK_HEADERS(libtar.h, [
3325     VLC_ADD_LIBS([skins2],[-ltar])
3326   ] )
3327 ])
3328
3329 dnl
3330 dnl A52/AC3 decoder plugin
3331 dnl
3332 AC_ARG_ENABLE(a52,
3333   [  --enable-a52            A/52 support with liba52 (default enabled)])
3334 if test "${enable_a52}" != "no"
3335 then
3336   AC_ARG_WITH(a52,
3337     [    --with-a52=PATH       a52 headers and libraries])
3338   AC_ARG_WITH(a52-tree,
3339     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3340   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3341   then
3342     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3343     if test -z "${real_a52_tree}"
3344     then
3345       dnl  The given directory can't be found
3346       AC_MSG_RESULT(no)
3347       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3348     fi
3349     dnl  Use a custom a52dec
3350     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3351     if test -f ${real_a52_tree}/include/a52.h
3352     then
3353       AC_MSG_RESULT(yes)
3354       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3355       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3356       LDFLAGS="${LDFLAGS_save} ${LIBS_a52tofloat32}"
3357       AC_CHECK_LIB(a52, a52_free, [
3358         VLC_ADD_BUILTINS([a52tofloat32])
3359         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3360         VLC_ADD_LIBS([a52tofloat32],[-la52])
3361         ],[
3362         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3363         then
3364           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3365         else
3366           AC_MSG_ERROR([the specified tree hasn't been compiled])
3367         fi
3368       ])
3369       LDFLAGS="${LDFLAGS_save}"
3370     else
3371       AC_MSG_RESULT(no)
3372       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3373     fi
3374   else
3375     if test -z "${with_a52}"
3376     then
3377       LDFLAGS_test=""
3378       CPPFLAGS_test=""
3379     else
3380       LDFLAGS_test="-L${with_a52}/lib"
3381       CPPFLAGS_test="-I${with_a52}/include"
3382     fi
3383     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3384     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LIBS_a52tofloat32}"
3385     AC_CHECK_HEADERS(a52dec/a52.h, [
3386       AC_CHECK_LIB(a52, a52_free, [
3387         VLC_ADD_PLUGINS([a52tofloat32])
3388         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3389         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3390       ],[
3391         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.])
3392         ])
3393     ],[
3394       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.])
3395     ])
3396     CPPFLAGS="${CPPFLAGS_save}"
3397     LDFLAGS="${LDFLAGS_save}"
3398   fi
3399 fi
3400
3401 AC_ARG_WITH(a52-fixed,
3402       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3403       [
3404         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3405
3406 dnl
3407 dnl DTS Coherent Acoustics decoder plugin
3408 dnl
3409 AS_IF([test "x${enable_dts}" != "x"], [
3410   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3411 ])
3412 AS_IF([test "x${with_dts_tree}" != "x"], [
3413   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3414 ])
3415
3416 AC_ARG_ENABLE(dca,
3417   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3418 AS_IF([test "${enable_dca}" != "no"], [
3419   AC_ARG_WITH(dca-tree,
3420     [    --with-dca-tree=PATH  libdca tree for static linking],,
3421     [with_dca_tree="no"])
3422   AS_IF([test "${with_dca_tree}" != "no"], [
3423     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3424     AS_IF([test -z "${real_dca_tree}"], [
3425       dnl  The given directory can't be found
3426       AC_MSG_RESULT(no)
3427       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3428     ])
3429     dnl  Use a custom libdca
3430     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3431     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3432       AC_MSG_RESULT(yes)
3433       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3434       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3435         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3436       ], [
3437         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3438       ])
3439     ], [
3440       AC_MSG_RESULT(no)
3441       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3442     ])
3443   ], [
3444     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3445       VLC_ADD_PLUGINS([dtstofloat32])
3446       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3447       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3448     ], [
3449       AS_IF([test "x${enable_dca}" != "x"], [
3450         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3451       ])
3452     ])
3453   ])
3454 ])
3455
3456 dnl
3457 dnl  Flac plugin
3458 dnl
3459 AC_ARG_ENABLE(flac,
3460   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3461 if test "${enable_flac}" = "yes"
3462 then
3463   AC_ARG_WITH(flac-tree,
3464   [    --with-flac-tree=PATH flac tree for static linking])
3465   if test -n "${with_flac_tree}"
3466   then
3467     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3468     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3469     if test -z "${real_flac_tree}"
3470     then
3471       dnl  The given directory can't be found
3472       AC_MSG_RESULT(no)
3473       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3474     fi
3475     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3476     then
3477       dnl  Use a custom flac
3478       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3479       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3480       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3481       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3482     else
3483       dnl  The given flac wasn't built
3484       AC_MSG_RESULT(no)
3485       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3486     fi
3487   else
3488     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3489       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3490      ],[])
3491   fi
3492 fi
3493
3494 dnl
3495 dnl  Libmpeg2 plugin
3496 dnl
3497 AC_ARG_ENABLE(libmpeg2,
3498   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3499 if test "${enable_libmpeg2}" != "no"
3500 then
3501   AC_ARG_WITH(libmpeg2-tree,
3502   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3503   if test -n "${with_libmpeg2_tree}"
3504   then
3505     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3506     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3507     if test -z "${real_libmpeg2_tree}"
3508     then
3509       dnl  The given directory can't be found
3510       AC_MSG_RESULT(no)
3511       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3512     fi
3513     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3514     then
3515       dnl  Use a custom libmpeg2
3516       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3517       VLC_ADD_BUILTINS([libmpeg2])
3518       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3519       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3520       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3521     else
3522       dnl  The given libmpeg2 wasn't built
3523       AC_MSG_RESULT(no)
3524       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3525     fi
3526   else
3527     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3528       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3529       AC_EGREP_CPP(yes,
3530         [#include <mpeg2dec/mpeg2.h>
3531          #ifdef MPEG2_RELEASE
3532          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3533          yes
3534          #endif
3535          #endif],
3536         [AC_MSG_RESULT([yes])
3537           VLC_ADD_PLUGINS([libmpeg2])
3538           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3539         [AC_MSG_RESULT([no])
3540           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.])])],
3541
3542       [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.])]
3543     )
3544   fi
3545 fi
3546
3547 dnl
3548 dnl  Vorbis plugin
3549 dnl
3550 AC_ARG_ENABLE(vorbis,
3551   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3552 if test "${enable_vorbis}" != "no"
3553 then
3554   AC_ARG_WITH(vorbis-tree,
3555   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3556   if test -n "${with_vorbis_tree}"
3557   then
3558     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3559     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3560     if test -z "${real_vorbis_tree}"
3561     then
3562       dnl  The given directory can't be found
3563       AC_MSG_RESULT(no)
3564       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3565     fi
3566     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3567     then
3568       dnl  Use a custom vorbis 
3569       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3570       VLC_ADD_PLUGINS([vorbis])
3571       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3572       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3573     else
3574       dnl  The given vorbis wasn't built
3575       AC_MSG_RESULT(no)
3576       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3577     fi
3578   else
3579     AC_CHECK_HEADERS(vorbis/codec.h, [
3580       VLC_ADD_PLUGINS([vorbis])
3581       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3582
3583     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3584       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3585   fi
3586 fi
3587
3588 dnl
3589 dnl  Tremor plugin
3590 dnl
3591 AC_ARG_ENABLE(tremor,
3592   [  --enable-tremor         Tremor decoder support (default disabled)])
3593 if test "${enable_tremor}" = "yes"
3594 then
3595   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3596     VLC_ADD_PLUGINS([tremor])
3597     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3598    ],[])
3599 fi
3600
3601 dnl
3602 dnl  Speex plugin
3603 dnl
3604 AC_ARG_ENABLE(speex,
3605   [  --enable-speex          Speex decoder support (default enabled)])
3606 if test "${enable_speex}" != "no"
3607 then
3608   AC_ARG_WITH(speex-tree,
3609   [    --with-speex-tree=PATH speex tree for static linking])
3610   if test -n "${with_speex_tree}"
3611   then
3612     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3613     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3614     if test -z "${real_speex_tree}"
3615     then
3616       dnl  The given directory can't be found
3617       AC_MSG_RESULT(no)
3618       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3619     fi
3620     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3621     then
3622       dnl  Use a custom speex
3623       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3624       VLC_ADD_PLUGINS([speex])
3625       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3626       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3627     else
3628       dnl  The given speex wasn't built
3629       AC_MSG_RESULT(no)
3630       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3631     fi
3632   else
3633     AC_CHECK_HEADERS(speex/speex.h, [
3634       LDFLAGS="${LDFLAGS_save} ${LIBS_speex}"
3635       AC_CHECK_LIB(speex, speex_decode_int, [
3636         VLC_ADD_PLUGINS([speex])
3637         VLC_ADD_LIBS([speex],[-lspeex]) ],
3638         [ AC_MSG_RESULT([no])
3639           AC_MSG_WARN([Your libspeex is too old, please get the development
3640                        version.]) ],[])
3641       LDFLAGS="${LDFLAGS_save}"
3642       ],[])
3643   fi
3644 fi
3645
3646 dnl
3647 dnl  tarkin decoder plugin
3648 dnl
3649 AC_ARG_ENABLE(tarkin,
3650 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3651 if test "${enable_tarkin}" = "yes"
3652 then
3653   AC_ARG_WITH(tarkin-tree,
3654   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3655   if test -n "${with_tarkin_tree}"
3656   then
3657     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3658     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3659     if test -f "${real_tarkin_tree}/tarkin.o"
3660     then
3661       VLC_ADD_BUILTINS([tarkin])
3662       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3663       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])
3664       AC_MSG_RESULT(yes)
3665     else
3666       dnl  The given tarkin tree wasn't built
3667       AC_MSG_RESULT(no)
3668       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3669                     make sure you compiled tarkin in ${with_tarkin_tree}])
3670     fi
3671   fi
3672 fi
3673
3674 dnl
3675 dnl  theora decoder plugin
3676 dnl
3677 AC_ARG_ENABLE(theora,
3678 [  --enable-theora         experimental theora codec (default disabled)])
3679 if test "${enable_theora}" = "yes"
3680 then
3681   AC_CHECK_HEADERS(theora/theora.h, [
3682     AC_CHECK_LIB(theora, theora_granule_time, [
3683       VLC_ADD_PLUGINS([theora])
3684       theora_libs="-ltheora -logg"
3685       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3686       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3687 You also need to check that you have a libogg posterior to the 1.0 release.])],
3688       [-logg])
3689   ])
3690 fi
3691
3692 dnl
3693 dnl  dirac decoder plugin
3694 dnl
3695 AC_ARG_ENABLE(dirac,
3696 [  --enable-dirac          experimental dirac codec (default disabled)])
3697 if test "${enable_dirac}" = "yes"; then
3698   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.9.0], [
3699       VLC_ADD_PLUGINS([dirac])
3700       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3701       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3702       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3703   ])
3704 fi
3705
3706 dnl
3707 dnl  PNG decoder module
3708 dnl
3709 AC_ARG_ENABLE(png,
3710   [  --enable-png            PNG support (default enabled)])
3711 if test "${enable_png}" != "no"; then
3712 AC_CHECK_HEADERS(png.h, [
3713   LDFLAGS="${LDFLAGS_save} -lz"
3714   AC_CHECK_LIB(png, png_set_rows, [
3715     VLC_ADD_LIBS([png],[-lpng -lz])
3716     VLC_ADD_PLUGINS([png])
3717     VLC_ADD_PLUGINS([osdmenu osd_parser])
3718     AC_DEFINE(HAVE_LIBPNG, 1, [Define if you have the PNG library: libpng])],
3719     [],[-lz])
3720   LDFLAGS="${LDFLAGS_save}"
3721   ])
3722 fi
3723
3724 dnl
3725 dnl H264 encoder plugin (using libx264)
3726 dnl
3727 AC_ARG_ENABLE(x264,
3728   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3729 if test "${enable_x264}" != "no"; then
3730   AC_ARG_WITH(x264-tree,
3731     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3732   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3733   then
3734     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3735     if test -z "${real_x264_tree}"
3736     then
3737       dnl  The given directory can't be found
3738       AC_MSG_RESULT(no)
3739       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3740     fi
3741     dnl  Use a custom libx264
3742     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3743     if test -f ${real_x264_tree}/x264.h
3744     then
3745       AC_MSG_RESULT(yes)
3746       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3747       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3748       PKG_CHECK_MODULES(X264,x264, [
3749         VLC_ADD_PLUGINS([x264])
3750         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3751         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3752       ],[
3753         AC_MSG_ERROR([the specified tree hasn't been compiled])
3754       ])
3755       LDFLAGS="${LDFLAGS_save}"
3756     else
3757       AC_MSG_RESULT(no)
3758       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3759     fi
3760   else
3761     AC_CHECK_HEADERS(x264.h, [
3762       PKG_CHECK_MODULES(X264,x264, [
3763         VLC_ADD_PLUGINS([x264])
3764         VLC_ADD_LDFLAGS([x264],[${X264_LIBS}])
3765         VLC_ADD_CFLAGS([x264],[${X264_CFLAGS}])
3766       ],[
3767         if test "${enable_x264}" = "yes"; then
3768             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3769           fi
3770       ])
3771     ])
3772     LDFLAGS="${LDFLAGS_save}"
3773   fi
3774 fi
3775
3776 dnl
3777 dnl libfluidsynth (MIDI synthetizer) plugin
3778 dnl
3779 AC_ARG_ENABLE(fluidsynth,
3780   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default enabled)])
3781 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3782   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3783     VLC_ADD_PLUGINS(fluidsynth)
3784     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3785     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3786   ], [
3787     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3788       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3789     ])
3790   ])
3791 ])
3792
3793 dnl
3794 dnl Teletext Modules
3795 dnl vbi decoder plugin (using libzbvi)
3796 dnl telx module
3797 dnl uncompatible
3798 dnl
3799 AC_ARG_ENABLE(zvbi,
3800   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3801 AC_ARG_ENABLE(telx,
3802   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3803
3804 AS_IF( [test "${enable_zvbi}" != "no"],[
3805   AS_IF( [test "${enable_telx}" = "yes"],[
3806     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3807   ],[
3808     PKG_CHECK_MODULES(ZVBI,
3809         zvbi-0.2 >= 0.2.25,
3810         [
3811           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3812           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3813           VLC_ADD_PLUGINS([zvbi])
3814           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3815         ],[
3816           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3817           enable_telx="yes"
3818         ])
3819     ])  
3820   ])
3821 AS_IF( [test "${enable_telx}" = "yes"],[
3822   VLC_ADD_PLUGINS([telx])
3823   ])
3824
3825 dnl
3826 dnl asa/csri subtitle rendering module
3827 dnl
3828 AC_ARG_ENABLE(csri,
3829   [  --enable-csri          Subtitle support using CSRI / asa (default disabled)])
3830 AS_IF( [test "${enable_csri}" = "yes"], [
3831   PKG_CHECK_MODULES(CSRI,
3832       csri >= 0.1.0,
3833       [
3834         VLC_ADD_LDFLAGS([csri],[$CSRI_LIBS])
3835         VLC_ADD_CFLAGS([csri],[$CSRI_CFLAGS])
3836         VLC_ADD_PLUGINS([csri])
3837       ],[
3838         AC_MSG_WARN([CSRI helper library not found])
3839       ])
3840   ])
3841
3842 dnl
3843 dnl asa demuxer
3844 dnl
3845 AC_ARG_ENABLE(asademux,
3846   [  --enable-asademux      asa subtitle demuxing (default disabled)])
3847 AS_IF( [test "${enable_asademux}" = "yes"], [
3848   PKG_CHECK_MODULES(PCRE,
3849       libpcre >= 6.5,
3850       [
3851         VLC_ADD_LDFLAGS([asademux],[$PCRE_LIBS])
3852         VLC_ADD_CFLAGS([asademux],[$PCRE_CFLAGS])
3853         VLC_ADD_PLUGINS([asademux])
3854       ],[
3855         AC_MSG_WARN([PCRE library not found (required for asademux)])
3856       ])
3857   ])
3858
3859 dnl
3860 dnl  CMML plugin
3861 dnl
3862 AC_ARG_ENABLE(cmml,
3863   [  --enable-cmml           CMML support (default enabled)])
3864 if test "${enable_cmml}" != "no"
3865 then
3866   VLC_ADD_PLUGINS([cmml])
3867 fi
3868
3869
3870 dnl
3871 dnl  Video plugins
3872 dnl
3873
3874 AC_ARG_WITH(,[Video plugins:])
3875
3876 dnl Check for DPMS
3877 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3878   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3879   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3880     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3881     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3882       AC_MSG_RESULT(yes)
3883       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3884                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3885     ],[
3886       AC_MSG_RESULT(no)
3887     ])
3888   ],,[
3889     #include <X11/Xlib.h>
3890   ])
3891   CPPFLAGS="${CPPFLAGS_save}"
3892 fi
3893
3894 dnl
3895 dnl  X11 module
3896 dnl  (enabled by default except on win32)
3897 dnl
3898 AC_ARG_ENABLE(x11,
3899   [  --enable-x11            X11 support (default enabled)])
3900 if test "${enable_x11}" != "no" &&
3901   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3902    test "${enable_x11}" = "yes"); then
3903   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3904   AC_CHECK_HEADERS(X11/Xlib.h, [
3905     VLC_ADD_PLUGINS([panoramix])
3906     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3907     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3908     AC_CHECK_LIB(Xext, XShmAttach, [
3909       VLC_ADD_PLUGINS([x11])
3910       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3911       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3912     ])
3913   ])
3914   CPPFLAGS="${CPPFLAGS_save}"
3915 fi
3916
3917 dnl
3918 dnl  XVideo module
3919 dnl  (enabled by default except on win32)
3920 dnl
3921 AC_ARG_ENABLE(xvideo,
3922   [  --enable-xvideo         XVideo support (default enabled)])
3923 if test "${enable_xvideo}" != "no" &&
3924   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3925    test "${enable_xvideo}" = "yes"); then
3926   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3927   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3928     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3929     AC_CHECK_LIB(Xv,XvPutImage,[
3930       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3931       # test for libXv_pic.
3932       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3933         VLC_ADD_PLUGINS([xvideo])
3934         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3935         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3936       else
3937         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3938           VLC_ADD_PLUGINS([xvideo])
3939           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3940           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3941         ],[
3942           VLC_ADD_BUILTINS([xvideo])
3943           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3944           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3945         ])
3946       fi
3947     ])
3948     CFLAGS="${CFLAGS_save}"
3949   ]
3950   CPPFLAGS="${CPPFLAGS_save}")
3951 fi
3952
3953 dnl
3954 dnl  GLX module
3955 dnl  (enabled by default except on win32)
3956 dnl
3957 AC_ARG_ENABLE(glx,
3958   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3959 if test "${enable_glx}" != "no" &&
3960   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3961    test "${enable_glx}" = "yes"); then
3962   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3963   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3964   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3965     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3966     choke me
3967     #endif]]),
3968     [
3969       VLC_ADD_PLUGINS([glx])
3970       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3971       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3972     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3973   CPPFLAGS="${CPPFLAGS_save}"
3974 fi
3975
3976 dnl
3977 dnl  XVMC module
3978 dnl  (enabled by default except on win32)
3979 dnl
3980 AC_ARG_ENABLE(xvmc,
3981   [  --enable-xvmc           XVMC support (default disabled)])
3982 if test "${enable_xvmc}" = "yes" &&
3983   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3984    test "${enable_xvmc}" = "yes"); then
3985   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3986   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3987     VLC_ADD_PLUGINS([xvmc])
3988     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3989     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3990   ])
3991   CPPFLAGS="${CPPFLAGS_save}"
3992 fi
3993
3994 dnl
3995 dnl  Check for the Xinerama extension
3996 dnl
3997 AC_ARG_ENABLE(xinerama,
3998   [  --enable-xinerama       Xinerama support (default enabled)])
3999 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
4000   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4001    test "${enable_xvideo}" = "yes"); then
4002   ac_cv_have_xinerama="no"
4003   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4004   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4005   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
4006     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
4007       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
4008       VLC_ADD_LIBS([x11],[-lXinerama_pic])
4009       VLC_ADD_LIBS([glx],[-lXinerama_pic])
4010       ac_cv_have_xinerama="yes"
4011     ],[
4012       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
4013         VLC_ADD_LIBS([xvideo],[-lXinerama])
4014         VLC_ADD_LIBS([x11],[-lXinerama])
4015         VLC_ADD_LIBS([glx],[-lXinerama])
4016         ac_cv_have_xinerama="yes"
4017       ])
4018     ])
4019   ])
4020   if test "${ac_cv_have_xinerama}" = "yes"; then
4021     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
4022   fi
4023   CFLAGS="${CFLAGS_save}"
4024   CPPFLAGS="${CPPFLAGS_save}"
4025
4026 dnl
4027 dnl  Check for XF86VidMode extension
4028 dnl
4029   ac_cv_have_xf86vidmode="no"
4030   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4031   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4032   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4033     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4034       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4035       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4036       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4037       ac_cv_have_xf86vidmode="yes"
4038     ],[
4039       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4040         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4041         VLC_ADD_LIBS([x11],[-lXxf86vm])
4042         VLC_ADD_LIBS([glx],[-lXxf86vm])
4043         ac_cv_have_xf86vidmode="yes"
4044       ])
4045     ])
4046   ],[true],
4047 [#ifdef HAVE_X11_XLIB_H
4048 # include <X11/Xlib.h>
4049 #endif]
4050    )
4051   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4052     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4053   ])
4054   CFLAGS="${CFLAGS_save}"
4055   CPPFLAGS="${CPPFLAGS_save}"
4056
4057 fi
4058
4059 dnl
4060 dnl  OpenGL module
4061 dnl  (enabled by default except on beos)
4062 dnl
4063 AC_ARG_ENABLE(opengl,
4064   [  --enable-opengl         OpenGL support (default enabled)])
4065 if test "${enable_opengl}" != "no" &&
4066    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4067   if test "${SYS}" != "darwin"; then
4068     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4069       VLC_ADD_PLUGINS([opengl])
4070       if test "${SYS}" != "mingw32"; then
4071         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4072       else
4073         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4074       fi
4075     ])
4076   else
4077     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4078     VLC_ADD_PLUGINS([opengl])
4079     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4080   fi
4081 fi
4082
4083 dnl
4084 dnl  SDL module
4085 dnl
4086 AC_ARG_ENABLE(sdl,
4087   [  --enable-sdl            SDL support (default enabled)])
4088 AC_ARG_ENABLE(sdl-image,
4089   [  --enable-sdl-image      SDL image support (default enabled)])
4090 if test "${enable_sdl}" != "no"
4091 then
4092   SDL_PATH="${PATH}"
4093   AC_ARG_WITH(sdl-config-path,
4094     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4095     [ if test "${with_sdl_config_path}" != "no"
4096       then
4097         SDL_PATH="${with_sdl_config_path}:${PATH}"
4098       fi ])
4099   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4100   SDL_CONFIG="${SDL12_CONFIG}"
4101   SDL_HEADER="SDL12/SDL.h"
4102   SDL_IMAGE="SDL12/SDL_image.h"
4103   if test "${SDL_CONFIG}" = "no"
4104   then
4105     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4106     SDL_CONFIG=${SDL11_CONFIG}
4107     SDL_HEADER="SDL11/SDL.h"
4108     SDL_IMAGE="SDL11/SDL_image.h"
4109   fi
4110   if test "${SDL_CONFIG}" = "no"
4111   then
4112     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4113     SDL_HEADER="SDL/SDL.h"
4114     SDL_IMAGE="SDL/SDL_image.h"
4115   fi
4116   # check for cross-compiling
4117   SDL_PREFIX=
4118   AC_ARG_WITH(sdl-prefix,
4119     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4120                                e.g use as:
4121                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4122   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4123   then
4124     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4125   fi
4126   if test "${SDL_CONFIG}" != "no"
4127   then
4128     # SDL on Darwin is heavily patched and can only run SDL_image
4129     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4130       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4131     fi
4132     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4133     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4134     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4135     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4136       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4137       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4138           As a last resort we also test for SDL.h presence),
4139       [ AC_MSG_ERROR([The development package for SDL is not installed.
4140 Please install it and try again. Alternatively you can also configure with
4141 --disable-sdl.])
4142       ])])
4143     AS_IF([ test "${enable_sdl_image}" != "no"],[
4144       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4145         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4146         VLC_ADD_PLUGINS([sdl_image])
4147         AC_CHECK_LIB(png, png_set_rows,
4148           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4149         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4150           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4151         AC_CHECK_LIB(tiff, TIFFClientOpen,
4152           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4153         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4154         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4155             As a last resort we also test for SDL_image.h presence),
4156         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4157   You should install it alongside your SDL package.])
4158         ])])
4159     ])
4160     CPPFLAGS="${CPPFLAGS_save}"
4161     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4162     then
4163       AC_MSG_ERROR([The development package for SDL is not installed.
4164 Please install it and try again. Alternatively you can also configure with
4165 --disable-sdl.])
4166     fi
4167
4168   elif test "${enable_sdl}" =  "yes"
4169   then
4170     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4171 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4172     ])
4173   fi
4174 fi
4175
4176 dnl
4177 dnl  freetype module
4178 dnl
4179 AC_ARG_ENABLE(freetype,
4180   [  --enable-freetype       freetype support (default enabled)])
4181 AC_ARG_ENABLE(fribidi,
4182   [  --enable-fribidi        fribidi support (default enabled)])
4183 if test "${enable_freetype}" != "no"
4184 then
4185    PKG_CHECK_MODULES(FREETYPE, freetype2,[  
4186       VLC_ADD_PLUGINS([freetype])
4187       have_freetype=yes     
4188       VLC_ADD_CPPFLAGS([freetype skins2],[${FREETYPE_CFLAGS}])
4189       VLC_ADD_LIBS([freetype skins2],[${FREETYPE_LIBS}])
4190       if test "${SYS}" = "mingw32"; then
4191         VLC_ADD_LIBS([freetype skins2],[-lxml2])
4192      fi
4193     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4194       [VLC_ADD_CPPFLAGS([freetype],[-DHAVE_FONTCONFIG])
4195        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4196     AC_CHECK_HEADERS(Carbon/Carbon.h,
4197       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4198   ],[
4199   have_freetype=no
4200   AS_IF([ test "${enable_freetype}" =  "yes"],[
4201     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4202 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4203       ])
4204     ])
4205   ])
4206
4207   dnl fribidi support
4208   if test "${enable_fribidi}" != "no"
4209   then
4210     PKG_CHECK_MODULES(FRIBIDI, fribidi, [
4211       VLC_ADD_CPPFLAGS([freetype skins2], [${FRIBIDI_CFLAGS} -DHAVE_FRIBIDI])
4212       VLC_ADD_LIBS([freetype skins2], [${FRIBIDI_LIBS}])
4213     ])
4214     fi
4215 fi
4216
4217 dnl
4218 dnl  libxml2 module
4219 dnl
4220 AC_ARG_ENABLE(libxml2,
4221   [  --enable-libxml2        libxml2 support (default enabled)])
4222 if test "${enable_libxml2}" != "no"
4223 then
4224   XML2_PATH="${PATH}"
4225   AC_ARG_WITH(xml2-config-path,
4226     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4227     [ if test "${with_xml2_config_path}" != "no"; then
4228         XML2_PATH="${with_xml2_config_path}:${PATH}"
4229       fi ])
4230   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4231   if test "${XML2_CONFIG}" != "no"; then
4232     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4233     VLC_ADD_LIBS([xml],[`${XML2_CONFIG} --libs`])
4234     dnl depends on the xmlTextReader extension
4235     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4236     LDFLAGS="${LDFLAGS_save} ${LIBS_xml}"
4237     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4238       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4239         VLC_ADD_PLUGINS([xml]) ],[
4240           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4241           if test "${enable_xml2}" = "yes"; then
4242             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4243           fi])
4244        ],[
4245       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4246       if test "${enable_xml2}" = "yes"; then
4247         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4248       fi])
4249     LDFLAGS="${LDFLAGS_save}"
4250     CPPFLAGS="${CPPFLAGS_save}"
4251   else
4252     if test "${enable_xml2}" = "yes"; then
4253       AC_MSG_ERROR([Could not find libxml2])
4254     fi
4255   fi
4256 fi
4257
4258 dnl
4259 dnl  SVG module
4260 dnl
4261 AC_ARG_ENABLE(svg,
4262   [  --enable-svg            SVG support (default disabled)])
4263 if test "${enable_svg}" = "yes"
4264 then
4265   PKG_CHECK_MODULES(SVG, 
4266         librsvg-2.0 >= 2.9.0,
4267         [
4268           VLC_ADD_LIBS([svg],[$SVG_LIBS])
4269           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4270           VLC_ADD_PLUGINS([svg]) ],
4271         [AC_MSG_WARN(SVG library not found)])
4272 fi
4273
4274 dnl
4275 dnl Snapshot vout module (with cache)
4276 dnl
4277 AC_ARG_ENABLE(snapshot,
4278   [  --enable-snapshot       snapshot module (default disabled)])
4279 if test "${enable_snapshot}" = "yes"
4280 then
4281   VLC_ADD_PLUGINS([snapshot])
4282 fi
4283
4284 dnl
4285 dnl  Qt Embedded module
4286 dnl  (disabled by default)
4287 dnl
4288 AC_ARG_ENABLE(qte,
4289   [  --enable-qte            QT Embedded support (default disabled)])
4290 if test "${enable_qte}" = "yes"
4291 then
4292   AC_ARG_WITH(qte,
4293   [    --with-qte=PATH       Qt Embedded headers and libraries])
4294   if test "${with_qte}" != "no" -a -n "${with_qte}"
4295   then
4296     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4297     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])
4298   else
4299     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4300     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4301   fi
4302   VLC_ADD_PLUGINS([qte])
4303   NEED_QTE_MAIN=yes
4304   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4305   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4306     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4307   ] )
4308   CPPFLAGS="${CPPFLAGS_save}"
4309 fi
4310
4311 dnl
4312 dnl  Qt Video output module
4313 dnl  (disabled by default)
4314 dnl
4315 dnl AC_ARG_ENABLE(qt_video,
4316 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4317 dnl if test "${enable_qt_video}" = "yes"
4318 dnl then
4319 dnl  VLC_ADD_PLUGINS([qt_video])
4320 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4321 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4322 dnl   AC_CHECK_LIB(qt-mt,main,[
4323 dnl    VLC_ADD_LIBS([qt_video],[-lqt-mt])
4324 dnl  ],[
4325 dnl    AC_CHECK_LIB(qt,main,[
4326 dnl      VLC_ADD_LIBS([qt_video],[-lqt])
4327 dnl    ])
4328 dnl  ])
4329 dnl  NEED_QTE_MAIN=yes
4330 dnl  LDFLAGS="${LDFLAGS_save}"
4331 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4332 dnl fi
4333
4334 dnl
4335 dnl Roku HD1000 Video output module
4336 dnl
4337 AC_ARG_ENABLE(hd1000v,
4338   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4339 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4340   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4341    test "${enable_hd1000v}" = "yes"); then
4342   AC_LANG_PUSH([C++])
4343   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4344   [
4345     can_build_roku="yes"
4346   ],
4347   [
4348     can_build_roku="no"
4349     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4350   ])
4351   if test "$can_build_roku" = "yes"
4352   then
4353     VLC_ADD_PLUGINS([hd1000v])
4354     VLC_ADD_LIBS([hd1000v],[-lCascade -ldvbpsi -lmad])
4355   fi
4356   AC_LANG_POP([C++])
4357 fi
4358
4359 dnl
4360 dnl  Windows DirectX module
4361 dnl
4362
4363 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4364 then
4365   VLC_ADD_PLUGINS([panoramix])
4366 fi
4367
4368 AC_ARG_ENABLE(directx,
4369   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4370 if test "${enable_directx}" != "no"
4371 then
4372   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4373   then
4374     AC_ARG_WITH(directx,
4375     [    --with-directx=PATH   Win32 DirectX headers])
4376     if test -z "${with_directx}"
4377     then
4378       AC_CHECK_HEADERS(ddraw.h,
4379       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4380         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4381       ])
4382       AC_CHECK_HEADERS(GL/gl.h,
4383       [ VLC_ADD_PLUGINS([glwin32])
4384         VLC_ADD_LIBS([glwin32],[-lopengl32 -lgdi32])
4385       ])
4386       AC_CHECK_HEADERS(d3d9.h,
4387       [ VLC_ADD_PLUGINS([direct3d])
4388         VLC_ADD_LIBS([direct3d],[-lgdi32])
4389       ])
4390     else
4391       AC_MSG_CHECKING(for directX headers in ${with_directx})
4392       if test -f ${with_directx}/ddraw.h
4393       then
4394         VLC_ADD_PLUGINS([vout_directx aout_directx])
4395         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4396         VLC_ADD_LIBS([vout_directx],[-lgdi32])
4397         AC_MSG_RESULT(yes)
4398       else
4399         AC_MSG_RESULT(no)
4400         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4401       fi
4402     fi
4403   fi
4404 fi
4405
4406 dnl
4407 dnl  Linux framebuffer module
4408 dnl
4409 AC_ARG_ENABLE(fb,
4410   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4411     if test "${enable_fb}" != "no"
4412     then
4413       AC_CHECK_HEADERS(linux/fb.h, [
4414         VLC_ADD_PLUGINS([fb])
4415       ])
4416     fi
4417
4418 dnl
4419 dnl  Linux MGA module
4420 dnl
4421 AC_ARG_ENABLE(mga,
4422   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4423   [ if test "${enable_mga}" = "yes"
4424     then
4425       VLC_ADD_PLUGINS([mga])
4426     fi ])
4427
4428 dnl
4429 dnl  SVGAlib module
4430 dnl
4431 AC_ARG_ENABLE(svgalib,
4432   [  --enable-svgalib        SVGAlib support (default disabled)])
4433 if test "${enable_svgalib}" = "yes"
4434 then
4435   VLC_ADD_PLUGINS([svgalib])
4436   VLC_ADD_LIBS([svgalib],[-lvgagl -lvga])
4437 fi
4438
4439 dnl
4440 dnl  DirectFB module
4441 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4442 dnl  TODO: support for static linking
4443 dnl
4444 AC_ARG_ENABLE(directfb,
4445   [  --enable-directfb       DirectFB support (default disabled)])
4446 AC_ARG_WITH(directfb, 
4447   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4448
4449 if test "${enable_directfb}" = "yes"; then
4450     have_directfb="false"
4451     CPPFLAGS_mydirectfb=
4452     LIBS_mydirectfb=
4453     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4454         dnl Trying the given location
4455         CPPFLAGS_save="${CPPFLAGS}"
4456         LIBS_save="${LIBS}"
4457
4458         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4459         LIBS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4460         LIBS_new="${LIBS_new} -L${with_directfb}/src/.libs/"
4461
4462         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4463         LIBS="${LIBS} ${LIBS_new}"
4464
4465         dnl FIXME: too obscure
4466         AC_CHECK_HEADER([directfb.h], [
4467             AC_CHECK_LIB([direct],[direct_initialize], [
4468                 AC_CHECK_LIB([fusion], [fusion_enter], [
4469                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4470                 ], have_directfb="false")
4471             ], have_directfb="false")
4472         ], have_directfb="false")
4473
4474         dnl Restore flags
4475         CPPFLAGS="${CPPFLAGS_save}"
4476         LIBS="${LIBS_save}"
4477
4478         if test "${have_directfb}" = "true"; then
4479             LIBS_mydirectfb="${LIBS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4480             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4481         fi
4482     else 
4483         dnl Look for directfb-config
4484         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4485         if test "${DIRECTFB_CONFIG}" != "no"; then
4486             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4487             LIBS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4488             have_directfb="true"
4489         else 
4490             dnl Trying with pkg-config
4491             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4492                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4493                 LIBS_mydirectfb="${DIRECTFB_LIBS}"
4494                 have_directfb="true"
4495                 ], [have_directfb="false"])
4496         fi
4497     fi
4498     if test "${have_directfb}" = "true"; then
4499         VLC_ADD_PLUGINS([directfb])
4500         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4501         VLC_ADD_LIBS([directfb],[${LIBS_mydirectfb}])
4502     else 
4503         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4504     fi
4505 fi
4506  
4507
4508
4509 dnl
4510 dnl  GGI module
4511 dnl
4512 AC_ARG_ENABLE(ggi,
4513   [  --enable-ggi            GGI support (default disabled)])
4514 if test "${enable_ggi}" = "yes"
4515 then
4516   VLC_ADD_PLUGINS([ggi])
4517   VLC_ADD_LIBS([ggi],[-lggi])
4518   AC_ARG_WITH(ggi,
4519     [    --with-ggi=PATH       path to libggi],
4520     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4521       then
4522         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4523         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4524       fi ])
4525 fi
4526
4527 dnl
4528 dnl  Glide module
4529 dnl
4530 AC_ARG_ENABLE(glide,
4531   [  --enable-glide          Glide (3dfx) support (default disabled)])
4532 if test "${enable_glide}" = "yes"
4533 then
4534   CFLAGS_save="${CFLAGS}"
4535   AC_ARG_WITH(glide,
4536     [    --with-glide=PATH     path to libglide],
4537     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4538       then
4539         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4540         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4541         CFLAGS="$CFLAGS -I${with_glide}/include"
4542     fi ])
4543    CFLAGS="$CFLAGS -I/usr/include/glide"
4544    AC_CHECK_HEADER(glide.h,[   
4545       VLC_ADD_PLUGINS([glide])
4546       VLC_ADD_LIBS([glide],[-lglide2x -lm])
4547       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4548     ],[
4549       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4550      ])
4551    CFLAGS="${CFLAGS_save}"
4552 fi
4553
4554 dnl
4555 dnl  AA plugin
4556 dnl
4557 AC_ARG_ENABLE(aa,
4558   [  --enable-aa             aalib output (default disabled)])
4559 if test "${enable_aa}" = "yes"
4560 then
4561   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4562   if test "${have_aa}" = "true"
4563   then
4564     VLC_ADD_PLUGINS([aa])
4565     VLC_ADD_LIBS([aa],[-laa])
4566   fi
4567 fi
4568
4569 dnl
4570 dnl  libcaca plugin
4571 dnl
4572 AC_ARG_ENABLE(caca,
4573   [  --enable-caca           libcaca output (default disabled)])
4574 if test "${enable_caca}" = "yes"
4575 then
4576   CACA_PATH="${PATH}"
4577   AC_ARG_WITH(caca-config-path,
4578     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4579     [ if test "${with_caca_config_path}" != "no"
4580       then
4581         CACA_PATH="${with_caca_config_path}:${PATH}"
4582       fi ])
4583   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4584   if test "${CACA_CONFIG}" != "no"
4585   then
4586     VLC_ADD_PLUGINS([caca])
4587     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4588     VLC_ADD_LIBS([caca],[`${CACA_CONFIG} --plugin-libs`])
4589     AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include <caca.h>
4590                                         caca_event_t ev;]],
4591                                         [[ev.type = 0;]]
4592                        )],
4593                        [],
4594       [AC_DEFINE(CACA_EVENT_OPAQUE, [1], ["Define if struct caca_event is opaque and must not be accessed directly"])]
4595     )
4596   fi
4597 fi
4598
4599 dnl
4600 dnl  win32 GDI plugin
4601 dnl
4602 AC_ARG_ENABLE(wingdi,
4603   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4604 if test "${enable_wingdi}" != "no"; then
4605   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4606     VLC_ADD_PLUGINS([wingdi])
4607     VLC_ADD_LIBS([wingdi],[-lgdi32])
4608   fi
4609   if test "${SYS}" = "mingwce"; then
4610     VLC_ADD_PLUGINS([wingdi wingapi])
4611   fi
4612 fi
4613
4614 dnl
4615 dnl  Audio plugins
4616 dnl
4617
4618 AC_ARG_WITH(,[Audio plugins:])
4619
4620 dnl
4621 dnl  OSS /dev/dsp module (enabled by default except on win32)
4622 dnl
4623 AC_ARG_ENABLE(oss,
4624   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4625
4626 if test "${enable_oss}" != "no" &&
4627   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4628    test "${enable_oss}" = "yes")
4629 then
4630   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4631     VLC_ADD_PLUGINS([oss])
4632     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LIBS([oss],[-lossaudio]))
4633   ])
4634 fi
4635
4636 dnl
4637 dnl  Esound module
4638 dnl
4639 AC_ARG_ENABLE(esd,
4640   [  --enable-esd            Esound library support (default disabled)],
4641   [if test "${enable_esd}" = "yes"
4642    then
4643      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4644      if test "${ESD_CONFIG}" != "no"
4645      then
4646        VLC_ADD_PLUGINS([esd])
4647        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4648        VLC_ADD_LIBS([esd],[`${ESD_CONFIG} --libs`])
4649      fi
4650    fi])
4651
4652 dnl
4653 dnl  Pulseaudio module
4654 dnl
4655 AC_ARG_ENABLE(pulse,
4656   [  --enable-pulse          Pulseaudio support (default enabled)])
4657   if test "${enable_pulse}" != "no"
4658    then
4659      PKG_CHECK_MODULES(PULSE, libpulse,
4660        [ VLC_ADD_PLUGINS([pulse])
4661         VLC_ADD_CFLAGS([pulse],[${PULSE_CFLAGS}])
4662         VLC_ADD_LDFLAGS([pulse],[${PULSE_LIBS}])],
4663        [AC_MSG_WARN(pulsaudio library not found)])
4664    fi
4665
4666 dnl
4667 dnl  Portaudio module
4668 dnl
4669 AC_ARG_ENABLE(portaudio,
4670   [  --enable-portaudio      Portaudio library support (default disabled)],
4671   [if test "${enable_portaudio}" = "yes"
4672    then
4673      VLC_ADD_PLUGINS([portaudio])
4674      VLC_ADD_CXXFLAGS([portaudio],[])
4675      if test "${SYS}" = "mingw32"; then
4676         VLC_ADD_LIBS([portaudio],[-lportaudio -lwinmm -lole32])
4677      else
4678         VLC_ADD_LIBS([portaudio],[-lportaudio])
4679      fi
4680    fi])
4681
4682 dnl
4683 dnl  aRts module -- broken (freeze wxWidgets)
4684 dnl
4685 AC_ARG_ENABLE(arts,
4686  [  --enable-arts           aRts sound server (default disabled)],
4687  [if test "${enable_arts}" = "yes"
4688   then
4689     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4690     if test "${ARTS_CONFIG}" != "no"
4691     then
4692       VLC_ADD_PLUGINS([arts])
4693       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4694       VLC_ADD_LIBS([arts],[`${ARTS_CONFIG} --libs `])
4695     fi
4696   fi])
4697
4698 dnl
4699 dnl  ALSA module
4700 dnl
4701 AC_ARG_ENABLE(alsa,
4702   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4703 if test "${enable_alsa}" != "no"
4704 then
4705   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4706   if test "${have_alsa}" = "true"
4707   then
4708     CFLAGS="${CFLAGS_save}"
4709     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4710                     #define ALSA_PCM_NEW_SW_PARAMS_API
4711                     #include <alsa/asoundlib.h>],
4712        [snd_pcm_hw_params_get_period_time(0,0,0);],
4713         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4714     VLC_ADD_PLUGINS([alsa])
4715     VLC_ADD_LIBS([alsa],[-lasound -lm -ldl])
4716   else
4717     if test "${enable_alsa}" = "yes"; then
4718       AC_MSG_ERROR([Could not find ALSA development headers])
4719     fi
4720   fi
4721 fi
4722
4723 dnl
4724 dnl  win32 waveOut plugin
4725 dnl
4726 AC_ARG_ENABLE(waveout,
4727   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4728 if test "${enable_waveout}" != "no"; then
4729   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4730     VLC_ADD_PLUGINS([waveout])
4731     VLC_ADD_LIBS([waveout],[-lwinmm])
4732   fi
4733   if test "${SYS}" = "mingwce"; then
4734     VLC_ADD_PLUGINS([waveout])
4735   fi
4736 fi
4737
4738 dnl
4739 dnl  CoreAudio plugin
4740 dnl
4741 AC_ARG_ENABLE(macosx-audio,
4742   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4743 if test "${enable_macosx-audio}" != "no" &&
4744   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4745 then
4746   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4747     [ VLC_ADD_BUILTINS([auhal])
4748       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4749     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4750 fi
4751
4752 dnl
4753 dnl  Roku HD1000 audio
4754 dnl
4755 AC_ARG_ENABLE(hd1000a,
4756   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4757 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4758   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4759    test "${enable_hd1000a}" = "yes")
4760 then
4761   AC_LANG_PUSH([C++])
4762   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4763     VLC_ADD_PLUGINS([hd1000a])
4764     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4765   AC_LANG_POP([C++])
4766 fi
4767
4768 dnl
4769 dnl  JACK modules
4770 dnl
4771 AC_ARG_ENABLE(jack,
4772  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4773  [enable_jack="no"])
4774
4775 AS_IF([test "${enable_jack}" != "no"], [
4776   AC_CHECK_HEADERS(jack/jack.h, [
4777     VLC_ADD_PLUGINS([access_jack jack])
4778     VLC_ADD_LIBS([access_jack jack],[-ljack])
4779   ],[AC_MSG_ERROR([cannot find JACK headers])])
4780 ])
4781
4782 dnl
4783 dnl  CyberLink for C++ UPnP stack
4784 dnl
4785 AC_ARG_ENABLE(cyberlink,
4786   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4787   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4788   AC_ARG_WITH(cyberlink-tree,
4789     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4790
4791   dnl
4792   dnl test for --with-cyberlink-tree
4793   dnl
4794   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4795     AC_LANG_PUSH(C++)
4796     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4797     AS_IF([test -z "${real_cyberlink_tree}"], [
4798       dnl  The given directory can't be found
4799       AC_MSG_RESULT(no)
4800       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4801     ])
4802     CPPFLAGS_save="${CPPFLAGS}"
4803     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4804     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4805     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4806       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4807         VLC_ADD_PLUGINS([upnp_cc]) 
4808       ],[
4809         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4810       ])
4811     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4812     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4813       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4814       dnl The mere fact that we have to make such an ugly check sucks
4815       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4816       LIBS_save="$LIBS"
4817       LIBS_cclink="no"
4818       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4819         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4820         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4821 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4822 using namespace CyberLink;
4823
4824 class testclass : public SearchResponseListener, public MediaPlayer
4825 {
4826     virtual void deviceSearchResponseReceived( SSDPPacket *)
4827     {
4828     }
4829
4830     public:
4831       testclass (void)
4832       {
4833         addSearchResponseListener (this);
4834         start ();
4835       }
4836 };
4837 ],[testclass l;])],[LIBS_cclink="$l"])
4838       done
4839       LIBS="${LIBS_save}"
4840       dnl should not happen - otherwise this needs fixing - hence FAILURE
4841       AS_IF([test "${LIBS_cclink}" = "no"],
4842         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4843       AC_MSG_RESULT([${LIBS_cclink}])
4844       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4845     ], [
4846       AC_MSG_RESULT(no)
4847       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4848     ])
4849     CPPFLAGS="${CPPFLAGS_save}"
4850     AC_LANG_POP([C++])
4851   ])
4852 ])
4853
4854 dnl
4855 dnl UPnP Plugin (Intel SDK)
4856 dnl
4857 AC_ARG_ENABLE(upnp,
4858   [  --enable-upnp           Intel UPnP SDK (default enabled)])
4859
4860 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4861 AS_IF([test "x${enable_upnp}" != "xno"], [
4862   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4863   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4864     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4865   ])
4866   AS_IF([test "${has_upnp}" = "yes"], [
4867     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4868   ])
4869 ], [
4870   has_upnp="no"
4871 ])
4872
4873 AS_IF([test "${has_upnp}" = "yes"], [
4874   VLC_ADD_PLUGINS([upnp_intel])
4875 ])
4876
4877
4878 dnl
4879 dnl  Interface plugins
4880 dnl
4881
4882 AC_ARG_WITH(,[Interface plugins:])
4883
4884 dnl special case for BeOS
4885 if test "${SYS}" = "beos"
4886 then
4887     VLC_ADD_BUILTINS([beos])
4888 fi
4889
4890 dnl
4891 dnl Skins2 module
4892 dnl
4893 AC_ARG_ENABLE(skins2,
4894   [  --enable-skins2         Skins2 interface module (default disabled)])
4895 if test "${enable_skins2}" = "yes" ||
4896   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4897    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4898
4899   dnl test for the required libraries
4900   skins2_missing_lib="no"
4901
4902   dnl freetype
4903   if test "${have_freetype}" != "yes"; then
4904     skins2_missing_lib="yes"
4905     if test "${enable_skins2}" = "yes"; then
4906       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4907     fi
4908   fi
4909
4910   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4911     VLC_ADD_PLUGINS([skins2])
4912     ALIASES="${ALIASES} svlc"
4913     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4914     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4915     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4916
4917   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4918     VLC_ADD_PLUGINS([skins2])
4919     ALIASES="${ALIASES} svlc"
4920     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4921     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4922     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4923
4924   else if test "${skins2_missing_lib}" = "no"; then
4925     VLC_ADD_PLUGINS([skins2])
4926     ALIASES="${ALIASES} svlc"
4927     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4928     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4929     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4930   fi fi fi
4931 fi
4932
4933
4934 dnl dnl
4935 dnl dnl  Gtk+ module
4936 dnl dnl
4937 dnl AC_ARG_ENABLE(gtk,
4938 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4939 dnl if test "${enable_gtk}" != "no"
4940 dnl then
4941 dnl   GTK_PATH="${PATH}"
4942 dnl   AC_ARG_WITH(gtk-config-path,
4943 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4944 dnl     [ if test "${with_gtk_config_path}" != "no"
4945 dnl       then
4946 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4947 dnl       fi ])
4948 dnl   # look for gtk-config
4949 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4950 dnl   GTK_CONFIG=${GTK12_CONFIG}
4951 dnl   if test "${GTK_CONFIG}" = "no"
4952 dnl   then
4953 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4954 dnl   fi
4955 dnl   if test "${GTK_CONFIG}" != "no"
4956 dnl   then
4957 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4958 dnl     then
4959 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.])
4960 dnl     fi
4961 dnl     if test "${SYS}" != "mingw32"; then
4962 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4963 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4964 dnl     else
4965 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4966 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4967 dnl     fi
4968 dnl     # now look for the gtk.h header
4969 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4970 dnl     ac_cv_gtk_headers=yes
4971 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4972 dnl       ac_cv_gtk_headers=no
4973 dnl       echo "Cannot find gtk development headers."
4974 dnl     ])
4975 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4976 dnl     then
4977 dnl       VLC_ADD_PLUGINS([gtk])
4978 dnl       if test "${SYS}" != "mingw32"; then
4979 dnl         NEED_GTK_MAIN=yes
4980 dnl       fi
4981 dnl       ALIASES="${ALIASES} gvlc"
4982 dnl     fi
4983 dnl     CPPFLAGS="${CPPFLAGS_save}"
4984 dnl   fi
4985 dnl fi
4986 dnl 
4987 dnl
4988 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4989 dnl
4990 dnl AC_ARG_ENABLE(gtk2,
4991 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4992 dnl if test "${enable_gtk2}" = "yes"
4993 dnl then
4994 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4995 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4996 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4997 dnl   VLC_ADD_PLUGINS([gtk2])
4998 dnl   if test "${SYS}" != "mingw32"; then
4999 dnl     NEED_GTK2_MAIN=yes
5000 dnl   fi
5001 dnl fi
5002
5003 dnl
5004 dnl  PDA Gtk+2 module
5005 dnl
5006 AC_ARG_ENABLE(pda,
5007   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
5008 if test "${enable_pda}" = "yes"
5009 then
5010   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
5011   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
5012   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
5013   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
5014   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
5015   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
5016   VLC_ADD_PLUGINS([pda])
5017   if test "${SYS}" != "mingw32"; then
5018     NEED_GTK2_MAIN=yes
5019   fi
5020 fi
5021
5022 dnl dnl
5023 dnl dnl  Gnome module
5024 dnl dnl
5025 dnl AC_ARG_ENABLE(gnome,
5026 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5027 dnl   [if test "${enable_gnome}" = "yes"; then
5028 dnl     # look for gnome-config
5029 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5030 dnl     if test -x ${GNOME_CONFIG}
5031 dnl     then
5032 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5033 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5034 dnl     fi
5035 dnl     # now look for the gnome.h header
5036 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5037 dnl     AC_CHECK_HEADERS(gnome.h, [
5038 dnl       VLC_ADD_PLUGINS([gnome])
5039 dnl       NEED_GTK_MAIN=yes
5040 dnl       NEED_GNOME_MAIN=yes
5041 dnl       ALIASES="${ALIASES} gnome-vlc"
5042 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5043 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5044 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5045 dnl         AC_MSG_RESULT(yes)
5046 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5047 dnl                   Define if <gnome.h> defines strndup.)],[
5048 dnl         AC_MSG_RESULT(no)])
5049 dnl      ],[
5050 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5051 dnl developement tools or remove the --enable-gnome option])
5052 dnl      ])
5053 dnl     CPPFLAGS="${CPPFLAGS_save}"
5054 dnl   fi])
5055
5056 dnl
5057 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5058 dnl
5059 dnl AC_ARG_ENABLE(gnome2,
5060 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5061 dnl if test "${enable_gnome2}" = "yes"
5062 dnl then
5063 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5064 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5065 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5066 dnl   VLC_ADD_PLUGINS([gnome2])
5067 dnl   if test "${SYS}" != "mingw32"; then
5068 dnl     NEED_GNOME2_MAIN=yes
5069 dnl   fi
5070 dnl fi
5071
5072 dnl
5073 dnl  wxWidgets module
5074 dnl
5075 AC_ARG_ENABLE(wxwidgets,
5076   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5077
5078 if test "${enable_wxwidgets}" = "yes"
5079 then
5080   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5081   WXWIDGETS_PATH="${PATH}"
5082   AC_ARG_WITH(wx-config-path,
5083     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5084     [ if test "${with_wx_config_path}" != "no"
5085       then
5086         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5087       fi ])
5088   WXWIDGETS_NAME="wx-config"
5089   AC_ARG_WITH(wx-config,
5090     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5091     [ if test "${with_wx_config}" != "no"
5092       then
5093         WXWIDGETS_NAME="${with_wx_config}"
5094       fi ])
5095   # look for wx-config
5096   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5097   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5098   then
5099     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5100     then
5101       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5102     fi
5103     AC_LANG_PUSH(C++)
5104     # Turn this error:
5105     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5106     # into a warning. However better would be to fix playlist.cpp
5107     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5108         [ac_cv_cxx_fpermissive],
5109         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5110          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5111                         ac_cv_cxx_fpermissive=no)])
5112     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5113       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5114     fi
5115     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5116     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5117     # check if we must link against gtk2 libs
5118     # if __WXGTK20__ && __WXGTK__ are defined
5119     # for modules/gui/wxwidgets/video.cpp
5120     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5121 #include <wx/wx.h>
5122 #ifdef __WXGTK20__
5123 #error ok, we need to link against gtk2
5124 #endif
5125         ])],[WXGTK=no],[WXGTK=yes])
5126     if test "$WXGTK" = "yes"; then
5127       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5128     fi
5129     if ${WX_CONFIG} --unicode
5130     then 
5131       # wxwidgets should provide the following flags but does not
5132       # the following is required to compile for win32
5133       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5134     else
5135       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5136     fi
5137     if test "$have_libcdio" = "yes"
5138     then 
5139       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5140       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5141     else 
5142       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5143     fi
5144
5145     if test "$have_libvcdinfo" = "yes"
5146     then 
5147       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5148       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5149     else 
5150       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5151     fi
5152
5153     # now look for the wxprec.h header
5154     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5155     ac_cv_wx_headers=yes
5156     AC_CHECK_HEADERS(wx/wxprec.h, , [
5157       ac_cv_wx_headers=no
5158       echo "Cannot find wxWidgets development headers."
5159     ])
5160     if test "${ac_cv_wx_headers}" = "yes"
5161     then
5162       VLC_ADD_PLUGINS([wxwidgets])
5163       AC_DEFINE([HAVE_WX], 1, [Define to 1 if you have WxWidgets library.])
5164       ALIASES="${ALIASES} wxvlc"
5165     fi
5166     CPPFLAGS="${CPPFLAGS_save}"
5167     AC_LANG_POP(C++)
5168   fi
5169   dnl WxWidgets plugin will yield incorrect code without this
5170   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5171 fi
5172
5173 dnl
5174 dnl QT 4
5175 dnl
5176 enableqt4=false
5177 AC_ARG_ENABLE(qt4,
5178   [  --enable-qt4            QT 4 support (default enabled) ])
5179 AS_IF([test "${enable_qt4}" != "no" &&
5180   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5181   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5182     [ VLC_ADD_PLUGINS([qt4])
5183       AC_DEFINE([HAVE_QT4], 1, [Define to 1 if you have QT4 library.])
5184       ALIASES="${ALIASES} qvlc"
5185       enableqt4=true
5186       if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" -a "${SYS}" != "cygwin" -a "${SYS}" != "darwin"; then
5187           VLC_ADD_LIBS([qt4],[$QT4_LIBS -lX11])
5188       else
5189           VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5190       fi
5191       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5192       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5193       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5194       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5195       ],
5196       AS_IF([test "${enable_qt4}" = "yes"],[
5197     AC_MSG_ERROR(QT4 library not found)
5198       ],[
5199     AC_MSG_WARN(QT4 library not found)
5200       ])
5201     )
5202 ])
5203 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5204
5205 dnl
5206 dnl  WinCE GUI module
5207 dnl
5208 if test "${SYS}" = "mingwce"; then
5209   VLC_ADD_BUILTINS([wince])
5210   VLC_ADD_CXXFLAGS([wince],[])
5211   VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5212   dnl Gross hack
5213   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5214 elif test "${SYS}" = "mingw32"; then
5215   VLC_ADD_CXXFLAGS([wince],[])
5216   VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5217   dnl Gross hack
5218   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5219 fi
5220
5221 dnl
5222 dnl Simple test for skins2 dependency
5223 dnl
5224 if test "${enable_skins2}" != "no"
5225 then
5226   if test "${WX_CONFIG}" = "no"
5227   then
5228     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.])
5229   fi
5230 fi
5231
5232 dnl dnl
5233 dnl dnl  Qt module
5234 dnl dnl
5235 dnl AC_ARG_ENABLE(qt,
5236 dnl   [  --enable-qt             Qt interface support (default disabled)],
5237 dnl   [if test "${enable_qt}" = "yes"; then
5238 dnl      VLC_ADD_PLUGINS([qt])
5239 dnl      ALIASES="${ALIASES} qvlc"
5240 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5241 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5242 dnl      AC_CHECK_LIB(qt-mt,main,[
5243 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5244 dnl      ],[
5245 dnl        AC_CHECK_LIB(qt,main,[
5246 dnl          VLC_ADD_LIBS([qt],[-lqt])
5247 dnl        ])
5248 dnl      ])
5249 dnl      LDFLAGS="${LDFLAGS_save}"
5250 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5251 dnl      if test -x ${QTDIR}/bin/moc
5252 dnl      then
5253 dnl        MOC=${QTDIR}/bin/moc
5254 dnl      else
5255 dnl        MOC=moc
5256 dnl      fi
5257 dnl    fi])
5258 dnl 
5259 dnl dnl
5260 dnl dnl  KDE module
5261 dnl dnl
5262 dnl AC_ARG_ENABLE(kde,
5263 dnl   [  --enable-kde            KDE interface support (default disabled)],
5264 dnl   [if test "${enable_kde}" = "yes"; then
5265 dnl      VLC_ADD_PLUGINS([kde])
5266 dnl      ALIASES="${ALIASES} kvlc"
5267 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5268 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5269 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5270 dnl      AC_CHECK_LIB(kfile,main,[
5271 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5272 dnl      ])
5273 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5274 dnl      AC_CHECK_LIB(kdeui,main,[
5275 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5276 dnl      ])
5277 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5278 dnl      AC_CHECK_LIB(kio,main,[
5279 dnl        VLC_ADD_LIBS([kde],[-lkio])
5280 dnl      ])
5281 dnl      LDFLAGS="${LDFLAGS_save}"
5282 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5283 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5284 dnl      if test -x ${QTDIR}/bin/moc
5285 dnl      then
5286 dnl        MOC=${QTDIR}/bin/moc
5287 dnl      else
5288 dnl        MOC=moc
5289 dnl      fi
5290 dnl    fi])
5291
5292 dnl
5293 dnl  Opie QT embedded module
5294 dnl
5295 AC_ARG_ENABLE(opie,
5296   [  --enable-opie           Qt embedded interface support (default disabled)],
5297   [if test "${enable_opie}" = "yes"; then
5298      AC_ARG_WITH(qte,
5299      [    --with-qte=PATH       Qt Embedded headers and libraries])
5300      if test "${with_qte}" != "no" -a -n "${with_qte}"
5301      then
5302        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5303        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])
5304      else
5305        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5306        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5307      fi
5308      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5309      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5310        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5311      ] )
5312      CPPFLAGS="${CPPFLAGS_save}"
5313
5314      VLC_ADD_PLUGINS([opie])
5315      NEED_QTE_MAIN=yes
5316      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5317      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5318      if test "${with_qte}" != "no" -a -n "${with_qte}"
5319      then
5320        MOC=${with_qte}/bin/moc
5321      else
5322        MOC=${QTDIR}/bin/moc
5323      fi
5324    fi])
5325
5326 dnl
5327 dnl  MacOS X video output/gui modules
5328 dnl
5329 AC_ARG_ENABLE(macosx,
5330   [  --enable-macosx         MacOS X support (default enabled on MacOS X)])
5331 if test "x${enable_macosx}" = "xyes"
5332 then
5333   VLC_ADD_LDFLAGS([access_eyetv],                     [-Wl,-framework,Foundation])
5334   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,Cocoa])
5335   VLC_ADD_LDFLAGS([macosx minimal_macosx opengllayer],[-Wl,-framework,OpenGL])
5336   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,Carbon])
5337   VLC_ADD_LDFLAGS([macosx minimal_macosx],            [-Wl,-framework,AGL])
5338   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,IOKit])
5339   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QuickTime])
5340   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,QTKit])
5341   VLC_ADD_LDFLAGS([macosx],                           [-Wl,-framework,WebKit])
5342   VLC_ADD_LDFLAGS([opengllayer],                      [-Wl,-framework,QuartzCore])
5343   VLC_ADD_OBJCFLAGS([macosx minimal_macosx opengllayer growl], [-fobjc-exceptions] )
5344
5345   VLC_ADD_PLUGINS([access_eyetv])
5346   VLC_ADD_BUILTINS([macosx minimal_macosx])
5347  
5348   ORIGCFLAGS=$CFLAGS
5349   CFLAGS="$CFLAGS -x objective-c"
5350   AC_CHECK_HEADER(QuartzCore/CALayer.h, [VLC_ADD_BUILTINS([opengllayer])])
5351   CFLAGS=$ORIGCFLAGS
5352 fi
5353
5354 dnl
5355 dnl  QNX RTOS module
5356 dnl
5357 AC_ARG_ENABLE(qnx,
5358   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5359     if test "${enable_qnx}" != "no"
5360     then
5361       AC_CHECK_HEADERS(Ph.h, [
5362         VLC_ADD_PLUGINS([qnx])
5363         VLC_ADD_LIBS([qnx],[-lasound -lph])
5364       ])
5365     fi
5366
5367 dnl
5368 dnl  ncurses module
5369 dnl
5370 AC_ARG_ENABLE(ncurses,
5371   [  --disable-ncurses       ncurses interface support (default enabled)],
5372   [if test "${enable_ncurses}" != "no"; then
5373     AC_CHECK_HEADER(ncurses.h,
5374       [AC_CHECK_LIB(ncursesw, mvprintw,
5375         [VLC_ADD_PLUGINS([ncurses])
5376         VLC_ADD_LIBS([ncurses],[-lncursesw])
5377         ALIASES="${ALIASES} nvlc"
5378         AC_DEFINE([HAVE_NCURSESW], 1, [Define to 1 if you have libncursesw.])
5379         ],
5380         [AC_CHECK_LIB( ncurses, mvprintw,
5381           [VLC_ADD_PLUGINS([ncurses])
5382           ALIASES="${ALIASES} nvlc"
5383           VLC_ADD_LIBS([ncurses],[-lncurses])],
5384           [AS_IF([test "x${enable_ncurses}" != "x"], [
5385             AC_MSG_ERROR([libncurses not found])])]
5386         )]
5387       )]
5388     )
5389   fi]
5390 )
5391
5392 dnl
5393 dnl  XOSD plugin
5394 dnl
5395 AC_ARG_ENABLE(xosd,
5396   [  --enable-xosd           xosd interface support (default disabled)])
5397 if test "${enable_xosd}" = "yes"
5398 then
5399   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5400   AC_CHECK_LIB(xosd,xosd_set_offset,
5401       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5402     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5403         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5404       AC_TRY_COMPILE([#include <xosd.h>],
5405          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5406           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5407   if test "${have_xosd}" = "true"
5408   then
5409     VLC_ADD_PLUGINS([xosd])
5410     VLC_ADD_LIBS([xosd],[-lxosd])
5411   fi
5412 fi
5413
5414 dnl
5415 dnl Framebuffer (overlay) plugin
5416 dnl
5417 AC_ARG_ENABLE(fbosd,
5418   [  --enable-fbosd          fbosd interface support (default disabled)])
5419 if test "${enable_fbosd}" = "yes"
5420 then
5421   AC_CHECK_HEADERS(linux/fb.h, [
5422     VLC_ADD_PLUGINS([fbosd])
5423  ])
5424 fi
5425
5426 dnl
5427 dnl Visualisation plugin
5428 dnl
5429 AC_ARG_ENABLE(visual,
5430   [  --enable-visual         visualisation plugin (default enabled)])
5431 if test "${enable_visual}" != "no"
5432 then
5433     VLC_ADD_PLUGINS([visual])
5434 fi
5435
5436 dnl
5437 dnl OpenGL visualisation plugin
5438 dnl
5439 AC_ARG_ENABLE(galaktos,
5440   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5441 if test "${enable_galaktos}" = "yes"
5442 then
5443   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5444     VLC_ADD_PLUGINS([galaktos])
5445     if test "${SYS}" != "mingw32"; then
5446       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5447     else
5448       VLC_ADD_LIBS([galaktos],[-lopengl32])
5449     fi
5450   ])
5451 fi
5452
5453 dnl
5454 dnl  goom visualization plugin
5455 dnl
5456 AC_ARG_ENABLE(goom,
5457 [  --enable-goom           goom visualisation plugin (default disabled)])
5458 if test "${enable_goom}" = "yes"
5459 then
5460   AC_ARG_WITH(goom-tree,
5461     [    --with-goom-tree=PATH goom tree for static linking (required)])
5462
5463   dnl
5464   dnl test for --with-goom-tree
5465   dnl
5466   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5467     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5468     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5469     if test -z "${real_goom_tree}"; then
5470       dnl  The given directory can't be found
5471       AC_MSG_RESULT(no)
5472       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5473     fi
5474     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5475       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5476       VLC_ADD_BUILTINS([goom])
5477       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5478       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5479     else
5480       dnl  The given libgoom2 wasn't built, try to look for the old goom
5481       AC_MSG_RESULT(no)
5482       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5483       if test -f "${real_goom_tree}/libgoom.a"; then
5484         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5485         VLC_ADD_BUILTINS([goom])
5486         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5487         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5488       else
5489         dnl  The given libgoom wasn't built
5490         AC_MSG_RESULT(no)
5491         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5492       fi
5493     fi
5494   else
5495     AC_CHECK_HEADERS(goom/goom.h, [
5496       LDFLAGS="${LDFLAGS_save} ${LIBS_goom}"
5497       AC_CHECK_LIB(goom2, goom_init, [
5498         VLC_ADD_PLUGINS([goom])
5499         VLC_ADD_LIBS([goom],[-lgoom2])
5500       ],[
5501         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5502       ])
5503       LDFLAGS="${LDFLAGS_save}"
5504     ])
5505   fi
5506 fi
5507
5508 dnl
5509 dnl  AtmoLight (homebrew AmbiLight)
5510 dnl
5511 if test "${SYS}" = "mingw32" -o "${SYS}" = "linux"; then
5512    AC_ARG_ENABLE(atmo,
5513 [  --disable-atmo       AtmoLight (homebrew philips ambilight) (default enabled)])
5514    if test "${enable_atmo}" != "no"; then
5515       AC_LANG_PUSH(C++)
5516       VLC_ADD_PLUGINS([atmo])
5517       AC_LANG_POP(C++)
5518    fi
5519 fi
5520
5521 dnl
5522 dnl  Bonjour services discovery
5523 dnl
5524 AC_ARG_ENABLE(bonjour,
5525   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5526 if test "${enable_bonjour}" != "no"
5527 then
5528   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5529     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5530        [AC_DEFINE(HAVE_AVAHI_06, 1, [Define if you have avahi-client 0.6 or greater])],)
5531       AC_DEFINE(HAVE_AVAHI_CLIENT, 1, [Define if you have the avahi-client library])
5532       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5533       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5534       VLC_ADD_PLUGINS([bonjour]) ],
5535     [AC_MSG_WARN(avahi-client library not found)])
5536 fi
5537
5538 dnl
5539 dnl  Lirc plugin
5540 dnl
5541 AC_ARG_ENABLE(lirc,
5542   [  --enable-lirc           lirc support (default disabled)])
5543 if test "${enable_lirc}" = "yes"
5544 then
5545   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5546   if test "${have_lirc}" = "true"
5547   then
5548     VLC_ADD_PLUGINS([lirc])
5549     VLC_ADD_LIBS([lirc],[-llirc_client])
5550   fi
5551 fi
5552
5553
5554 AC_ARG_WITH(,[Misc options:])
5555
5556 dnl
5557 dnl libgcrypt
5558 dnl
5559 AC_ARG_ENABLE(libgcrypt,
5560   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5561
5562 GCRYPT_PATH="${PATH}"
5563 AC_ARG_WITH(libgcrypt-config-path,
5564 [    --with-libgcrypt-config-path=PATH libgcrypt-config path (default search in \$PATH)],
5565    [ if test "${with_libgcrypt_config_path}" != "no"
5566      then
5567        GCRYPT_PATH="${with_libgcrypt_config_path}:${PATH}"
5568      fi ])
5569
5570 if test "${enable_libgcrypt}" != "no"
5571 then
5572   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5573   dnl it and looks for libgcrypt headers in the wrong place.
5574   if test "${host_cpu}" = "${build_cpu}"
5575   then
5576     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5577   else
5578     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5579   fi
5580 fi
5581 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5582 AS_IF([test "${have_libgcrypt}" = "yes"],[
5583         # look for libgcrypt-config
5584         AC_PATH_PROG(GCRYPT_CONFIG, "libgcrypt-config", no, ${GCRYPT_PATH})
5585         GCRYPT_CFLAGS=`${GCRYPT_CONFIG} --cflags`
5586         GCRYPT_LIBS=`${GCRYPT_CONFIG} --libs`
5587 ])
5588
5589 dnl
5590 dnl TLS/SSL
5591 dnl
5592 AC_ARG_ENABLE(gnutls,
5593   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5594
5595 AS_IF([test "${enable_gnutls}" != "no"], [
5596   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [
5597     VLC_ADD_PLUGINS([gnutls])
5598     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5599     AS_IF([test "${SYS}" = "mingw32"], [
5600       dnl pkg-config --libs gnutls omits these
5601       VLC_ADD_LIBS([gnutls], [-lz])
5602       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5603     ])
5604     AS_IF([test "${have_libgcrypt}" = "yes"],[
5605       VLC_ADD_LIBS([gnutls], ${GCRYPT_LIBS})
5606       VLC_ADD_CFLAGS([gnutls], ${GCRYPT_CFLAGS})
5607     ], [-lgpg-error])
5608     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5609   ], [
5610     AS_IF([test "${enable_gnutls}" = "yes"], [
5611       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5612     ])
5613   ])
5614 ])
5615
5616 dnl
5617 dnl update checking system
5618 dnl
5619 AC_ARG_ENABLE(update-check,
5620   [  --enable-update-check   update checking system (default disabled)])
5621 if test "${enable_update_check}" = "yes"
5622 then
5623   if test "${have_libgcrypt}" != "yes"
5624   then
5625     AC_MSG_ERROR([libgcrypt is required for update checking system])
5626   fi
5627   VLC_ADD_LIBS([libvlc], ${GCRYPT_LIBS})
5628   VLC_ADD_CFLAGS([libvlc], ${GCRYPT_CFLAGS})
5629   AC_DEFINE([UPDATE_CHECK], 1, [Define if you want to use the VLC update mechanism])
5630 fi
5631
5632 dnl
5633 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5634 dnl
5635 dnl  We give the user the opportunity to specify
5636 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5637 dnl
5638 AC_ARG_WITH(words,
5639   [    --with-words=endianness set endianness (big or little)])
5640   case "${with_words}" in
5641     big)
5642       ac_cv_c_bigendian=yes
5643       ;;
5644     little)
5645       ac_cv_c_bigendian=no
5646       ;;
5647     *)
5648       dnl  Try to guess endianness by matching patterns on a compiled
5649       dnl  binary, by looking for an ASCII or EBCDIC string
5650       AC_CACHE_CHECK([whether the byte order is big-endian],
5651         [ac_cv_c_bigendian],
5652         [ac_cv_c_bigendian="unknown"
5653         [cat >conftest.c <<EOF
5654         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5655         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5656         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5657         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5658         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5659         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5660         int main(void) { _a(); _e(); return 0; }
5661 EOF
5662         ]
5663         if test -f conftest.c
5664         then
5665           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5666               && test -f conftest.o
5667           then
5668             if test "`strings conftest.o | grep BIGenDianSyS`"
5669             then
5670               ac_cv_c_bigendian="yes"
5671             fi
5672             if test "`strings conftest.o | grep LiTTleEnDian`"
5673             then
5674               ac_cv_c_bigendian="no"
5675             fi
5676           fi
5677         fi
5678       ])
5679       if test "${ac_cv_c_bigendian}" = "unknown"
5680       then
5681         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5682       fi
5683       ;;
5684   esac
5685 dnl  Now we know what to use for endianness, just put it in the header
5686 if test "${ac_cv_c_bigendian}" = "yes"
5687 then
5688   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5689 fi
5690
5691 dnl
5692 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5693 dnl
5694 loader=false
5695 AC_ARG_ENABLE(loader,
5696   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5697 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5698 AS_IF([test "${enable_loader}" = "yes"],
5699   [ VLC_ADD_PLUGINS([dmo])
5700     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5701     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5702     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5703     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5704     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5705     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la])
5706   ])
5707
5708 dnl
5709 dnl  Microsoft ActiveX support
5710 dnl
5711 activex=false
5712 AC_ARG_ENABLE(activex,
5713   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5714 AC_ARG_WITH(wine-sdk-path,
5715   [    --with-wine-sdk-path=PATH path to wine sdk])
5716 if test "${enable_activex}" != "no"
5717 then
5718   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5719   then
5720     AC_CHECK_PROGS(MIDL, [midl], no)
5721     if test "${with_wine_sdk_path}" != ""
5722     then
5723        WINE_SDK_PATH=${with_wine_sdk_path}
5724        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5725     else
5726        WIDL=no
5727     fi
5728     AC_LANG_PUSH(C++)
5729     AC_CHECK_HEADERS(ole2.h, 
5730       [AC_CHECK_HEADERS(olectl.h,
5731         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5732           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5733           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5734           AC_CHECK_HEADERS(objsafe.h,
5735             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5736             [
5737              #if HAVE_OLE2_H
5738              #   include <ole2.h>
5739              #endif
5740              ]
5741           )
5742           activex=:
5743           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5744         ],
5745         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5746       )],
5747       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5748     )
5749     AC_LANG_POP(C++)
5750   fi
5751 fi
5752 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5753 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5754 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5755 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5756 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5757
5758 dnl
5759 dnl  Mozilla plugin
5760 dnl
5761 mozilla=false
5762 AC_ARG_ENABLE(mozilla,
5763   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5764 AC_ARG_WITH(mozilla-sdk-path,
5765   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5766 AC_LANG_PUSH(C++)
5767 if test "${enable_mozilla}" = "yes" 
5768 then
5769   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5770   need_xpcom_libs=false
5771
5772   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5773   then
5774     dnl New firefox-1.5 SDK api
5775     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5776       [
5777         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5778           [],
5779           [
5780             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5781               [],
5782               [
5783                 PKG_CHECK_MODULES([NSPR], [nspr],
5784                   [],
5785                   [
5786                     AC_MSG_ERROR([Please install the nspr development tools.])
5787                   ]
5788                 )
5789               ]
5790             )
5791           ])
5792         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5793         MOZILLA_REQUIRED_HEADERS=1
5794         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5795         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5796         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5797           [#if HAVE_NPAPI_H
5798            # include <npapi.h>
5799            #endif
5800           ])
5801         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5802             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5803         fi
5804         MOZILLA_REQUIRED_HEADERS=
5805         mozilla=:
5806         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5807         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5808             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5809         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5810             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5811         else
5812             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5813         fi
5814         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5815             AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5816             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt -lXpm])
5817         fi
5818         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5819         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5820         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5821         VLC_ADD_PLUGINS([mozilla])
5822         MOZILLA_CONFIG=
5823         CPPFLAGS="${CPPFLAGS_save}"
5824       ],
5825       [
5826         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5827         if test "${MOZILLA_CONFIG}" = "no"
5828         then
5829           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5830           if test "${SEAMONKEY_CONFIG}" = "no"
5831           then
5832             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5833             if test "${XULRUNNER_CONFIG}" = "no"
5834             then
5835               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5836             else
5837               have_xul=true
5838               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5839             fi
5840           else
5841             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5842           fi
5843         fi
5844       ]
5845     )
5846     if test ! -z "${MOZILLA_CONFIG}"
5847     then
5848       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5849         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5850         AC_CHECK_LIB(Xt,XtStrings,
5851          [
5852            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5853            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE -lXpm])
5854          ],
5855          [],
5856          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE -lXpm]
5857         ])
5858         AC_CHECK_HEADERS(X11/xpm.h,,AC_MSG_ERROR([Please install libXpm-devel library for required X11/xpm.h]))
5859         LDFLAGS="${LDFLAGS_save}"
5860       fi
5861
5862       mozilla=:
5863       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5864       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5865       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5866       if ${need_xpcom_libs}; then
5867          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5868       else
5869          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5870       fi
5871       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5872       MOZILLA_REQUIRED_HEADERS=1
5873       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5874       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5875       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5876         [#if HAVE_NPAPI_H
5877          # include <npapi.h>
5878          #endif
5879         ])
5880       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5881       then
5882         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5883       fi
5884       MOZILLA_REQUIRED_HEADERS=
5885       CPPFLAGS="${CPPFLAGS_save}"
5886       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5887     fi
5888     dnl End of moz_sdk = ""
5889   else
5890     dnl special case for mingw32
5891     if test "${SYS}" = "mingw32"
5892     then
5893       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5894       dnl latest gecko sdk does not have an xpcom directory
5895       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5896           mozilla_sdk_xpcom="/xpcom"
5897       fi
5898     fi
5899
5900     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5901     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5902     MOZILLA_REQUIRED_HEADERS=1
5903     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5904     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5905     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5906         [#if HAVE_NPAPI_H
5907           #include <npapi.h>
5908           #endif
5909         ])
5910     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5911     then
5912         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5913     fi
5914     MOZILLA_REQUIRED_HEADERS=
5915     mozilla=:
5916     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5917     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])
5918     if ${need_xpcom_libs}; then
5919        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])
5920       if test "${SYS}" = "mingw32"; then
5921         dnl latest gecko sdk does not have embedstring
5922         if test -d "${real_mozilla_sdk}/embedstring/bin"
5923         then
5924           VLC_ADD_LIBS([mozilla],[-lembedstring])
5925         fi
5926       fi
5927     fi
5928     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5929
5930     if test -n "${CYGPATH}"; then
5931       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5932     fi
5933     CPPFLAGS="${CPPFLAGS_save}"
5934   fi
5935 fi
5936 AC_LANG_POP(C++)
5937 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5938
5939 dnl Tests for Osso and Xsp
5940 if test "${enable_x11}" != "no" &&
5941   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5942    test "${enable_x11}" = "yes"); then
5943    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5944       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5945           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5946           VLC_ADD_LIBS([x11],[-losso])
5947       ])
5948    ])
5949    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5950       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5951       VLC_ADD_LIBS([x11],[-lXsp])
5952    ])
5953 fi
5954
5955 dnl
5956 dnl  Mediacontrol Python bindings
5957 dnl
5958 AC_ARG_ENABLE(python-bindings,
5959   [  --enable-python-bindings Enable Python bindings (default disabled)])
5960 dnl TODO: look for python dev headers
5961 AS_IF([test "${enable_python_bindings}" = "yes"],
5962       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5963      ) 
5964
5965 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5966
5967 dnl
5968 dnl  Java bindings
5969 dnl
5970 AC_ARG_ENABLE(java-bindings,
5971   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5972 if test "${enable_java_bindings}" = "yes"
5973 then
5974   AS_IF([test "x${JAVA_HOME}" == "x"],
5975         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5976   AC_PROG_JAVAC
5977   AC_PROG_JAVA
5978   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5979   if test "${JAVAC}" == "javac${EXEEXT}"
5980   then
5981     JAVAC="javac${EXEEXT} -cp ./ "
5982   fi
5983 fi
5984 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5985
5986 dnl
5987 dnl  test plugins
5988 dnl
5989 AC_ARG_ENABLE(testsuite,
5990   [  --enable-testsuite      build test modules (default disabled)])
5991 if test "${enable_testsuite}" = "yes"
5992 then
5993   TESTS="test1 test2 test3 test4"
5994
5995   dnl  we define those so that bootstrap sets the right linker
5996   VLC_ADD_CXXFLAGS([test2],[])
5997   VLC_ADD_OBJCFLAGS([test3],[])
5998   dnl  this one is needed until automake knows what to do
5999   VLC_ADD_LIBS([test3],[-lobjc])
6000
6001   VLC_ADD_PLUGINS([${TESTS}])
6002 fi
6003
6004 dnl
6005 dnl Microsoft Layer for Unicode for WIN9x/ME
6006 dnl
6007 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
6008 then
6009     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
6010         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
6011     ])
6012 fi
6013
6014 dnl
6015 dnl  gtk_main plugin
6016 dnl
6017 if test "${NEED_GTK_MAIN}" != "no"
6018 then
6019     VLC_ADD_PLUGINS([gtk_main])
6020     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
6021     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
6022 fi
6023
6024 if test "${NEED_GNOME_MAIN}" != "no"
6025 then
6026     VLC_ADD_PLUGINS([gnome_main])
6027     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
6028     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
6029 fi
6030
6031 if test "${NEED_GTK2_MAIN}" != "no"
6032 then
6033     VLC_ADD_PLUGINS([gtk2_main])
6034     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
6035     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
6036     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
6037     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
6038 fi
6039
6040 if test "${NEED_GNOME2_MAIN}" != "no"
6041 then
6042     VLC_ADD_PLUGINS([gnome2_main])
6043     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
6044     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
6045 fi
6046
6047 dnl
6048 dnl  qte_main plugin
6049 dnl
6050 if test "${NEED_QTE_MAIN}" != "no"
6051 then
6052     VLC_ADD_PLUGINS([qte_main])
6053     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
6054     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
6055     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
6056 fi
6057
6058
6059 dnl
6060 dnl  Plugin and builtin checks
6061 dnl
6062 plugin_support=yes
6063
6064 dnl Automagically disable plugins if there is no system support for
6065 dnl dynamically loadable files (.so, .dll, .dylib).
6066 dnl don't forget vlc-win32 still can load .dll as plugins
6067 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
6068   AC_MSG_WARN([*** No plugin support! Building statically! ***])
6069   plugin_support=no
6070 ])
6071
6072 AS_IF([test "${enable_shared}" = "no"], [
6073   plugin_support=no
6074 ])
6075
6076 AS_IF([test "${plugin_support}" != "no"], [
6077   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
6078 ])
6079
6080 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
6081
6082 dnl Temporary(?) hack for plugins/builtins transition
6083 VLC_ADD_PLUGINS([${BUILTINS}])
6084 BUILTINS=""
6085
6086 dnl
6087 dnl Pic and shared libvlc stuff
6088 dnl
6089 AS_IF([test "${SYS}" = "mingw32"], [
6090   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
6091   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6092 ])
6093
6094 dnl
6095 dnl  Stuff used by the program
6096 dnl
6097 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6098 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) ${COPYRIGHT_YEARS} the VideoLAN team", [Copyright string])
6099 AC_DEFINE_UNQUOTED(COPYRIGHT_YEARS, "${COPYRIGHT_YEARS}", [The copyright years])
6100 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6101 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6102 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6103 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6104 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6105 AC_SUBST(VERSION_MAJOR)
6106 AC_SUBST(VERSION_MINOR)
6107 AC_SUBST(VERSION_REVISION)
6108 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6109 if test "${build_os}" = "cygwin"
6110 then
6111     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])
6112 else
6113     AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -s`", [host which ran configure])
6114 fi
6115 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6116 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6117
6118 dnl
6119 dnl  Handle substvars that use $(top_srcdir)
6120 dnl
6121 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6122 AC_SUBST(VLC_CONFIG)
6123 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include -I\$(top_builddir)/include"
6124
6125 dnl
6126 dnl  Restore *FLAGS
6127 dnl
6128 VLC_RESTORE_FLAGS
6129
6130 dnl
6131 dnl  Create the vlc-config script
6132 dnl
6133 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6134
6135 dnl
6136 dnl  Configuration is finished
6137 dnl
6138 AC_SUBST(SYS)
6139 AC_SUBST(ARCH)
6140 AC_SUBST(ALIASES)
6141 AC_SUBST(ASM)
6142 AC_SUBST(MOC)
6143 AC_SUBST(RCC)
6144 AC_SUBST(UIC)
6145 AC_SUBST(WINDRES)
6146 AC_SUBST(MOZILLA_SDK_PATH)
6147 AC_SUBST(WINE_SDK_PATH)
6148 AC_SUBST(LIBEXT)
6149 AC_SUBST(AM_CPPFLAGS)
6150 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6151 AC_SUBST(FILE_LIBVLC_DLL)
6152 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6153
6154 dnl Create vlc-config.in
6155 VLC_OUTPUT_VLC_CONFIG_IN
6156
6157 AC_CONFIG_FILES([
6158   extras/package/win32/vlc.win32.nsi
6159   Makefile
6160   projects/activex/Makefile
6161   projects/activex/axvlc.inf
6162   bindings/Makefile
6163   bindings/java/Makefile
6164   bindings/java/src/Makefile
6165   bindings/python/Makefile
6166   doc/Makefile
6167   extras/package/ipkg/Makefile
6168   libs/loader/Makefile
6169   libs/srtp/Makefile
6170   modules/Makefile
6171   projects/mozilla/Makefile
6172   m4/Makefile
6173   po/Makefile.in
6174   share/Makefile
6175   src/Makefile
6176 ])
6177
6178 AC_CONFIG_FILES([
6179   modules/access/Makefile
6180   modules/access/bda/Makefile
6181   modules/access/dshow/Makefile
6182   modules/access/dvb/Makefile
6183   modules/access/mms/Makefile
6184   modules/access/cdda/Makefile
6185   modules/access/rtsp/Makefile
6186   modules/access/v4l2/Makefile
6187   modules/access/vcd/Makefile
6188   modules/access/vcdx/Makefile
6189   modules/access/screen/Makefile
6190   modules/access_filter/Makefile
6191   modules/access_output/Makefile
6192   modules/audio_filter/Makefile
6193   modules/audio_filter/channel_mixer/Makefile
6194   modules/audio_filter/converter/Makefile
6195   modules/audio_filter/resampler/Makefile
6196   modules/audio_filter/spatializer/Makefile
6197   modules/audio_mixer/Makefile
6198   modules/audio_output/Makefile
6199   modules/codec/Makefile
6200   modules/codec/cmml/Makefile
6201   modules/codec/dmo/Makefile
6202   modules/codec/ffmpeg/Makefile
6203   modules/codec/subtitles/Makefile
6204   modules/codec/spudec/Makefile
6205   modules/codec/xvmc/Makefile
6206   modules/control/Makefile
6207   modules/control/http/Makefile
6208   modules/demux/Makefile
6209   modules/demux/asf/Makefile
6210   modules/demux/avi/Makefile
6211   modules/demux/mp4/Makefile
6212   modules/demux/mpeg/Makefile
6213   modules/demux/playlist/Makefile
6214   modules/gui/Makefile
6215   modules/gui/beos/Makefile
6216   modules/gui/pda/Makefile
6217   modules/gui/macosx/Makefile
6218   modules/gui/minimal_macosx/Makefile
6219   modules/gui/qnx/Makefile
6220   modules/gui/qt4/Makefile
6221   modules/gui/skins2/Makefile
6222   modules/gui/wxwidgets/Makefile
6223   modules/gui/wince/Makefile
6224   modules/meta_engine/Makefile
6225   modules/misc/Makefile
6226   modules/misc/dummy/Makefile
6227   modules/misc/lua/Makefile
6228   modules/misc/memcpy/Makefile
6229   modules/misc/notify/Makefile
6230   modules/misc/testsuite/Makefile
6231   modules/misc/playlist/Makefile
6232   modules/misc/osd/Makefile
6233   modules/misc/xml/Makefile
6234   modules/misc/probe/Makefile
6235   modules/mux/Makefile
6236   modules/mux/mpeg/Makefile
6237   modules/mux/rtp/Makefile
6238   modules/packetizer/Makefile
6239   modules/services_discovery/Makefile
6240   modules/stream_out/Makefile
6241   modules/stream_out/transrate/Makefile
6242   modules/video_chroma/Makefile
6243   modules/video_filter/Makefile
6244   modules/video_filter/atmo/Makefile
6245   modules/video_output/Makefile
6246   modules/video_output/msw/Makefile
6247   modules/video_output/qte/Makefile
6248   modules/video_output/x11/Makefile
6249   modules/visualization/Makefile
6250   modules/visualization/visual/Makefile
6251   modules/visualization/galaktos/Makefile
6252 ])
6253
6254 dnl Generate makefiles
6255 AC_OUTPUT
6256
6257 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6258 # not provided with the source
6259 ${SHELL} ./config.status --file=vlc-config
6260 chmod 0755 vlc-config
6261
6262 dnl echo "Enabled builtin modules :"
6263 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6264
6265 dnl echo "Enabled plugin modules :"
6266 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6267
6268 dnl Shortcut to nice compile message
6269 rm -f compile
6270 echo '#! /bin/sh' >compile
6271
6272 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6273 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/buildsystem/make.pl' >> compile
6274 chmod a+x compile
6275
6276 printf "
6277 vlc configuration
6278 --------------------
6279 vlc version           : ${VERSION}
6280 system                : ${SYS}
6281 architecture          : ${ARCH}
6282 build flavour         : "
6283 test "${enable_debug}" = "yes" && printf "debug "
6284 test "${enable_cprof}" = "yes" && printf "cprof "
6285 test "${enable_gprof}" = "yes" && printf "gprof "
6286 test "${enable_optimizations}" = "yes" && printf "optim "
6287 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6288 echo "
6289 vlc aliases           :${ALIASES}
6290 plugins/bindings      :${PLUGINS_BINDINGS}
6291
6292 You can check which modules have been enabled 
6293 with \`./vlc-config --list plugin'.
6294 You can tune the compiler flags in vlc-config.
6295 To build vlc and its plugins, type \`./compile' or \`make'.
6296 "
6297 if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
6298    echo ""
6299    echo "Warning: Due to a bug in ld, mmx/sse support has been"
6300    echo "         turned off."
6301    echo "         FFmpeg will be REALLY slow."
6302    echo "         VLC WILL NOT PERFORM AS EXPECTED."
6303    echo ""
6304 fi