Add a growl (http://growl.info/) notification plugin (most of code from msn.c)
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2 dnl $Id$
3
4 AC_INIT(vlc,0.8.5-svn)
5 VERSION_MAJOR="0"
6 VERSION_MINOR="8"
7 VERSION_REVISION="5"
8 VERSION_EXTRA="svn"
9
10 CONFIGURE_LINE="$0 $*"
11 CODENAME="Janus"
12
13 AC_PREREQ(2.50)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_SYSTEM
17
18 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
19 dnl them. And we need the comma otherwize automake will choke on it.
20 AM_INIT_AUTOMAKE(vlc,0.8.5-svn)
21 AM_CONFIG_HEADER(config.h)
22
23 dnl Too many people are not aware of maintainer mode:
24 dnl If you want to use it, you definitely know what you are doing, so
25 dnl you can specify "--disable-maintainer-mode". But if you want the default
26 dnl automake behavior, you've likely never heard of maintainer mode, so we
27 dnl can't expect you to enable it manually.
28
29 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
30         [enable_maintainer_mode="yes"])
31
32 dnl HA! HA!
33 AM_MAINTAINER_MODE
34
35 dnl
36 dnl  Save *FLAGS
37 dnl
38 VLC_SAVE_FLAGS
39
40 dnl
41 dnl Check for tools
42 dnl
43 AC_PROG_CC
44 AM_PROG_CC_C_O
45 AC_PROG_CPP
46 AC_PROG_CXX
47 eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
48 if test "${CXX}" != ""; then
49   AC_PROG_CXXCPP
50 fi
51 AC_PROG_MAKE_SET
52 AC_PROG_INSTALL
53 AM_PROG_AS
54
55 dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
56 dnl now otherwise it might be set in an obscure if statement.
57 AC_EGREP_CPP(foo,foo)
58
59 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
60 AC_MSG_CHECKING(for an Objective-C compiler)
61 OBJC="${CXX}"
62 AC_SUBST(OBJC)
63 OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
64 AC_SUBST(OBJCFLAGS)
65 dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
66 #OBJCDEPMODE="depmode=gcc3"
67 #AC_SUBST(OBJCDEPMODE)
68 _AM_DEPENDENCIES(OBJC)
69 AC_MSG_RESULT(not implemented yet)
70
71 dnl Find the right ranlib, even when cross-compiling
72 AC_CHECK_TOOL(RANLIB, ranlib, :)
73 AC_CHECK_TOOL(STRIP, strip, :)
74 AC_CHECK_TOOL(AR, ar, :)
75 AC_CHECK_TOOL(LD, ld, :)
76
77 dnl Sam, if you think I didn't see that... --Meuuh
78 dnl AM_PROG_LIBTOOL
79 AC_PROG_INSTALL
80
81 dnl Check for compiler properties
82 AC_C_CONST
83 AC_C_INLINE
84
85 dnl
86 dnl  Check for the contrib directory
87 dnl
88 AC_ARG_WITH(contrib,
89     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
90   if test "${with_contrib}" != "no"; then 
91
92     topdir="`dirname $0`"
93     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
94        topdir="`pwd`/$topdir"
95     fi
96
97   if test -d ${topdir}/extras/contrib/lib; then
98     export PATH=${topdir}/extras/contrib/bin:$PATH
99     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
100     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
101     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
102     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
103     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
104     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
105     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
106     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
107     if test $build = $host -o $PKG_CONFIG_LIBDIR; then
108         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
109     else
110         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
111     fi
112     if test -d ${topdir}/extras/contrib/vlc-lib; then
113       LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
114       LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
115     fi
116     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
117     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
118
119 dnl kludge because only the debian package provides a ffmpeg-config
120     if test -z $with_ffmpeg_config_path; then 
121        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
122     fi
123     if test -z $with_livedotcom_tree; then
124        with_livedotcom_tree=${topdir}/extras/contrib/src/live
125     fi
126     if test -z $with_goom_tree; then
127       with_goom_tree=${topdir}/extras/contrib/src/goom
128     fi
129
130     if test ".`uname -s`" = ".Darwin"; then
131       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
132       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
133     elif test ".`uname -s`" = ".BeOS"; then
134       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
135       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
136     fi
137   fi
138 fi
139 dnl
140 dnl  Set default values
141 dnl
142 LDFLAGS_vlc="${LDFLAGS}"
143
144 dnl
145 dnl  Check the operating system
146 dnl
147 case "${target_os}" in
148   "")
149     SYS=unknown
150     ;;
151   linux*)
152     SYS=linux
153     ;;
154   bsdi*)
155     SYS=bsdi
156     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
157     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
158     ;;
159   *bsd*)
160     SYS="${target_os}"
161     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
162     ;;
163   darwin1.[0123])
164     dnl Mac OS X < 10.3
165     SYS=darwin
166     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
167     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
168     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
169     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
170     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
171     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
172     VLC_ADD_CFLAGS([vlc],[-x objective-c])
173     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
174     ;;
175   darwin*)
176     SYS=darwin
177     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
178     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
179     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
180     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
181     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
182     VLC_ADD_CFLAGS([vlc],[-x objective-c])
183     ;;
184   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
185     AC_CHECK_TOOL(WINDRES, windres, :)
186
187     case "${target_os}" in
188       *mingw32*)
189         SYS=mingw32
190         ;;
191       *cygwin*)
192         dnl Check if we are using the mno-cygwin mode in which case we are
193         dnl actually dealing with a mingw32 compiler.
194         AC_EGREP_CPP(yes,
195             [#ifdef WIN32
196              yes
197              #endif],
198             SYS=mingw32, SYS=cygwin)
199         ;;
200       *wince* | *mingwce* | *pe*)
201         SYS=mingwce
202         ;;
203     esac
204
205     if test "${SYS}" = "mingw32"; then
206         # add ws2_32 for closesocket, select, recv
207         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
208         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
209         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
210         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync],[-lws2_32])
211     fi
212     if test "${SYS}" = "mingwce"; then
213         # add ws2 for closesocket, select, recv
214         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
215         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
216         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
217         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
218    fi
219     ;;
220   *nto*)
221     SYS=nto
222     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
223     ;;
224   solaris*)
225     SYS=solaris
226     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
227     # Perhaps it is useful other places as well? 
228     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
229     ;;
230   hpux*)
231     SYS=hpux
232     ;;
233   beos)
234     SYS=beos
235     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
236     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
237     VLC_ADD_CXXFLAGS([beos],[])
238     VLC_ADD_LDFLAGS([vlc beos logger],[-lbe])
239     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
240
241     dnl Check for BONE
242     if test -f /boot/beos/system/lib/libbind.so; then
243         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lbind -lsocket])
244     else
245         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
246     fi
247
248     dnl Ugly check for Zeta
249     if test -f /boot/beos/system/lib/libzeta.so; then
250         VLC_ADD_LDFLAGS([beos],[-lzeta])
251     fi
252     ;;
253   *)
254     SYS="${target_os}"
255     ;;
256 esac
257 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
258 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
259 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
260 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
261
262 dnl
263 dnl  Check for Mac OS X SDK settings
264 dnl
265 AC_ARG_WITH(macosx-sdk,
266    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
267 if test "${with_macosx_sdk}" != "no" ; then
268   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
269   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
270   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
271   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
272   export MACOSX_DEPLOYMENT_TARGET=10.3
273   MACOSX_DEPLOYMENT_TARGET="10.3"
274 fi
275
276 dnl
277 dnl Gettext stuff
278 dnl
279 ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl oc pt_BR ro ru sv tr zh_CN zh_TW"
280 AM_GNU_GETTEXT_VERSION(0.11.5)
281 AM_GNU_GETTEXT
282 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
283   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
284   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
285 else
286   AC_CHECK_FUNCS(textdomain,,[
287     AC_CHECK_LIB(intl,textdomain,
288       VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]),,
289       ${LIBINTL}
290     )
291   ])
292 fi
293 AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
294 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
295
296 dnl
297 dnl Iconv stuff
298 dnl
299 if test "${SYS}" != "mingwce"; then
300 AS_IF([test "$am_cv_func_iconv" != "yes"],
301         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
302 fi
303 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
304 VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
305
306 dnl Check for the need to include the mingwex lib for mingw32
307 if test "${SYS}" = "mingw32"
308 then
309     AC_CHECK_LIB(mingwex,opendir,
310         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
311             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
312     )
313 fi
314
315 dnl Check for fnative-struct or mms-bitfields support for mingw32
316 if test "${SYS}" = "mingw32"
317 then
318     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
319         [ac_cv_c_mms_bitfields],
320         [CFLAGS="${CFLAGS_save} -mms-bitfields"
321          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
322     if test "${ac_cv_c_mms_bitfields}" != "no"; then
323         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
324         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
325     else
326         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
327             [ac_cv_c_fnative_struct],
328             [CFLAGS="${CFLAGS_save} -fnative-struct"
329              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
330         if test "${ac_cv_c_fnative_struct}" != "no"; then
331             CFLAGS_save="${CFLAGS_save} -fnative-struct";
332             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
333         fi
334     fi
335
336     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
337 fi
338
339 dnl Check for fvtable-thunks support for mingw32
340 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
341 then
342 AC_LANG_PUSH(C++)
343     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
344         [ac_cv_cxx_fvtable_thunks],
345         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
346          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
347                         ac_cv_cxx_fvtable_thunks=no)])
348     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
349         CXXFLAGS_mingw32_special="-fvtable-thunks"
350     fi
351
352     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
353 AC_LANG_POP(C++)
354 fi
355
356 dnl Plugin compilation stuff
357
358 VLC_LIBRARY_SUFFIX
359
360 VLC_SYMBOL_PREFIX
361 AC_SUBST(SYMPREF)
362
363 case "${SYS}" in
364   mingw32|cygwin)
365     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
366     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
367     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
368     ;;
369   mingwce)
370     ;;
371   *)
372     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
373     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
374     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
375     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
376     ;;
377 esac
378
379 dnl The -DSYS_FOO flag
380 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
381
382 dnl Check for system libs needed
383 need_libc=false
384
385 AC_CHECK_FUNCS(gettimeofday select strerror 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)
386
387 dnl Check for usual libc functions
388 AC_CHECK_FUNCS(strdup strndup atof)
389 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
390 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
391 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
392
393 dnl Check for setlocal and langinfo
394 AC_CHECK_FUNCS(setlocale)
395 AC_CHECK_HEADERS(langinfo.h)
396 AC_CHECK_FUNCS(nl_langinfo)
397
398 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
399   [AC_TRY_LINK([#include <langinfo.h>],
400     [char* cs = nl_langinfo(CODESET);],
401     ac_cv_langinfo_codeset=yes,
402     ac_cv_langinfo_codeset=no)
403   ])
404 if test ${ac_cv_langinfo_codeset} = yes; then
405   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
406     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
407 fi
408
409 AC_CHECK_FUNCS(connect,,[
410   AC_CHECK_LIB(socket,connect,[
411     VLC_ADD_LDFLAGS([vlc ipv4 cdda cddax],-lsocket)
412   ])
413 ])
414
415 AC_CHECK_FUNCS(send,,[
416   AC_CHECK_LIB(socket,send,[
417     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard],[-lsocket])
418   ])
419 ])
420
421 AC_CHECK_FUNCS(gethostbyname,,[
422   AC_CHECK_LIB(nsl,gethostbyname,[
423     VLC_ADD_LDFLAGS([cdda cddax ipv4 vlc],[-lnsl])
424   ],[
425     AC_CHECK_LIB(bind,gethostbyname,[
426       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
427     ])
428   ])
429 ])
430
431 dnl Check for socklen_t
432 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
433   [AC_TRY_COMPILE(
434      [#include <sys/types.h>
435       #include <sys/socket.h>],
436      [socklen_t len = 42; return len;],
437      ac_cv_type_socklen_t=yes,
438      ac_cv_type_socklen_t=no)])
439 if test "${ac_cv_type_socklen_t}" != "no"; then
440   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
441 fi
442
443 dnl Check for struct sockaddr_storage
444 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
445 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
446 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
447   [AC_TRY_COMPILE(
448     [#include <sys/types.h>
449      #if defined( UNDER_CE )
450      # include <winsock.h>
451      #elif defined( WIN32 )
452      # include <winsock2.h>
453      #else
454      # include <sys/socket.h>
455      #endif], [struct sockaddr_storage addr;],
456      ac_cv_struct_sockaddr_storage=yes,
457      ac_cv_struct_sockaddr_storage=no)])
458 if test $ac_cv_struct_sockaddr_storage = no; then
459   AC_DEFINE(sockaddr_storage, sockaddr)
460   AC_DEFINE(ss_family, sa_family)
461 fi
462
463 dnl getaddrinfo, getnameinfo and gai_strerror check
464 dnl  -lresolv is NOT needed on Solaris
465 dnl  we purposedly make the test fail on Windows
466 AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror])
467 AH_TEMPLATE(HAVE_ADDRINFO, [Define to `1' if <netdb.h> defines struct addrinfo.])
468 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
469 [#include <sys/types.h>
470 #if defined( WIN32 ) || defined( UNDER_CE )
471 # if defined(UNDER_CE) && defined(sockaddr_storage)
472 #  undef sockaddr_storage
473 # endif
474 # include <winsock2.h>
475 # include <ws2tcpip.h>
476 #else
477 # include <netdb.h>
478 #endif])
479
480 dnl Check for va_copy
481 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
482   AC_TRY_LINK(
483     [#include <stdarg.h>],
484     [va_list ap1, ap2; va_copy(ap1,ap2);],
485     [ac_cv_c_va_copy="yes"],
486     [ac_cv_c_va_copy="no"]))
487 if test "${ac_cv_c_va_copy}" = "yes"; then
488   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
489 fi
490 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
491   AC_TRY_LINK(
492     [#include <stdarg.h>],
493     [va_list ap1, ap2; __va_copy(ap1,ap2);],
494     [ac_cv_c___va_copy="yes"],
495     [ac_cv_c___va_copy="no"]))
496 if test "${ac_cv_c___va_copy}" = "yes"; then
497   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
498 fi
499
500 AC_CHECK_FUNCS(inet_aton,,[
501   AC_CHECK_LIB(resolv,inet_aton,[
502     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
503   ])
504 ])
505
506 dnl Check for getopt (always use builtin one on win32)
507 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
508 need_getopt=:
509 else
510 need_getopt=false
511 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
512 [ # FreeBSD has a gnugetopt library for this:
513   AC_CHECK_LIB([gnugetopt],[getopt_long],
514     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
515      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
516     [need_getopt=:])])
517 fi
518 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
519
520 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
521 AC_TYPE_SIGNAL
522 AC_CHECK_LIB(m,cos,[
523   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
524 ])
525 AC_CHECK_LIB(m,pow,[
526   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc],[-lm])
527 ])
528 AC_CHECK_LIB(m,sqrt,[
529   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
530 ])
531 AC_CHECK_LIB(mx,sqrtf,[
532   VLC_ADD_LDFLAGS([x264],[-lmx])
533 ])
534 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
535
536 dnl Check for dynamic plugins
537 ac_cv_have_plugins=no
538
539 # OS X style
540 AC_CHECK_HEADERS(mach-o/dyld.h,
541   [AC_CHECK_FUNCS(NSLinkModule,
542     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
543      ac_cv_have_plugins=yes])])
544
545 # HP-UX style
546 if test "${ac_cv_have_plugins}" = "no"; then
547   AC_CHECK_HEADERS(dl.h)
548   ac_cv_my_have_shl_load=no
549   AC_CHECK_FUNC(shl_load,
550    [ac_cv_my_have_shl_load=yes,
551     AC_CHECK_LIB(dld, shl_load,
552      [ac_cv_my_have_shl_load=yes
553       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
554   if test "${ac_cv_my_have_shl_load}" = "yes"; then
555     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
556     ac_cv_have_plugins=yes
557   fi
558 fi
559
560 # Whatever style
561 if test "${ac_cv_have_plugins}" = "no"; then
562   AC_CHECK_LIB(dld, dld_link,
563    [VLC_ADD_LDFLAGS([vlc],[-ldld])
564     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
565     ac_cv_have_plugins=yes])
566 fi
567
568 # Win32 style
569 if test "${ac_cv_have_plugins}" = "no"; then
570   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
571     AC_CHECK_LIB(kernel32, main,
572      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
573       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
574       ac_cv_have_plugins=yes])
575   fi
576 fi
577
578 # WinCE style
579 if test "${ac_cv_have_plugins}" = "no"; then
580   if test "${SYS}" = "mingwce"; then
581     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
582     ac_cv_have_plugins=yes
583   fi
584 fi
585
586 # BeOS style
587 if test "${ac_cv_have_plugins}" = "no"; then
588   AC_CHECK_HEADERS(image.h)
589   AC_CHECK_FUNCS(load_add_on,
590    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
591     ac_cv_have_plugins=yes])
592 fi
593
594 # Only test for dlopen() if the others didn't work
595 if test "${ac_cv_have_plugins}" = "no"; then
596   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
597   ac_cv_my_have_dlopen=no
598   AC_CHECK_FUNC(dlopen,
599     ac_cv_my_have_dlopen=yes,
600     AC_CHECK_LIB(dl, dlopen,
601       ac_cv_my_have_dlopen=yes
602       VLC_ADD_LDFLAGS([vlc],[-ldl]),
603       AC_CHECK_LIB(svld, dlopen,
604         ac_cv_my_have_dlopen=yes
605         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
606   if test "${ac_cv_my_have_dlopen}" = "yes"; then
607     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
608     ac_cv_have_plugins=yes
609   fi
610 fi
611
612 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
613 dnl Check for pthreads - borrowed from XMMS
614 THREAD_LIB=error
615 if test "${THREAD_LIB}" = "error"; then
616   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
617 fi
618 if test "${THREAD_LIB}" = "error"; then
619   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
620 fi
621 if test "${THREAD_LIB}" = "error"; then
622   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
623 fi
624 if test "${THREAD_LIB}" = "error"; then
625   AC_CHECK_FUNCS(pthread_mutex_lock)
626   THREAD_LIB=""
627 fi
628
629 dnl Check for cthreads under GNU/Hurd for instance
630 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
631
632 dnl
633 dnl  GNU portable threads
634 dnl
635 AC_ARG_ENABLE(pth,
636   [  --enable-pth            GNU Pth support (default disabled)],
637   [ if test "${enable_pth}" = "yes"; then
638     AC_CHECK_LIB(pth,pth_init)
639     AC_MSG_CHECKING(for pth_init in pth.h)
640     AC_EGREP_HEADER(pth_init,pth.h,[
641       AC_MSG_RESULT(yes)
642       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
643                 Define if <pth.h> defines pth_init)
644       THREAD_LIB="-lpth"
645     ],[
646       AC_MSG_RESULT(no)
647     ])
648     fi
649 ])
650
651 dnl
652 dnl  State Threads
653 dnl
654 AC_ARG_ENABLE(st,
655   [  --enable-st             State Threads (default disabled)],
656   [ if test "${enable_st}" = "yes"; then
657     AC_CHECK_LIB(st,st_init)
658     AC_MSG_CHECKING(for st_init in st.h)
659     AC_EGREP_HEADER(st_init,st.h,[
660       AC_MSG_RESULT(yes)
661       AC_DEFINE(ST_INIT_IN_ST_H, 1,
662                 Define if <st.h> defines st_init)
663       THREAD_LIB="-lst"
664     ],[
665       AC_MSG_RESULT(yes)
666     ])
667     fi
668 ])
669
670 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
671
672 dnl Don't link with rt when using GNU-pth
673 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
674   dnl HP/UX port
675   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
676
677   have_nanosleep=false
678   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
679     AC_CHECK_LIB(rt,nanosleep,
680       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
681       [AC_CHECK_LIB(posix4,nanosleep,
682           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
683     )
684   ])
685   if ${have_nanosleep}; then
686     AC_DEFINE(HAVE_NANOSLEEP, 1,
687               Define if nanosleep is available.)
688   fi
689 fi
690
691 dnl Check for misc headers
692 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
693 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
694   AC_MSG_RESULT(yes)
695   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
696             Define if <pthread.h> defines pthread_cond_t.)],[
697   AC_MSG_RESULT(no)])
698
699 AC_MSG_CHECKING(for pthread_once in pthread.h)
700 AC_EGREP_HEADER(pthread_once,pthread.h,[
701   AC_MSG_RESULT(yes)
702   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
703             Define if <pthread.h> defines pthread_once.)],[
704   AC_MSG_RESULT(no)])
705 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
706
707 AC_MSG_CHECKING(for strncasecmp in strings.h)
708 AC_EGREP_HEADER(strncasecmp,strings.h,[
709   AC_MSG_RESULT(yes)
710   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
711             Define if <strings.h> defines strncasecmp.)],[
712   AC_MSG_RESULT(no)])
713
714 dnl Check for headers
715 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)
716 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
717 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
718 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
719 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
720 AC_CHECK_HEADERS(linux/version.h)
721 AC_CHECK_HEADERS(syslog.h)
722 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
723
724 AC_HEADER_TIME
725
726 dnl Check for dirent
727 need_dirent=false
728 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
729 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
730
731 dnl Mac OS X and other OSes don't have declaration for nanosleep
732 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
733 AC_MSG_CHECKING(for nanosleep in time.h)
734 AC_EGREP_HEADER(nanosleep,time.h,[
735   AC_MSG_RESULT(yes)
736   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
737             Define if <time.h> defines nanosleep.)
738 ],[
739   AC_MSG_RESULT(no)
740 ])
741 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
742
743 dnl Make sure we have timespecs
744 AC_MSG_CHECKING(for timespec in sys/time.h)
745 AC_EGREP_HEADER(timespec,sys/time.h,[
746   AC_MSG_RESULT(yes)
747   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
748             Define if <sys/time.h> defines struct timespec.)
749 ],[
750   AC_MSG_RESULT(no)
751 ])
752
753 dnl Check for threads library
754 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
755 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
756 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
757
758 dnl Find where are the X headers and libraries
759 AC_PATH_XTRA()
760
761 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.
762
763 PKG_PROG_PKG_CONFIG()
764
765 dnl Check for hal
766 AC_ARG_ENABLE(hal,
767   [  --enable-hal            Linux HAL services discovery (default enabled)])
768  
769 if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
770 then
771   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
772     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
773       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
774       VLC_ADD_PLUGINS([hal]) 
775       VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
776       VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
777     dnl No hal 0.5 Test for 0.2
778     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
779        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
780         VLC_ADD_PLUGINS([hal])
781         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
782         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
783        [AC_MSG_WARN(HAL library not found)])
784     ]
785   )
786 fi
787
788 dnl Build the gtk_main plugins?
789 NEED_GTK_MAIN=no
790 NEED_GNOME_MAIN=no
791 NEED_GTK2_MAIN=no
792 NEED_GNOME2_MAIN=no
793
794 dnl build the qte plugin ?
795 NEED_QTE_MAIN=no
796
797 dnl Check for ntohl, etc.
798 AC_CACHE_CHECK([for ntohl in sys/param.h],
799     [ac_cv_c_ntohl_sys_param_h],
800     [CFLAGS="${CFLAGS_save} -Wall -Werror"
801      AC_TRY_COMPILE([#include <sys/param.h>],
802         [void foo() { int meuh; ntohl(meuh); }],
803         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
804 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
805     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
806 fi
807
808 # XXX: do this with an M4 macro?
809 #dnl Check for various -W flags
810 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
811 #do
812 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
813 #        [ac_cv_c_W${flag}],
814 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
815 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
816 #    if test "${ac_cv_c_W${flag}}" != "no"; then
817 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
818 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
819 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
820 #    fi
821 #done
822
823 AC_CACHE_CHECK([if \$CC accepts -Wall],
824     [ac_cv_c_Wall],
825     [CFLAGS="-Wall ${CFLAGS_save}"
826      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
827
828 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
829     [ac_cv_c_Wconversion],
830     [CFLAGS="-Wconversion ${CFLAGS_save}"
831      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
832
833 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
834     [ac_cv_c_Wunreachable_code],
835     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
836      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
837
838 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
839     [ac_cv_c_Wsign_compare],
840     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
841      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
842
843 if test "${ac_cv_c_Wall}" != "no"; then
844     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
845     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
846     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
847 fi
848
849 if test "${ac_cv_c_Wsign_compare}" != "no"; then
850     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
851     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
852     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
853 fi
854
855 dnl Check for -pipe
856 AC_CACHE_CHECK([if \$CC accepts -pipe],
857     [ac_cv_c_pipe],
858     [CFLAGS="${CFLAGS_save} -pipe"
859      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
860 if test "${ac_cv_c_pipe}" != "no"; then
861     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
862     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
863     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
864 fi
865
866 dnl Check for various optimization flags
867 AC_CACHE_CHECK([if \$CC accepts -Os],
868     [ac_cv_c_os],
869     [CFLAGS="${CFLAGS_save} -Os"
870      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
871 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
872     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
873 fi
874
875 AC_CACHE_CHECK([if \$CC accepts -O3],
876     [ac_cv_c_o3],
877     [CFLAGS="${CFLAGS_save} -O3"
878      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
879 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
880     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
881 fi
882
883 AC_CACHE_CHECK([if \$CC accepts -O2],
884     [ac_cv_c_o2],
885     [CFLAGS="${CFLAGS_save} -O2"
886      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
887 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
888     if test "${ac_cv_c_o3}" = "no"; then
889         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
890     fi
891     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
892 else 
893     AC_CACHE_CHECK([if \$CC accepts -O],
894         [ac_cv_c_o],
895         [CFLAGS="${CFLAGS_save} -O"
896          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
897     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
898         if test "${ac_cv_c_o3}" = "no"; then
899             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
900         fi
901         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
902     fi
903 fi
904
905 dnl Check for -ffast-math
906 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
907     [ac_cv_c_fast_math],
908     [CFLAGS="${CFLAGS_save} -ffast-math"
909      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
910 if test "${ac_cv_c_fast_math}" != "no"; then
911     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
912 fi
913
914 dnl Check for -funroll-loops
915 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
916 if test "${SYS}" != "beos"
917 then
918   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
919       [ac_cv_c_unroll_loops],
920       [CFLAGS="${CFLAGS_save} -funroll-loops"
921        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
922   if test "${ac_cv_c_unroll_loops}" != "no"; then
923       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
924   fi
925 fi
926
927 dnl Check for -fomit-frame-pointer
928 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
929     [ac_cv_c_omit_frame_pointer],
930     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
931      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
932 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
933     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
934     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
935     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
936 fi
937
938 dnl Check for -mdynamic-no-pic
939 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
940     [ac_cv_c_dynamic_no_pic],
941     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
942      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
943 if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
944     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
945     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
946 fi
947
948 dnl Check for Darwin plugin linking flags
949 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
950     [ac_cv_ld_darwin],
951     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
952      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
953 if test "${ac_cv_ld_darwin}" != "no"; then
954     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
955 fi
956
957 dnl Check for standard plugin linking flags
958 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
959 if test "${SYS}" = "beos"; then
960   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
961 else
962   AC_CACHE_CHECK([if \$CC accepts -shared],
963       [ac_cv_ld_plugins],
964       [CFLAGS="${CFLAGS_save} -shared"
965        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
966   if test "${ac_cv_ld_plugins}" != "no"; then
967     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
968   fi
969 fi
970
971 dnl Check for variadic macros
972 AC_CACHE_CHECK([for variadic cpp macros],
973     [ac_cv_cpp_variadic_macros],
974     [CFLAGS="${CFLAGS_save}"
975      AC_TRY_COMPILE(
976          [#include <stdio.h>
977           #define a(b,c...) printf(b,##c)],
978          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
979          ac_cv_cpp_variadic_macros=yes,
980          ac_cv_cpp_variadic_macros=no)])
981 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
982     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
983 fi
984
985 dnl Checks for __attribute__(aligned()) directive
986 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
987     [ac_cv_c_attribute_aligned],
988     [ac_cv_c_attribute_aligned=0
989         CFLAGS="${CFLAGS_save} -Werror"
990     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
991         AC_TRY_COMPILE([],
992         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
993         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
994     done
995         CFLAGS="${CFLAGS_save}"])
996 if test "${ac_cv_c_attribute_aligned}" != "0"; then
997     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
998         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
999 fi
1000
1001 dnl Checks for __attribute__(format()) directive
1002 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1003     [ac_cv_c_attribute_format],
1004     [ac_cv_c_attribute_format=no
1005         CFLAGS="${CFLAGS_save} -Werror"
1006         AC_TRY_COMPILE([],
1007         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1008         [ac_cv_c_attribute_format=yes])
1009         CFLAGS="${CFLAGS_save}"])
1010 if test "${ac_cv_c_attribute_format}" != "no"; then
1011     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1012 fi
1013
1014 dnl Check for __attribute__(())
1015 AC_CACHE_CHECK([for __attribute__((packed))],
1016   [ac_cv_c_attribute_packed],
1017   [ac_cv_c_attribute_packed=no
1018    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1019                     [ac_cv_c_attribute_packed=yes])])
1020 if test "${ac_cv_c_attribute_packed}" != "no"; then
1021   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1022 fi
1023
1024 dnl
1025 dnl  Check the CPU
1026 dnl
1027 case "${target_cpu}" in
1028   "")
1029     ARCH=unknown
1030     ;;
1031   *)
1032     ARCH="${target_cpu}"
1033     ;;
1034 esac
1035
1036 dnl
1037 dnl  Enable profiling
1038 dnl
1039 AC_ARG_ENABLE(gprof,
1040 [  --enable-gprof          gprof profiling (default disabled)])
1041 AC_ARG_ENABLE(cprof,
1042 [  --enable-cprof          cprof profiling (default disabled)])
1043 test "${enable_gprof}" != "yes" && enable_gprof="no"
1044 test "${enable_cprof}" != "yes" && enable_cprof="no"
1045
1046 dnl
1047 dnl  default modules
1048 dnl
1049 VLC_ADD_PLUGINS([dummy logger memcpy])
1050 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
1051 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1052 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
1053 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
1054 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1055 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1056 VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
1057 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1058 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1059 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1060 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1061 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1062 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1063
1064 if test "${SYS}" != "mingwce"; then
1065 dnl  VLC_ADD_PLUGINS([externrun])
1066   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1067   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
1068   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1069   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1070   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1071   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1072   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1073   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1074 fi
1075
1076 dnl
1077 dnl  Switch to enable a version of VLC where most modules will be builtin
1078 dnl
1079 AC_ARG_ENABLE(mostly-builtin,
1080 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1081 if test "${enable_mostly_builtin}" = "yes"; then
1082   VLC_ADD_BUILTINS([${PLUGINS}])
1083   PLUGINS=""
1084 fi
1085
1086 dnl
1087 dnl Some plugins aren't useful on some platforms
1088 dnl
1089 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1090     VLC_ADD_PLUGINS([screensaver])
1091 elif test "${SYS}" != "mingwce"; then
1092     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1093     VLC_ADD_LDFLAGS([dmo],[-lole32])
1094 else
1095     VLC_ADD_PLUGINS([win32text])
1096 fi
1097
1098 dnl
1099 dnl  Accelerated modules
1100 dnl
1101 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1102 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1103 MMXEXT_MODULES="memcpymmxext"
1104 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1105 THREEDNOW_MODULES="memcpy3dn"
1106 SSE_MODULES=""
1107 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1108 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1109
1110 if test "${enable_gprof}" != "yes"
1111 then
1112   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1113 fi
1114
1115 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1116     [ac_cv_mmx_inline],
1117     [CFLAGS="${CFLAGS_save}"
1118      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1119                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1120 if test "${ac_cv_mmx_inline}" != "no"; then
1121   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1122   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1123 fi
1124
1125 dnl  Check for fully workin MMX intrinsics
1126 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1127 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1128 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1129     [ac_cv_c_mmx_intrinsics],
1130     [CFLAGS="${CFLAGS_save} -O -mmmx"
1131      AC_TRY_COMPILE([#include <mmintrin.h>
1132                      #include <stdint.h>
1133                      uint64_t frobzor;],
1134                     [__m64 a, b, c;
1135                      a = b = c = (__m64)frobzor;
1136                      a = _mm_slli_pi16(a, 3);
1137                      a = _mm_adds_pi16(a, b);
1138                      c = _mm_srli_pi16(c, 8);
1139                      c = _mm_slli_pi16(c, 3);
1140                      b = _mm_adds_pi16(b, c);
1141                      a = _mm_unpacklo_pi8(a, b);
1142                      frobzor = (uint64_t)a;],
1143                     [ac_cv_c_mmx_intrinsics=yes],
1144                     [ac_cv_c_mmx_intrinsics=no])])
1145 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1146   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1147   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1148 fi
1149
1150 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1151     [ac_cv_mmxext_inline],
1152     [CFLAGS="${CFLAGS_save}"
1153      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1154                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1155 if test "${ac_cv_mmxext_inline}" != "no"; then
1156   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1157   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1158 fi
1159
1160 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1161     [ac_cv_3dnow_inline],
1162     [CFLAGS="${CFLAGS_save}"
1163      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1164                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1165 if test "${ac_cv_3dnow_inline}" != "no"; then
1166   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1167   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1168 fi
1169
1170 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1171     [ac_cv_sse_inline],
1172     [CFLAGS="${CFLAGS_save}"
1173      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1174                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1175 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1176   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1177   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1178 fi
1179
1180 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1181 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1182     [ac_cv_altivec_inline],
1183     [CFLAGS="${CFLAGS_save}"
1184      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1185          ac_cv_altivec_inline=yes,
1186          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1187           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1188             [ac_cv_altivec_inline="-Wa,-m7400"],
1189             ac_cv_altivec_inline=no)
1190          ])])
1191 if test "${ac_cv_altivec_inline}" != "no"; then
1192   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1193   if test "${ac_cv_altivec_inline}" != "yes"; then
1194     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1195     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1196     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1197     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1198     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1199   fi
1200   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1201 fi
1202
1203 dnl The AltiVec C extensions
1204 dnl
1205 dnl There are several possible cases:
1206 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1207 dnl                      need <altivec.h>
1208 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1209 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1210 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1211 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1212 dnl - Others: test should fail
1213 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1214   [ac_cv_c_altivec],
1215   [# OS X/PPC test (gcc 4.x)
1216    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1217    AC_TRY_COMPILE([],
1218      [vec_ld(0, (unsigned char *)0);],
1219      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1220      [# OS X/PPC test (gcc 3.x)
1221       CFLAGS="${CFLAGS_save} -faltivec"
1222       AC_TRY_COMPILE([],
1223         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1224         [ac_cv_c_altivec="-faltivec"],
1225         dnl Below this are the Linux tests
1226         [# Linux/PPC test (gcc 4.x)
1227          CFLAGS="${CFLAGS_save} -maltivec"
1228          AC_TRY_COMPILE([#include <altivec.h>],
1229            [vec_ld(0, (unsigned char *)0);],
1230            [ac_cv_c_altivec="-maltivec"],
1231            [# Linux/PPC test (gcc 3.3)
1232             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1233             AC_TRY_COMPILE([#include <altivec.h>],
1234               [vec_ld(0, (unsigned char *)0);],
1235               [ac_cv_c_altivec=""
1236                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1237               [# Linux/PPC test (gcc 3.3)
1238                CFLAGS="${CFLAGS_save} -fvec"
1239                AC_TRY_COMPILE([#include <altivec.h>],
1240                  [vec_ld(0, (unsigned char *)0);],
1241                  [ac_cv_c_altivec="-fvec"],
1242                  [ac_cv_c_altivec=no])
1243               ])
1244            ])
1245         ])
1246      ])
1247    CFLAGS="${CFLAGS_save}"
1248   ])
1249
1250 if test "${ac_cv_c_altivec}" != "no"; then
1251   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1252 fi
1253 AC_CHECK_HEADERS(altivec.h)
1254 CPPFLAGS="${CPPFLAGS_save}"
1255
1256 if test "${ac_cv_c_altivec}" != "no"; then
1257   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1258   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1259   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1260   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1261   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1262 fi
1263
1264 AC_CACHE_CHECK([if linker needs -framework vecLib],
1265     [ac_cv_ld_altivec],
1266     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1267      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1268      LDFLAGS="${LDFLAGS_save}"
1269     ])
1270 if test "${ac_cv_ld_altivec}" != "no"; then
1271   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1272 fi
1273 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1274
1275 AC_ARG_WITH(,[])
1276 AC_ARG_WITH(,[Optimization options:])
1277
1278 dnl
1279 dnl  Special arch tuning
1280 dnl
1281 AC_ARG_WITH(tuning,
1282 [  --with-tuning=ARCH      enable special tuning for an architecture
1283                           (default Pentium 2 on IA-32 and 750 on PPC)])
1284 if test -n "${with_tuning}"; then
1285     if test "${with_tuning}" != "no"; then
1286         CFLAGS_TUNING="-mtune=${with_tuning}"
1287     fi
1288 else
1289     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1290         CFLAGS_TUNING="-mtune=pentium2"
1291     elif test "${target_cpu}" = "x86_64"; then
1292         CFLAGS_TUNING="-mtune=athlon64"
1293     elif test "${target_cpu}" = "powerpc"; then
1294         CFLAGS_TUNING="-mtune=750";
1295     fi
1296 fi
1297
1298 dnl NOTE: this can't be cached cleanly
1299 AS_IF([test "${CFLAGS_TUNING}"],
1300    [CFLAGS_save="${CFLAGS}"
1301     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1302
1303     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1304     AC_COMPILE_IFELSE([ ],
1305                       [tuning="yes"],
1306                       [CFLAGS_TUNING=""; tuning="no"
1307                        AS_IF([test "${with_tuning}"],
1308                              [AC_MSG_ERROR([requested tuning not supported])])])
1309
1310     AC_MSG_RESULT([$tuning])
1311     CFLAGS="${CFLAGS_save}"
1312 ])
1313
1314 dnl
1315 dnl  x86 accelerations
1316 dnl
1317 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1318 then
1319     ARCH="${ARCH} mmx"
1320     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1321 fi
1322
1323 dnl
1324 dnl  Memory usage
1325 dnl
1326 AC_ARG_ENABLE(optimize-memory,
1327 [  --enable-optimize-memory      optimize memory usage over performance])
1328 if test "${enable_optimize_memory}" = "yes"; then
1329   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1330 fi
1331
1332 dnl
1333 dnl  Enable/disable optimizations
1334 dnl
1335 AC_ARG_ENABLE(optimizations,
1336 [  --disable-optimizations disable compiler optimizations (default enabled)])
1337 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1338
1339 dnl
1340 dnl  AltiVec acceleration
1341 dnl
1342 AC_ARG_ENABLE(altivec,
1343 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1344 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1345     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1346 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1347     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1348
1349 dnl
1350 dnl  Debugging mode
1351 dnl
1352 AC_ARG_ENABLE(debug,
1353 [  --enable-debug          debug mode (default disabled)])
1354 test "${enable_debug}" != "yes" && enable_debug="no"
1355 AH_TEMPLATE(NDEBUG,
1356             [Define to 1 if debug code should NOT be compiled])
1357 AS_IF([test "x${enable_debug}" == "xno"], [AC_DEFINE(NDEBUG)])
1358
1359 dnl
1360 dnl  Enable release-specific flags
1361 dnl
1362 AC_ARG_ENABLE(release,
1363 [  --enable-release        activate extra optimizations (default disabled)])
1364 test "${enable_release}" != "yes" && enable_release="no"
1365
1366 dnl
1367 dnl  Is the shared libvlc forced ?
1368 dnl
1369 build_pic=no
1370 AC_ARG_ENABLE(shared-libvlc,
1371   [  --enable-shared-libvlc  shared libvlc (default disabled EXPERIMENTAL)],
1372   ,[shared_libvlc=no])
1373
1374
1375 dnl
1376 dnl Stream output
1377 dnl
1378 AC_ARG_ENABLE(sout,
1379   [  --enable-sout           Stream output modules (default enabled)])
1380 if test "${enable_sout}" != "no"
1381 then
1382   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1383   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1384   VLC_ADD_PLUGINS([packetizer_copy])
1385
1386   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1387   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1388 #  VLC_ADD_PLUGINS([stream_out_transrate])
1389
1390   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1391 fi
1392
1393 dnl Check for libshout
1394 AC_ARG_ENABLE(shout,
1395   [  --enable-shout          libshout output plugin (default disabled)])
1396 if test "${enable_shout}" = "yes"; then
1397   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1398     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1399      VLC_ADD_PLUGINS([access_output_shout])
1400      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1401      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1402     [AC_MSG_WARN(libshout library not found)])
1403 fi
1404
1405 dnl
1406 dnl HTTP daemon
1407 dnl
1408 AC_ARG_ENABLE(httpd,
1409   [  --enable-httpd          HTTP daemon (default enabled)])
1410 if test "${enable_httpd}" != "no"
1411 then
1412   VLC_ADD_PLUGINS([http])
1413   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1414 fi
1415
1416 dnl
1417 dnl VideoLAN manager
1418 dnl
1419 AC_ARG_ENABLE(vlm,
1420   [  --enable-vlm            VideoLAN manager (default enabled)])
1421 if test "${enable_vlm}" != "no"
1422 then
1423   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1424 fi
1425
1426 dnl
1427 dnl Growl notification plugin
1428 dnl
1429 AC_ARG_ENABLE(growl,
1430   [  --enable-growl         growl notification plugin (default enabled)])
1431 AS_IF([test "${enable_growl}" != "no"], [
1432     VLC_ADD_PLUGINS([growl])
1433   ]
1434 )
1435
1436
1437 dnl
1438 dnl TLS/SSL
1439 dnl
1440 AC_ARG_ENABLE(gnutls,
1441   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1442 AS_IF([test "${enable_gnutls}" != "no"], [
1443
1444   gcrypt_LIBS="-lgpg-error"
1445   AS_IF([test "${SYS}" = "mingw32"],
1446     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1447      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1448   )
1449
1450   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
1451
1452   AC_CHECK_HEADER(gcrypt.h,
1453     [AC_CHECK_LIB(gcrypt, gcry_control,
1454       [AC_CHECK_HEADER(gnutls/gnutls.h,
1455         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1456           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1457      ${gcrypt_LIBS})])
1458
1459   AS_IF([test "${have_gnutls}" = "yes"], [
1460     VLC_ADD_PLUGINS([gnutls])
1461     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
1462   ], [
1463     AS_IF([test "${enable_gnutls}" = "yes"], [
1464       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1465     )]
1466   )]
1467 )
1468
1469
1470 dnl
1471 dnl  Input plugins
1472 dnl
1473
1474 AC_ARG_WITH(,[Input plugins:])
1475
1476 dnl  live.com input
1477 dnl
1478 AC_ARG_ENABLE(livedotcom,
1479 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1480 if test "${enable_livedotcom}" = "yes"; then
1481   AC_ARG_WITH(livedotcom-tree,
1482     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1483
1484   dnl
1485   dnl test for --with-livedotcom-tree
1486   dnl
1487   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1488     AC_LANG_PUSH(C++)
1489     CPPFLAGS_save="${CPPFLAGS}"
1490     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1491     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1492     AC_CHECK_HEADERS(liveMedia.hh, [
1493       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1494       AC_CHECK_LIB(liveMedia_pic, main, [
1495         # We have -lliveMedia_pic, build plugins
1496         VLC_ADD_PLUGINS([livedotcom])
1497         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1498       ], [
1499         AC_CHECK_LIB(liveMedia, main, [
1500           # We only have -lliveMedia, do builtins
1501           VLC_ADD_BUILTINS([livedotcom])
1502           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1503         ])
1504       ])
1505       if test "${SYS}" = "mingw32"; then
1506         # add ws2_32 for closesocket, select, recv
1507         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1508       fi
1509     ])
1510     CPPFLAGS="${CPPFLAGS_save}"
1511     AC_LANG_POP(C++)
1512   else
1513     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1514     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1515     if test -z "${real_livedotcom_tree}"; then
1516       dnl  The given directory can't be found
1517       AC_MSG_RESULT(no)
1518       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1519     fi
1520     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1521       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1522
1523       VLC_ADD_BUILTINS([livedotcom])
1524
1525       if test "${SYS}" = "mingw32"; then
1526         # add ws2_32 for closesocket, select, recv
1527         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1528       fi
1529
1530       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1531       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1532       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1533       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1534
1535       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1536       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1537       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1538       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1539     else
1540       dnl  The given live.com wasn't built
1541       AC_MSG_RESULT(no)
1542       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1543     fi
1544   fi
1545 fi
1546
1547 dnl
1548 dnl dv module: digital video module check for libraw1394
1549 dnl
1550 AC_ARG_ENABLE(dv,
1551 [  --enable-dv             dv input module (default disabled)])
1552 if test "${enable_dv}" = "yes"
1553 then
1554   AC_ARG_WITH(dv-raw1394,
1555   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1556   AC_ARG_WITH(dv-raw1394-tree,
1557   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1558
1559   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1560   then
1561     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1562     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1563     then
1564       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1565       AC_MSG_RESULT(yes)
1566       VLC_ADD_PLUGINS([access_dv])
1567       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1568       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1569     else
1570       dnl  No libraw1394 could be found, sorry
1571       AC_MSG_RESULT(no)
1572       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1573     fi
1574   else
1575     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1576     [ VLC_ADD_PLUGINS([access_dv])
1577         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1578     ],[
1579         if test -n "${enable_dv}"
1580         then
1581           AC_MSG_ERROR([cannot find libraw1394 headers])
1582         fi
1583     ])
1584   fi
1585
1586   dnl Check for static linking of libraw1394
1587   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1588   then
1589     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1590     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1591     if test -z "${real_dv_raw1394_tree}"
1592     then
1593       dnl  The given directory can't be found
1594       AC_MSG_RESULT(no)
1595       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1596     fi
1597     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1598     then
1599       dnl  Use a custom libraw1394
1600       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1601       VLC_ADD_BUILTINS([access_dv])
1602       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1603       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1604     else
1605       dnl  The given libraw1394 wasn't built
1606       AC_MSG_RESULT(no)
1607       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1608     fi
1609   fi
1610
1611   dnl
1612   dnl Check for libavc1394
1613   dnl
1614
1615   AC_ARG_WITH(dv-avc1394,
1616   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1617   AC_ARG_WITH(dv-avc1394-tree,
1618   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1619
1620   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1621   then
1622     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1623     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1624     then
1625       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1626       AC_MSG_RESULT(yes)
1627       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1628       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1629     else
1630       dnl  No libavc1394 could be found, sorry
1631       AC_MSG_RESULT(no)
1632       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1633     fi
1634   else
1635     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1636     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1637     ],[
1638         if test -n "${enable_dv}"
1639         then
1640           AC_MSG_ERROR([cannot find libavc1394 headers])
1641         fi
1642     ])
1643   fi
1644
1645   dnl Check for static linking of libavc1394
1646   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1647   then
1648     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1649     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1650     if test -z "${real_dv_avc1394_tree}"
1651     then
1652       dnl  The given directory can't be found
1653       AC_MSG_RESULT(no)
1654       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1655     fi
1656     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1657     then
1658       dnl  Use a custom libavc1394
1659       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1660       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1661       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1662     else
1663       dnl  The given libavc1394 wasn't built
1664       AC_MSG_RESULT(no)
1665       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1666     fi
1667   fi
1668 fi
1669
1670 dnl
1671 dnl dvdread module: check for libdvdread
1672 dnl
1673 AC_ARG_ENABLE(dvdread,
1674 [  --enable-dvdread        dvdread input module (default disabled)])
1675 if test "${enable_dvdread}" != "no"
1676 then
1677   AC_ARG_WITH(dvdread,
1678   [    --with-dvdread=PATH   libdvdread headers and libraries])
1679   AC_ARG_WITH(dvdread-tree,
1680   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1681
1682   dnl Temporary hack (yeah, sure ;)
1683   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1684       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1685   fi
1686
1687   if test -z "${with_dvdread}"
1688   then
1689     if test -z "${with_dvdread_tree}"
1690     then
1691       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1692         [ VLC_ADD_PLUGINS([dvdread])
1693           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1694         ],[
1695           if test -n "${enable_dvdread}"
1696           then
1697             AC_MSG_ERROR([cannot find libdvdread headers])
1698           fi
1699         ])
1700     else
1701       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1702       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1703       if test -z "${real_dvdread_tree}"
1704       then
1705         dnl  The given directory can't be found
1706         AC_MSG_RESULT(no)
1707         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1708       fi
1709       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1710       then
1711         dnl  Use a custom libdvdread
1712         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1713         VLC_ADD_BUILTINS([dvdread])
1714         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1715         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1716       else
1717         dnl  The given libdvdread wasn't built
1718         AC_MSG_RESULT(no)
1719         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1720       fi
1721     fi
1722   else
1723     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1724     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1725     then
1726       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1727       AC_MSG_RESULT(yes)
1728       VLC_ADD_PLUGINS([dvdread])
1729       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1730       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1731     else
1732       dnl  No libdvdread could be found, sorry
1733       AC_MSG_RESULT(no)
1734       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1735     fi
1736   fi
1737 fi
1738
1739 dnl
1740 dnl  libdvdnav plugin
1741 dnl
1742 AC_ARG_ENABLE(dvdnav,
1743   [  --enable-dvdnav         dvdnav input module (default enabled)])
1744 if test "${enable_dvdnav}" != "no"
1745 then
1746   dnl Same hack than dvdread
1747   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1748       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1749   fi
1750
1751   DVDNAV_PATH="${PATH}"
1752   AC_ARG_WITH(dvdnav-config-path,
1753     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1754     [ if test "${with_dvdnav_config_path}" != "no"
1755       then
1756         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1757       fi ])
1758   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1759   if test "${DVDNAV_CONFIG}" != "no"
1760   then
1761     VLC_ADD_PLUGINS([dvdnav])
1762     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1763     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1764   fi
1765 fi
1766
1767 dnl
1768 dnl  Windows DirectShow access module
1769 dnl
1770 AC_ARG_ENABLE(dshow,
1771   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1772 if test "${enable_dshow}" != "no"
1773 then
1774   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1775   then
1776     AC_LANG_PUSH(C++)
1777       AC_CHECK_HEADERS(dshow.h,
1778       [ VLC_ADD_PLUGINS([dshow])
1779         VLC_ADD_CXXFLAGS([dshow],[])
1780         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1781     AC_LANG_POP(C++)
1782   fi
1783 fi
1784
1785 dnl
1786 dnl  libsmbclient plugin
1787 dnl
1788 AC_ARG_ENABLE(smb,
1789   [  --enable-smb            smb input module (default enabled)])
1790 if test "${enable_smb}" != "no"; then
1791   AC_CHECK_HEADERS(libsmbclient.h,
1792     [ VLC_ADD_PLUGINS([access_smb])
1793       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1794     [ if test -n "${enable_smb}"; then
1795         AC_MSG_ERROR([cannot find libsmbclient headers])
1796      fi ])
1797   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1798     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1799     [#include <libsmbclient.h>])
1800 fi
1801
1802 dnl
1803 dnl  libdvbpsi ts demux/mux
1804 dnl
1805 AC_ARG_ENABLE(dvbpsi,
1806   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1807 if test "${enable_dvbpsi}" != "no"
1808 then
1809   AC_ARG_WITH(dvbpsi,
1810   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1811   AC_ARG_WITH(dvbpsi,
1812   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1813   case "${with_dvbpsi}" in
1814   ""|yes)
1815     if test -z "${with_dvbpsi_tree}"
1816     then
1817       AC_CHECK_HEADERS(dvbpsi/dr.h,
1818         [ VLC_ADD_PLUGINS([ts])
1819           if test "${enable_sout}" != "no"; then
1820             VLC_ADD_BUILTINS([mux_ts])
1821           fi
1822           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1823         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1824         [#if defined( HAVE_STDINT_H )
1825 #   include <stdint.h>
1826 #elif defined( HAVE_INTTYPES_H )
1827 #   include <inttypes.h>
1828 #endif
1829 #include <dvbpsi/dvbpsi.h>
1830 #include <dvbpsi/descriptor.h>
1831 #include <dvbpsi/pat.h>
1832 #include <dvbpsi/pmt.h>])
1833     else
1834       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1835       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1836       if test -z "${real_dvbpsi_tree}"
1837       then
1838         dnl  The given directory can't be found
1839         AC_MSG_RESULT(no)
1840         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1841       fi
1842       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1843       then
1844         dnl  Use a custom libdvbpsi
1845         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1846         VLC_ADD_BUILTINS([ts])
1847         if test "${enable_sout}" != "no"; then
1848           VLC_ADD_BUILTINS([mux_ts])
1849         fi
1850         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1851         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1852       else
1853         dnl  The given libdvbpsi wasn't built
1854         AC_MSG_RESULT(no)
1855         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1856       fi
1857     fi
1858   ;;
1859   no)
1860     dnl  Compile without dvbpsi
1861   ;;
1862   *)
1863     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1864     if test -z "${with_dvbpsi}"
1865     then
1866       LDFLAGS_test=""
1867       CPPFLAGS_test=""
1868     else
1869       LDFLAGS_test="-L${with_dvbpsi}/lib"
1870       CPPFLAGS_test="-I${with_dvbpsi}/include"
1871     fi
1872     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1873     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1874       VLC_ADD_PLUGINS([ts])
1875       if test "${enable_sout}" != "no"; then
1876         VLC_ADD_PLUGINS([mux_ts])
1877       fi
1878       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1879       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1880
1881     ],[
1882       if test -n "${enable_dvbpsi}"
1883       then
1884         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])
1885       fi
1886     ])
1887     CPPFLAGS="${CPPFLAGS_save}"
1888   ;;
1889   esac
1890   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1891     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1892   ], [], [${LDFLAGS_ts}])
1893
1894 fi
1895
1896 dnl
1897 dnl  Video4Linux plugin
1898 dnl
1899 AC_ARG_ENABLE(v4l,
1900   [  --enable-v4l            Video4Linux input support (default disabled)])
1901 if test "${enable_v4l}" = "yes"
1902 then
1903   AC_ARG_WITH(v4l,
1904     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1905   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1906   then
1907     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1908   fi
1909
1910   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1911   AC_CHECK_HEADERS(linux/videodev.h, [
1912     VLC_ADD_PLUGINS([v4l])
1913   ],[])
1914   CPPFLAGS="${CPPFLAGS_save}"
1915 fi
1916
1917 dnl
1918 dnl  special access module for Hauppauge PVR cards
1919 dnl
1920 AC_ARG_ENABLE(pvr,
1921   [  --enable-pvr            PVR cards access module (default disabled)])
1922 if test "${enable_pvr}" = "yes"
1923 then
1924   VLC_ADD_PLUGINS([pvr])
1925 fi
1926
1927 dnl
1928 dnl  gnomeVFS access module
1929 dnl
1930 AC_ARG_ENABLE(gnomevfs,
1931   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1932 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1933 then
1934   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1935     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1936     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1937     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1938     VLC_ADD_PLUGINS([access_gnomevfs]),
1939     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1940 fi
1941
1942 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1943 AC_ARG_ENABLE(libcdio,
1944   [  --enable-libcdio        CD input and control library support (default enabled)])
1945
1946
1947 have_libcdio=no
1948 have_libvcdinfo=no
1949 if test "${enable_libcdio}" != "no"
1950 then
1951   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1952      have_libcdio=yes
1953      AC_DEFINE(HAVE_LIBCDIO, [], 
1954      [Define if you have libcdio 0.72 or greater installed]),
1955      [AC_MSG_WARN(CD Reading and information library not found)])
1956
1957   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1958      [have_libvcdinfo=yes
1959      AC_DEFINE(HAVE_VCDINFO, [], 
1960      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1961      [AC_MSG_WARN(VCD information library not found)])
1962 fi
1963
1964 dnl
1965 dnl  VCDX and CDDAX modules
1966 dnl
1967 AC_ARG_ENABLE(cddax,
1968   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1969  
1970 AC_ARG_ENABLE(libcddb,
1971   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1972  
1973 if test "${enable_cddax}" = "yes"
1974 then
1975   if test "$have_libcdio" = "yes"
1976   then
1977     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1978     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1979     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1980     VLC_ADD_PLUGINS([cddax])
1981     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1982     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1983     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1984   else 
1985     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1986     HAVE_CDDAX=no
1987   fi
1988
1989   if test "$enable_libcddb" != "no"; then
1990     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1991       HAVE_LIBCDDB=yes 
1992       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1993       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1994       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1995       ],
1996       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
1997       HAVE_LIBCDDB=no])
1998   fi
1999  
2000 fi
2001
2002 AC_ARG_ENABLE(vcdx,
2003   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2004  
2005 if test "${enable_vcdx}" = "yes"
2006 then
2007   if test "${have_libvcdinfo}" = "yes"
2008   then
2009     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2010     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2011   else 
2012     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2013     HAVE_VCDX=no
2014   fi
2015
2016   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2017    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2018     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2019     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2020     HAVE_VCDX=no])
2021
2022   if test "$have_libvcdinfo" = "yes"
2023   then
2024     AC_DEFINE(HAVE_VCDX, [], 
2025     [Define for the VCD plugin using libcdio/libvcdinfo])
2026     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2027     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2028     VLC_ADD_PLUGINS([vcdx])
2029   else 
2030     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2031     HAVE_VCDX=no
2032   fi
2033 fi
2034
2035 dnl
2036 dnl  Built-in CD-DA and VCD module
2037 dnl
2038 AC_ARG_ENABLE(cdda,           
2039   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2040  
2041 AC_ARG_ENABLE(vcd,
2042   [  --enable-vcd            built-in VCD (default enabled)])
2043
2044 if test "${enable_vcd}" != "no"
2045 then
2046   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2047   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2048     AC_MSG_RESULT(yes)
2049     VLC_ADD_PLUGINS([vcd cdda])
2050   ],[
2051     AC_MSG_RESULT(no)
2052   ])
2053
2054   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2055   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2056     AC_MSG_RESULT(yes)
2057     VLC_ADD_PLUGINS([vcd cdda])
2058     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2059   ],[
2060     AC_MSG_RESULT(no)
2061   ])
2062
2063   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2064   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2065     AC_MSG_RESULT(yes)
2066     VLC_ADD_PLUGINS([vcd cdda])
2067     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2068   ],[
2069     AC_MSG_RESULT(no)
2070   ])
2071
2072   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2073   then
2074     VLC_ADD_PLUGINS([vcd cdda])
2075   fi
2076
2077   if test "${SYS}" = "darwin"
2078   then
2079     VLC_ADD_PLUGINS([vcd cdda])
2080     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2081     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2082   fi
2083
2084   if test "$enable_libcddb" != "no"; then
2085     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2086       HAVE_LIBCDDB=yes 
2087       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2088       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2089       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2090       ],:
2091       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2092       HAVE_LIBCDDB=no])
2093   fi
2094 fi
2095
2096 dnl
2097 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2098 dnl
2099 AC_ARG_ENABLE(dvb,
2100   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2101
2102 if test "${enable_dvb}" = "yes"
2103 then
2104   AC_ARG_WITH(dvb,
2105   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2106   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2107   then
2108     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2109   fi
2110   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2111   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2112     if test -z "${with_dvbpsi_tree}"
2113     then
2114       VLC_ADD_PLUGINS([dvb])
2115     else
2116       VLC_ADD_BUILTINS([dvb])
2117     fi
2118   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2119   CPPFLAGS="${CPPFLAGS_save}"
2120 fi
2121
2122 dnl
2123 dnl  Screen capture module
2124 dnl
2125 AC_ARG_ENABLE(screen,
2126   [  --enable-screen         Screen capture support (default enabled)])
2127 if test "${enable_screen}" != "no"; then
2128   if test "${SYS}" = "darwin"; then
2129     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2130       VLC_ADD_PLUGINS([screen])
2131       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2132     ])
2133   elif test "${SYS}" = "mingw32"; then
2134     VLC_ADD_PLUGINS([screen])
2135     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2136   elif test "${SYS}" = "mingwce"; then
2137     CPPFLAGS="${CPPFLAGS_save}"
2138   elif test "${SYS}" = "beos"; then
2139     VLC_ADD_PLUGINS([screen])
2140     VLC_ADD_CXXFLAGS([screen],[])
2141     VLC_ADD_LDFLAGS([screen],[-lbe])
2142   else
2143     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2144     AC_CHECK_HEADERS(X11/Xlib.h, [
2145       VLC_ADD_PLUGINS([screen])
2146       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2147       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2148     ])
2149     CPPFLAGS="${CPPFLAGS_save}"
2150   fi
2151 fi
2152
2153 dnl
2154 dnl  ipv6 plugin - not for QNX yet
2155 dnl
2156 have_ipv6=no
2157 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2158   AC_CHECK_LIB(resolv,inet_pton,
2159     [have_ipv6=yes
2160      VLC_ADD_LDFLAGS([ipv6 vlc],[-lresolv])])
2161 ])
2162
2163 AS_IF([test "${have_ipv6}" = "yes"], [
2164   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2165
2166 if test "${SYS}" != "nto" &&
2167    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2168 then
2169   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2170   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2171     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2172   AS_IF([test "${have_ipv6}" != "no"], [
2173     VLC_ADD_PLUGINS([ipv6])])
2174 fi
2175 if test "${SYS}" = "mingw32"
2176 then
2177   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2178   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2179     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2180 fi
2181
2182 dnl
2183 dnl  ogg demux plugin
2184 dnl
2185 AC_ARG_ENABLE(ogg,
2186   [  --enable-ogg            Ogg demux support (default enabled)])
2187 if test "${enable_ogg}" != "no"
2188 then
2189   AC_ARG_WITH(ogg-tree,
2190   [    --with-ogg-tree=PATH  ogg tree for static linking])
2191   if test -n "${with_ogg_tree}"
2192   then
2193     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2194     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2195     if test -z "${real_ogg_tree}"
2196     then
2197       dnl  The given directory can't be found
2198       AC_MSG_RESULT(no)
2199       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2200     fi
2201     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2202     then
2203       dnl  Use a custom ogg
2204       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2205       VLC_ADD_PLUGINS([ogg])
2206       if test "${enable_sout}" != "no"; then
2207         VLC_ADD_PLUGINS([mux_ogg])
2208       fi
2209       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2210       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2211     else
2212       dnl  The given ogg wasn't built
2213       AC_MSG_RESULT(no)
2214       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2215     fi
2216   else
2217     AC_CHECK_HEADERS(ogg/ogg.h, [
2218       AC_CHECK_LIB( ogg, oggpack_read, [
2219         VLC_ADD_PLUGINS([ogg])
2220         if test "${enable_sout}" != "no"; then
2221           VLC_ADD_PLUGINS([mux_ogg])
2222         fi
2223         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2224      ],[])
2225   fi
2226 fi
2227
2228 dnl
2229 dnl  matroska demux plugin
2230 dnl
2231 AC_ARG_ENABLE(mkv,
2232   [  --enable-mkv            Matroska demux support (default enabled)])
2233 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2234   AC_LANG_PUSH(C++)
2235   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2236     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2237     AC_EGREP_CPP(yes,
2238       [#include <ebml/EbmlVersion.h>
2239        #ifdef LIBEBML_VERSION
2240        #if LIBEBML_VERSION >= 0x000706
2241        yes
2242        #endif
2243        #endif],
2244       [AC_MSG_RESULT([yes])
2245         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2246           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2247           AC_EGREP_CPP(yes,
2248             [#include <matroska/KaxVersion.h>
2249              #ifdef LIBMATROSKA_VERSION
2250              #if LIBMATROSKA_VERSION >= 0x000705
2251              yes
2252              #endif
2253              #endif],
2254             [AC_MSG_RESULT([yes])
2255               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2256               VLC_ADD_CXXFLAGS([mkv],[])
2257               if test "${SYS}" = "darwin"; then
2258                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2259               fi
2260               AC_CHECK_LIB(ebml_pic, main, [
2261                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2262                 VLC_ADD_PLUGINS([mkv])
2263                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2264               ], [
2265                 AC_CHECK_LIB(ebml, main, [
2266                   # We only have libebml, make mkv.a a builtin
2267                   VLC_ADD_BUILTINS([mkv])
2268                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2269                 ])
2270               ])
2271             ],
2272             [AC_MSG_RESULT([no])
2273               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.])
2274           ])
2275         ])
2276       ],
2277       [AC_MSG_RESULT([no])
2278         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.])
2279     ])
2280   ])
2281   AC_LANG_POP(C++)
2282 fi
2283
2284 dnl
2285 dnl  modplug demux plugin
2286 dnl
2287 AC_ARG_ENABLE(mod,
2288   [  --enable-mod            Mod demux support (default enabled)])
2289 if test "${enable_mod}" != "no"
2290 then
2291   AC_ARG_WITH(mod-tree,
2292   [    --with-mod-tree=PATH mod tree for static linking])
2293   if test -n "${with_mod_tree}"
2294   then
2295     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2296     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2297     if test -z "${real_mod_tree}"
2298     then
2299       dnl  The given directory can't be found
2300       AC_MSG_RESULT(no)
2301       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2302     fi
2303     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2304     then
2305       dnl  Use a custom mod
2306       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2307       VLC_ADD_PLUGINS([mod])
2308       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2309       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2310     else
2311       dnl  The given mod wasn't built
2312       AC_MSG_RESULT(no)
2313       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2314     fi
2315   else
2316     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2317       VLC_ADD_PLUGINS([mod])
2318       VLC_ADD_CXXFLAGS([mod],[])
2319       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2320   fi
2321 fi
2322
2323 dnl
2324 dnl  mpc demux plugin
2325 dnl
2326 AC_ARG_ENABLE(mpc,
2327   [  --enable-mpc            Mpc demux support (default enabled)])
2328 if test "${enable_mpc}" != "no"
2329 then
2330   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2331     VLC_ADD_PLUGINS([mpc])
2332     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2333 fi
2334
2335
2336 dnl
2337 dnl  Codec plugins
2338 dnl
2339
2340 AC_ARG_WITH(,[Codec plugins:])
2341
2342 dnl
2343 dnl  mad plugin
2344 dnl
2345 AC_ARG_ENABLE(mad,
2346   [  --enable-mad            libmad module (default enabled)])
2347 if test "${enable_mad}" != "no"
2348 then
2349   AC_ARG_WITH(mad,
2350     [    --with-mad=PATH       path to libmad],[],[])
2351   if test "${with_mad}" != "no" -a -n "${with_mad}"
2352   then
2353     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2354     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2355   fi
2356
2357   AC_ARG_WITH(mad-tree,
2358     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2359   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2360   then
2361     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2362     if test -z "${real_mad_tree}"
2363     then
2364       dnl  The given directory can't be found
2365       AC_MSG_RESULT(no)
2366       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2367     fi
2368     dnl  Use a custom libmad
2369     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2370     if test -f ${real_mad_tree}/mad.h
2371     then
2372       AC_MSG_RESULT(yes)
2373       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2374       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2375       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2376       AC_CHECK_LIB(mad, mad_bit_init, [
2377         VLC_ADD_BUILTINS([mpgatofixed32])
2378         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2379         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2380       ],[])
2381       LDFLAGS="${LDFLAGS_save}"
2382     else
2383       AC_MSG_RESULT(no)
2384       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2385     fi
2386   else
2387     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2388     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2389     AC_CHECK_HEADERS(mad.h, ,
2390       [ 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.]) ])
2391     AC_CHECK_LIB(mad, mad_bit_init, [
2392       VLC_ADD_PLUGINS([mpgatofixed32])
2393       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2394       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2395     CPPFLAGS="${CPPFLAGS_save}"
2396     LDFLAGS="${LDFLAGS_save}"
2397   fi
2398 fi
2399
2400 dnl
2401 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2402 dnl
2403 AC_CHECK_HEADERS(id3tag.h, [
2404   AC_CHECK_HEADERS(zlib.h, [
2405     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2406     VLC_ADD_PLUGINS([id3tag])]) ])
2407
2408 dnl
2409 dnl  ffmpeg decoder/demuxer plugin
2410 dnl
2411 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2412 dnl                             4- default place, 
2413
2414 AC_ARG_ENABLE(ffmpeg,
2415 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2416 if test "${enable_ffmpeg}" != "no"
2417 then
2418
2419 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2420
2421  AC_ARG_WITH(ffmpeg-mp3lame,
2422    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2423    [
2424      if test "$with_ffmpeg_mp3lame" = "yes";    then
2425         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2426      fi])
2427
2428  AC_ARG_WITH(ffmpeg-faac,
2429    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2430    [
2431      if test "$with_ffmpeg_faac" = "yes"; then
2432         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2433      fi])
2434
2435  AC_ARG_WITH(ffmpeg-dts,
2436    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2437    [
2438      if test "$with_ffmpeg_dts" = "yes"; then
2439              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2440              AC_CHECK_LIB(dts_pic, dts_free, 
2441                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2442                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2443              LDFLAGS="${LDFLAGS_save}"
2444      fi])
2445
2446  AC_ARG_WITH(ffmpeg-zlib,
2447    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2448    [
2449      if test "$with_ffmpeg_zlib" = "yes"; then
2450                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2451      fi])
2452
2453  dnl
2454  dnl test for --with-ffmpeg-tree
2455  dnl
2456  AC_ARG_WITH(ffmpeg-tree,
2457    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2458
2459  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2460    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2461    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2462    if test -z "${real_ffmpeg_tree}"; then
2463      dnl  The given directory can't be found
2464      AC_MSG_RESULT(no)
2465      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2466    fi
2467    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2468      dnl  The given libavcodec wasn't built
2469      AC_MSG_RESULT(no)
2470      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2471    fi
2472    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2473      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2474        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2475      else
2476        dnl  The given libavcodec wasn't built with --enable-pp
2477        AC_MSG_RESULT(no)
2478        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2479      fi
2480    fi
2481    dnl  Use a custom libffmpeg
2482    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2483
2484    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2485      if test "${with_ffmpeg_zlib}" != "yes"; then
2486        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2487      fi
2488    fi
2489    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2490      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2491        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2492      fi
2493    fi
2494    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2495      if test "${with_ffmpeg_faac}" != "yes"; then
2496        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2497      fi
2498    fi
2499    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2500      if test "${with_ffmpeg_dts}" != "yes"; then
2501        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2502        AC_CHECK_LIB(dts_pic, dts_free, 
2503          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2504          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2505        LDFLAGS="${LDFLAGS_save}"
2506      fi
2507    fi
2508    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2509      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2510    fi
2511    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2512      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2513    fi
2514    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2515      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2516    fi
2517
2518    VLC_ADD_BUILTINS([ffmpeg])
2519    if test "${enable_sout}" != "no"; then
2520      VLC_ADD_BUILTINS([stream_out_switcher])
2521    fi
2522
2523    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2524      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2525      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2526    fi
2527
2528    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2529    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2530
2531    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2532      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2533      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2534      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2535    fi
2536 else    
2537     
2538 dnl Look for a ffmpeg-config (we are on debian )
2539  
2540   FFMPEG_PATH="${PATH}"
2541   AC_ARG_WITH(ffmpeg-config-path,
2542     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2543     [ if test "${with_ffmpeg_config_path}" != "no"
2544       then
2545         FFMPEG_PATH="${with_ffmpeg_config_path}"
2546       fi ])
2547   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2548   if test "${FFMPEG_CONFIG}" != "no"
2549   then
2550     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2551     AC_CHECK_HEADERS(postproc/postprocess.h)
2552     VLC_ADD_PLUGINS([ffmpeg])
2553     if test "${enable_sout}" != "no"; then
2554         VLC_ADD_PLUGINS([stream_out_switcher])
2555     fi
2556     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2557     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2558  
2559  else
2560
2561 dnl Trying with pkg-config
2562    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2563     [
2564      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2565      AC_CHECK_HEADERS(postproc/postprocess.h)
2566      VLC_ADD_BUILTINS([ffmpeg])
2567      if test "${enable_sout}" != "no"; then
2568          VLC_ADD_BUILTINS([stream_out_switcher])
2569      fi
2570      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2571      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2572      dnl newer ffmpeg have a separate libpostproc
2573      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2574        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2575        ],[ true ])
2576     ],[
2577      
2578     dnl
2579     dnl last chance: at the default place
2580     dnl
2581       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2582       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2583       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2584       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2585
2586       AC_CHECK_LIB(avutil, av_add_i, [
2587         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2588         LDAVUTIL="-lavutil"])
2589
2590       AC_CHECK_LIB(postproc, pp_postprocess, [
2591         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2592
2593       AC_CHECK_LIB(avcodec, avcodec_init, [
2594         VLC_ADD_BUILTINS([ffmpeg])
2595         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2596         if test "${enable_sout}" != "no"; then
2597             VLC_ADD_BUILTINS([stream_out_switcher])
2598         fi],
2599          [ AC_MSG_ERROR([Could not find ffmpeg on your system: you may get it from http://ffmpeg.sf.net/ (cvs version is recommended). Alternatively you can use --disable-ffmpeg to disable the ffmpeg plugins.]) ], [$LDAVUTIL])
2600       AC_CHECK_LIB(avformat, av_open_input_stream, [
2601         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2602         [Define if you have ffmpeg's libavformat.])
2603         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2604       LDFLAGS="${LDFLAGS_save}"
2605       CPPFLAGS="${CPPFLAGS_save}"
2606     ])
2607   fi
2608  fi 
2609 fi
2610
2611 dnl
2612 dnl  ffmpegaltivec plugin
2613 dnl
2614 AC_ARG_ENABLE(ffmpegaltivec,
2615 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2616 if test "${enable_ffmpegaltivec}" = "yes"
2617 then
2618   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2619     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2620     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2621     if test -z "${real_ffmpeg_tree}"; then
2622       dnl  The given directory can't be found
2623       AC_MSG_RESULT(no)
2624       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2625     fi
2626     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2627       dnl  The given libavcodecaltivec wasn't built
2628       AC_MSG_RESULT(no)
2629       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2630     fi
2631     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2632       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2633       AC_MSG_RESULT(no)
2634       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2635     fi
2636     dnl  Use a custom libffmpeg
2637     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2638     VLC_ADD_BUILTINS([ffmpegaltivec])
2639     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2640     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2641     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2642
2643     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2644       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2645       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2646       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2647     fi
2648     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2649     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2650   fi
2651 fi
2652
2653 dnl
2654 dnl  faad decoder plugin
2655 dnl
2656 AC_ARG_ENABLE(faad,
2657 [  --enable-faad           faad codec (default disabled)])
2658 if test "${enable_faad}" = "yes"
2659 then
2660   AC_ARG_WITH(faad-tree,
2661   [    --with-faad-tree=PATH faad tree for static linking])
2662   if test -n "${with_faad_tree}"
2663   then
2664     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2665     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2666     if test -z "${real_faad_tree}"
2667     then
2668       dnl  The given directory can't be found
2669       AC_MSG_RESULT(no)
2670       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2671     fi
2672     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2673     then
2674       dnl  Use a custom faad
2675       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2676       VLC_ADD_BUILTINS([faad])
2677       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2678       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2679     else
2680       dnl  The given libfaad wasn't built
2681       AC_MSG_RESULT(no)
2682       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2683     fi
2684   else
2685     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2686     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2687     AC_CHECK_HEADERS(faad.h, ,
2688       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2689     AC_CHECK_LIB(faad, faacDecOpen, [
2690       VLC_ADD_PLUGINS([faad])
2691       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2692       AC_CHECK_LIB(faad, NeAACDecOpen, [
2693         VLC_ADD_PLUGINS([faad])
2694         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2695         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2696     LDFLAGS="${LDFLAGS_save}"
2697     CPPFLAGS="${CPPFLAGS_save}"
2698   fi
2699 fi
2700
2701 dnl
2702 dnl twolame encoder plugin
2703 dnl
2704 AC_ARG_ENABLE(twolame,
2705 [  --enable-twolame        twolame codec (default disabled)])
2706 if test "${enable_twolame}" = "yes"
2707 then
2708   AC_ARG_WITH(twolame-tree,
2709   [    --with-twolame-tree=PATH twolame tree for static linking])
2710   if test -n "${with_twolame_tree}"
2711   then
2712     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2713     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2714     if test -z "${real_twolame_tree}"
2715     then
2716       dnl  The given directory can't be found
2717       AC_MSG_RESULT(no)
2718       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2719     fi
2720     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2721     then
2722       dnl  Use a custom twolame
2723       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2724       VLC_ADD_BUILTINS([twolame])
2725       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2726       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2727     else
2728       dnl  The given libtwolame wasn't built
2729       AC_MSG_RESULT(no)
2730       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2731     fi
2732   else
2733     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2734     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2735     AC_CHECK_HEADERS(twolame.h, ,
2736       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2737     AC_CHECK_LIB(twolame, twolame_init, [
2738       VLC_ADD_PLUGINS([twolame])
2739       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2740         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2741     LDFLAGS="${LDFLAGS_save}"  
2742     CPPFLAGS="${CPPFLAGS_save}"
2743   fi
2744 fi
2745
2746 dnl
2747 dnl  QuickTime plugin
2748 dnl
2749 AC_ARG_ENABLE(quicktime,
2750   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2751 if test "${enable_quicktime}" != "no" &&
2752   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2753 then
2754   if test "${SYS}" = "mingw32"; then
2755     VLC_ADD_BUILTINS([quicktime])
2756   else
2757   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2758     [ VLC_ADD_BUILTINS([quicktime])
2759       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2760     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2761   fi
2762 fi
2763
2764 dnl
2765 dnl  Real plugin
2766 dnl
2767 AC_ARG_ENABLE(real,
2768   [  --enable-real           Real audio module (default disabled)])
2769 if test "${enable_real}" = "yes"; then
2770   VLC_ADD_PLUGINS([realaudio])
2771 fi
2772
2773 dnl
2774 dnl  Real RTSP plugin
2775 dnl
2776 AC_ARG_ENABLE(realrtsp,
2777   [  --enable-realrtsp       Real RTSP module (default disabled)])
2778 if test "${enable_realrtsp}" = "yes"; then
2779   VLC_ADD_PLUGINS([access_realrtsp])
2780 fi
2781
2782 dnl
2783 dnl MP4 module
2784 dnl
2785 AC_CHECK_HEADERS(zlib.h, [
2786   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2787 ] )
2788
2789 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2790   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2791 ] )
2792
2793 dnl
2794 dnl skins2 module
2795 dnl
2796 AC_CHECK_HEADERS(libtar.h, [
2797   VLC_ADD_LDFLAGS([skins2],[-ltar])
2798 ] )
2799
2800
2801
2802 dnl
2803 dnl A52/AC3 decoder plugin
2804 dnl
2805 AC_ARG_ENABLE(a52,
2806   [  --enable-a52            A/52 support with liba52 (default enabled)])
2807 if test "${enable_a52}" != "no"
2808 then
2809   AC_ARG_WITH(a52,
2810     [    --with-a52=PATH       a52 headers and libraries])
2811   AC_ARG_WITH(a52-tree,
2812     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2813   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2814   then
2815     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2816     if test -z "${real_a52_tree}"
2817     then
2818       dnl  The given directory can't be found
2819       AC_MSG_RESULT(no)
2820       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2821     fi
2822     dnl  Use a custom a52dec
2823     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2824     if test -f ${real_a52_tree}/include/a52.h
2825     then
2826       AC_MSG_RESULT(yes)
2827       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2828       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2829       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2830       AC_CHECK_LIB(a52, a52_free, [
2831         VLC_ADD_BUILTINS([a52tofloat32])
2832         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2833         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2834         ],[
2835         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2836         then
2837           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2838         else
2839           AC_MSG_ERROR([the specified tree hasn't been compiled])
2840         fi
2841       ])
2842       LDFLAGS="${LDFLAGS_save}"
2843     else
2844       AC_MSG_RESULT(no)
2845       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2846     fi
2847   else
2848     if test -z "${with_a52}"
2849     then
2850       LDFLAGS_test=""
2851       CPPFLAGS_test=""
2852     else
2853       LDFLAGS_test="-L${with_a52}/lib"
2854       CPPFLAGS_test="-I${with_a52}/include"
2855     fi
2856     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2857     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2858     AC_CHECK_HEADERS(a52dec/a52.h, [
2859       AC_CHECK_LIB(a52, a52_free, [
2860         VLC_ADD_PLUGINS([a52tofloat32])
2861         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2862         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2863       ],[
2864         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.])
2865       ])
2866     ])
2867     CPPFLAGS="${CPPFLAGS_save}"
2868     LDFLAGS="${LDFLAGS_save}"
2869   fi
2870 fi
2871
2872 AC_ARG_WITH(a52-fixed,
2873       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2874       [
2875         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2876
2877 dnl
2878 dnl DTS Coherent Acoustics decoder plugin
2879 dnl
2880 AC_ARG_ENABLE(dts,
2881   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2882 if test "${enable_dts}" != "no"; then
2883   AC_ARG_WITH(dts-tree,
2884     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2885   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2886   then
2887     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2888     if test -z "${real_dts_tree}"
2889     then
2890       dnl  The given directory can't be found
2891       AC_MSG_RESULT(no)
2892       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2893     fi
2894     dnl  Use a custom libdts
2895     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2896     if test -f ${real_dts_tree}/include/dts.h
2897     then
2898       AC_MSG_RESULT(yes)
2899       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2900       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2901       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2902       AC_CHECK_LIB(dts_pic, dts_free, [
2903         VLC_ADD_PLUGINS([dtstofloat32])
2904         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2905         ],[
2906         AC_CHECK_LIB(dts, dts_free, [
2907           VLC_ADD_BUILTINS([dtstofloat32])
2908           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2909           ],[
2910           if test -f ${real_dts_tree}/libdts/libdts.a
2911           then
2912             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2913           else
2914             AC_MSG_ERROR([the specified tree hasn't been compiled])
2915           fi
2916         ])
2917       ])
2918       LDFLAGS="${LDFLAGS_save}"
2919     else
2920       AC_MSG_RESULT(no)
2921       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2922     fi
2923   else
2924     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2925     AC_CHECK_HEADERS(dts.h, [
2926       AC_CHECK_LIB(dts_pic, dts_free, [
2927         VLC_ADD_PLUGINS([dtstofloat32])
2928         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2929       ],[
2930         AC_CHECK_LIB(dts, dts_free, [
2931           VLC_ADD_BUILTINS([dtstofloat32])
2932           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2933         ],[
2934           if test "${enable_dts}" = "yes"; then
2935             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2936           fi
2937         ])
2938       ])
2939     ])
2940     LDFLAGS="${LDFLAGS_save}"
2941   fi
2942 fi
2943
2944 dnl
2945 dnl  Flac plugin
2946 dnl
2947 AC_ARG_ENABLE(flac,
2948   [  --enable-flac           flac decoder support (default disabled)])
2949 if test "${enable_flac}" = "yes"
2950 then
2951   AC_ARG_WITH(flac-tree,
2952   [    --with-flac-tree=PATH flac tree for static linking])
2953   if test -n "${with_flac_tree}"
2954   then
2955     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2956     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2957     if test -z "${real_flac_tree}"
2958     then
2959       dnl  The given directory can't be found
2960       AC_MSG_RESULT(no)
2961       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2962     fi
2963     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2964     then
2965       dnl  Use a custom flac
2966       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2967       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2968       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2969       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2970     else
2971       dnl  The given flac wasn't built
2972       AC_MSG_RESULT(no)
2973       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2974     fi
2975   else
2976     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2977       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2978      ],[])
2979   fi
2980 fi
2981
2982 dnl
2983 dnl  Libmpeg2 plugin
2984 dnl
2985 AC_ARG_ENABLE(libmpeg2,
2986   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2987 if test "${enable_libmpeg2}" != "no"
2988 then
2989   AC_ARG_WITH(libmpeg2-tree,
2990   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2991   if test -n "${with_libmpeg2_tree}"
2992   then
2993     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2994     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2995     if test -z "${real_libmpeg2_tree}"
2996     then
2997       dnl  The given directory can't be found
2998       AC_MSG_RESULT(no)
2999       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3000     fi
3001     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3002     then
3003       dnl  Use a custom libmpeg2
3004       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3005       VLC_ADD_BUILTINS([libmpeg2])
3006       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3007       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3008       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3009     else
3010       dnl  The given libmpeg2 wasn't built
3011       AC_MSG_RESULT(no)
3012       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3013     fi
3014   else
3015     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3016       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3017       AC_EGREP_CPP(yes,
3018         [#include <mpeg2dec/mpeg2.h>
3019          #ifdef MPEG2_RELEASE
3020          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3021          yes
3022          #endif
3023          #endif],
3024         [AC_MSG_RESULT([yes])
3025           VLC_ADD_PLUGINS([libmpeg2])
3026           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3027         [AC_MSG_RESULT([no])
3028           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.])])],
3029
3030       [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.])]
3031     )
3032   fi
3033 fi
3034
3035 dnl
3036 dnl  Vorbis plugin
3037 dnl
3038 AC_ARG_ENABLE(vorbis,
3039   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3040 if test "${enable_vorbis}" != "no"
3041 then
3042   AC_ARG_WITH(vorbis-tree,
3043   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3044   if test -n "${with_vorbis_tree}"
3045   then
3046     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3047     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3048     if test -z "${real_vorbis_tree}"
3049     then
3050       dnl  The given directory can't be found
3051       AC_MSG_RESULT(no)
3052       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3053     fi
3054     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3055     then
3056       dnl  Use a custom vorbis 
3057       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3058       VLC_ADD_PLUGINS([vorbis])
3059       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3060       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3061     else
3062       dnl  The given vorbis wasn't built
3063       AC_MSG_RESULT(no)
3064       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3065     fi
3066   else
3067     AC_CHECK_HEADERS(vorbis/codec.h, [
3068       VLC_ADD_PLUGINS([vorbis])
3069       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3070
3071     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3072       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3073   fi
3074 fi
3075
3076 dnl
3077 dnl  Tremor plugin
3078 dnl
3079 AC_ARG_ENABLE(tremor,
3080   [  --enable-tremor         Tremor decoder support (default disabled)])
3081 if test "${enable_tremor}" = "yes"
3082 then
3083   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3084     VLC_ADD_PLUGINS([tremor])
3085     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3086    ],[])
3087 fi
3088
3089 dnl
3090 dnl  Speex plugin
3091 dnl
3092 AC_ARG_ENABLE(speex,
3093   [  --enable-speex          Speex decoder support (default enabled)])
3094 if test "${enable_speex}" != "no"
3095 then
3096   AC_ARG_WITH(speex-tree,
3097   [    --with-speex-tree=PATH speex tree for static linking])
3098   if test -n "${with_speex_tree}"
3099   then
3100     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3101     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3102     if test -z "${real_speex_tree}"
3103     then
3104       dnl  The given directory can't be found
3105       AC_MSG_RESULT(no)
3106       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3107     fi
3108     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3109     then
3110       dnl  Use a custom speex
3111       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3112       VLC_ADD_PLUGINS([speex])
3113       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3114       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3115     else
3116       dnl  The given speex wasn't built
3117       AC_MSG_RESULT(no)
3118       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3119     fi
3120   else
3121     AC_CHECK_HEADERS(speex/speex.h, [
3122       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3123       AC_CHECK_LIB(speex, speex_decode_int, [
3124         VLC_ADD_PLUGINS([speex])
3125         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3126         [ AC_MSG_RESULT([no])
3127           AC_MSG_WARN([Your libspeex is too old, please get the development
3128                        version.]) ],[])
3129       LDFLAGS="${LDFLAGS_save}"
3130       ],[])
3131   fi
3132 fi
3133
3134 dnl
3135 dnl  tarkin decoder plugin
3136 dnl
3137 AC_ARG_ENABLE(tarkin,
3138 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3139 if test "${enable_tarkin}" = "yes"
3140 then
3141   AC_ARG_WITH(tarkin-tree,
3142   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3143   if test -n "${with_tarkin_tree}"
3144   then
3145     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3146     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3147     if test -f "${real_tarkin_tree}/tarkin.o"
3148     then
3149       VLC_ADD_BUILTINS([tarkin])
3150       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3151       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])
3152       AC_MSG_RESULT(yes)
3153     else
3154       dnl  The given tarkin tree wasn't built
3155       AC_MSG_RESULT(no)
3156       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3157                     make sure you compiled tarkin in ${with_tarkin_tree}])
3158     fi
3159   fi
3160 fi
3161
3162 dnl
3163 dnl  theora decoder plugin
3164 dnl
3165 AC_ARG_ENABLE(theora,
3166 [  --enable-theora         experimental theora codec (default disabled)])
3167 if test "${enable_theora}" = "yes"
3168 then
3169   AC_CHECK_HEADERS(theora/theora.h, [
3170     AC_CHECK_LIB(theora, theora_granule_time, [
3171       if test "${SYS}" = "mingw32"; then
3172         VLC_ADD_PLUGINS([theora])
3173       else
3174         VLC_ADD_BUILTINS([theora])
3175       fi
3176       theora_libs="-ltheora -logg"
3177       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3178       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3179 You also need to check that you have a libogg posterior to the 1.0 release.])],
3180       [-logg])
3181   ])
3182 fi
3183
3184 dnl
3185 dnl  dirac decoder plugin
3186 dnl
3187 AC_ARG_ENABLE(dirac,
3188 [  --enable-dirac          experimental dirac codec (default disabled)])
3189 if test "${enable_dirac}" = "yes"; then
3190   PKG_CHECK_MODULES(DIRAC,dirac, [
3191       VLC_ADD_PLUGINS([dirac])
3192       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3193       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3194       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3195   ])
3196 fi
3197
3198 dnl  libvc1 decoder plugin
3199 dnl
3200 AC_ARG_ENABLE(libvc1,
3201 [  --enable-libvc1         VC-1 codec (default disabled)])
3202 if test "${enable_libvc1}" = "yes"
3203 then
3204   AC_ARG_WITH(libvc1-tree,
3205   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3206   if test -n "${with_libvc1_tree}"
3207   then
3208     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3209     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3210     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3211     then
3212       VLC_ADD_BUILTINS([libvc1])
3213       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3214       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3215       AC_MSG_RESULT(yes)
3216     else
3217       dnl  The given libvc1 tree wasn't built
3218       AC_MSG_RESULT(no)
3219       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3220                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3221     fi
3222   fi
3223 fi
3224
3225 dnl
3226 dnl  PNG decoder module
3227 dnl
3228 AC_ARG_ENABLE(png,
3229   [  --enable-png            PNG support (default enabled)])
3230 if test "${enable_png}" != "no"; then
3231 AC_CHECK_HEADERS(png.h, [
3232   LDFLAGS="${LDFLAGS_save} -lz"
3233   AC_CHECK_LIB(png, png_set_rows, [
3234     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3235     VLC_ADD_PLUGINS([png])
3236     VLC_ADD_PLUGINS([osdmenu])
3237     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3238     [],[-lz])
3239   LDFLAGS="${LDFLAGS_save}"
3240   ])
3241 fi
3242
3243 dnl
3244 dnl H264 encoder plugin (using libx264)
3245 dnl
3246 AC_ARG_ENABLE(x264,
3247   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3248 if test "${enable_x264}" != "no"; then
3249   AC_ARG_WITH(x264-tree,
3250     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3251   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3252   then
3253     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3254     if test -z "${real_x264_tree}"
3255     then
3256       dnl  The given directory can't be found
3257       AC_MSG_RESULT(no)
3258       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3259     fi
3260     dnl  Use a custom libx264
3261     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3262     if test -f ${real_x264_tree}/x264.h
3263     then
3264       AC_MSG_RESULT(yes)
3265       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3266       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3267       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3268       AC_CHECK_LIB(x264, x264_encoder_open, [
3269         VLC_ADD_BUILTINS([x264])
3270         VLC_ADD_LDFLAGS([x264],[-lx264])
3271       ],[
3272         AC_MSG_ERROR([the specified tree hasn't been compiled])
3273       ])
3274       LDFLAGS="${LDFLAGS_save}"
3275     else
3276       AC_MSG_RESULT(no)
3277       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3278     fi
3279   else
3280     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3281     AC_CHECK_HEADERS(x264.h, [
3282       AC_CHECK_LIB(x264, x264_encoder_open, [
3283         VLC_ADD_PLUGINS([x264])
3284         VLC_ADD_LDFLAGS([x264],[-lx264])
3285       ],[
3286         if test "${enable_x264}" = "yes"; then
3287             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3288           fi
3289       ])
3290     ])
3291     LDFLAGS="${LDFLAGS_save}"
3292   fi
3293 fi
3294
3295 dnl
3296 dnl  CMML plugin
3297 dnl
3298 AC_ARG_ENABLE(cmml,
3299   [  --enable-cmml           CMML support (default enabled)])
3300 if test "${enable_cmml}" != "no"
3301 then
3302   VLC_ADD_PLUGINS([cmml])
3303 fi
3304
3305
3306 dnl
3307 dnl  Video plugins
3308 dnl
3309
3310 AC_ARG_WITH(,[Video plugins:])
3311
3312 dnl Check for DPMS
3313 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3314   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3315   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3316     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3317     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3318       AC_MSG_RESULT(yes)
3319       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3320                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3321     ],[
3322       AC_MSG_RESULT(no)
3323     ])
3324   ],,[
3325     #include <X11/Xlib.h>
3326   ])
3327   CPPFLAGS="${CPPFLAGS_save}"
3328 fi
3329
3330 dnl
3331 dnl  X11 module
3332 dnl  (enabled by default except on win32)
3333 dnl
3334 AC_ARG_ENABLE(x11,
3335   [  --enable-x11            X11 support (default enabled)])
3336 if test "${enable_x11}" != "no" &&
3337   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3338    test "${enable_x11}" = "yes"); then
3339   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3340   AC_CHECK_HEADERS(X11/Xlib.h, [
3341     VLC_ADD_PLUGINS([x11])
3342     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3343     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3344   ])
3345   CPPFLAGS="${CPPFLAGS_save}"
3346 fi
3347
3348 dnl
3349 dnl  XVideo module
3350 dnl  (enabled by default except on win32)
3351 dnl
3352 AC_ARG_ENABLE(xvideo,
3353   [  --enable-xvideo         XVideo support (default enabled)])
3354 if test "${enable_xvideo}" != "no" &&
3355   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3356    test "${enable_xvideo}" = "yes"); then
3357   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3358   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3359     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3360     AC_CHECK_LIB(Xv,XvPutImage,[
3361       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3362       # test for libXv_pic.
3363       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3364         VLC_ADD_PLUGINS([xvideo])
3365         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3366         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3367       else
3368         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3369           VLC_ADD_PLUGINS([xvideo])
3370           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3371           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3372         ],[
3373           VLC_ADD_BUILTINS([xvideo])
3374           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3375           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3376         ])
3377       fi
3378     ])
3379     CFLAGS="${CFLAGS_save}"
3380   ]
3381   CPPFLAGS="${CPPFLAGS_save}")
3382 fi
3383
3384 dnl
3385 dnl  GLX module
3386 dnl  (enabled by default except on win32)
3387 dnl
3388 AC_ARG_ENABLE(glx,
3389   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3390 if test "${enable_glx}" != "no" &&
3391   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3392    test "${enable_glx}" = "yes"); then
3393   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3394   AC_CHECK_HEADERS(X11/Xlib.h, [
3395     AC_CHECK_HEADERS(GL/glx.h, [
3396       VLC_ADD_PLUGINS([glx])
3397       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3398       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3399   ]) ])
3400   CPPFLAGS="${CPPFLAGS_save}"
3401 fi
3402
3403 if test "${enable_xvideo}" != "no" &&
3404   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3405    test "${enable_xvideo}" = "yes"); then
3406 dnl
3407 dnl  Check for the Xinerama extension
3408 dnl
3409   ac_cv_have_xinerama="no"
3410   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3411   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3412   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3413     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3414       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3415       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3416       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3417       ac_cv_have_xinerama="yes"
3418     ],[
3419       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3420         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3421         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3422         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3423         ac_cv_have_xinerama="yes"
3424       ])
3425     ])
3426   ])
3427   if test "${ac_cv_have_xinerama}" = "yes"; then
3428     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3429   fi
3430   CFLAGS="${CFLAGS_save}"
3431   CPPFLAGS="${CPPFLAGS_save}"
3432
3433 dnl
3434 dnl  Check for XF86VidMode extension
3435 dnl
3436   ac_cv_have_xf86vidmode="no"
3437   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3438   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3439   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3440     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3441       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3442       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3443       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3444       ac_cv_have_xf86vidmode="yes"
3445     ],[
3446       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3447         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3448         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3449         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3450         ac_cv_have_xf86vidmode="yes"
3451       ])
3452     ])
3453   ],[true],
3454 [#ifdef HAVE_X11_XLIB_H
3455 # include <X11/Xlib.h>
3456 #endif]
3457    )
3458   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3459     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3460   ])
3461   CFLAGS="${CFLAGS_save}"
3462   CPPFLAGS="${CPPFLAGS_save}"
3463
3464 fi
3465
3466 dnl
3467 dnl  OpenGL module
3468 dnl  (enabled by default except on beos)
3469 dnl
3470 AC_ARG_ENABLE(opengl,
3471   [  --enable-opengl         OpenGL support (default enabled)])
3472 if test "${enable_opengl}" != "no" &&
3473    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3474   if test "${SYS}" != "darwin"; then
3475     AC_CHECK_HEADERS(GL/gl.h, [
3476       VLC_ADD_PLUGINS([opengl])
3477       if test "${SYS}" != "mingw32"; then
3478         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3479       else
3480         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3481       fi
3482     ])
3483   else
3484     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3485     VLC_ADD_PLUGINS([opengl])
3486     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3487   fi
3488 fi
3489
3490 dnl
3491 dnl  SDL module
3492 dnl
3493 AC_ARG_ENABLE(sdl,
3494   [  --enable-sdl            SDL support (default enabled)])
3495 if test "${enable_sdl}" != "no"
3496 then
3497   SDL_PATH="${PATH}"
3498   AC_ARG_WITH(sdl-config-path,
3499     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3500     [ if test "${with_sdl_config_path}" != "no"
3501       then
3502         SDL_PATH="${with_sdl_config_path}:${PATH}"
3503       fi ])
3504   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3505   SDL_CONFIG="${SDL12_CONFIG}"
3506   SDL_HEADER="SDL12/SDL.h"
3507   SDL_IMAGE="SDL12/SDL_image.h"
3508   if test "${SDL_CONFIG}" = "no"
3509   then
3510     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3511     SDL_CONFIG=${SDL11_CONFIG}
3512     SDL_HEADER="SDL11/SDL.h"
3513     SDL_IMAGE="SDL11/SDL_image.h"
3514   fi
3515   if test "${SDL_CONFIG}" = "no"
3516   then
3517     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3518     SDL_HEADER="SDL/SDL.h"
3519     SDL_IMAGE="SDL/SDL_image.h"
3520   fi
3521   # check for cross-compiling
3522   SDL_PREFIX=
3523   AC_ARG_WITH(sdl-prefix,
3524     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3525                                e.g use as:
3526                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3527   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3528   then
3529     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3530   fi
3531   if test "${SDL_CONFIG}" != "no"
3532   then
3533     # SDL on Darwin is heavily patched and can only run SDL_image
3534     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3535       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3536     fi
3537     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3538     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3539     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3540     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3541       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3542       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3543           As a last resort we also test for SDL.h presence),
3544       [ AC_MSG_ERROR([The development package for SDL is not installed.
3545 Please install it and try again. Alternatively you can also configure with
3546 --disable-sdl.])
3547       ])])
3548     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3549       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3550       VLC_ADD_PLUGINS([sdl_image])
3551       AC_CHECK_LIB(png, png_set_rows,
3552         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3553       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3554         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3555       AC_CHECK_LIB(tiff, TIFFClientOpen,
3556         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3557       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3558       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3559           As a last resort we also test for SDL_image.h presence),
3560       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3561 You should install it alongside your SDL package.])
3562       ])])
3563     CPPFLAGS="${CPPFLAGS_save}"
3564     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3565     then
3566       AC_MSG_ERROR([The development package for SDL is not installed.
3567 Please install it and try again. Alternatively you can also configure with
3568 --disable-sdl.])
3569     fi
3570
3571   elif test "${enable_sdl}" =  "yes"
3572   then
3573     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3574 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3575     ])
3576   fi
3577 fi
3578
3579 dnl
3580 dnl  freetype module
3581 dnl
3582 AC_ARG_ENABLE(freetype,
3583   [  --enable-freetype       freetype support (default enabled)])
3584 AC_ARG_ENABLE(fribidi,
3585   [  --enable-fribidi        fribidi support (default enabled)])
3586 if test "${enable_freetype}" != "no"
3587 then
3588   FREETYPE_PATH="${PATH}"
3589   AC_ARG_WITH(freetype-config-path,
3590     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3591     [ if test "${with_freetype_config_path}" != "no"
3592       then
3593         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3594       fi ])
3595   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3596
3597   if test "${FREETYPE_CONFIG}" != "no"
3598   then
3599     VLC_ADD_PLUGINS([freetype])
3600     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3601     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3602     AC_CHECK_HEADERS(Carbon/Carbon.h,
3603       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3604   elif test "${enable_freetype}" =  "yes"
3605   then
3606     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3607 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3608     ])
3609   fi
3610
3611   dnl fribidi support
3612   if test "${enable_fribidi}" != "no"
3613   then
3614     FRIBIDI_PATH="${PATH}"
3615     AC_ARG_WITH(fribidi-config-path,
3616       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3617       [ if test "${with_fribidi_config_path}" != "no"
3618         then
3619           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3620         fi ])
3621     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3622
3623     if test "${FRIBIDI_CONFIG}" != "no"
3624     then
3625       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3626       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3627       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3628       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3629     fi
3630   fi
3631 fi
3632
3633 dnl
3634 dnl  libxml2 module
3635 dnl
3636 AC_ARG_ENABLE(libxml2,
3637   [  --enable-libxml2        libxml2 support (default enabled)])
3638 if test "${enable_libxml2}" != "no"
3639 then
3640   XML2_PATH="${PATH}"
3641   AC_ARG_WITH(xml2-config-path,
3642     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3643     [ if test "${with_xml2_config_path}" != "no"; then
3644         XML2_PATH="${with_xml2_config_path}:${PATH}"
3645       fi ])
3646   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3647   if test "${XML2_CONFIG}" != "no"; then
3648     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3649     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3650     dnl depends on the xmlTextReader extension
3651     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3652     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3653     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3654       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3655         VLC_ADD_PLUGINS([xml]) ],[
3656           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3657           if test "${enable_xml2}" = "yes"; then
3658             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3659           fi])
3660        ],[
3661       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3662       if test "${enable_xml2}" = "yes"; then
3663         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3664       fi])
3665     LDFLAGS="${LDFLAGS_save}"
3666     CPPFLAGS="${CPPFLAGS_save}"
3667   else
3668     if test "${enable_xml2}" = "yes"; then
3669       AC_MSG_ERROR([Could not find libxml2])
3670     fi
3671   fi
3672 fi
3673
3674 dnl
3675 dnl  SVG module
3676 dnl
3677 AC_ARG_ENABLE(svg,
3678   [  --enable-svg            SVG support (default disabled)])
3679 if test "${enable_svg}" = "yes"
3680 then
3681   PKG_CHECK_MODULES(SVG, 
3682         librsvg-2.0 >= 2.5.0,
3683         [
3684           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3685           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3686           VLC_ADD_PLUGINS([svg]) ],
3687         [AC_MSG_WARN(SVG library not found)])
3688 fi
3689
3690 dnl
3691 dnl Snapshot vout module (with cache)
3692 dnl
3693 AC_ARG_ENABLE(snapshot,
3694   [  --enable-snapshot       snapshot module (default disabled)])
3695 if test "${enable_snapshot}" = "yes"
3696 then
3697   VLC_ADD_PLUGINS([snapshot])
3698 fi
3699
3700 dnl
3701 dnl  Qt Embedded module
3702 dnl  (disabled by default)
3703 dnl
3704 AC_ARG_ENABLE(qte,
3705   [  --enable-qte            QT Embedded support (default disabled)])
3706 if test "${enable_qte}" = "yes"
3707 then
3708   AC_ARG_WITH(qte,
3709   [    --with-qte=PATH       Qt Embedded headers and libraries])
3710   if test "${with_qte}" != "no" -a -n "${with_qte}"
3711   then
3712     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3713     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])
3714   else
3715     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3716     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3717   fi
3718   VLC_ADD_PLUGINS([qte])
3719   NEED_QTE_MAIN=yes
3720   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3721   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3722     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3723   ] )
3724   CPPFLAGS="${CPPFLAGS_save}"
3725 fi
3726
3727 dnl
3728 dnl  Qt Video output module
3729 dnl  (disabled by default)
3730 dnl
3731 dnl AC_ARG_ENABLE(qt_video,
3732 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3733 dnl if test "${enable_qt_video}" = "yes"
3734 dnl then
3735 dnl  VLC_ADD_PLUGINS([qt_video])
3736 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3737 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3738 dnl   AC_CHECK_LIB(qt-mt,main,[
3739 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3740 dnl  ],[
3741 dnl    AC_CHECK_LIB(qt,main,[
3742 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3743 dnl    ])
3744 dnl  ])
3745 dnl  NEED_QTE_MAIN=yes
3746 dnl  LDFLAGS="${LDFLAGS_save}"
3747 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3748 dnl fi
3749
3750 dnl
3751 dnl Roku HD1000 Video output module
3752 dnl