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