911eaf02a8e252ddd827125772f4b34fef417219
[vlc.git] / 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
12 AC_PREREQ(2.59) dnl this really should be 2.59c
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
17
18 AM_INIT_AUTOMAKE([1.9 check-news dist-bzip2 no-dist-gzip -Wall])
19 AM_CONFIG_HEADER(config.h)
20
21 dnl Too many people are not aware of maintainer mode:
22 dnl If you want to use it, you definitely know what you are doing, so
23 dnl you can specify "--disable-maintainer-mode". But if you want the default
24 dnl automake behavior, you've likely never heard of maintainer mode, so we
25 dnl can't expect you to enable it manually.
26
27 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
28         [enable_maintainer_mode="yes"])
29 AM_MAINTAINER_MODE
30
31 dnl
32 dnl  Save *FLAGS
33 dnl
34 VLC_SAVE_FLAGS
35
36 dnl
37 dnl Check for tools
38 dnl
39 AC_PROG_CC_C99
40 AC_USE_SYSTEM_EXTENSIONS
41 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
42 AM_PROG_CC_C_O
43 AC_PROG_CXX
44 AC_PROG_CPP
45 AC_PROG_OBJC
46 _AM_DEPENDENCIES([OBJC])
47 AC_PROG_EGREP
48 AC_PROG_MAKE_SET
49 AC_PROG_INSTALL
50 AM_PROG_AS
51
52 dnl Find the right ranlib, even when cross-compiling
53 AC_CHECK_TOOL(RANLIB, ranlib, :)
54 AC_CHECK_TOOL(STRIP, strip, :)
55 AC_CHECK_TOOL(AR, ar, :)
56 AC_CHECK_TOOL(LD, ld, :)
57 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
58
59 dnl Check for compiler properties
60 AC_C_CONST
61 AC_C_INLINE
62 AC_C_RESTRICT
63
64 dnl
65 dnl  Check for the contrib directory
66 dnl
67 AC_ARG_WITH(contrib,
68     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
69   if test "${with_contrib}" != "no"; then 
70     AC_MSG_CHECKING([for libs in extras/contrib])
71     topdir="`dirname $0`"
72     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
73        topdir="`pwd`/$topdir"
74     fi
75    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
76       if test "${with_contrib}" = "yes"; then
77         AC_MSG_RESULT([no])
78         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
79       else
80         AC_MSG_RESULT([no])
81         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
82       fi
83      else
84   if test -d ${topdir}/extras/contrib/lib; then
85     AC_MSG_RESULT([yes])
86     export PATH=${topdir}/extras/contrib/bin:$PATH
87     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
88     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
89     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
90     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
91     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
92     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
93     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
95     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
96         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
97     else
98         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
99     fi
100     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
101     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
102
103 dnl kludge because only the debian package provides a ffmpeg-config
104     if test -z $with_ffmpeg_config_path; then 
105        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
106     fi
107     if test -z $with_live555_tree; then
108        with_live555_tree=${topdir}/extras/contrib/src/live
109     fi
110     if test -z $with_goom_tree; then
111       with_goom_tree=${topdir}/extras/contrib/src/goom
112     fi
113     if test -z $with_mozilla_sdk_path; then
114        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
115     fi
116     if test -z $with_cyberlink_tree; then
117        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
118     fi
119     if test -z $with_libmpeg2_tree; then
120         with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
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_LDFLAGS([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     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
173     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_CFLAGS([libvlc vlc],[-x objective-c])
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         enable_faad="yes"
188         echo "  Assuming --enable-faad"
189         enable_flac="yes"
190         echo "  Assuming --enable-flac"
191         enable_theora="yes"
192         echo "  Assuming --enable-theora"
193         enable_shout="yes"
194         echo "  Assuming --enable-shout"
195         enable_cddax="yes"
196         echo "  Assuming --enable-cddax"
197         enable_vcdx="yes"
198         echo "  Assuming --enable-vcdx"
199         enable_caca="yes"
200         echo "  Assuming --enable-caca"
201         enable_goom="yes"
202         echo "  Assuming --enable-goom"
203         enable_ncurses="yes"
204         echo "  Assuming --enable-ncurses"
205         enable_twolame="yes"
206         echo "  Assuming --enable-twolame"
207         enable_realrtsp="yes"
208         echo "  Assuming --enable-realrtsp"
209
210         enable_skins2="no"
211         echo "  Assuming --disable-skins2"
212         enable_x11="no"
213         echo "  Assuming --disable-x11"
214         enable_glx="no"
215         echo "  Assuming --disable-glx"
216         enable_xvideo="no"
217         echo "  Assuming --disable-xvideo"
218
219     fi
220     ;;
221   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
222     AC_CHECK_TOOL(WINDRES, windres, :)
223
224     case "${host_os}" in
225       *mingw32*)
226         SYS=mingw32
227         ;;
228       *cygwin*)
229         dnl Check if we are using the mno-cygwin mode in which case we are
230         dnl actually dealing with a mingw32 compiler.
231         AC_EGREP_CPP(yes,
232             [#ifdef WIN32
233              yes
234              #endif],
235             SYS=mingw32, SYS=cygwin)
236         ;;
237       *wince* | *mingwce* | *pe*)
238         SYS=mingwce
239         ;;
240     esac
241
242     if test "${SYS}" = "mingw32"; then
243         # add ws2_32 for closesocket, select, recv
244         VLC_ADD_LDFLAGS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
245         VLC_ADD_LDFLAGS([vlc],[-mwindows])
246         VLC_ADD_LDFLAGS([activex mozilla],[-lgdi32])
247         VLC_ADD_LDFLAGS([cdda vcdx cddax sdl_image],[-lwinmm])
248         VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl flac ts audioscrobbler],[-lws2_32])
249     fi
250     if test "${SYS}" = "mingwce"; then
251         # add ws2 for closesocket, select, recv
252         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
253         VLC_ADD_LDFLAGS([libvlc vlc],[-lws2 -e WinMainCRTStartup])
254         VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
255    fi
256     ;;
257   *nto*)
258     SYS=nto
259     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
260     ;;
261   solaris*)
262     SYS=solaris
263     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
264     # Perhaps it is useful other places as well? 
265     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
266     ;;
267   hpux*)
268     SYS=hpux
269     ;;
270   beos)
271     SYS=beos
272     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
273     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
274     VLC_ADD_CXXFLAGS([beos],[])
275     VLC_ADD_LDFLAGS([vlc libvlc logger],[-lbe])
276     VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
277     VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl])
278     VLC_ADD_LDFLAGS([access_file],[-lpoll])
279     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
280     dnl Check for BONE
281     if test -f /boot/beos/system/lib/libbind.so; then
282         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lbind -lsocket])
283     else
284         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl],[-lnet])
285     fi
286
287     dnl Ugly check for Zeta
288     if test -f /boot/beos/system/lib/libzeta.so; then
289         VLC_ADD_LDFLAGS([beos],[-lzeta])
290     fi
291     ;;
292   *)
293     SYS="${host_os}"
294     ;;
295 esac
296 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
297 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
298 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
299 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
300
301 dnl
302 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test 
303 dnl for program foo on win32
304
305 case "${build_os}" in
306     cygwin|msys)
307         ac_executable_extensions=".exe"
308         ;;
309     *)
310         ;;
311 esac
312
313 dnl 
314 dnl  Libtool
315 dnl  It's very bad, but our former custom system was worst
316 dnl  -- Courmisch
317 dnl
318
319 dnl override platform specific check for dependent libraries
320 dnl otherwise libtool linking of shared libraries will
321 dnl fail on anything other than pass_all.
322 AC_CACHE_VAL(lt_cv_deplibs_check_method,
323     [lt_cv_deplibs_check_method=pass_all])
324
325 AC_DISABLE_STATIC
326 AC_LIBTOOL_DLOPEN
327 AC_LIBTOOL_WIN32_DLL
328 m4_undefine([AC_PROG_F77])
329 m4_defun([AC_PROG_F77],[])
330 AC_PROG_LIBTOOL
331
332 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
333 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
334
335 lt_cv_deplibs_check_method=pass_all
336
337
338 dnl
339 dnl  Check for Mac OS X SDK settings
340 dnl
341 AC_ARG_WITH(macosx-sdk,
342    [  --with-macosx-sdk       compile with the Mac OS X 10.4u SDK],[], with_macosx_sdk=no)
343 if test "${with_macosx_sdk}" != "no" ; then
344     CC="${CC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
345     CXX="${CXX} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
346     OBJC="${OBJC} -isysroot /Developer/SDKs/MacOSX10.4u.sdk" 
347     LD="${LD} -syslibroot /Developer/SDKs/MacOSX10.4u.sdk"
348     CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CFLAGS="${CFLAGS_save}"
349     CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; CXXFLAGS="${CXXFLAGS_save}"
350     OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.4 -mmacosx-version-min=10.4"; OBJCFLAGS="${OBJCFLAGS_save}"
351     MACOSX_DEPLOYMENT_TARGET="10.4"
352     export MACOSX_DEPLOYMENT_TARGET
353 fi
354
355 dnl
356 dnl Gettext stuff
357 dnl
358 ALL_LINGUAS="af ar bn ca co cs da de el en_GB es eu fa fr fur gl he hi hu it ja ka ko lt lv ms my ne nl no oc pa pl ps pt_BR pt_PT ro ru sk sl sq sv tet th tl tr zh_CN zh_TW"
359 AM_GNU_GETTEXT_VERSION(0.16.1)
360 AM_GNU_GETTEXT
361 AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
362   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
363   AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
364 ], [
365   VLC_ADD_LDFLAGS([libvlc vlc], [${LTLIBINTL}])
366 ])
367
368 dnl
369 dnl Iconv stuff
370 dnl
371 AS_IF([test "$am_cv_func_iconv" != "yes"],
372         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
373 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
374 VLC_ADD_LDFLAGS([libvlc],[${LTLIBICONV}])
375
376 dnl Check for the need to include the mingwex lib for mingw32
377 if test "${SYS}" = "mingw32"
378 then
379     AC_CHECK_LIB(mingwex,opendir,
380         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([libvlc],[]),
381             [VLC_ADD_LDFLAGS([libvlc gtk],[-lmingwex])])
382     )
383 fi
384
385 dnl Check for fnative-struct or mms-bitfields support for mingw32
386 if test "${SYS}" = "mingw32"
387 then
388     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
389         [ac_cv_c_mms_bitfields],
390         [CFLAGS="${CFLAGS_save} -mms-bitfields"
391          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
392     if test "${ac_cv_c_mms_bitfields}" != "no"; then
393         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
394         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
395     else
396         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
397             [ac_cv_c_fnative_struct],
398             [CFLAGS="${CFLAGS_save} -fnative-struct"
399              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
400         if test "${ac_cv_c_fnative_struct}" != "no"; then
401             CFLAGS_save="${CFLAGS_save} -fnative-struct";
402             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
403         fi
404     fi
405
406     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
407 fi
408
409 dnl Check for fvtable-thunks support for mingw32
410 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
411 then
412 AC_LANG_PUSH(C++)
413     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
414         [ac_cv_cxx_fvtable_thunks],
415         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
416          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
417                         ac_cv_cxx_fvtable_thunks=no)])
418     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
419         CXXFLAGS_mingw32_special="-fvtable-thunks"
420     fi
421
422     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
423 AC_LANG_POP(C++)
424 fi
425
426 dnl Plugin compilation stuff
427
428 VLC_LIBRARY_SUFFIX
429
430 VLC_SYMBOL_PREFIX
431 AC_SUBST(SYMPREF)
432
433 dnl The -DSYS_FOO flag
434 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
435
436 dnl Check for system libs needed
437 need_libc=false
438
439 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)
440
441 dnl Check for usual libc functions
442 AC_CHECK_FUNCS(strdup strndup strnlen atof)
443 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
444 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
445 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
446
447 AS_IF([test "${SYS}" = "linux"], [
448   AC_CHECK_FUNCS(tee)
449 ])
450
451 dnl Check for setlocal and langinfo
452 AC_CHECK_FUNCS(setlocale)
453 AC_CHECK_HEADERS(langinfo.h)
454 AC_CHECK_FUNCS(nl_langinfo)
455
456 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
457   [AC_TRY_LINK([#include <langinfo.h>],
458     [char* cs = nl_langinfo(CODESET);],
459     ac_cv_langinfo_codeset=yes,
460     ac_cv_langinfo_codeset=no)
461   ])
462 if test ${ac_cv_langinfo_codeset} = yes; then
463   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
464     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
465 fi
466
467 AC_CHECK_FUNCS(connect,,[
468   AC_CHECK_LIB(socket,connect,[
469     VLC_ADD_LDFLAGS([libvlc cdda cddax],-lsocket)
470     LIBS_socket="-lsocket"
471   ])
472 ])
473
474 AC_CHECK_FUNCS(send,,[
475   AC_CHECK_LIB(socket,send,[
476     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
477   ])
478 ])
479
480 AC_CHECK_FUNCS(gethostbyname,,[
481   AC_CHECK_LIB(nsl,gethostbyname,[
482     VLC_ADD_LDFLAGS([cdda cddax libvlc],[-lnsl])
483   ],[
484     AC_CHECK_LIB(bind,gethostbyname,[
485       VLC_ADD_LDFLAGS([access_mms],[-lbind])
486     ])
487   ])
488 ])
489
490 dnl Check for socklen_t
491 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
492   [AC_TRY_COMPILE(
493      [#include <sys/types.h>
494       #include <sys/socket.h>],
495      [socklen_t len = 42; return len;],
496      ac_cv_type_socklen_t=yes,
497      ac_cv_type_socklen_t=no)])
498 if test "${ac_cv_type_socklen_t}" != "no"; then
499   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
500 fi
501
502 dnl Check for struct sockaddr_storage
503 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
504 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
505 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
506   [AC_TRY_COMPILE(
507     [#include <sys/types.h>
508      #if defined( UNDER_CE )
509      # include <winsock.h>
510      #elif defined( WIN32 )
511      # include <winsock2.h>
512      #else
513      # include <sys/socket.h>
514      #endif], [struct sockaddr_storage addr;],
515      ac_cv_struct_sockaddr_storage=yes,
516      ac_cv_struct_sockaddr_storage=no)])
517 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
518   AC_DEFINE(sockaddr_storage, sockaddr)
519   AC_DEFINE(ss_family, sa_family)
520 ])
521
522 dnl getaddrinfo, getnameinfo and gai_strerror check
523 dnl  -lnsl and -lsocket are needed on Solaris;
524 dnl  we purposedly make the test fail on Windows
525 LIBS_save="${LIBS}"
526 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
527 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
528
529 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
530 dnl are
531 LIBS="${LIBS_gai}"
532 AC_CHECK_FUNCS([getnameinfo gai_strerror])
533 LIBS="${LIBS_save}"
534
535 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
536 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
537 [#include <sys/types.h>
538 #if defined( WIN32 ) || defined( UNDER_CE )
539 # if defined(UNDER_CE) && defined(sockaddr_storage)
540 #  undef sockaddr_storage
541 # endif
542 # include <winsock2.h>
543 # include <ws2tcpip.h>
544 #else
545 # include <netdb.h>
546 #endif])
547
548 dnl Check for va_copy
549 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
550   AC_TRY_LINK(
551     [#include <stdarg.h>],
552     [va_list ap1, ap2; va_copy(ap1,ap2);],
553     [ac_cv_c_va_copy="yes"],
554     [ac_cv_c_va_copy="no"]))
555 if test "${ac_cv_c_va_copy}" = "yes"; then
556   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
557 fi
558 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
559   AC_TRY_LINK(
560     [#include <stdarg.h>],
561     [va_list ap1, ap2; __va_copy(ap1,ap2);],
562     [ac_cv_c___va_copy="yes"],
563     [ac_cv_c___va_copy="no"]))
564 if test "${ac_cv_c___va_copy}" = "yes"; then
565   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
566 fi
567
568 AC_CHECK_FUNCS(inet_aton,,[
569   AC_CHECK_LIB(resolv,inet_aton,[
570     VLC_ADD_LDFLAGS([libvlc],[-lresolv])
571   ])
572 ])
573
574 dnl Check for getopt (always use builtin one on win32)
575 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
576 need_getopt=:
577 else
578 need_getopt=false
579 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
580 [ # FreeBSD has a gnugetopt library for this:
581   AC_CHECK_LIB([gnugetopt],[getopt_long],
582     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
583      VLC_ADD_LDFLAGS([libvlc],[-lgnugetopt])],
584     [need_getopt=:])])
585 fi
586 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
587
588 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
589 AC_TYPE_SIGNAL
590 AC_CHECK_LIB(m,cos,[
591   VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
592 ])
593 AC_CHECK_LIB(m,pow,[
594   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
595 ])
596 AC_CHECK_LIB(m,sqrt,[
597   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
598 ])
599 AC_CHECK_LIB(m,ceil,[
600   VLC_ADD_LDFLAGS([mosaic],[-lm])
601 ])
602 AC_CHECK_LIB(m,exp,[
603   VLC_ADD_LDFLAGS([gaussianblur],[-lm])
604 ])
605 AC_CHECK_LIB(mx,sqrtf,[
606   VLC_ADD_LDFLAGS([x264],[-lmx])
607 ])
608 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
609
610 dnl Check for dynamic plugins
611 ac_cv_have_plugins=no
612
613 # OS X style
614 AC_CHECK_HEADERS(mach-o/dyld.h,
615   [AC_CHECK_FUNCS(NSLinkModule,
616     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
617      ac_cv_have_plugins=yes])])
618
619 # HP-UX style
620 if test "${ac_cv_have_plugins}" = "no"; then
621   AC_CHECK_HEADERS(dl.h)
622   ac_cv_my_have_shl_load=no
623   AC_CHECK_FUNC(shl_load,
624    [ac_cv_my_have_shl_load=yes,
625     AC_CHECK_LIB(dld, shl_load,
626      [ac_cv_my_have_shl_load=yes
627       VLC_ADD_LDFLAGS([libvlc],[-ldld])])])
628   if test "${ac_cv_my_have_shl_load}" = "yes"; then
629     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
630     ac_cv_have_plugins=yes
631   fi
632 fi
633
634 # Whatever style
635 if test "${ac_cv_have_plugins}" = "no"; then
636   AC_CHECK_LIB(dld, dld_link,
637    [VLC_ADD_LDFLAGS([libvlc],[-ldld])
638     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
639     ac_cv_have_plugins=yes])
640 fi
641
642 # Win32 style
643 if test "${ac_cv_have_plugins}" = "no"; then
644   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
645     AC_CHECK_LIB(kernel32, main,
646      [VLC_ADD_LDFLAGS([libvlc],[-lkernel32])
647       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
648       ac_cv_have_plugins=yes])
649   fi
650 fi
651
652 # WinCE style
653 if test "${ac_cv_have_plugins}" = "no"; then
654   if test "${SYS}" = "mingwce"; then
655     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
656     ac_cv_have_plugins=yes
657   fi
658 fi
659
660 # BeOS style
661 if test "${ac_cv_have_plugins}" = "no"; then
662   AC_CHECK_HEADERS(image.h)
663   AC_CHECK_FUNCS(load_add_on,
664    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
665     ac_cv_have_plugins=yes])
666 fi
667
668 # Only test for dlopen() if the others didn't work
669 if test "${ac_cv_have_plugins}" = "no"; then
670   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
671   ac_cv_my_have_dlopen=no
672   AC_CHECK_FUNC(dlopen,
673     ac_cv_my_have_dlopen=yes,
674     AC_CHECK_LIB(dl, dlopen,
675       ac_cv_my_have_dlopen=yes
676       VLC_ADD_LDFLAGS([libvlc],[-ldl]),
677       AC_CHECK_LIB(svld, dlopen,
678         ac_cv_my_have_dlopen=yes
679         VLC_ADD_LDFLAGS([libvlc],[-lsvld]))))
680   if test "${ac_cv_my_have_dlopen}" = "yes"; then
681     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
682     ac_cv_have_plugins=yes
683   fi
684 fi
685
686 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
687 dnl Check for pthreads - borrowed from XMMS
688 THREAD_LIB=error
689 if test "${THREAD_LIB}" = "error"; then
690   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
691 fi
692 if test "${THREAD_LIB}" = "error"; then
693   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
694 fi
695 if test "${THREAD_LIB}" = "error"; then
696   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
697 fi
698 if test "${THREAD_LIB}" = "error"; then
699   AC_CHECK_FUNCS(pthread_mutex_lock)
700   THREAD_LIB=""
701 fi
702
703 dnl Check for cthreads under GNU/Hurd for instance
704 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
705
706 dnl
707 dnl  GNU portable threads
708 dnl
709 AC_ARG_ENABLE(pth,
710   [  --enable-pth            GNU Pth support (default disabled)],
711   [ if test "${enable_pth}" = "yes"; then
712     AC_CHECK_LIB(pth,pth_init)
713     AC_MSG_CHECKING(for pth_init in pth.h)
714     AC_EGREP_HEADER(pth_init,pth.h,[
715       AC_MSG_RESULT(yes)
716       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
717                 Define if <pth.h> defines pth_init)
718       THREAD_LIB="-lpth"
719     ],[
720       AC_MSG_RESULT(no)
721     ])
722     fi
723 ])
724
725 dnl
726 dnl  State Threads
727 dnl
728 AC_ARG_ENABLE(st,
729   [  --enable-st             State Threads (default disabled)],
730   [ if test "${enable_st}" = "yes"; then
731     AC_CHECK_LIB(st,st_init)
732     AC_MSG_CHECKING(for st_init in st.h)
733     AC_EGREP_HEADER(st_init,st.h,[
734       AC_MSG_RESULT(yes)
735       AC_DEFINE(ST_INIT_IN_ST_H, 1,
736                 Define if <st.h> defines st_init)
737       THREAD_LIB="-lst"
738     ],[
739       AC_MSG_RESULT(yes)
740     ])
741     fi
742 ])
743
744 VLC_ADD_LDFLAGS([libvlc plugin],[${THREAD_LIB}])
745
746 dnl Don't link with rt when using GNU-pth
747 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
748   AC_CHECK_LIB(rt, clock_nanosleep, [
749     VLC_ADD_LDFLAGS([libvlc],[-lrt])
750     AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
751   ], [
752     dnl HP/UX port
753     AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([libvlc],[-lrt])])
754   ])
755
756   have_nanosleep=false
757   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
758     AC_CHECK_LIB(rt,nanosleep,
759       [VLC_ADD_LDFLAGS([libvlc],[-lrt]) have_nanosleep=:],
760       [AC_CHECK_LIB(posix4,nanosleep,
761           [VLC_ADD_LDFLAGS([libvlc],[-lposix4]) have_nanosleep=:])]
762     )
763   ])
764   if ${have_nanosleep}; then
765     AC_DEFINE(HAVE_NANOSLEEP, 1,
766               Define if nanosleep is available.)
767   fi
768 fi
769
770 dnl Check for misc headers
771 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
772 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
773   AC_MSG_RESULT(yes)
774   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
775             Define if <pthread.h> defines pthread_cond_t.)],[
776   AC_MSG_RESULT(no)])
777
778 AC_MSG_CHECKING(for pthread_once in pthread.h)
779 AC_EGREP_HEADER(pthread_once,pthread.h,[
780   AC_MSG_RESULT(yes)
781   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
782             Define if <pthread.h> defines pthread_once.)],[
783   AC_MSG_RESULT(no)])
784 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
785
786 AC_MSG_CHECKING(for strncasecmp in strings.h)
787 AC_EGREP_HEADER(strncasecmp,strings.h,[
788   AC_MSG_RESULT(yes)
789   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
790             Define if <strings.h> defines strncasecmp.)],[
791   AC_MSG_RESULT(no)])
792
793 dnl Check for headers
794 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)
795 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
796 AC_CHECK_HEADERS([arpa/inet.h net/if.h netinet/in.h sys/socket.h netinet/udplite.h])
797 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
798 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
799 AC_CHECK_HEADERS(linux/version.h)
800 AC_CHECK_HEADERS(syslog.h)
801 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
802
803 AC_HEADER_TIME
804
805 AC_CHECK_TYPE(ssize_t, int)
806 AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
807
808 dnl Check for dirent
809 need_dirent=false
810 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
811 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
812
813 dnl Mac OS X and other OSes don't have declaration for nanosleep
814 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
815 AC_MSG_CHECKING(for nanosleep in time.h)
816 AC_EGREP_HEADER(nanosleep,time.h,[
817   AC_MSG_RESULT(yes)
818   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
819             Define if <time.h> defines nanosleep.)
820 ],[
821   AC_MSG_RESULT(no)
822 ])
823 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
824
825 dnl Make sure we have timespecs
826 AC_MSG_CHECKING(for timespec in sys/time.h)
827 AC_EGREP_HEADER(timespec,sys/time.h,[
828   AC_MSG_RESULT(yes)
829   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
830             Define if <sys/time.h> defines struct timespec.)
831 ],[
832   AC_MSG_RESULT(no)
833 ])
834
835 dnl Check for threads library
836 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
837 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
838 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
839
840 dnl Find where are the X headers and libraries
841 AC_PATH_XTRA()
842
843 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.
844
845 PKG_PROG_PKG_CONFIG()
846
847 dnl Check for hal
848 AC_ARG_ENABLE(hal,
849   [  --enable-hal            Linux HAL services discovery (default enabled)])
850  
851 if test "${enable_hal}" != "no"
852 then
853   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
854     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
855       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
856       VLC_ADD_PLUGINS([hal probe_hal]) 
857       VLC_ADD_LDFLAGS([libvlc hal probe_hal],[$HAL_LIBS])
858       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
859     dnl No hal 0.5 Test for 0.2
860     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
861        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
862         VLC_ADD_PLUGINS([hal])
863         VLC_ADD_LDFLAGS([libvlc hal],[$HAL_LIBS])
864         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
865        [AC_MSG_WARN(HAL library not found)])
866     ]
867   )
868 fi
869
870 dnl Check for dbus
871 AC_ARG_ENABLE(dbus,
872   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
873 case "${SYS}" in
874     linux*|*bsd*)
875 if test "${enable_dbus}" != "no"
876 then
877   dnl api stable dbus
878   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
879     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
880       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
881       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
882       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
883       VLC_ADD_LDFLAGS([screensaver libvlc],[$DBUS_LIBS])
884       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
885       dnl Check for dbus control interface
886         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control   D-BUS control interface (default enabled)])
887         if test "${enable_dbus_control}" != "no"
888         then
889           VLC_ADD_PLUGINS([dbus])
890           VLC_ADD_LDFLAGS([dbus],[$DBUS_LIBS])
891           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
892         fi],
893
894     if ${PKG_CONFIG} --exists dbus-1
895     then
896       [AC_ARG_ENABLE(old-dbus,
897         [  --enable-old-dbus      Deprecated D-Bus support (default disabled)])]
898
899       if test "${enable_old_dbus}" != "yes"
900       then
901         echo ""
902         echo "****** WARNING **** WARNING ***** WARNING *************"
903         echo "*** Your D-Bus version is < 1.0.0"
904         echo "*** You are using old and buggy software and so"
905         echo "*** D-Bus support has been disabled."
906         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
907         echo "*** Alternatively you can force the use of your old and"
908         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
909         echo "*******************************************************"
910         echo ""
911       else
912         dnl not too old dbus
913         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
914           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
915             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
916             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
917             VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
918             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
919           dnl older dbus
920           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
921             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
922               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
923               VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
924               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
925             dnl much older dbus
926             [ PKG_CHECK_MODULES( DBUS, dbus-1, 
927                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
928                 VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
929                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
930                [AC_MSG_WARN(DBUS library not found)])
931             ]
932           )]
933         )]
934       fi
935     fi
936   )
937 fi
938 ;;
939 esac
940
941 dnl Build the gtk_main plugins?
942 NEED_GTK_MAIN=no
943 NEED_GNOME_MAIN=no
944 NEED_GTK2_MAIN=no
945 NEED_GNOME2_MAIN=no
946
947 dnl build the qte plugin ?
948 NEED_QTE_MAIN=no
949
950 dnl Check for ntohl, etc.
951 AC_CACHE_CHECK([for ntohl in sys/param.h],
952     [ac_cv_c_ntohl_sys_param_h],
953     [CFLAGS="${CFLAGS_save} -Wall -Werror"
954      AC_TRY_COMPILE([#include <sys/param.h>],
955         [int meuh; ntohl(meuh);],
956         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
957 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
958     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
959 fi
960 CFLAGS="${CFLAGS_save}"
961
962 RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
963 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
964
965 dnl This helps detect broken plugins with undefined symbols
966 dnl Better fail loudly at build-time than silenty at run-time.
967 dnl Unfortunately, this sucks on FreeBSD (won't even link with -lc)
968 dnl RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
969 dnl   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
970 dnl ])
971
972 dnl Check for various optimization flags
973 AC_CACHE_CHECK([if \$CC accepts -Os],
974     [ac_cv_c_os],
975     [CFLAGS="${CFLAGS_save} -Os"
976      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
977 if test "${ac_cv_c_os}" != "no"; then
978     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
979 else 
980     AC_CACHE_CHECK([if \$CC accepts -O],
981         [ac_cv_c_o],
982         [CFLAGS="${CFLAGS_save} -O"
983          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
984     if test "${ac_cv_c_o}" != "no"; then
985         if test "${ac_cv_c_o3}" = "no"; then
986             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
987         fi
988     fi
989 fi
990
991 AC_CACHE_CHECK([if \$CC accepts -O3],
992     [ac_cv_c_o3],
993     [CFLAGS="${CFLAGS_save} -O3"
994      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
995 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
996     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
997 else
998     AC_CACHE_CHECK([if \$CC accepts -O2],
999         [ac_cv_c_o2],
1000         [CFLAGS="${CFLAGS_save} -O2"
1001          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
1002     if test "${ac_cv_c_o2}" != "no"; then
1003         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1004     else
1005         AC_CACHE_CHECK([if \$CC accepts -O],
1006             [ac_cv_c_o],
1007             [CFLAGS="${CFLAGS_save} -O"
1008              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1009         if test "${ac_cv_c_o}" != "no"; then
1010             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1011         fi
1012     fi
1013 fi
1014
1015 AC_CACHE_CHECK([if \$CC accepts -O0],
1016     [ac_cv_c_o0],
1017     [CFLAGS="${CFLAGS_save} -O0"
1018      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1019 if test "${ac_cv_c_o0}" != "no"; then
1020     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1021 fi
1022
1023 dnl Check for -ffast-math
1024 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1025     [ac_cv_c_fast_math],
1026     [CFLAGS="${CFLAGS_save} -ffast-math"
1027      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1028 if test "${ac_cv_c_fast_math}" != "no"; then
1029     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1030 fi
1031
1032 dnl Check for -funroll-loops
1033 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1034 if test "${SYS}" != "beos"
1035 then
1036   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1037       [ac_cv_c_unroll_loops],
1038       [CFLAGS="${CFLAGS_save} -funroll-loops"
1039        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1040   if test "${ac_cv_c_unroll_loops}" != "no"; then
1041       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1042   fi
1043 fi
1044
1045 dnl Check for -fomit-frame-pointer
1046 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1047     [ac_cv_c_omit_frame_pointer],
1048     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1049      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1050 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1051     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1052 fi
1053
1054 dnl Check for -fvisibility=hidden
1055 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1056     [ac_cv_c_visibility_hidden],
1057     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1058      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1059 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1060     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1061 fi
1062
1063 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1064
1065 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1066 dnl AC_LANG_PUSH(C++)
1067 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1068 dnl         [ac_cv_c_visibility_inlines_hidden],
1069 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1070 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1071 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1072 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1073 dnl     fi
1074 dnl     CXXFLAGS="${CXXFLAGS_save}"
1075 dnl AC_LANG_POP(C++)
1076
1077 dnl Check for -mdynamic-no-pic
1078 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1079 dnl     [ac_cv_c_dynamic_no_pic],
1080 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1081 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1082 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1083 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1084 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1085 dnl ])
1086
1087 dnl Check for Darwin plugin linking flags
1088 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1089     [ac_cv_ld_darwin],
1090     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1091      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1092 if test "${ac_cv_ld_darwin}" != "no"; then
1093     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1094 fi
1095
1096 dnl Check for standard plugin linking flags
1097 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1098 dnl AS_IF([test "${SYS}" = "beos"], [
1099 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1100 dnl ], [
1101 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1102 dnl         [ac_cv_ld_plugins],
1103 dnl         [CFLAGS="${CFLAGS_save} -shared"
1104 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1105 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1106 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1107 dnl   ])
1108 dnl ])
1109
1110 dnl Check for variadic macros
1111 AC_CACHE_CHECK([for variadic cpp macros],
1112     [ac_cv_cpp_variadic_macros],
1113     [CFLAGS="${CFLAGS_save}"
1114      AC_TRY_COMPILE(
1115          [#include <stdio.h>
1116           #define a(b,c...) printf(b,##c)],
1117          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1118          ac_cv_cpp_variadic_macros=yes,
1119          ac_cv_cpp_variadic_macros=no)])
1120 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1121     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1122 fi
1123
1124 dnl Checks for __attribute__(aligned()) directive
1125 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1126     [ac_cv_c_attribute_aligned],
1127     [ac_cv_c_attribute_aligned=0
1128         CFLAGS="${CFLAGS_save} -Werror"
1129     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1130         AC_TRY_COMPILE([],
1131         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1132         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1133     done
1134         CFLAGS="${CFLAGS_save}"])
1135 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1136     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1137         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1138 fi
1139
1140 dnl Checks for __attribute__(format()) directive
1141 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1142     [ac_cv_c_attribute_format],
1143     [ac_cv_c_attribute_format=no
1144         CFLAGS="${CFLAGS_save} -Werror"
1145         AC_TRY_COMPILE([],
1146         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1147         [ac_cv_c_attribute_format=yes])
1148         CFLAGS="${CFLAGS_save}"])
1149 if test "${ac_cv_c_attribute_format}" != "no"; then
1150     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1151 fi
1152
1153 dnl Check for __attribute__((packed))
1154 AC_CACHE_CHECK([for __attribute__((packed))],
1155   [ac_cv_c_attribute_packed],
1156   [ac_cv_c_attribute_packed=no
1157    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1158                     [ac_cv_c_attribute_packed=yes])])
1159 if test "${ac_cv_c_attribute_packed}" != "no"; then
1160   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1161 fi
1162
1163 dnl Check for __attribute__((visibility()))
1164 AC_CACHE_CHECK([for __attribute__((visibility()))],
1165   [ac_cv_c_attribute_visibility],
1166   [ac_cv_c_attribute_visibility=no
1167    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1168                     [ac_cv_c_attribute_visibility=yes])])
1169 if test "${ac_cv_c_attribute_visibility}" != "no"; then
1170   AC_DEFINE(HAVE_ATTRIBUTE_VISIBILITY, 1, Support for __attribute__((visibility())) for exporting symbols)
1171 fi
1172
1173 dnl
1174 dnl  Check the CPU
1175 dnl
1176 case "${host_cpu}" in
1177   "")
1178     ARCH=unknown
1179     ;;
1180   *)
1181     ARCH="${host_cpu}"
1182     ;;
1183 esac
1184
1185 dnl
1186 dnl  Enable profiling
1187 dnl
1188 AC_ARG_ENABLE(gprof,
1189 [  --enable-gprof          gprof profiling (default disabled)])
1190 AC_ARG_ENABLE(cprof,
1191 [  --enable-cprof          cprof profiling (default disabled)])
1192 test "${enable_gprof}" != "yes" && enable_gprof="no"
1193 test "${enable_cprof}" != "yes" && enable_cprof="no"
1194
1195 dnl
1196 dnl  default modules
1197 dnl
1198 VLC_ADD_PLUGINS([dummy logger memcpy])
1199 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 vc1 ps pva avi asf mp4 rawdv rawvid nsv real aiff mjpeg demuxdump flacsys tta])
1200 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec subsusf t140 dvbsub mpeg_audio lpcm a52 dts cinepak flac])
1201 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise grain extract sharpen seamcarving])
1202 VLC_ADD_PLUGINS([converter_fixed mono])
1203 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1204 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1205 VLC_ADD_PLUGINS([spatializer])
1206 VLC_ADD_PLUGINS([playlist export nsc xtag])
1207 VLC_ADD_PLUGINS([i420_rgb grey_yuv rawvideo blend scale image logo magnify puzzle colorthres])
1208 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1209 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1210 VLC_ADD_PLUGINS([access_http access_mms access_ftp])
1211 VLC_ADD_PLUGINS([access_filter_bandwidth])
1212 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1213 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1214 VLC_ADD_PLUGINS([packetizer_vc1])
1215
1216
1217 if test "${SYS}" != "mingwce"; then
1218   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record access_filter_dump])
1219   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1220   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop erase bluescreen alphamask gaussianblur])
1221   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1222   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1223   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1224   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1225   VLC_ADD_PLUGINS([converter_float a52tospdif dtstospdif audio_format])
1226 fi
1227
1228 dnl
1229 dnl Some plugins aren't useful on some platforms
1230 dnl
1231 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1232     VLC_ADD_PLUGINS([screensaver motion])
1233 elif test "${SYS}" != "mingwce"; then
1234     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1235     VLC_ADD_LDFLAGS([dmo],[-lole32])
1236 else
1237     VLC_ADD_PLUGINS([win32text])
1238 fi
1239 if test "${SYS}" = "darwin"; then
1240     VLC_ADD_PLUGINS([quartztext])
1241     VLC_ADD_LDFLAGS([quartztext],[-Wl,-framework,Carbon,-framework,ApplicationServices])
1242 fi
1243
1244 dnl
1245 dnl  Accelerated modules
1246 dnl
1247 MMX_MODULES="memcpymmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
1248 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1249 MMXEXT_MODULES="memcpymmxext"
1250 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1251 THREEDNOW_MODULES="memcpy3dn"
1252 SSE_MODULES=""
1253 SSE2_MODULES="i420_rgb_sse2 i420_yuy2_sse2 i422_yuy2_sse2"
1254 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1255 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1256
1257 dnl  Check for fully workin MMX intrinsics
1258 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1259 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1260 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1261     [ac_cv_c_mmx_intrinsics],
1262     [CFLAGS="${CFLAGS_save} -O -mmmx"
1263      AC_TRY_COMPILE([#include <mmintrin.h>
1264                      #include <stdint.h>
1265                      uint64_t frobzor;],
1266                     [__m64 a, b, c;
1267                      a = b = c = (__m64)frobzor;
1268                      a = _mm_slli_pi16(a, 3);
1269                      a = _mm_adds_pi16(a, b);
1270                      c = _mm_srli_pi16(c, 8);
1271                      c = _mm_slli_pi16(c, 3);
1272                      b = _mm_adds_pi16(b, c);
1273                      a = _mm_unpacklo_pi8(a, b);
1274                      frobzor = (uint64_t)a;],
1275                     [ac_cv_c_mmx_intrinsics=yes],
1276                     [ac_cv_c_mmx_intrinsics=no])])
1277 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1278   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1279   VLC_ADD_CFLAGS([${MMX_MODULES}],[-mmmx])
1280 fi
1281
1282 dnl  Check for fully workin SSE2 intrinsics
1283 dnl  We need support for -mmmx, we need <emmintrin.h>, and we also need a
1284 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1285 AC_CACHE_CHECK([if \$CC groks SSE2 intrinsics],
1286     [ac_cv_c_sse2_intrinsics],
1287     [CFLAGS="${CFLAGS_save} -O -msse2"
1288      AC_TRY_COMPILE([#include <emmintrin.h>
1289                      #include <stdint.h>
1290                      uint64_t frobzor;],
1291                     [__m128i a, b, c;
1292                      a = b = c = _mm_set1_epi64((__m64)frobzor);
1293                      a = _mm_slli_epi16(a, 3);
1294                      a = _mm_adds_epi16(a, b);
1295                      c = _mm_srli_epi16(c, 8);
1296                      c = _mm_slli_epi16(c, 3);
1297                      b = _mm_adds_epi16(b, c);
1298                      a = _mm_unpacklo_epi8(a, b);
1299                      frobzor = (uint64_t)_mm_movepi64_pi64(a);],
1300                     [ac_cv_c_sse2_intrinsics=yes],
1301                     [ac_cv_c_sse2_intrinsics=no])])
1302 if test "${ac_cv_c_sse2_intrinsics}" != "no"; then
1303   AC_DEFINE(HAVE_SSE2_INTRINSICS, 1, Define if SSE2 intrinsics are available.)
1304   VLC_ADD_CFLAGS([${SSE2_MODULES}],[-msse2])
1305 fi
1306
1307 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1308     [ac_cv_mmx_inline],
1309     [CFLAGS="${CFLAGS_save}"
1310      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1311                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1312 if test "${ac_cv_mmx_inline}" != "no"; then
1313   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1314   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1315 fi
1316
1317 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1318     [ac_cv_mmxext_inline],
1319     [CFLAGS="${CFLAGS_save}"
1320      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1321                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1322 if test "${ac_cv_mmxext_inline}" != "no"; then
1323   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1324   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1325 fi
1326
1327 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1328     [ac_cv_3dnow_inline],
1329     [CFLAGS="${CFLAGS_save}"
1330      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1331                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1332 if test "${ac_cv_3dnow_inline}" != "no"; then
1333   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1334   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1335 fi
1336
1337 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1338     [ac_cv_sse_inline],
1339     [CFLAGS="${CFLAGS_save}"
1340      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1341                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1342 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1343   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1344   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1345 fi
1346
1347 AC_CACHE_CHECK([if \$CC groks SSE2 inline assembly],
1348     [ac_cv_sse2_inline],
1349     [CFLAGS="${CFLAGS_save}"
1350      AC_TRY_COMPILE(,[void *p;asm volatile("punpckhqdq %%xmm1,%%xmm2"::"r"(p));],
1351                     ac_cv_sse2_inline=yes, ac_cv_sse2_inline=no)])
1352 if test "${ac_cv_sse2_inline}" != "no" -a "${SYS}" != "solaris"; then
1353   AC_DEFINE(CAN_COMPILE_SSE2, 1, Define if \$CC groks SSE2 inline assembly.)
1354   ACCEL_MODULES="${ACCEL_MODULES} ${SSE2_MODULES}"
1355 fi
1356
1357 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1358 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1359     [ac_cv_altivec_inline],
1360     [CFLAGS="${CFLAGS_save}"
1361      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1362          ac_cv_altivec_inline=yes,
1363          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1364           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1365             [ac_cv_altivec_inline="-Wa,-m7400"],
1366             ac_cv_altivec_inline=no)
1367          ])])
1368 if test "${ac_cv_altivec_inline}" != "no"; then
1369   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1370   if test "${ac_cv_altivec_inline}" != "yes"; then
1371     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1372     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1373     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1374     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1375     VLC_ADD_CFLAGS([libvlc],[${ac_cv_altivec_inline}])
1376   fi
1377   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1378 fi
1379
1380 dnl The AltiVec C extensions
1381 dnl
1382 dnl There are several possible cases:
1383 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1384 dnl                      need <altivec.h>
1385 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1386 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1387 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1388 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1389 dnl - Others: test should fail
1390 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1391   [ac_cv_c_altivec],
1392   [# OS X/PPC test (gcc 4.x)
1393    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1394    AC_TRY_COMPILE([vector unsigned char foo;],
1395      [vec_ld(0, (unsigned char *)0);],
1396      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1397      [# OS X/PPC test (gcc 3.x)
1398       CFLAGS="${CFLAGS_save} -faltivec"
1399       AC_TRY_COMPILE([vector unsigned char foo;],
1400         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1401         [ac_cv_c_altivec="-faltivec"],
1402         dnl Below this are the Linux tests
1403         [# Linux/PPC test (gcc 4.x)
1404          CFLAGS="${CFLAGS_save} -maltivec"
1405          AC_TRY_COMPILE([#include <altivec.h>],
1406            [vec_ld(0, (unsigned char *)0);],
1407            [ac_cv_c_altivec="-maltivec"],
1408            [# Linux/PPC test (gcc 3.3)
1409             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1410             AC_TRY_COMPILE([#include <altivec.h>],
1411               [vec_ld(0, (unsigned char *)0);],
1412               [ac_cv_c_altivec=""
1413                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1414               [# Linux/PPC test (gcc 3.3)
1415                CFLAGS="${CFLAGS_save} -fvec"
1416                AC_TRY_COMPILE([#include <altivec.h>],
1417                  [vec_ld(0, (unsigned char *)0);],
1418                  [ac_cv_c_altivec="-fvec"],
1419                  [ac_cv_c_altivec=no])
1420               ])
1421            ])
1422         ])
1423      ])
1424    CFLAGS="${CFLAGS_save}"
1425   ])
1426
1427 if test "${ac_cv_c_altivec}" != "no"; then
1428   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1429 fi
1430
1431 AS_IF( test "${enable_altivec}" != "no",
1432 [
1433   AC_CHECK_HEADERS(altivec.h)
1434   CPPFLAGS="${CPPFLAGS_save}"
1435   
1436   if test "${ac_cv_c_altivec}" != "no"; then
1437     AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1438     VLC_ADD_CFLAGS([libvlc],[${ac_cv_c_altivec}])
1439     VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1440     VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1441     if test "${ac_cv_altivec_inline}" = "no"; then
1442       ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1443     fi
1444   fi
1445 ],[
1446   CPPFLAGS="${CPPFLAGS_save}"
1447 ])
1448
1449 AC_CACHE_CHECK([if linker needs -framework vecLib],
1450     [ac_cv_ld_altivec],
1451     [LDFLAGS="${LDFLAGS_vlc} -Wl,-framework,vecLib"
1452      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1453      LDFLAGS="${LDFLAGS_save}"
1454     ])
1455 if test "${ac_cv_ld_altivec}" != "no"; then
1456   VLC_ADD_LDFLAGS([libvlc idctaltivec motionaltivec memcpyaltivec],[-Wl,-framework,vecLib])
1457 fi
1458 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1459
1460 AC_ARG_WITH(,[])
1461 AC_ARG_WITH(,[Optimization options:])
1462
1463 dnl
1464 dnl  Special arch tuning
1465 dnl
1466 AC_ARG_WITH(tuning,
1467 [  --with-tuning=ARCH      enable special tuning for an architecture
1468                           (default Pentium 2 on IA-32 and G4 on PPC)])
1469 if test -n "${with_tuning}"; then
1470     if test "${with_tuning}" != "no"; then
1471         CFLAGS_TUNING="-mtune=${with_tuning}"
1472     fi
1473 else
1474     if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1475         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1476     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1477         CFLAGS_TUNING="-mtune=pentium2"
1478     elif test "${host_cpu}" = "x86_64"; then
1479         CFLAGS_TUNING="-mtune=athlon64"
1480     elif test "${host_cpu}" = "powerpc"; then
1481         CFLAGS_TUNING="-mtune=G4";
1482     fi
1483 fi
1484
1485 dnl NOTE: this can't be cached cleanly
1486 AS_IF([test "${CFLAGS_TUNING}"],
1487    [CFLAGS_save="${CFLAGS}"
1488     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1489
1490     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1491     AC_COMPILE_IFELSE([ ],
1492                       [tuning="yes"],
1493                       [CFLAGS_TUNING=""; tuning="no"
1494                        AS_IF([test "${with_tuning}"],
1495                              [AC_MSG_ERROR([requested tuning not supported])])])
1496
1497     AC_MSG_RESULT([$tuning])
1498     CFLAGS="${CFLAGS_save}"
1499 ])
1500
1501 dnl
1502 dnl  x86 accelerations
1503 dnl
1504 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"
1505 then
1506     ARCH="${ARCH} mmx"
1507     VLC_ADD_PLUGINS([${ACCEL_MODULES}])
1508 fi
1509 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "x86_64"
1510 then
1511     ARCH="${ARCH} sse sse2"
1512     VLC_ADD_PLUGINS([${ACCEL_MODULES}])
1513 fi
1514
1515 dnl
1516 dnl  Memory usage
1517 dnl
1518 AC_ARG_ENABLE(optimize-memory,
1519 [  --enable-optimize-memory      optimize memory usage over performance])
1520 if test "${enable_optimize_memory}" = "yes"; then
1521   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1522 fi
1523
1524 dnl
1525 dnl  Enable/disable optimizations
1526 dnl
1527 AC_ARG_ENABLE(optimizations,
1528 [  --disable-optimizations disable compiler optimizations (default enabled)])
1529 if test "${enable_optimizations}" != "no"; then
1530    if test "${enable_optimize_memory}" = "yes"; then
1531       enable_optimizations="size"
1532    else
1533       enable_optimizations="speed"
1534    fi
1535 fi
1536
1537 dnl
1538 dnl  AltiVec acceleration
1539 dnl
1540 AC_ARG_ENABLE(altivec,
1541 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1542 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1543     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ],
1544 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1545     VLC_ADD_PLUGINS([${ACCEL_MODULES}]) fi ])
1546
1547 dnl
1548 dnl  Debugging mode
1549 dnl
1550 AC_ARG_ENABLE(debug,
1551 [  --enable-debug          debug mode (default disabled)])
1552 test "${enable_debug}" != "yes" && enable_debug="no"
1553 AH_TEMPLATE(NDEBUG,
1554             [Define to 1 if debug code should NOT be compiled])
1555 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1556
1557 dnl
1558 dnl  Test coverage
1559 dnl
1560 AC_ARG_ENABLE(coverage,
1561         [  --enable-coverage       build for test coverage (default disabled)],,
1562         [enable_coverage="no"])
1563 AS_IF([test "${enable_coverage}" != "no"], [
1564         CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
1565         CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
1566         LDFLAGS="-lgcov ${LDFLAGS}"
1567         dnl ugly...
1568         CFLAGS_save="${CFLAGS}"
1569         CXXFLAGS_save="${CXXFLAGS}"
1570         LDFLAGS_save="${LDFLAGS}"
1571 ])
1572
1573 dnl
1574 dnl  Enable release-specific flags
1575 dnl
1576 AC_ARG_ENABLE(release,
1577 [  --enable-release        activate extra optimizations (default disabled)])
1578 test "${enable_release}" != "yes" && enable_release="no"
1579
1580 dnl
1581 dnl Stream output
1582 dnl
1583 AC_ARG_ENABLE(sout,
1584   [  --enable-sout           Stream output modules (default enabled)])
1585 if test "${enable_sout}" != "no"
1586 then
1587   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1588   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1589   VLC_ADD_PLUGINS([packetizer_copy])
1590
1591   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1592   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge stream_out_autodel])
1593   VLC_ADD_PLUGINS([stream_out_gather])
1594 #  VLC_ADD_PLUGINS([stream_out_transrate])
1595 #  VLC_ADD_PLUGINS([rtcp])
1596   VLC_ADD_PLUGINS([profile_parser])
1597
1598   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1599 fi
1600
1601 AC_ARG_ENABLE(switcher,
1602   [  --enable-switcher       Stream-out switcher plugin (default disabled)])
1603
1604 dnl Check for libshout
1605 AC_ARG_ENABLE(shout,
1606   [  --enable-shout          libshout output plugin (default disabled)])
1607 if test "${enable_shout}" = "yes"; then
1608   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1609     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1610      VLC_ADD_PLUGINS([access_output_shout])
1611      VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS])
1612      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1613     [AC_MSG_WARN(libshout library not found)])
1614 fi
1615
1616 dnl Lua modules
1617 AC_ARG_ENABLE(lua,
1618   [  --enable-lua            lua playlist and metafetcher plugins (default enabled)])
1619 if test "${enable_lua}" != "no"
1620 then
1621   PKG_CHECK_MODULES(LUA, lua5.1,
1622     [ have_lua=yes ],
1623     [
1624     AC_MSG_WARN([lua5.1 not found, trying lua >= 5.1 instead])
1625     PKG_CHECK_MODULES(LUA, lua >= 5.1,
1626       [ have_lua=yes ],
1627       [ 
1628         have_lua=yes
1629         AC_CHECK_HEADERS([lua.h lauxlib.h lualib.h], 
1630           [],  
1631           [ have_lua=no ] )
1632         AC_CHECK_LIB(  lua5.1 , luaL_newstate, 
1633           [LUA_LIBS="-llua5.1"],
1634           AC_CHECK_LIB( lua51 , luaL_newstate, 
1635             [LUA_LIBS="-llua51"],
1636                   AC_CHECK_LIB( lua , luaL_newstate, 
1637                     [LUA_LIBS="-llua"],
1638               [ have_lua=no
1639                 AC_MSG_WARN([lua >= 5.1 not found!])
1640               ])
1641             )
1642           )
1643       ])
1644     ])
1645   if test "x${have_lua}" = "xyes" ;  then
1646      AC_DEFINE(HAVE_LUA, [], [Define if you have the lua library])
1647      VLC_ADD_PLUGINS([lua])
1648      VLC_ADD_LDFLAGS([lua],[$LUA_LIBS])
1649      VLC_ADD_CFLAGS([lua],[$LUA_CFLAGS])
1650   fi
1651 fi
1652
1653 dnl
1654 dnl HTTP daemon
1655 dnl
1656 AC_ARG_ENABLE(httpd,
1657   [  --enable-httpd          HTTP daemon (default enabled)])
1658 if test "${enable_httpd}" != "no"
1659 then
1660   VLC_ADD_PLUGINS([http])
1661   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1662 fi
1663
1664 dnl
1665 dnl VideoLAN manager
1666 dnl
1667 AC_ARG_ENABLE(vlm,
1668   [  --enable-vlm            VideoLAN manager (default enabled)])
1669 if test "${enable_vlm}" != "no"
1670 then
1671   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1672 fi
1673
1674 dnl
1675 dnl Growl notification plugin
1676 dnl
1677 AC_ARG_ENABLE(growl,
1678   [  --enable-growl          growl notification plugin (default enabled)])
1679 AS_IF([test "${enable_growl}" != "no"], [
1680     VLC_ADD_PLUGINS([growl])
1681   ]
1682 )
1683
1684 dnl
1685 dnl Libnotify notification plugin
1686 dnl
1687
1688 AC_ARG_ENABLE(notify,
1689   [  --enable-notify         libnotify notification plugin (default enabled)])
1690 AS_IF([test "${enable_notify}" != "no" -a "${SYS}" != "mingw32"], [
1691     PKG_CHECK_MODULES(NOTIFY, libnotify,
1692       [
1693         VLC_ADD_PLUGINS([notify])
1694         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1695         VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS])
1696       ],[
1697         AS_IF([test "${enable_notify}" = "yes"],[
1698                AC_MSG_WARN( libnotify not found) ])
1699       ])
1700   ])
1701
1702 dnl
1703 dnl Audioscrobbler plugin
1704 dnl
1705
1706 AC_ARG_ENABLE(audioscrobbler,
1707   [  --disable-audioscrobbler Last.fm submission plugin (default enabled)])
1708 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1709         VLC_ADD_PLUGINS([audioscrobbler])
1710   ])
1711
1712 dnl
1713 dnl Musicbrainz plugin
1714 dnl
1715 AC_ARG_ENABLE(musicbrainz,
1716   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1717   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1718       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1719         [ VLC_ADD_PLUGINS([musicbrainz])
1720           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1721           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1722        [AC_MSG_WARN(MusicBrainz library not found)])
1723    ])
1724
1725
1726 dnl
1727 dnl Taglibplugin
1728 dnl
1729 AC_ARG_ENABLE(taglib,
1730   [  --disable-taglib Taglib support (default enabled) ])
1731   AS_IF([test "${enable_taglib}" != "no"],[
1732     PKG_CHECK_MODULES(TAGLIB, taglib,
1733       [ AC_DEFINE( HAVE_TAGLIB, 1, [Define if you have taglib plugin built] )
1734         VLC_ADD_PLUGINS([taglib])
1735         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS -lz])
1736        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1737       [AC_MSG_WARN(TagLib library not found)])
1738   ])
1739
1740
1741 dnl
1742 dnl  Input plugins
1743 dnl
1744
1745 AC_ARG_WITH(,[Input plugins:])
1746
1747 dnl  live555 input
1748 dnl
1749 if test "${enable_livedotcom}" 
1750 then
1751   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1752 fi
1753
1754 if test "${enable_livedotcom}" = "no"
1755 then
1756   enable_live555="no"
1757 fi
1758 AC_ARG_ENABLE(live555,
1759 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1760 if test "${enable_live555}" != "no"; then
1761   AC_ARG_WITH(live555-tree,
1762     [    --with-live555-tree=PATH live.com tree for static linking])
1763
1764   dnl
1765   dnl test for --with-live555-tree
1766   dnl
1767   if test "${with_livedotcom_tree}" 
1768   then
1769     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1770   with_live555_tree="${with_livedotcom_tree}"
1771   fi
1772
1773   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1774     AC_LANG_PUSH(C++)
1775     CPPFLAGS_save="${CPPFLAGS}"
1776     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1777     if test "${SYS}" = "solaris"; then
1778       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1779     fi
1780     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1781     AC_CHECK_HEADERS(liveMedia.hh, [
1782       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1783       AC_CHECK_LIB(liveMedia_pic, main, [
1784         # We have -lliveMedia_pic, build plugins
1785         VLC_ADD_PLUGINS([live555])
1786         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1787       ], [
1788         AC_CHECK_LIB(liveMedia, main, [
1789           # We only have -lliveMedia, do builtins
1790           VLC_ADD_BUILTINS([live555])
1791           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1792         ])
1793       ])
1794       if test "${SYS}" = "mingw32"; then
1795         # add ws2_32 for closesocket, select, recv
1796         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1797       fi
1798     ])
1799     CPPFLAGS="${CPPFLAGS_save}"
1800     AC_LANG_POP(C++)
1801   else
1802     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1803     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1804     if test -z "${real_live555_tree}"; then
1805       dnl  The given directory can't be found
1806       AC_MSG_RESULT(no)
1807       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1808     fi
1809     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1810       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1811
1812       VLC_ADD_BUILTINS([live555])
1813
1814       if test "${SYS}" = "mingw32"; then
1815         # add ws2_32 for closesocket, select, recv
1816         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1817       fi
1818
1819       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1820       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1821       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1822       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1823
1824       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1825       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1826       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1827       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1828       if test "${SYS}" = "solaris"; then
1829         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1830       fi
1831     else
1832       dnl  The given live555 wasn't built
1833         AC_MSG_RESULT(no)
1834       if test "${enable_live555}" = "yes"; then
1835         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1836       fi        
1837     fi
1838   fi
1839 fi
1840
1841 dnl
1842 dnl  special access module for dc1394 input
1843 dnl
1844 AC_ARG_ENABLE(dc1394,
1845   [  --enable-dc1394       dc1394 access module (default disabled)])
1846 if test "${enable_dc1394}" = "yes"
1847 then
1848   AC_CHECK_HEADERS(libraw1394/raw1394.h, [
1849     AC_CHECK_LIB( raw1394, raw1394_get_nodecount, [
1850         AC_CHECK_HEADERS(libdc1394/dc1394_control.h , [
1851 dnl         AC_CHECK_LIB( dc1394_control, dc1394_setup_capture, [
1852               VLC_ADD_PLUGINS([dc1394])
1853               VLC_ADD_LDFLAGS([dc1394],[-ldc1394_control -lraw1394])
1854 dnl         ],
1855 dnl         [
1856 dnl           AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1857 dnl         ])
1858       ],
1859       [
1860         AC_MSG_ERROR([libdc1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1861       ])
1862     ],
1863     [
1864       AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1865     ])
1866   ],
1867   [
1868     AC_MSG_ERROR([libraw1394 is mandatory for the dc1394 input module. try --disable-dc1394 or install this library])
1869   ])
1870 fi
1871
1872 dnl
1873 dnl dv module: digital video module check for libraw1394
1874 dnl
1875 AC_ARG_ENABLE(dv,
1876 [  --enable-dv             dv input module (default disabled)])
1877 if test "${enable_dv}" = "yes"
1878 then
1879   AC_ARG_WITH(dv-raw1394,
1880   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1881   AC_ARG_WITH(dv-raw1394-tree,
1882   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1883
1884   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1885   then
1886     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1887     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1888     then
1889       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1890       AC_MSG_RESULT(yes)
1891       VLC_ADD_PLUGINS([access_dv])
1892       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1893       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1894     else
1895       dnl  No libraw1394 could be found, sorry
1896       AC_MSG_RESULT(no)
1897       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1898     fi
1899   else
1900     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1901     [ VLC_ADD_PLUGINS([access_dv])
1902         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1903     ],[
1904         if test -n "${enable_dv}"
1905         then
1906           AC_MSG_ERROR([cannot find libraw1394 headers])
1907         fi
1908     ])
1909   fi
1910
1911   dnl Check for static linking of libraw1394
1912   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1913   then
1914     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1915     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1916     if test -z "${real_dv_raw1394_tree}"
1917     then
1918       dnl  The given directory can't be found
1919       AC_MSG_RESULT(no)
1920       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1921     fi
1922     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1923     then
1924       dnl  Use a custom libraw1394
1925       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1926       VLC_ADD_BUILTINS([access_dv])
1927       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1928       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1929     else
1930       dnl  The given libraw1394 wasn't built
1931       AC_MSG_RESULT(no)
1932       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1933     fi
1934   fi
1935
1936   dnl
1937   dnl Check for libavc1394
1938   dnl
1939
1940   AC_ARG_WITH(dv-avc1394,
1941   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1942   AC_ARG_WITH(dv-avc1394-tree,
1943   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1944
1945   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1946   then
1947     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1948     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1949     then
1950       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1951       AC_MSG_RESULT(yes)
1952       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1953       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1954     else
1955       dnl  No libavc1394 could be found, sorry
1956       AC_MSG_RESULT(no)
1957       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1958     fi
1959   else
1960     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1961     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1962     ],[
1963         if test -n "${enable_dv}"
1964         then
1965           AC_MSG_ERROR([cannot find libavc1394 headers])
1966         fi
1967     ])
1968   fi
1969
1970   dnl Check for static linking of libavc1394
1971   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1972   then
1973     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1974     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1975     if test -z "${real_dv_avc1394_tree}"
1976     then
1977       dnl  The given directory can't be found
1978       AC_MSG_RESULT(no)
1979       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1980     fi
1981     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1982     then
1983       dnl  Use a custom libavc1394
1984       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1985       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1986       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1987     else
1988       dnl  The given libavc1394 wasn't built
1989       AC_MSG_RESULT(no)
1990       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1991     fi
1992   fi
1993 fi
1994
1995 dnl
1996 dnl dvdread module: check for libdvdread
1997 dnl
1998 AC_ARG_ENABLE(dvdread,
1999 [  --enable-dvdread        dvdread input module (default disabled)])
2000 if test "${enable_dvdread}" != "no"
2001 then
2002   AC_ARG_WITH(dvdread,
2003   [    --with-dvdread=PATH   libdvdread headers and libraries])
2004   AC_ARG_WITH(dvdread-tree,
2005   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
2006
2007   dnl Temporary hack (yeah, sure ;)
2008   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2009       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
2010   fi
2011
2012   if test -z "${with_dvdread}"
2013   then
2014     if test -z "${with_dvdread_tree}"
2015     then
2016       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
2017         [ VLC_ADD_PLUGINS([dvdread])
2018           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
2019         ],[
2020           if test -n "${enable_dvdread}"
2021           then
2022             AC_MSG_ERROR([cannot find libdvdread headers])
2023           fi
2024         ])
2025     else
2026       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
2027       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
2028       if test -z "${real_dvdread_tree}"
2029       then
2030         dnl  The given directory can't be found
2031         AC_MSG_RESULT(no)
2032         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
2033       fi
2034       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
2035       then
2036         dnl  Use a custom libdvdread
2037         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
2038         VLC_ADD_BUILTINS([dvdread])
2039         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
2040         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
2041       else
2042         dnl  The given libdvdread wasn't built
2043         AC_MSG_RESULT(no)
2044         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
2045       fi
2046     fi
2047   else
2048     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
2049     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
2050     then
2051       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
2052       AC_MSG_RESULT(yes)
2053       VLC_ADD_PLUGINS([dvdread])
2054       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
2055       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
2056     else
2057       dnl  No libdvdread could be found, sorry
2058       AC_MSG_RESULT(no)
2059       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
2060     fi
2061   fi
2062 fi
2063
2064 dnl
2065 dnl  libdvdnav plugin
2066 dnl
2067 AC_ARG_ENABLE(dvdnav,
2068   [  --enable-dvdnav         dvdnav input module (default enabled)])
2069 if test "${enable_dvdnav}" != "no"
2070 then
2071   dnl Same hack than dvdread
2072   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
2073       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
2074   fi
2075
2076   DVDNAV_PATH="${PATH}"
2077   AC_ARG_WITH(dvdnav-config-path,
2078     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
2079     [ if test "${with_dvdnav_config_path}" != "no"
2080       then
2081         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
2082       fi ])
2083   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
2084   if test "${DVDNAV_CONFIG}" != "no"
2085   then
2086     VLC_ADD_PLUGINS([dvdnav])
2087     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
2088     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
2089   fi
2090 fi
2091
2092 dnl
2093 dnl  Windows DirectShow access module
2094 dnl
2095 AC_ARG_ENABLE(dshow,
2096   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
2097 if test "${enable_dshow}" != "no"
2098 then
2099   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2100   then
2101     AC_LANG_PUSH(C++)
2102       AC_CHECK_HEADERS(dshow.h,
2103       [ VLC_ADD_PLUGINS([dshow])
2104         VLC_ADD_CXXFLAGS([dshow],[])
2105         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
2106     AC_LANG_POP(C++)
2107   fi
2108 fi
2109
2110 dnl
2111 dnl  Windows DirectShow BDA access module
2112 dnl
2113 AC_ARG_ENABLE(bda,
2114   [  --enable-bda          Win32 DirectShow BDA support (default enabled on Win32)])
2115 if test "${enable_bda}" != "no"
2116 then
2117   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2118   then
2119       AC_CHECK_HEADERS(dshow.h,
2120       [ VLC_ADD_PLUGINS([bda])
2121         VLC_ADD_CXXFLAGS([bda],[])
2122         VLC_ADD_LDFLAGS([bda],[-lstrmiids -lole32 -loleaut32 -luuid]) ])
2123   fi
2124 fi
2125
2126
2127 dnl
2128 dnl  OpenCV wrapper and example filters
2129 dnl
2130 AC_ARG_ENABLE(opencv,
2131   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
2132 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
2133 then
2134   AC_ARG_WITH(opencv-tree,
2135   [    --with-opencv-tree=PATH opencv tree for linking])
2136   if test -n "${with_opencv_tree}"
2137   then
2138     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
2139     then
2140           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
2141           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
2142             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
2143       then
2144         AC_MSG_RESULT(yes)
2145         VLC_ADD_PLUGINS([opencv_wrapper])
2146         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2147         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])
2148         AC_LANG_PUSH(C++)
2149         VLC_ADD_PLUGINS([opencv_example])
2150         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
2151         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])
2152         AC_LANG_POP(C++)        
2153           else
2154         dnl  No opencv could be found, sorry
2155         AC_MSG_RESULT(no)
2156         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
2157           fi
2158     else
2159           AC_MSG_WARN([--enable-opencv currently only works on windows])
2160     fi
2161   fi  
2162 fi
2163
2164
2165 dnl
2166 dnl  libsmbclient plugin
2167 dnl
2168 AC_ARG_ENABLE(smb,
2169   [  --enable-smb            smb input module (default enabled)])
2170 if test "${enable_smb}" != "no"; then
2171   AC_CHECK_HEADERS(libsmbclient.h,
2172     [ VLC_ADD_PLUGINS([access_smb])
2173       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
2174     [ if test -n "${enable_smb}"; then
2175         AC_MSG_ERROR([cannot find libsmbclient headers])
2176      fi ])
2177   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
2178     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
2179     [#include <libsmbclient.h>])
2180 fi
2181
2182 dnl
2183 dnl  libdvbpsi ts demux/mux
2184 dnl
2185 AC_ARG_ENABLE(dvbpsi,
2186   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
2187 if test "${enable_dvbpsi}" != "no"
2188 then
2189   AC_ARG_WITH(dvbpsi,
2190   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2191   AC_ARG_WITH(dvbpsi,
2192   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2193   case "${with_dvbpsi}" in
2194   ""|yes)
2195     if test -z "${with_dvbpsi_tree}"
2196     then
2197       AC_CHECK_HEADERS(dvbpsi/dr.h,
2198         [ VLC_ADD_PLUGINS([ts])
2199           if test "${enable_sout}" != "no"; then
2200             VLC_ADD_PLUGINS([mux_ts])
2201           fi
2202           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
2203         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2204         [#if defined( HAVE_STDINT_H )
2205 #   include <stdint.h>
2206 #elif defined( HAVE_INTTYPES_H )
2207 #   include <inttypes.h>
2208 #endif
2209 #include <dvbpsi/dvbpsi.h>
2210 #include <dvbpsi/descriptor.h>
2211 #include <dvbpsi/pat.h>
2212 #include <dvbpsi/pmt.h>])
2213     else
2214       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2215       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2216       if test -z "${real_dvbpsi_tree}"
2217       then
2218         dnl  The given directory can't be found
2219         AC_MSG_RESULT(no)
2220         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2221       fi
2222       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2223       then
2224         dnl  Use a custom libdvbpsi
2225         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2226         VLC_ADD_BUILTINS([ts])
2227         if test "${enable_sout}" != "no"; then
2228           VLC_ADD_BUILTINS([mux_ts])
2229         fi
2230         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2231         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2232       else
2233         dnl  The given libdvbpsi wasn't built
2234         AC_MSG_RESULT(no)
2235         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2236       fi
2237     fi
2238   ;;
2239   no)
2240     dnl  Compile without dvbpsi
2241   ;;
2242   *)
2243     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2244     if test -z "${with_dvbpsi}"
2245     then
2246       LDFLAGS_test=""
2247       CPPFLAGS_test=""
2248     else
2249       LDFLAGS_test="-L${with_dvbpsi}/lib"
2250       CPPFLAGS_test="-I${with_dvbpsi}/include"
2251     fi
2252     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2253     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2254       VLC_ADD_PLUGINS([ts])
2255       if test "${enable_sout}" != "no"; then
2256         VLC_ADD_PLUGINS([mux_ts])
2257       fi
2258       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2259       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2260
2261     ],[
2262       if test -n "${enable_dvbpsi}"
2263       then
2264         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])
2265       fi
2266     ])
2267     CPPFLAGS="${CPPFLAGS_save}"
2268   ;;
2269   esac
2270   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2271     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2272   ], [], [${LDFLAGS_ts}])
2273
2274 fi
2275
2276 dnl
2277 dnl  Video4Linux plugin
2278 dnl
2279 AC_ARG_ENABLE(v4l,
2280   [  --enable-v4l            Video4Linux input support (default disabled)])
2281 if test "${enable_v4l}" = "yes"
2282 then
2283   AC_ARG_WITH(v4l,
2284     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2285   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2286   then
2287     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2288   fi
2289
2290   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2291   AC_CHECK_HEADERS(linux/videodev.h, [
2292     VLC_ADD_PLUGINS([v4l])
2293   ],[])
2294   CPPFLAGS="${CPPFLAGS_save}"
2295 fi
2296
2297 dnl
2298 dnl  Video4Linux plugin
2299 dnl
2300 AC_ARG_ENABLE(v4l2,
2301   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2302 if test "${enable_v4l2}" = "yes"
2303 then
2304   AC_ARG_WITH(v4l2,
2305     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2306   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2307   then
2308     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2309   fi
2310
2311   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2312   AC_CHECK_HEADERS(linux/videodev2.h, [
2313     VLC_ADD_PLUGINS([v4l2])
2314   ],[])
2315   CPPFLAGS="${CPPFLAGS_save}"
2316 fi
2317
2318
2319 dnl
2320 dnl  special access module for Hauppauge PVR cards
2321 dnl
2322 AC_ARG_ENABLE(pvr,
2323   [  --enable-pvr            PVR cards access module (default disabled)])
2324 if test "${enable_pvr}" = "yes"
2325 then
2326   VLC_ADD_PLUGINS([pvr])
2327   AC_ARG_WITH(videodev2,
2328     [  --with-videodev2=FILE   Location of videodev2.h file (default /usr/include/linux/videodev2.h)],[],[])
2329   if test "${with_videodev2}" != "no" -a -n "${with_videodev2}"
2330   then
2331     AC_DEFINE_UNQUOTED(VIDEODEV2_H_FILE, "${with_videodev2}", [Location of videodev2.h])
2332   fi
2333     
2334
2335   AC_CACHE_CHECK([for new linux/videodev2.h],
2336       [new_linux_videodev2_h],
2337       [AC_TRY_COMPILE([
2338           #include <sys/types.h>
2339           #   ifdef VIDEODEV2_H_FILE
2340           #   include VIDEODEV2_H_FILE
2341           #   else
2342           #   include <linux/videodev2.h>
2343           #   endif
2344           ],
2345           [struct v4l2_ext_controls ctrls; ctrls.ctrl_class = V4L2_CTRL_CLASS_MPEG; ],
2346           new_linux_videodev2_h=yes,
2347           new_linux_videodev2_h=no)])
2348   if test "${new_linux_videodev2_h}" != "no"; then
2349     AC_DEFINE(HAVE_NEW_LINUX_VIDEODEV2_H, 1, [Define if new linux/videodev2.h present])
2350   fi
2351 fi
2352
2353 dnl
2354 dnl  gnomeVFS access module
2355 dnl
2356 AC_ARG_ENABLE(gnomevfs,
2357   [  --enable-gnomevfs       GnomeVFS access module (default disabled)])
2358 if test "${enable_gnomevfs}" = "yes" 
2359 then
2360   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2361     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2362     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2363     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2364     VLC_ADD_PLUGINS([access_gnomevfs]),
2365     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2366 fi
2367
2368 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2369 AC_ARG_ENABLE(libcdio,
2370   [  --enable-libcdio        CD input and control library support (default enabled)])
2371
2372
2373 have_libcdio=no
2374 have_libvcdinfo=no
2375 if test "${enable_libcdio}" != "no"
2376 then
2377   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.78.2,
2378      have_libcdio=yes
2379      AC_DEFINE(HAVE_LIBCDIO, [], 
2380      [Define if you have libcdio 0.78.2 or greater installed]),
2381      [AC_MSG_WARN(CD Reading and information library not found)])
2382
2383   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.22,
2384      [have_libvcdinfo=yes
2385      AC_DEFINE(HAVE_VCDINFO, [], 
2386      [Define if you have libvcdinfo 0.7.22 or greater installed])],
2387      [AC_MSG_WARN(VCD information library not found)])
2388 fi
2389
2390 dnl
2391 dnl  VCDX and CDDAX modules
2392 dnl
2393 AC_ARG_ENABLE(cddax,
2394   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2395  
2396 AC_ARG_ENABLE(libcddb,
2397   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2398  
2399 if test "${enable_cddax}" = "yes"
2400 then
2401   if test "$have_libcdio" = "yes"
2402   then
2403     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2404     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2405     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2406     VLC_ADD_PLUGINS([cddax])
2407     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2408     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2409     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2410   else 
2411     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2412     HAVE_CDDAX=no
2413   fi
2414
2415   if test "$enable_libcddb" != "no"; then
2416     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2417       HAVE_LIBCDDB=yes 
2418       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2419       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2420       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2421       ],
2422       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2423       HAVE_LIBCDDB=no])
2424   fi
2425  
2426 fi
2427
2428 AC_ARG_ENABLE(vcdx,
2429   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2430  
2431 if test "${enable_vcdx}" = "yes"
2432 then
2433   if test "${have_libvcdinfo}" = "yes"
2434   then
2435     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2436     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2437   else 
2438     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2439     HAVE_VCDX=no
2440   fi
2441
2442   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2443    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2444     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2445     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2446     HAVE_VCDX=no])
2447
2448   if test "$have_libvcdinfo" = "yes"
2449   then
2450     AC_DEFINE(HAVE_VCDX, [], 
2451     [Define for the VCD plugin using libcdio/libvcdinfo])
2452     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2453     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2454     VLC_ADD_PLUGINS([vcdx])
2455   else 
2456     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2457     HAVE_VCDX=no
2458   fi
2459 fi
2460
2461 dnl
2462 dnl  Built-in CD-DA and VCD module
2463 dnl
2464 AC_ARG_ENABLE(cdda,           
2465   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2466  
2467 AC_ARG_ENABLE(vcd,
2468   [  --enable-vcd            built-in VCD (default enabled)])
2469
2470 if test "${enable_vcd}" != "no"
2471 then
2472   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2473   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2474     AC_MSG_RESULT(yes)
2475     VLC_ADD_PLUGINS([vcd cdda])
2476   ],[
2477     AC_MSG_RESULT(no)
2478   ])
2479
2480   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2481   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2482     AC_MSG_RESULT(yes)
2483     VLC_ADD_PLUGINS([vcd cdda])
2484     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2485   ],[
2486     AC_MSG_RESULT(no)
2487   ])
2488
2489   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2490   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2491     AC_MSG_RESULT(yes)
2492     VLC_ADD_PLUGINS([vcd cdda])
2493     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2494   ],[
2495     AC_MSG_RESULT(no)
2496   ])
2497
2498   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2499   then
2500     VLC_ADD_PLUGINS([vcd cdda])
2501   fi
2502
2503   if test "${SYS}" = "darwin"
2504   then
2505     VLC_ADD_PLUGINS([vcd cdda])
2506     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-Wl,-framework,IOKit,-framework,CoreFoundation])
2507     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2508   fi
2509
2510   if test "$enable_libcddb" != "no"; then
2511     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2512       HAVE_LIBCDDB=yes 
2513       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2514       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2515       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2516       ],:
2517       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2518       HAVE_LIBCDDB=no])
2519   fi
2520 fi
2521
2522 dnl
2523 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2524 dnl
2525 AC_ARG_ENABLE(dvb,
2526   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2527
2528 if test "${enable_dvb}" = "yes"
2529 then
2530   AC_ARG_WITH(dvb,
2531   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2532   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2533   then
2534     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2535   fi
2536   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2537   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2538     if test -z "${with_dvbpsi_tree}"
2539     then
2540       VLC_ADD_PLUGINS([dvb])
2541     else
2542       VLC_ADD_BUILTINS([dvb])
2543     fi
2544   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2545   CPPFLAGS="${CPPFLAGS_save}"
2546 fi
2547
2548 dnl
2549 dnl  Screen capture module
2550 dnl
2551 AC_ARG_ENABLE(screen,
2552   [  --enable-screen         Screen capture support (default enabled)])
2553 if test "${enable_screen}" != "no"; then
2554   if test "${SYS}" = "darwin"; then
2555     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2556       VLC_ADD_PLUGINS([screen])
2557       VLC_ADD_LDFLAGS([screen],[-Wl,-framework,ApplicationServices])
2558     ])
2559   elif test "${SYS}" = "mingw32"; then
2560     VLC_ADD_PLUGINS([screen])
2561     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2562   elif test "${SYS}" = "mingwce"; then
2563     CPPFLAGS="${CPPFLAGS_save}"
2564   elif test "${SYS}" = "beos"; then
2565     VLC_ADD_PLUGINS([screen])
2566     VLC_ADD_CXXFLAGS([screen],[])
2567     VLC_ADD_LDFLAGS([screen],[-lbe])
2568   else
2569     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2570     AC_CHECK_HEADERS(X11/Xlib.h, [
2571       VLC_ADD_PLUGINS([screen])
2572       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11])
2573       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2574     ])
2575     CPPFLAGS="${CPPFLAGS_save}"
2576   fi
2577 fi
2578
2579 dnl
2580 dnl  ipv6 plugin - not for QNX yet
2581 dnl
2582 have_ipv6=no
2583 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2584   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2585 ])
2586
2587 AS_IF([test "${have_ipv6}" = "yes"], [
2588   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2589
2590
2591 AC_CHECK_FUNCS(inet_ntop,[
2592   AC_DEFINE(HAVE_INET_NTOP, 1, [Define to 1 if you have inet_ntop().])])
2593
2594
2595 dnl
2596 dnl  ogg demux plugin
2597 dnl
2598 AC_ARG_ENABLE(ogg,
2599   [  --enable-ogg            Ogg demux support (default enabled)])
2600 if test "${enable_ogg}" != "no"
2601 then
2602   AC_ARG_WITH(ogg-tree,
2603   [    --with-ogg-tree=PATH  ogg tree for static linking])
2604   if test -n "${with_ogg_tree}"
2605   then
2606     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2607     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2608     if test -z "${real_ogg_tree}"
2609     then
2610       dnl  The given directory can't be found
2611       AC_MSG_RESULT(no)
2612       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2613     fi
2614     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2615     then
2616       dnl  Use a custom ogg
2617       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2618       VLC_ADD_PLUGINS([ogg])
2619       if test "${enable_sout}" != "no"; then
2620         VLC_ADD_PLUGINS([mux_ogg])
2621       fi
2622       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2623       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2624     else
2625       dnl  The given ogg wasn't built
2626       AC_MSG_RESULT(no)
2627       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2628     fi
2629   else
2630     AC_CHECK_HEADERS(ogg/ogg.h, [
2631       AC_CHECK_LIB( ogg, oggpack_read, [
2632         VLC_ADD_PLUGINS([ogg])
2633         if test "${enable_sout}" != "no"; then
2634           VLC_ADD_PLUGINS([mux_ogg])
2635         fi
2636         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2637      ],[])
2638   fi
2639 fi
2640
2641 dnl
2642 dnl  matroska demux plugin
2643 dnl
2644 AC_ARG_ENABLE(mkv,
2645   [  --enable-mkv            Matroska demux support (default enabled)])
2646 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2647   AC_LANG_PUSH(C++)
2648   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2649     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2650     AC_EGREP_CPP(yes,
2651       [#include <ebml/EbmlVersion.h>
2652        #ifdef LIBEBML_VERSION
2653        #if LIBEBML_VERSION >= 0x000706
2654        yes
2655        #endif
2656        #endif],
2657       [AC_MSG_RESULT([yes])
2658         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2659           AC_MSG_CHECKING(for libmatroska version >= 0.7.7)
2660           AC_EGREP_CPP(yes,
2661             [#include <matroska/KaxVersion.h>
2662              #ifdef LIBMATROSKA_VERSION
2663              #if LIBMATROSKA_VERSION >= 0x000705
2664              yes
2665              #endif
2666              #endif],
2667             [AC_MSG_RESULT([yes])
2668               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2669               VLC_ADD_CXXFLAGS([mkv],[])
2670               if test "${SYS}" = "darwin"; then
2671                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2672               fi
2673               AC_CHECK_LIB(ebml_pic, main, [
2674                 VLC_ADD_PLUGINS([mkv])
2675                 VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml_pic])
2676               ],
2677                 AC_CHECK_LIB(ebml, main, [
2678                   VLC_ADD_PLUGINS([mkv])
2679                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2680                 ]) 
2681               )
2682             ],
2683             [AC_MSG_RESULT([no])
2684               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.])
2685           ])
2686         ])
2687       ],
2688       [AC_MSG_RESULT([no])
2689         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.])
2690     ])
2691   ])
2692   AC_LANG_POP(C++)
2693 fi
2694
2695 dnl
2696 dnl  modplug demux plugin
2697 dnl
2698 AC_ARG_ENABLE(mod,
2699   [  --enable-mod            Mod demux support (default enabled)])
2700 if test "${enable_mod}" != "no"
2701 then
2702   AC_ARG_WITH(mod-tree,
2703   [    --with-mod-tree=PATH mod tree for static linking])
2704   if test -n "${with_mod_tree}"
2705   then
2706     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2707     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2708     if test -z "${real_mod_tree}"
2709     then
2710       dnl  The given directory can't be found
2711       AC_MSG_RESULT(no)
2712       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2713     fi
2714     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2715     then
2716       dnl  Use a custom mod
2717       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2718       VLC_ADD_PLUGINS([mod])
2719       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2720       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2721     else
2722       dnl  The given mod wasn't built
2723       AC_MSG_RESULT(no)
2724       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2725     fi
2726   else
2727     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2728       VLC_ADD_PLUGINS([mod])
2729       VLC_ADD_CXXFLAGS([mod],[])
2730       VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])])
2731   fi
2732 fi
2733
2734 dnl
2735 dnl  mpc demux plugin
2736 dnl
2737 AC_ARG_ENABLE(mpc,
2738   [  --enable-mpc            Mpc demux support (default enabled)])
2739 if test "${enable_mpc}" != "no"
2740 then
2741   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2742     VLC_ADD_PLUGINS([mpc])
2743     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2744 fi
2745
2746 dnl
2747 dnl  game music emu demux plugin
2748 dnl
2749 AC_ARG_ENABLE(gme,
2750   [  --enable-gme            Game Music Emu demux support (default enabled)])
2751 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2752 then
2753   AC_LANG_PUSH(C++)
2754   AC_ARG_WITH(gme-tree,
2755   [    --with-gme-tree=PATH gme tree for static linking])
2756   if test -n "${with_gme_tree}"
2757   then
2758     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2759     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2760     if test -z "${real_gme_tree}"
2761     then
2762       dnl  The given directory can't be found
2763       AC_MSG_RESULT(no)
2764       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2765     fi
2766     if test -f "${real_gme_tree}/gme/libgme.a"
2767     then
2768       dnl  Use a custom gme
2769       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2770       VLC_ADD_PLUGINS([gme])
2771       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2772       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2773     else
2774       dnl  The given gme wasn't built
2775       AC_MSG_RESULT(no)
2776       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2777     fi
2778   else
2779       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2780   fi
2781   AC_LANG_POP(C++)
2782 fi
2783
2784 dnl
2785 dnl  Codec plugins
2786 dnl
2787
2788 AC_ARG_WITH(,[Codec plugins:])
2789
2790 dnl
2791 dnl  mad plugin
2792 dnl
2793 AC_ARG_ENABLE(mad,
2794   [  --enable-mad            libmad module (default enabled)])
2795 if test "${enable_mad}" != "no"
2796 then
2797   AC_ARG_WITH(mad,
2798     [    --with-mad=PATH       path to libmad],[],[])
2799   if test "${with_mad}" != "no" -a -n "${with_mad}"
2800   then
2801     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2802     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2803   fi
2804
2805   AC_ARG_WITH(mad-tree,
2806     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2807   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2808   then
2809     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2810     if test -z "${real_mad_tree}"
2811     then
2812       dnl  The given directory can't be found
2813       AC_MSG_RESULT(no)
2814       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2815     fi
2816     dnl  Use a custom libmad
2817     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2818     if test -f ${real_mad_tree}/mad.h
2819     then
2820       AC_MSG_RESULT(yes)
2821       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2822       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2823       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2824       AC_CHECK_LIB(mad, mad_bit_init, [
2825         VLC_ADD_BUILTINS([mpgatofixed32])
2826         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2827         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2828       ],[])
2829       LDFLAGS="${LDFLAGS_save}"
2830     else
2831       AC_MSG_RESULT(no)
2832       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2833     fi
2834   else
2835     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2836     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2837     AC_CHECK_HEADERS(mad.h, ,
2838       [ 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.]) ])
2839     AC_CHECK_LIB(mad, mad_bit_init, [
2840       VLC_ADD_PLUGINS([mpgatofixed32])
2841       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2842       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2843     CPPFLAGS="${CPPFLAGS_save}"
2844     LDFLAGS="${LDFLAGS_save}"
2845   fi
2846 fi
2847
2848 dnl
2849 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2850 dnl
2851 AC_ARG_ENABLE( id3tag,
2852   [  --disable-id3tag id3tag metadata reader plugin (default enabled)])
2853 AS_IF([test "${enable_id3tag}" != "no"], [
2854   AC_CHECK_HEADERS(id3tag.h, [
2855     AC_CHECK_HEADERS(zlib.h, [
2856       VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2857       VLC_ADD_PLUGINS([id3tag])
2858     ])
2859   ])
2860 ])
2861
2862 dnl
2863 dnl  ffmpeg decoder/demuxer plugin
2864 dnl
2865 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2866 dnl                             4- default place, 
2867
2868 AC_ARG_ENABLE(ffmpeg,
2869 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2870 if test "${enable_ffmpeg}" != "no"
2871 then
2872
2873 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2874
2875  AC_ARG_WITH(ffmpeg-mp3lame,
2876    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2877    [
2878      if test "$with_ffmpeg_mp3lame" = "yes";    then
2879         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2880      fi])
2881
2882  AC_ARG_WITH(ffmpeg-faac,
2883    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2884    [
2885      if test "$with_ffmpeg_faac" = "yes"; then
2886         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2887      fi])
2888
2889  AC_ARG_WITH(ffmpeg-dts,
2890    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2891    [
2892      if test "$with_ffmpeg_dts" = "yes"; then
2893              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2894              AC_CHECK_LIB(dts_pic, dts_free, 
2895                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2896                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2897              LDFLAGS="${LDFLAGS_save}"
2898      fi])
2899
2900  AC_ARG_WITH(ffmpeg-vorbis,
2901    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2902    [
2903      if test "$with_ffmpeg_vorbis" = "yes"; then
2904         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2905      fi])
2906
2907  AC_ARG_WITH(ffmpeg-theora,
2908    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2909    [
2910      if test "$with_ffmpeg_theora" = "yes"; then
2911         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2912      fi])
2913
2914  AC_ARG_WITH(ffmpeg-ogg,
2915    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2916    [
2917      if test "$with_ffmpeg_ogg" = "yes"; then
2918         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2919      fi])
2920
2921  AC_ARG_WITH(ffmpeg-zlib,
2922    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2923    [
2924      if test "$with_ffmpeg_zlib" = "yes"; then
2925                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2926      fi])
2927
2928  AC_ARG_WITH(ffmpeg-amrnb,
2929    [    --with-ffmpeg-amrnb specify if ffmpeg has been compiled with libamrnb support],
2930    [
2931      if test "$with_ffmpeg_amrnb" = "yes";      then
2932         VLC_ADD_LDFLAGS([ffmpeg],[-lamrnb])
2933      fi])
2934
2935  AC_ARG_WITH(ffmpeg-amrwb,
2936    [    --with-ffmpeg-amrwb specify if ffmpeg has been compiled with libamrwb support],
2937    [
2938      if test "$with_ffmpeg_amrwb" = "yes";      then
2939         VLC_ADD_LDFLAGS([ffmpeg],[-lamrwb])
2940      fi])
2941
2942  AC_ARG_WITH(ffmpeg-x264,
2943    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libamrnb support],
2944    [
2945      if test "$with_ffmpeg_x264" = "yes";       then
2946         VLC_ADD_LDFLAGS([ffmpeg],[-lx264])
2947      fi])
2948
2949  AC_ARG_WITH(ffmpeg-a52,
2950    [    --with-ffmpeg-x264 specify if ffmpeg has been compiled with libamrnb support],
2951    [
2952      if test "$with_ffmpeg_a52" = "yes";        then
2953         VLC_ADD_LDFLAGS([ffmpeg],[-la52])
2954      fi])
2955
2956  dnl
2957  dnl test for --with-ffmpeg-tree
2958  dnl
2959  AC_ARG_WITH(ffmpeg-tree,
2960    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2961
2962  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2963    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2964    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2965    if test -z "${real_ffmpeg_tree}"; then
2966      dnl  The given directory can't be found
2967      AC_MSG_RESULT(no)
2968      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2969    fi
2970    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2971      dnl  The given libavcodec wasn't built
2972      AC_MSG_RESULT(no)
2973      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2974    fi
2975    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2976      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2977        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2978      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2979         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2980         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2981      else
2982        dnl  The given libavcodec wasn't built with --enable-pp
2983        AC_MSG_RESULT(no)
2984        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2985      fi
2986    fi
2987    dnl  Use a custom libffmpeg
2988    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2989    
2990    dnl Use pkg-config to look for the ldflags in libav*-uninstalled.pc
2991    PKG_CONFIG_PATH_save="$PKG_CONFIG_PATH"
2992    PKG_CONFIG_LIBDIR_save="$PKG_CONFIG_LIBDIR"
2993    export PKG_CONFIG_PATH=""
2994    export PKG_CONFIG_LIBDIR="${real_ffmpeg_tree}"
2995   
2996    PKG_CHECK_MODULES( [FFMPEG],[libavcodec libavformat libpostproc], [
2997         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_CFLAGS})
2998         VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher], ${FFMPEG_LIBS})]
2999       ,[])
3000    AS_IF([test -n "${PKG_CONFIG_PATH_save}"],[
3001          export PKG_CONFIG_PATH="${PKG_CONFIG_PATH_save}"
3002    ],[
3003         unset PKG_CONFIG_PATH
3004    ])
3005    AS_IF([test -n "${PKG_CONFIG_LIBDIR_save}"],[   
3006         export PKG_CONFIG_LIBDIR="${PKG_CONFIG_LIBDIR_save}"   
3007    ],[
3008         unset PKG_CONFIG_LIBDIR
3009    ])
3010    
3011    VLC_ADD_BUILTINS([ffmpeg])
3012    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
3013      VLC_ADD_BUILTINS([stream_out_switcher])
3014    fi
3015
3016
3017    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3018      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3019      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3020      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3021    fi
3022 else    
3023     
3024 dnl Look for a ffmpeg-config (we are on debian )
3025  
3026   FFMPEG_PATH="${PATH}"
3027   AC_ARG_WITH(ffmpeg-config-path,
3028     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
3029     [ if test "${with_ffmpeg_config_path}" != "no"
3030       then
3031         FFMPEG_PATH="${with_ffmpeg_config_path}"
3032       fi ])
3033   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
3034   if test "${FFMPEG_CONFIG}" != "no"
3035   then
3036     AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3037     AC_CHECK_HEADERS(ffmpeg/avformat.h)
3038     AC_CHECK_HEADERS(ffmpeg/avutil.h)
3039     AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3040     VLC_ADD_PLUGINS([ffmpeg])
3041     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3042         VLC_ADD_PLUGINS([stream_out_switcher])
3043     fi
3044     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
3045     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
3046  
3047  else
3048
3049 dnl Trying with pkg-config
3050    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3051     [
3052      VLC_SAVE_FLAGS
3053      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3054      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3055      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3056      AC_CHECK_HEADERS(ffmpeg/avformat.h)
3057      AC_CHECK_HEADERS(ffmpeg/avutil.h)
3058      dnl newer ffmpeg have a separate libpostproc
3059      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3060        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3061        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
3062        ],[ true ])
3063      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3064      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3065      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3066      if test "${SYS}" = "darwin"; then
3067         VLC_ADD_BUILTINS([ffmpeg])
3068      else
3069         VLC_ADD_PLUGINS([ffmpeg])
3070      fi
3071      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3072         if test "${SYS}" = "darwin"; then
3073             VLC_ADD_BUILTINS([stream_out_switcher])
3074         else
3075             VLC_ADD_PLUGINS([stream_out_switcher])
3076         fi
3077      fi
3078      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3079      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3080      dnl even newer ffmpeg has a libswscale
3081      PKG_CHECK_MODULES(SWSCALE, libswscale,[
3082        VLC_ADD_CFLAGS([ffmpeg],[${SWSCALE_CFLAGS}]) 
3083        VLC_ADD_LDFLAGS([ffmpeg],[${SWSCALE_LIBS}]) 
3084        AC_CHECK_LIB(swscale, sws_getContext,
3085          [AC_CHECK_HEADERS(ffmpeg/swscale.h)],[])
3086        ],[ true ])
3087      VLC_RESTORE_FLAGS
3088     ],[
3089      
3090     dnl
3091     dnl last chance: at the default place
3092     dnl
3093       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
3094       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
3095       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3096       AC_CHECK_HEADERS(ffmpeg/avformat.h)
3097       AC_CHECK_HEADERS(ffmpeg/avutil.h)
3098       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3099
3100       AC_CHECK_LIB(avutil, av_crc_init, [
3101         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
3102         LDAVUTIL="-lavutil"])
3103
3104       AC_CHECK_LIB(avcodec, avcodec_init, [
3105         VLC_ADD_BUILTINS([ffmpeg])
3106         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
3107         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3108             VLC_ADD_BUILTINS([stream_out_switcher])
3109         fi],
3110          [ 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])
3111
3112       
3113       AC_CHECK_LIB(postproc, pp_postprocess, [
3114         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])],
3115         AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3116         [$LDAVUTIL])
3117
3118       AC_CHECK_LIB(avformat, av_open_input_stream, [
3119         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3120       LDFLAGS="${LDFLAGS_save}"
3121       CPPFLAGS="${CPPFLAGS_save}"
3122
3123       AC_CHECK_LIB(swscale, sws_getContext, [
3124         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3125         VLC_ADD_LDFLAGS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3126       LDFLAGS="${LDFLAGS_save}"
3127       CPPFLAGS="${CPPFLAGS_save}"
3128     ])
3129   fi
3130  fi 
3131 fi
3132
3133 dnl
3134 dnl  ffmpegaltivec plugin
3135 dnl
3136 AC_ARG_ENABLE(ffmpegaltivec,
3137 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3138 if test "${enable_ffmpegaltivec}" = "yes"
3139 then
3140   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3141     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3142     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3143     if test -z "${real_ffmpeg_tree}"; then
3144       dnl  The given directory can't be found
3145       AC_MSG_RESULT(no)
3146       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3147     fi
3148     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3149       dnl  The given libavcodecaltivec wasn't built
3150       AC_MSG_RESULT(no)
3151       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3152     fi
3153     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3154       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3155       AC_MSG_RESULT(no)
3156       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3157     fi
3158     dnl  Use a custom libffmpeg
3159     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3160     VLC_ADD_BUILTINS([ffmpegaltivec])
3161     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3162     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3163     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3164
3165     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3166       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3167       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3168       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3169     fi
3170     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3171     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3172   fi
3173 fi
3174
3175 dnl
3176 dnl  faad decoder plugin
3177 dnl
3178 AC_ARG_ENABLE(faad,
3179 [  --enable-faad           faad codec (default disabled)])
3180 if test "${enable_faad}" = "yes"
3181 then
3182   AC_ARG_WITH(faad-tree,
3183   [    --with-faad-tree=PATH faad tree for static linking])
3184   if test -n "${with_faad_tree}"
3185   then
3186     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3187     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3188     if test -z "${real_faad_tree}"
3189     then
3190       dnl  The given directory can't be found
3191       AC_MSG_RESULT(no)
3192       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3193     fi
3194     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3195     then
3196       dnl  Use a custom faad
3197       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3198       VLC_ADD_BUILTINS([faad])
3199       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3200       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3201     else
3202       dnl  The given libfaad wasn't built
3203       AC_MSG_RESULT(no)
3204       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3205     fi
3206   else
3207     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3208     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
3209     AC_CHECK_HEADERS(faad.h, ,
3210       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3211     AC_CHECK_LIB(faad, faacDecOpen, [
3212       VLC_ADD_PLUGINS([faad])
3213       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
3214       AC_CHECK_LIB(faad, NeAACDecOpen, [
3215         VLC_ADD_PLUGINS([faad])
3216         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
3217         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
3218     LDFLAGS="${LDFLAGS_save}"
3219     CPPFLAGS="${CPPFLAGS_save}"
3220   fi
3221 fi
3222
3223 dnl
3224 dnl twolame encoder plugin
3225 dnl
3226 AC_ARG_ENABLE(twolame,
3227 [  --enable-twolame        twolame codec (default disabled)])
3228 if test "${enable_twolame}" = "yes"
3229 then
3230   AC_ARG_WITH(twolame-tree,
3231   [    --with-twolame-tree=PATH twolame tree for static linking])
3232   if test -n "${with_twolame_tree}"
3233   then
3234     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3235     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3236     if test -z "${real_twolame_tree}"
3237     then
3238       dnl  The given directory can't be found
3239       AC_MSG_RESULT(no)
3240       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3241     fi
3242     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3243     then
3244       dnl  Use a custom twolame
3245       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3246       VLC_ADD_BUILTINS([twolame])
3247       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3248       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3249     else
3250       dnl  The given libtwolame wasn't built
3251       AC_MSG_RESULT(no)
3252       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3253     fi
3254   else
3255     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3256     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3257     AC_CHECK_HEADERS(twolame.h, ,
3258       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3259     AC_CHECK_LIB(twolame, twolame_init, [
3260       VLC_ADD_PLUGINS([twolame])
3261       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3262       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
3263         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3264     LDFLAGS="${LDFLAGS_save}"  
3265     CPPFLAGS="${CPPFLAGS_save}"
3266   fi
3267 fi
3268
3269 dnl
3270 dnl  QuickTime plugin
3271 dnl
3272 AC_ARG_ENABLE(quicktime,
3273   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3274 if test "${enable_quicktime}" != "no" &&
3275   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3276 then
3277   if test "${SYS}" = "mingw32"; then
3278     VLC_ADD_BUILTINS([quicktime])
3279   else
3280   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3281     [ VLC_ADD_BUILTINS([quicktime])
3282       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3283     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3284   fi
3285 fi
3286
3287 dnl
3288 dnl  Real plugin
3289 dnl
3290 AC_ARG_ENABLE(real,
3291   [  --enable-real           Real audio module (default disabled)])
3292 if test "${enable_real}" = "yes"; then
3293   VLC_ADD_PLUGINS([realaudio])
3294 fi
3295
3296 dnl
3297 dnl  Real RTSP plugin
3298 dnl
3299 AC_ARG_ENABLE(realrtsp,
3300   [  --enable-realrtsp       Real RTSP module (default disabled)])
3301 if test "${enable_realrtsp}" = "yes"; then
3302   VLC_ADD_PLUGINS([access_realrtsp])
3303 fi
3304
3305 dnl
3306 dnl MP4 module
3307 dnl
3308 AC_CHECK_HEADERS(zlib.h, [
3309   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3310 ] )
3311
3312 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3313   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3314 ] )
3315
3316 dnl
3317 dnl skins2 module
3318 dnl
3319 AC_ARG_ENABLE(libtar,
3320   [  --enable-libtar support for skins2 (default enabled)])
3321
3322 AS_IF([test "${enable_libtar}" != "no"],[
3323   AC_CHECK_HEADERS(libtar.h, [
3324     VLC_ADD_LDFLAGS([skins2],[-ltar])
3325   ] )
3326 ])
3327
3328 dnl
3329 dnl A52/AC3 decoder plugin
3330 dnl
3331 AC_ARG_ENABLE(a52,
3332   [  --enable-a52            A/52 support with liba52 (default enabled)])
3333 if test "${enable_a52}" != "no"
3334 then
3335   AC_ARG_WITH(a52,
3336     [    --with-a52=PATH       a52 headers and libraries])
3337   AC_ARG_WITH(a52-tree,
3338     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3339   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3340   then
3341     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3342     if test -z "${real_a52_tree}"
3343     then
3344       dnl  The given directory can't be found
3345       AC_MSG_RESULT(no)
3346       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3347     fi
3348     dnl  Use a custom a52dec
3349     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3350     if test -f ${real_a52_tree}/include/a52.h
3351     then
3352       AC_MSG_RESULT(yes)
3353       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3354       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3355       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3356       AC_CHECK_LIB(a52, a52_free, [
3357         VLC_ADD_BUILTINS([a52tofloat32])
3358         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3359         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3360         ],[
3361         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3362         then
3363           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3364         else
3365           AC_MSG_ERROR([the specified tree hasn't been compiled])
3366         fi
3367       ])
3368       LDFLAGS="${LDFLAGS_save}"
3369     else
3370       AC_MSG_RESULT(no)
3371       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3372     fi
3373   else
3374     if test -z "${with_a52}"
3375     then
3376       LDFLAGS_test=""
3377       CPPFLAGS_test=""
3378     else
3379       LDFLAGS_test="-L${with_a52}/lib"
3380       CPPFLAGS_test="-I${with_a52}/include"
3381     fi
3382     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3383     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3384     AC_CHECK_HEADERS(a52dec/a52.h, [
3385       AC_CHECK_LIB(a52, a52_free, [
3386         VLC_ADD_PLUGINS([a52tofloat32])
3387         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3388         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3389       ],[
3390         AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3391         ])
3392     ],[
3393       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3394     ])
3395     CPPFLAGS="${CPPFLAGS_save}"
3396     LDFLAGS="${LDFLAGS_save}"
3397   fi
3398 fi
3399
3400 AC_ARG_WITH(a52-fixed,
3401       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3402       [
3403         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3404
3405 dnl
3406 dnl DTS Coherent Acoustics decoder plugin
3407 dnl
3408 AS_IF([test "x${enable_dts}" != "x"], [
3409   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3410 ])
3411 AS_IF([test "x${with_dts_tree}" != "x"], [
3412   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3413 ])
3414
3415 AC_ARG_ENABLE(dca,
3416   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3417 AS_IF([test "${enable_dca}" != "no"], [
3418   AC_ARG_WITH(dca-tree,
3419     [    --with-dca-tree=PATH  libdca tree for static linking],,
3420     [with_dca_tree="no"])
3421   AS_IF([test "${with_dca_tree}" != "no"], [
3422     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3423     AS_IF([test -z "${real_dca_tree}"], [
3424       dnl  The given directory can't be found
3425       AC_MSG_RESULT(no)
3426       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3427     ])
3428     dnl  Use a custom libdca
3429     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3430     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3431       AC_MSG_RESULT(yes)
3432       VLC_ADD_LDFLAGS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3433       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3434         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3435       ], [
3436         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3437       ])
3438     ], [
3439       AC_MSG_RESULT(no)
3440       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3441     ])
3442   ], [
3443     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3444       VLC_ADD_PLUGINS([dtstofloat32])
3445       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3446       VLC_ADD_LDFLAGS([dtstofloat32], [${DCA_LIBS}])
3447     ], [
3448       AS_IF([test "x${enable_dca}" != "x"], [
3449         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3450       ])
3451     ])
3452   ])
3453 ])
3454
3455 dnl
3456 dnl  Flac plugin
3457 dnl
3458 AC_ARG_ENABLE(flac,
3459   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3460 if test "${enable_flac}" = "yes"
3461 then
3462   AC_ARG_WITH(flac-tree,
3463   [    --with-flac-tree=PATH flac tree for static linking])
3464   if test -n "${with_flac_tree}"
3465   then
3466     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3467     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3468     if test -z "${real_flac_tree}"
3469     then
3470       dnl  The given directory can't be found
3471       AC_MSG_RESULT(no)
3472       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3473     fi
3474     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3475     then
3476       dnl  Use a custom flac
3477       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3478       VLC_ADD_LDFLAGS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3479       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3480       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3481     else
3482       dnl  The given flac wasn't built
3483       AC_MSG_RESULT(no)
3484       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3485     fi
3486   else
3487     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3488       VLC_ADD_LDFLAGS([flac],[-lFLAC -logg])
3489      ],[])
3490   fi
3491 fi
3492
3493 dnl
3494 dnl  Libmpeg2 plugin
3495 dnl
3496 AC_ARG_ENABLE(libmpeg2,
3497   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3498 if test "${enable_libmpeg2}" != "no"
3499 then
3500   AC_ARG_WITH(libmpeg2-tree,
3501   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3502   if test -n "${with_libmpeg2_tree}"
3503   then
3504     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3505     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3506     if test -z "${real_libmpeg2_tree}"
3507     then
3508       dnl  The given directory can't be found
3509       AC_MSG_RESULT(no)
3510       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3511     fi
3512     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3513     then
3514       dnl  Use a custom libmpeg2
3515       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3516       VLC_ADD_BUILTINS([libmpeg2])
3517       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3518       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3519       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3520     else
3521       dnl  The given libmpeg2 wasn't built
3522       AC_MSG_RESULT(no)
3523       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3524     fi
3525   else
3526     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3527       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3528       AC_EGREP_CPP(yes,
3529         [#include <mpeg2dec/mpeg2.h>
3530          #ifdef MPEG2_RELEASE
3531          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3532          yes
3533          #endif
3534          #endif],
3535         [AC_MSG_RESULT([yes])
3536           VLC_ADD_PLUGINS([libmpeg2])
3537           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3538         [AC_MSG_RESULT([no])
3539           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3540
3541       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3542     )
3543   fi
3544 fi
3545
3546 dnl
3547 dnl  Vorbis plugin
3548 dnl
3549 AC_ARG_ENABLE(vorbis,
3550   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3551 if test "${enable_vorbis}" != "no"
3552 then
3553   AC_ARG_WITH(vorbis-tree,
3554   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3555   if test -n "${with_vorbis_tree}"
3556   then
3557     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3558     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3559     if test -z "${real_vorbis_tree}"
3560     then
3561       dnl  The given directory can't be found
3562       AC_MSG_RESULT(no)
3563       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3564     fi
3565     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3566     then
3567       dnl  Use a custom vorbis 
3568       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3569       VLC_ADD_PLUGINS([vorbis])
3570       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3571       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3572     else
3573       dnl  The given vorbis wasn't built
3574       AC_MSG_RESULT(no)
3575       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3576     fi
3577   else
3578     AC_CHECK_HEADERS(vorbis/codec.h, [
3579       VLC_ADD_PLUGINS([vorbis])
3580       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[])
3581
3582     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3583       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[])
3584   fi
3585 fi
3586
3587 dnl
3588 dnl  Tremor plugin
3589 dnl
3590 AC_ARG_ENABLE(tremor,
3591   [  --enable-tremor         Tremor decoder support (default disabled)])
3592 if test "${enable_tremor}" = "yes"
3593 then
3594   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3595     VLC_ADD_PLUGINS([tremor])
3596     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3597    ],[])
3598 fi
3599
3600 dnl
3601 dnl  Speex plugin
3602 dnl
3603 AC_ARG_ENABLE(speex,
3604   [  --enable-speex          Speex decoder support (default enabled)])
3605 if test "${enable_speex}" != "no"
3606 then
3607   AC_ARG_WITH(speex-tree,
3608   [    --with-speex-tree=PATH speex tree for static linking])
3609   if test -n "${with_speex_tree}"
3610   then
3611     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3612     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3613     if test -z "${real_speex_tree}"
3614     then
3615       dnl  The given directory can't be found
3616       AC_MSG_RESULT(no)
3617       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3618     fi
3619     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3620     then
3621       dnl  Use a custom speex
3622       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3623       VLC_ADD_PLUGINS([speex])
3624       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3625       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3626     else
3627       dnl  The given speex wasn't built
3628       AC_MSG_RESULT(no)
3629       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3630     fi
3631   else
3632     AC_CHECK_HEADERS(speex/speex.h, [
3633       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3634       AC_CHECK_LIB(speex, speex_decode_int, [
3635         VLC_ADD_PLUGINS([speex])
3636         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3637         [ AC_MSG_RESULT([no])
3638           AC_MSG_WARN([Your libspeex is too old, please get the development
3639                        version.]) ],[])
3640       LDFLAGS="${LDFLAGS_save}"
3641       ],[])
3642   fi
3643 fi
3644
3645 dnl
3646 dnl  tarkin decoder plugin
3647 dnl
3648 AC_ARG_ENABLE(tarkin,
3649 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3650 if test "${enable_tarkin}" = "yes"
3651 then
3652   AC_ARG_WITH(tarkin-tree,
3653   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3654   if test -n "${with_tarkin_tree}"
3655   then
3656     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3657     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3658     if test -f "${real_tarkin_tree}/tarkin.o"
3659     then
3660       VLC_ADD_BUILTINS([tarkin])
3661       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3662       VLC_ADD_LDFLAGS([tarkin],[${real_tarkin_tree}/mem.o ${real_tarkin_tree}/pnm.o ${real_tarkin_tree}/wavelet.o ${real_tarkin_tree}/wavelet_xform.o ${real_tarkin_tree}/wavelet_coeff.o ${real_tarkin_tree}/yuv.o ${real_tarkin_tree}/tarkin.o ${real_tarkin_tree}/info.o -logg])
3663       AC_MSG_RESULT(yes)
3664     else
3665       dnl  The given tarkin tree wasn't built
3666       AC_MSG_RESULT(no)
3667       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3668                     make sure you compiled tarkin in ${with_tarkin_tree}])
3669     fi
3670   fi
3671 fi
3672
3673 dnl
3674 dnl  theora decoder plugin
3675 dnl
3676 AC_ARG_ENABLE(theora,
3677 [  --enable-theora         experimental theora codec (default disabled)])
3678 if test "${enable_theora}" = "yes"
3679 then
3680   AC_CHECK_HEADERS(theora/theora.h, [
3681     AC_CHECK_LIB(theora, theora_granule_time, [
3682       VLC_ADD_PLUGINS([theora])
3683       theora_libs="-ltheora -logg"
3684       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3685       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3686 You also need to check that you have a libogg posterior to the 1.0 release.])],
3687       [-logg])
3688   ])
3689 fi
3690
3691 dnl
3692 dnl  dirac decoder plugin
3693 dnl
3694 AC_ARG_ENABLE(dirac,
3695 [  --enable-dirac          experimental dirac codec (default disabled)])
3696 if test "${enable_dirac}" = "yes"; then
3697   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.6.0], [
3698       VLC_ADD_PLUGINS([dirac])
3699       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3700       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3701       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3702   ])
3703 fi
3704
3705 dnl
3706 dnl  PNG decoder module
3707 dnl
3708 AC_ARG_ENABLE(png,
3709   [  --enable-png            PNG support (default enabled)])
3710 if test "${enable_png}" != "no"; then
3711 AC_CHECK_HEADERS(png.h, [
3712   LDFLAGS="${LDFLAGS_save} -lz"
3713   AC_CHECK_LIB(png, png_set_rows, [
3714     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3715     VLC_ADD_PLUGINS([png])
3716     VLC_ADD_PLUGINS([osdmenu])
3717     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3718     [],[-lz])
3719   LDFLAGS="${LDFLAGS_save}"
3720   ])
3721 fi
3722
3723 dnl
3724 dnl H264 encoder plugin (using libx264)
3725 dnl
3726 AC_ARG_ENABLE(x264,
3727   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3728 if test "${enable_x264}" != "no"; then
3729   AC_ARG_WITH(x264-tree,
3730     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3731   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3732   then
3733     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3734     if test -z "${real_x264_tree}"
3735     then
3736       dnl  The given directory can't be found
3737       AC_MSG_RESULT(no)
3738       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3739     fi
3740     dnl  Use a custom libx264
3741     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3742     if test -f ${real_x264_tree}/x264.h
3743     then
3744       AC_MSG_RESULT(yes)
3745       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3746       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3747       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3748       AC_CHECK_LIB(x264, x264_encoder_open, [
3749         VLC_ADD_BUILTINS([x264])
3750         VLC_ADD_LDFLAGS([x264],[-lx264])
3751       ],[
3752         AC_MSG_ERROR([the specified tree hasn't been compiled])
3753       ])
3754       LDFLAGS="${LDFLAGS_save}"
3755     else
3756       AC_MSG_RESULT(no)
3757       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3758     fi
3759   else
3760     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3761     AC_CHECK_HEADERS(x264.h, [
3762       AC_CHECK_LIB(x264, x264_encoder_open, [
3763         VLC_ADD_PLUGINS([x264])
3764         VLC_ADD_LDFLAGS([x264],[-lx264])
3765       ],[
3766         if test "${enable_x264}" = "yes"; then
3767             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3768           fi
3769       ])
3770     ])
3771     LDFLAGS="${LDFLAGS_save}"
3772   fi
3773 fi
3774
3775 dnl
3776 dnl Teletext Modules
3777 dnl vbi decoder plugin (using libzbvi)
3778 dnl telx module
3779 dnl uncompatible
3780 dnl
3781 AC_ARG_ENABLE(zvbi,
3782   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3783 AC_ARG_ENABLE(telx,
3784   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3785
3786 AS_IF( [test "${enable_zvbi}" != "no"],[
3787   AS_IF( [test "${enable_telx}" = "yes"],[
3788     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3789   ],[
3790     PKG_CHECK_MODULES(ZVBI,
3791         zvbi-0.2 >= 0.2.25,
3792         [
3793           VLC_ADD_LDFLAGS([zvbi],[$ZVBI_LIBS])
3794           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3795           VLC_ADD_PLUGINS([zvbi])
3796           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3797         ],[
3798           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3799           enable_telx="yes"
3800         ])
3801     ])  
3802   ])
3803 AS_IF( [test "${enable_telx}" = "yes"],[
3804   VLC_ADD_PLUGINS([telx])
3805   ])
3806
3807 dnl
3808 dnl  CMML plugin
3809 dnl
3810 AC_ARG_ENABLE(cmml,
3811   [  --enable-cmml           CMML support (default enabled)])
3812 if test "${enable_cmml}" != "no"
3813 then
3814   VLC_ADD_PLUGINS([cmml])
3815 fi
3816
3817
3818 dnl
3819 dnl  Video plugins
3820 dnl
3821
3822 AC_ARG_WITH(,[Video plugins:])
3823
3824 dnl Check for DPMS
3825 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3826   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3827   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3828     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3829     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3830       AC_MSG_RESULT(yes)
3831       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3832                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3833     ],[
3834       AC_MSG_RESULT(no)
3835     ])
3836   ],,[
3837     #include <X11/Xlib.h>
3838   ])
3839   CPPFLAGS="${CPPFLAGS_save}"
3840 fi
3841
3842 dnl
3843 dnl  X11 module
3844 dnl  (enabled by default except on win32)
3845 dnl
3846 AC_ARG_ENABLE(x11,
3847   [  --enable-x11            X11 support (default enabled)])
3848 if test "${enable_x11}" != "no" &&
3849   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3850    test "${enable_x11}" = "yes"); then
3851   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3852   AC_CHECK_HEADERS(X11/Xlib.h, [
3853     VLC_ADD_PLUGINS([panoramix])
3854     VLC_ADD_LDFLAGS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3855     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3856     AC_CHECK_LIB(Xext, XShmAttach, [
3857       VLC_ADD_PLUGINS([x11])
3858       VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3859       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3860     ])
3861   ])
3862   CPPFLAGS="${CPPFLAGS_save}"
3863 fi
3864
3865 dnl
3866 dnl  XVideo module
3867 dnl  (enabled by default except on win32)
3868 dnl
3869 AC_ARG_ENABLE(xvideo,
3870   [  --enable-xvideo         XVideo support (default enabled)])
3871 if test "${enable_xvideo}" != "no" &&
3872   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3873    test "${enable_xvideo}" = "yes"); then
3874   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3875   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3876     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3877     AC_CHECK_LIB(Xv,XvPutImage,[
3878       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3879       # test for libXv_pic.
3880       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3881         VLC_ADD_PLUGINS([xvideo])
3882         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3883         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3884       else
3885         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3886           VLC_ADD_PLUGINS([xvideo])
3887           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3888           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3889         ],[
3890           VLC_ADD_BUILTINS([xvideo])
3891           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3892           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3893         ])
3894       fi
3895     ])
3896     CFLAGS="${CFLAGS_save}"
3897   ]
3898   CPPFLAGS="${CPPFLAGS_save}")
3899 fi
3900
3901 dnl
3902 dnl  GLX module
3903 dnl  (enabled by default except on win32)
3904 dnl
3905 AC_ARG_ENABLE(glx,
3906   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3907 if test "${enable_glx}" != "no" &&
3908   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3909    test "${enable_glx}" = "yes"); then
3910   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3911   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3912   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3913     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3914     choke me
3915     #endif]]),
3916     [
3917       VLC_ADD_PLUGINS([glx])
3918       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3919       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3920     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3921   CPPFLAGS="${CPPFLAGS_save}"
3922 fi
3923
3924 dnl
3925 dnl  XVMC module
3926 dnl  (enabled by default except on win32)
3927 dnl
3928 AC_ARG_ENABLE(xvmc,
3929   [  --enable-xvmc            XVMC support (default disabled)])
3930 if test "${enable_xvmc}" = "yes" &&
3931   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3932    test "${enable_xvmc}" = "yes"); then
3933   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3934   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3935     VLC_ADD_PLUGINS([xvmc])
3936     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3937     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3938   ])
3939   CPPFLAGS="${CPPFLAGS_save}"
3940 fi
3941
3942 dnl
3943 dnl  Check for the Xinerama extension
3944 dnl
3945 AC_ARG_ENABLE(xinerama,
3946   [  --enable-xinerama       Xinerama support (default enabled)])
3947 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3948   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3949    test "${enable_xvideo}" = "yes"); then
3950   ac_cv_have_xinerama="no"
3951   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3952   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3953   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3954     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3955       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3956       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3957       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3958       ac_cv_have_xinerama="yes"
3959     ],[
3960       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3961         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3962         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3963         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3964         ac_cv_have_xinerama="yes"
3965       ])
3966     ])
3967   ])
3968   if test "${ac_cv_have_xinerama}" = "yes"; then
3969     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3970   fi
3971   CFLAGS="${CFLAGS_save}"
3972   CPPFLAGS="${CPPFLAGS_save}"
3973
3974 dnl
3975 dnl  Check for XF86VidMode extension
3976 dnl
3977   ac_cv_have_xf86vidmode="no"
3978   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3979   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3980   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3981     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3982       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3983       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3984       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3985       ac_cv_have_xf86vidmode="yes"
3986     ],[
3987       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3988         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3989         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3990         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3991         ac_cv_have_xf86vidmode="yes"
3992       ])
3993     ])
3994   ],[true],
3995 [#ifdef HAVE_X11_XLIB_H
3996 # include <X11/Xlib.h>
3997 #endif]
3998    )
3999   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4000     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4001   ])
4002   CFLAGS="${CFLAGS_save}"
4003   CPPFLAGS="${CPPFLAGS_save}"
4004
4005 fi
4006
4007 dnl
4008 dnl  OpenGL module
4009 dnl  (enabled by default except on beos)
4010 dnl
4011 AC_ARG_ENABLE(opengl,
4012   [  --enable-opengl         OpenGL support (default enabled)])
4013 if test "${enable_opengl}" != "no" &&
4014    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4015   if test "${SYS}" != "darwin"; then
4016     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4017       VLC_ADD_PLUGINS([opengl])
4018       if test "${SYS}" != "mingw32"; then
4019         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
4020       else
4021         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
4022       fi
4023     ])
4024   else
4025     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4026     VLC_ADD_PLUGINS([opengl])
4027     VLC_ADD_LDFLAGS([opengl],[-Wl,-framework,OpenGL])
4028   fi
4029 fi
4030
4031 dnl
4032 dnl  SDL module
4033 dnl
4034 AC_ARG_ENABLE(sdl,
4035   [  --enable-sdl            SDL support (default enabled)])
4036 AC_ARG_ENABLE(sdl-image,
4037   [  --enable-sdl-image            SDL image support (default enabled)])
4038 if test "${enable_sdl}" != "no"
4039 then
4040   SDL_PATH="${PATH}"
4041   AC_ARG_WITH(sdl-config-path,
4042     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4043     [ if test "${with_sdl_config_path}" != "no"
4044       then
4045         SDL_PATH="${with_sdl_config_path}:${PATH}"
4046       fi ])
4047   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4048   SDL_CONFIG="${SDL12_CONFIG}"
4049   SDL_HEADER="SDL12/SDL.h"
4050   SDL_IMAGE="SDL12/SDL_image.h"
4051   if test "${SDL_CONFIG}" = "no"
4052   then
4053     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4054     SDL_CONFIG=${SDL11_CONFIG}
4055     SDL_HEADER="SDL11/SDL.h"
4056     SDL_IMAGE="SDL11/SDL_image.h"
4057   fi
4058   if test "${SDL_CONFIG}" = "no"
4059   then
4060     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4061     SDL_HEADER="SDL/SDL.h"
4062     SDL_IMAGE="SDL/SDL_image.h"
4063   fi
4064   # check for cross-compiling
4065   SDL_PREFIX=
4066   AC_ARG_WITH(sdl-prefix,
4067     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4068                                e.g use as:
4069                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4070   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4071   then
4072     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4073   fi
4074   if test "${SDL_CONFIG}" != "no"
4075   then
4076     # SDL on Darwin is heavily patched and can only run SDL_image
4077     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4078       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4079     fi
4080     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4081     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4082     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4083     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4084       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4085       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4086           As a last resort we also test for SDL.h presence),
4087       [ AC_MSG_ERROR([The development package for SDL is not installed.
4088 Please install it and try again. Alternatively you can also configure with
4089 --disable-sdl.])
4090       ])])
4091     AS_IF([ test "${enable_sdl_image}" != "no"],[
4092       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4093         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4094         VLC_ADD_PLUGINS([sdl_image])
4095         AC_CHECK_LIB(png, png_set_rows,
4096           [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
4097         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4098           [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
4099         AC_CHECK_LIB(tiff, TIFFClientOpen,
4100           [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
4101         VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
4102         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4103             As a last resort we also test for SDL_image.h presence),
4104         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4105   You should install it alongside your SDL package.])
4106         ])])
4107     ])
4108     CPPFLAGS="${CPPFLAGS_save}"
4109     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4110     then
4111       AC_MSG_ERROR([The development package for SDL is not installed.
4112 Please install it and try again. Alternatively you can also configure with
4113 --disable-sdl.])
4114     fi
4115
4116   elif test "${enable_sdl}" =  "yes"
4117   then
4118     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4119 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4120     ])
4121   fi
4122 fi
4123
4124 dnl
4125 dnl  freetype module
4126 dnl
4127 AC_ARG_ENABLE(freetype,
4128   [  --enable-freetype       freetype support (default enabled)])
4129 AC_ARG_ENABLE(fribidi,
4130   [  --enable-fribidi        fribidi support (default enabled)])
4131 if test "${enable_freetype}" != "no"
4132 then
4133   FREETYPE_PATH="${PATH}"
4134   AC_ARG_WITH(freetype-config-path,
4135     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4136     [ if test "${with_freetype_config_path}" != "no"
4137       then
4138         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4139       fi ])
4140   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4141
4142   if test "${FREETYPE_CONFIG}" != "no"
4143   then
4144     VLC_ADD_PLUGINS([freetype])
4145     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4146     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
4147     if test "${SYS}" = "mingw32"; then
4148        VLC_ADD_LDFLAGS([freetype],[-lxml2])]
4149     fi
4150     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4151       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4152        VLC_ADD_LDFLAGS([freetype],[-lfontconfig])])
4153     AC_CHECK_HEADERS(Carbon/Carbon.h,
4154       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4155   elif test "${enable_freetype}" =  "yes"
4156   then
4157     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4158 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4159     ])
4160   fi
4161
4162   dnl fribidi support
4163   if test "${enable_fribidi}" != "no"
4164   then
4165     FRIBIDI_PATH="${PATH}"
4166     AC_ARG_WITH(fribidi-config-path,
4167       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4168       [ if test "${with_fribidi_config_path}" != "no"
4169         then
4170           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4171         fi ])
4172     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4173
4174     if test "${FRIBIDI_CONFIG}" != "no"
4175     then
4176       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4177       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4178       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4179       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4180     fi
4181   fi
4182 fi
4183
4184 dnl
4185 dnl  libxml2 module
4186 dnl
4187 AC_ARG_ENABLE(libxml2,
4188   [  --enable-libxml2        libxml2 support (default enabled)])
4189 if test "${enable_libxml2}" != "no"
4190 then
4191   XML2_PATH="${PATH}"
4192   AC_ARG_WITH(xml2-config-path,
4193     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4194     [ if test "${with_xml2_config_path}" != "no"; then
4195         XML2_PATH="${with_xml2_config_path}:${PATH}"
4196       fi ])
4197   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4198   if test "${XML2_CONFIG}" != "no"; then
4199     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4200     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4201     dnl depends on the xmlTextReader extension
4202     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4203     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4204     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4205       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4206         VLC_ADD_PLUGINS([xml]) ],[
4207           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4208           if test "${enable_xml2}" = "yes"; then
4209             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4210           fi])
4211        ],[
4212       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4213       if test "${enable_xml2}" = "yes"; then
4214         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4215       fi])
4216     LDFLAGS="${LDFLAGS_save}"
4217     CPPFLAGS="${CPPFLAGS_save}"
4218   else
4219     if test "${enable_xml2}" = "yes"; then
4220       AC_MSG_ERROR([Could not find libxml2])
4221     fi
4222   fi
4223 fi
4224
4225 dnl
4226 dnl  SVG module
4227 dnl
4228 AC_ARG_ENABLE(svg,
4229   [  --enable-svg            SVG support (default disabled)])
4230 if test "${enable_svg}" = "yes"
4231 then
4232   PKG_CHECK_MODULES(SVG, 
4233         librsvg-2.0 >= 2.9.0,
4234         [
4235           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4236           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4237           VLC_ADD_PLUGINS([svg]) ],
4238         [AC_MSG_WARN(SVG library not found)])
4239 fi
4240
4241 dnl
4242 dnl Snapshot vout module (with cache)
4243 dnl
4244 AC_ARG_ENABLE(snapshot,
4245   [  --enable-snapshot       snapshot module (default disabled)])
4246 if test "${enable_snapshot}" = "yes"
4247 then
4248   VLC_ADD_PLUGINS([snapshot])
4249 fi
4250
4251 dnl
4252 dnl  Qt Embedded module
4253 dnl  (disabled by default)
4254 dnl
4255 AC_ARG_ENABLE(qte,
4256   [  --enable-qte            QT Embedded support (default disabled)])
4257 if test "${enable_qte}" = "yes"
4258 then
4259   AC_ARG_WITH(qte,
4260   [    --with-qte=PATH       Qt Embedded headers and libraries])
4261   if test "${with_qte}" != "no" -a -n "${with_qte}"
4262   then
4263     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4264     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])
4265   else
4266     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4267     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4268   fi
4269   VLC_ADD_PLUGINS([qte])
4270   NEED_QTE_MAIN=yes
4271   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4272   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4273     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4274   ] )
4275   CPPFLAGS="${CPPFLAGS_save}"
4276 fi
4277
4278 dnl
4279 dnl  Qt Video output module
4280 dnl  (disabled by default)
4281 dnl
4282 dnl AC_ARG_ENABLE(qt_video,
4283 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4284 dnl if test "${enable_qt_video}" = "yes"
4285 dnl then
4286 dnl  VLC_ADD_PLUGINS([qt_video])
4287 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
4288 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4289 dnl   AC_CHECK_LIB(qt-mt,main,[
4290 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4291 dnl  ],[
4292 dnl    AC_CHECK_LIB(qt,main,[
4293 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4294 dnl    ])
4295 dnl  ])
4296 dnl  NEED_QTE_MAIN=yes
4297 dnl  LDFLAGS="${LDFLAGS_save}"
4298 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4299 dnl fi
4300
4301 dnl
4302 dnl Roku HD1000 Video output module
4303 dnl
4304 AC_ARG_ENABLE(hd1000v,
4305   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4306 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4307   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4308    test "${enable_hd1000v}" = "yes"); then
4309   AC_LANG_PUSH([C++])
4310   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4311   [
4312     can_build_roku="yes"
4313   ],
4314   [
4315     can_build_roku="no"
4316     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4317   ])
4318   if test "$can_build_roku" = "yes"
4319   then
4320     VLC_ADD_PLUGINS([hd1000v])
4321     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4322   fi
4323   AC_LANG_POP([C++])
4324 fi
4325
4326 dnl
4327 dnl  Windows DirectX module
4328 dnl
4329
4330 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4331 then
4332   VLC_ADD_PLUGINS([panoramix])
4333 fi
4334
4335 AC_ARG_ENABLE(directx,
4336   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4337 if test "${enable_directx}" != "no"
4338 then
4339   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4340   then
4341     AC_ARG_WITH(directx,
4342     [    --with-directx=PATH   Win32 DirectX headers])
4343     if test -z "${with_directx}"
4344     then
4345       AC_CHECK_HEADERS(ddraw.h,
4346       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4347         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4348       ])
4349       AC_CHECK_HEADERS(GL/gl.h,
4350       [ VLC_ADD_PLUGINS([glwin32])
4351         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4352       ])
4353       AC_CHECK_HEADERS(d3d9.h,
4354       [ VLC_ADD_PLUGINS([direct3d])
4355         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4356       ])
4357     else
4358       AC_MSG_CHECKING(for directX headers in ${with_directx})
4359       if test -f ${with_directx}/ddraw.h
4360       then
4361         VLC_ADD_PLUGINS([vout_directx aout_directx])
4362         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4363         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4364         AC_MSG_RESULT(yes)
4365       else
4366         AC_MSG_RESULT(no)
4367         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4368       fi
4369     fi
4370   fi
4371 fi
4372
4373 dnl
4374 dnl  Linux framebuffer module
4375 dnl
4376 AC_ARG_ENABLE(fb,
4377   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4378     if test "${enable_fb}" != "no"
4379     then
4380       AC_CHECK_HEADERS(linux/fb.h, [
4381         VLC_ADD_PLUGINS([fb])
4382       ])
4383     fi
4384
4385 dnl
4386 dnl  Linux MGA module
4387 dnl
4388 AC_ARG_ENABLE(mga,
4389   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4390   [ if test "${enable_mga}" = "yes"
4391     then
4392       VLC_ADD_PLUGINS([mga])
4393     fi ])
4394
4395 dnl
4396 dnl  SVGAlib module
4397 dnl
4398 AC_ARG_ENABLE(svgalib,
4399   [  --enable-svgalib        SVGAlib support (default disabled)])
4400 if test "${enable_svgalib}" = "yes"
4401 then
4402   VLC_ADD_PLUGINS([svgalib])
4403   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4404 fi
4405
4406 dnl
4407 dnl  DirectFB module
4408 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4409 dnl  TODO: support for static linking
4410 dnl
4411 AC_ARG_ENABLE(directfb,
4412   [  --enable-directfb       DirectFB support (default disabled)])
4413 AC_ARG_WITH(directfb, 
4414   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4415
4416 if test "${enable_directfb}" = "yes"; then
4417     have_directfb="false"
4418     CPPFLAGS_mydirectfb=
4419     LDFLAGS_mydirectfb=
4420     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4421         dnl Trying the given location
4422         CPPFLAGS_save=${CPPFLAGS}
4423         LDFLAGS_save=${LDFLAGS}
4424
4425         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4426         LDFLAGS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4427         LDFLAGS_new="${LDFLAGS_new} -L${with_directfb}/src/.libs/"
4428
4429         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"