Digital Video (Firewire/IEEE1394/I-Link) input for Camcorders
[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/bin:$PKG_CONFIG_PATH
102 dnl    else
103 dnl     export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/bin
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 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
681
682 AC_HEADER_TIME
683
684 dnl Check for dirent
685 need_dirent=false
686 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
687 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
688
689 dnl Mac OS X and other OSes don't have declaration for nanosleep
690 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
691 AC_MSG_CHECKING(for nanosleep in time.h)
692 AC_EGREP_HEADER(nanosleep,time.h,[
693   AC_MSG_RESULT(yes)
694   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
695             Define if <time.h> defines nanosleep.)
696 ],[
697   AC_MSG_RESULT(no)
698 ])
699 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
700
701 dnl Make sure we have timespecs
702 AC_MSG_CHECKING(for timespec in sys/time.h)
703 AC_EGREP_HEADER(timespec,sys/time.h,[
704   AC_MSG_RESULT(yes)
705   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
706             Define if <sys/time.h> defines struct timespec.)
707 ],[
708   AC_MSG_RESULT(no)
709 ])
710
711 dnl Check for threads library
712 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
713 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
714 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
715
716 dnl Default X headers and libraries
717 if test "${x_includes}" = "NONE"; then
718   x_includes="/usr/X11R6/include"
719 fi
720 if test "${x_libraries}" = "NONE"; then
721   x_libraries="/usr/X11R6/lib"
722 fi
723
724 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.
725
726 PKG_PROG_PKG_CONFIG()
727
728 dnl Check for hal
729 AC_ARG_ENABLE(hal,
730   [  --enable-hal            Linux HAL services discovery (default enabled)])
731  
732 if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
733 then
734   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
735     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
736       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
737       VLC_ADD_PLUGINS([hal]) 
738       VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
739       VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
740     dnl No hal 0.5 Test for 0.2
741     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
742        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
743         VLC_ADD_PLUGINS([hal])
744         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
745         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
746        [AC_MSG_WARN(HAL library not found)])
747     ]
748   )
749 fi
750
751 dnl Build the gtk_main plugins?
752 NEED_GTK_MAIN=no
753 NEED_GNOME_MAIN=no
754 NEED_GTK2_MAIN=no
755 NEED_GNOME2_MAIN=no
756
757 dnl build the qte plugin ?
758 NEED_QTE_MAIN=no
759
760 dnl Check for ntohl, etc.
761 AC_CACHE_CHECK([for ntohl in sys/param.h],
762     [ac_cv_c_ntohl_sys_param_h],
763     [CFLAGS="${CFLAGS_save} -Wall -Werror"
764      AC_TRY_COMPILE([#include <sys/param.h>],
765         [void foo() { int meuh; ntohl(meuh); }],
766         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
767 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
768     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
769 fi
770
771 # XXX: do this with an M4 macro?
772 #dnl Check for various -W flags
773 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
774 #do
775 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
776 #        [ac_cv_c_W${flag}],
777 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
778 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
779 #    if test "${ac_cv_c_W${flag}}" != "no"; then
780 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
781 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
782 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
783 #    fi
784 #done
785
786 AC_CACHE_CHECK([if \$CC accepts -Wall],
787     [ac_cv_c_Wall],
788     [CFLAGS="-Wall ${CFLAGS_save}"
789      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
790
791 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
792     [ac_cv_c_Wconversion],
793     [CFLAGS="-Wconversion ${CFLAGS_save}"
794      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
795
796 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
797     [ac_cv_c_Wunreachable_code],
798     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
799      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
800
801 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
802     [ac_cv_c_Wsign_compare],
803     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
804      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
805
806 if test "${ac_cv_c_Wall}" != "no"; then
807     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
808     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
809     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
810 fi
811
812 if test "${ac_cv_c_Wsign_compare}" != "no"; then
813     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
814     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
815     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
816 fi
817
818 dnl Check for -pipe
819 AC_CACHE_CHECK([if \$CC accepts -pipe],
820     [ac_cv_c_pipe],
821     [CFLAGS="${CFLAGS_save} -pipe"
822      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
823 if test "${ac_cv_c_pipe}" != "no"; then
824     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
825     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
826     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
827 fi
828
829 dnl Check for various optimization flags
830 AC_CACHE_CHECK([if \$CC accepts -Os],
831     [ac_cv_c_os],
832     [CFLAGS="${CFLAGS_save} -Os"
833      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
834 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
835     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
836 fi
837
838 AC_CACHE_CHECK([if \$CC accepts -O3],
839     [ac_cv_c_o3],
840     [CFLAGS="${CFLAGS_save} -O3"
841      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
842 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
843     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
844 fi
845
846 AC_CACHE_CHECK([if \$CC accepts -O2],
847     [ac_cv_c_o2],
848     [CFLAGS="${CFLAGS_save} -O2"
849      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
850 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
851     if test "${ac_cv_c_o3}" = "no"; then
852         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
853     fi
854     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
855 else 
856     AC_CACHE_CHECK([if \$CC accepts -O],
857         [ac_cv_c_o],
858         [CFLAGS="${CFLAGS_save} -O"
859          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
860     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
861         if test "${ac_cv_c_o3}" = "no"; then
862             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
863         fi
864         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
865     fi
866 fi
867
868 dnl Check for -ffast-math
869 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
870     [ac_cv_c_fast_math],
871     [CFLAGS="${CFLAGS_save} -ffast-math"
872      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
873 if test "${ac_cv_c_fast_math}" != "no"; then
874     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
875 fi
876
877 dnl Check for -funroll-loops
878 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
879 if test "${SYS}" != "beos"
880 then
881   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
882       [ac_cv_c_unroll_loops],
883       [CFLAGS="${CFLAGS_save} -funroll-loops"
884        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
885   if test "${ac_cv_c_unroll_loops}" != "no"; then
886       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
887   fi
888 fi
889
890 dnl Check for -fomit-frame-pointer
891 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
892     [ac_cv_c_omit_frame_pointer],
893     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
894      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
895 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
896     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
897     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
898     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
899 fi
900
901 dnl Check for -mdynamic-no-pic
902 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
903     [ac_cv_c_dynamic_no_pic],
904     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
905      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
906 if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
907     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
908     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
909 fi
910
911 dnl Check for Darwin plugin linking flags
912 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
913     [ac_cv_ld_darwin],
914     [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
915      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
916 if test "${ac_cv_ld_darwin}" != "no"; then
917     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
918     AC_CHECK_LIB(cc_dynamic, main,[
919       VLC_ADD_LDFLAGS([plugin],[-lcc_dynamic])
920     ])
921 fi
922
923 dnl Check for standard plugin linking flags
924 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
925 if test "${SYS}" = "beos"; then
926   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
927 else
928   AC_CACHE_CHECK([if \$CC accepts -shared],
929       [ac_cv_ld_plugins],
930       [CFLAGS="${CFLAGS_save} -shared"
931        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
932   if test "${ac_cv_ld_plugins}" != "no"; then
933     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
934   fi
935 fi
936
937 dnl Check for variadic macros
938 AC_CACHE_CHECK([for variadic cpp macros],
939     [ac_cv_cpp_variadic_macros],
940     [CFLAGS="${CFLAGS_save}"
941      AC_TRY_COMPILE(
942          [#include <stdio.h>
943           #define a(b,c...) printf(b,##c)],
944          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
945          ac_cv_cpp_variadic_macros=yes,
946          ac_cv_cpp_variadic_macros=no)])
947 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
948     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
949 fi
950
951 dnl Checks for __attribute__(aligned()) directive
952 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
953     [ac_cv_c_attribute_aligned],
954     [ac_cv_c_attribute_aligned=0
955         CFLAGS="${CFLAGS_save} -Werror"
956     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
957         AC_TRY_COMPILE([],
958         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
959         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
960     done
961         CFLAGS="${CFLAGS_save}"])
962 if test "${ac_cv_c_attribute_aligned}" != "0"; then
963     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
964         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
965 fi
966
967 dnl Checks for __attribute__(format()) directive
968 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
969     [ac_cv_c_attribute_format],
970     [ac_cv_c_attribute_format=no
971         CFLAGS="${CFLAGS_save} -Werror"
972         AC_TRY_COMPILE([],
973         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
974         [ac_cv_c_attribute_format=yes])
975         CFLAGS="${CFLAGS_save}"])
976 if test "${ac_cv_c_attribute_format}" != "no"; then
977     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
978 fi
979
980 dnl Check for __attribute__(())
981 AC_CACHE_CHECK([for __attribute__((packed))],
982   [ac_cv_c_attribute_packed],
983   [ac_cv_c_attribute_packed=no
984    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
985                     [ac_cv_c_attribute_packed=yes])])
986 if test "${ac_cv_c_attribute_packed}" != "no"; then
987   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
988 fi
989
990 dnl
991 dnl  Check the CPU
992 dnl
993 case "${target_cpu}" in
994   "")
995     ARCH=unknown
996     ;;
997   *)
998     ARCH="${target_cpu}"
999     ;;
1000 esac
1001
1002 dnl
1003 dnl  Enable profiling
1004 dnl
1005 AC_ARG_ENABLE(gprof,
1006 [  --enable-gprof          gprof profiling (default disabled)])
1007 AC_ARG_ENABLE(cprof,
1008 [  --enable-cprof          cprof profiling (default disabled)])
1009 test "${enable_gprof}" != "yes" && enable_gprof="no"
1010 test "${enable_cprof}" != "yes" && enable_cprof="no"
1011
1012 dnl
1013 dnl  default modules
1014 dnl
1015 VLC_ADD_PLUGINS([dummy logger memcpy])
1016 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
1017 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1018 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
1019 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
1020 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1021 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1022 VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
1023 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1024 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1025 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1026 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1027 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1028 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1029
1030 if test "${SYS}" != "mingwce"; then
1031 dnl  VLC_ADD_PLUGINS([externrun])
1032   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1033   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
1034   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1035   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1036   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1037   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1038   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer])
1039   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1040 fi
1041
1042 dnl
1043 dnl  Switch to enable a version of VLC where most modules will be builtin
1044 dnl
1045 AC_ARG_ENABLE(mostly-builtin,
1046 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1047 if test "${enable_mostly_builtin}" = "yes"; then
1048   VLC_ADD_BUILTINS([${PLUGINS}])
1049   PLUGINS=""
1050 fi
1051
1052 dnl
1053 dnl Some plugins aren't useful on some platforms
1054 dnl
1055 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1056     VLC_ADD_PLUGINS([screensaver])
1057 elif test "${SYS}" != "mingwce"; then
1058     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1059     VLC_ADD_LDFLAGS([dmo],[-lole32])
1060 else
1061     VLC_ADD_PLUGINS([win32text])
1062 fi
1063
1064 dnl
1065 dnl  Accelerated modules
1066 dnl
1067 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1068 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1069 MMXEXT_MODULES="memcpymmxext"
1070 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1071 THREEDNOW_MODULES="memcpy3dn"
1072 SSE_MODULES=""
1073 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1074 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1075
1076 if test "${enable_gprof}" != "yes"
1077 then
1078   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1079 fi
1080
1081 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1082     [ac_cv_mmx_inline],
1083     [CFLAGS="${CFLAGS_save}"
1084      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1085                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1086 if test "${ac_cv_mmx_inline}" != "no"; then
1087   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1088   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1089 fi
1090
1091 dnl  Check for fully workin MMX intrinsics
1092 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1093 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1094 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1095     [ac_cv_c_mmx_intrinsics],
1096     [CFLAGS="${CFLAGS_save} -O -mmmx"
1097      AC_TRY_COMPILE([#include <mmintrin.h>
1098                      #include <stdint.h>
1099                      uint64_t frobzor;],
1100                     [__m64 a, b, c;
1101                      a = b = c = (__m64)frobzor;
1102                      a = _mm_slli_pi16(a, 3);
1103                      a = _mm_adds_pi16(a, b);
1104                      c = _mm_srli_pi16(c, 8);
1105                      c = _mm_slli_pi16(c, 3);
1106                      b = _mm_adds_pi16(b, c);
1107                      a = _mm_unpacklo_pi8(a, b);
1108                      frobzor = (uint64_t)a;],
1109                     [ac_cv_c_mmx_intrinsics=yes],
1110                     [ac_cv_c_mmx_intrinsics=no])])
1111 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1112   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1113   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1114 fi
1115
1116 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1117     [ac_cv_mmxext_inline],
1118     [CFLAGS="${CFLAGS_save}"
1119      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1120                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1121 if test "${ac_cv_mmxext_inline}" != "no"; then
1122   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1123   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1124 fi
1125
1126 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1127     [ac_cv_3dnow_inline],
1128     [CFLAGS="${CFLAGS_save}"
1129      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1130                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1131 if test "${ac_cv_3dnow_inline}" != "no"; then
1132   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1133   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1134 fi
1135
1136 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1137     [ac_cv_sse_inline],
1138     [CFLAGS="${CFLAGS_save}"
1139      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1140                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1141 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1142   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1143   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1144 fi
1145
1146 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1147 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1148     [ac_cv_altivec_inline],
1149     [CFLAGS="${CFLAGS_save}"
1150      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1151          ac_cv_altivec_inline=yes,
1152          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1153           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1154             [ac_cv_altivec_inline="-Wa,-m7400"],
1155             ac_cv_altivec_inline=no)
1156          ])])
1157 if test "${ac_cv_altivec_inline}" != "no"; then
1158   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1159   if test "${ac_cv_altivec_inline}" != "yes"; then
1160     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1161     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1162     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1163     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1164     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1165   fi
1166   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1167 fi
1168
1169 dnl The AltiVec C extensions
1170 dnl
1171 dnl There are several possible cases:
1172 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1173 dnl                      need <altivec.h>
1174 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1175 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1176 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1177 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1178 dnl - Others: test should fail
1179 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1180   [ac_cv_c_altivec],
1181   [# OS X/PPC test (gcc 4.x)
1182    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1183    AC_TRY_COMPILE([],
1184      [vec_ld(0, (unsigned char *)0);],
1185      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1186      [# OS X/PPC test (gcc 3.x)
1187       CFLAGS="${CFLAGS_save} -faltivec"
1188       AC_TRY_COMPILE([],
1189         [vec_ld(0, (unsigned char *)0);],
1190         [ac_cv_c_altivec="-faltivec"],
1191         dnl Below this are the Linux tests
1192         [# Linux/PPC test (gcc 4.x)
1193          CFLAGS="${CFLAGS_save} -maltivec"
1194          AC_TRY_COMPILE([#include <altivec.h>],
1195            [vec_ld(0, (unsigned char *)0);],
1196            [ac_cv_c_altivec="-maltivec"],
1197            [# Linux/PPC test (gcc 3.3)
1198             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1199             AC_TRY_COMPILE([#include <altivec.h>],
1200               [vec_ld(0, (unsigned char *)0);],
1201               [ac_cv_c_altivec=""
1202                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1203               [# Linux/PPC test (gcc 3.3)
1204                CFLAGS="${CFLAGS_save} -fvec"
1205                AC_TRY_COMPILE([#include <altivec.h>],
1206                  [vec_ld(0, (unsigned char *)0);],
1207                  [ac_cv_c_altivec="-fvec"],
1208                  [ac_cv_c_altivec=no])
1209               ])
1210            ])
1211         ])
1212      ])
1213    CFLAGS="${CFLAGS_save}"
1214   ])
1215
1216 if test "${ac_cv_c_altivec}" != "no"; then
1217   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1218 fi
1219 AC_CHECK_HEADERS(altivec.h)
1220 CPPFLAGS="${CPPFLAGS_save}"
1221
1222 if test "${ac_cv_c_altivec}" != "no"; then
1223   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1224   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1225   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1226   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1227   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1228 fi
1229
1230 AC_CACHE_CHECK([if linker needs -framework vecLib],
1231     [ac_cv_ld_altivec],
1232     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1233      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1234      LDFLAGS="${LDFLAGS_save}"
1235     ])
1236 if test "${ac_cv_ld_altivec}" != "no"; then
1237   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1238 fi
1239 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1240
1241 AC_ARG_WITH(,[])
1242 AC_ARG_WITH(,[Optimization options:])
1243
1244 dnl
1245 dnl  Special arch tuning
1246 dnl
1247 AC_ARG_WITH(tuning,
1248 [  --with-tuning=ARCH      enable special tuning for an architecture
1249                           (default Pentium 2 on IA-32 and 750 on PPC)])
1250 if test -n "${with_tuning}"; then
1251     CFLAGS_TUNING="-mtune=${with_tuning}"
1252 else
1253     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1254         CFLAGS_TUNING="-mtune=pentium2"
1255     elif test "${target_cpu}" = "x86_64"; then
1256         CFLAGS_TUNING="-mtune=athlon64"
1257     elif test "${target_cpu}" = "powerpc"; then
1258         CFLAGS_TUNING="-mtune=750";
1259     fi
1260 fi
1261
1262 dnl NOTE: this can't be cached cleanly
1263 AS_IF([test "${CFLAGS_TUNING}"],
1264    [CFLAGS_save="${CFLAGS}"
1265     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1266
1267     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1268     AC_COMPILE_IFELSE([ ],
1269                       [tuning="yes"],
1270                       [CFLAGS_TUNING=""; tuning="no"
1271                        AS_IF([test "${with_tuning}"],
1272                              [AC_MSG_ERROR([requested tuning not supported])])])
1273
1274     AC_MSG_RESULT([$tuning])
1275     CFLAGS="${CFLAGS_save}"
1276 ])
1277
1278 dnl
1279 dnl  x86 accelerations
1280 dnl
1281 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1282 then
1283     ARCH="${ARCH} mmx"
1284     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1285 fi
1286
1287 dnl
1288 dnl  Memory usage
1289 dnl
1290 AC_ARG_ENABLE(optimize-memory,
1291 [  --enable-optimize-memory      optimize memory usage over performance])
1292 if test "${enable_optimize_memory}" = "yes"; then
1293   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1294 fi
1295
1296 dnl
1297 dnl  Enable/disable optimizations
1298 dnl
1299 AC_ARG_ENABLE(optimizations,
1300 [  --disable-optimizations disable compiler optimizations (default enabled)])
1301 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1302
1303 dnl
1304 dnl  AltiVec acceleration
1305 dnl
1306 AC_ARG_ENABLE(altivec,
1307 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1308 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1309     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1310 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1311     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1312
1313 dnl
1314 dnl  Debugging mode
1315 dnl
1316 AC_ARG_ENABLE(debug,
1317 [  --enable-debug          debug mode (default disabled)])
1318 test "${enable_debug}" != "yes" && enable_debug="no"
1319
1320 dnl
1321 dnl  Enable release-specific flags
1322 dnl
1323 AC_ARG_ENABLE(release,
1324 [  --enable-release        activate extra optimizations (default disabled)])
1325 test "${enable_release}" != "yes" && enable_release="no"
1326
1327 dnl
1328 dnl Stream output
1329 dnl
1330 AC_ARG_ENABLE(sout,
1331   [  --enable-sout           Stream output modules (default enabled)])
1332 if test "${enable_sout}" != "no"
1333 then
1334   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1335   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1336   VLC_ADD_PLUGINS([packetizer_copy])
1337
1338   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1339   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1340 #  VLC_ADD_PLUGINS([stream_out_transrate])
1341
1342   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1343 fi
1344
1345 dnl Check for libshout
1346 AC_ARG_ENABLE(shout,
1347   [  --enable-shout          libshout output plugin (default disabled)])
1348 if test "${enable_shout}" = "yes"; then
1349   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1350     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1351      VLC_ADD_PLUGINS([access_output_shout])
1352      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1353      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1354     [AC_MSG_WARN(libshout library not found)])
1355 fi
1356
1357 dnl
1358 dnl HTTP daemon
1359 dnl
1360 AC_ARG_ENABLE(httpd,
1361   [  --enable-httpd          HTTP daemon (default enabled)])
1362 if test "${enable_httpd}" != "no"
1363 then
1364   VLC_ADD_PLUGINS([http])
1365   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1366 fi
1367
1368 dnl
1369 dnl VideoLAN manager
1370 dnl
1371 AC_ARG_ENABLE(vlm,
1372   [  --enable-vlm            VideoLAN manager (default enabled)])
1373 if test "${enable_vlm}" != "no"
1374 then
1375   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1376 fi
1377
1378 dnl
1379 dnl TLS/SSL
1380 dnl
1381 AC_ARG_ENABLE(gnutls,
1382   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1383 AS_IF([test "${enable_gnutls}" != "no"], [
1384
1385   gcrypt_LIBS="-lgpg-error"
1386   AS_IF([test "${SYS}" = "mingw32"],
1387     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1388      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1389   )
1390
1391   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
1392
1393   AC_CHECK_HEADER(gcrypt.h,
1394     [AC_CHECK_LIB(gcrypt, gcry_control,
1395       [AC_CHECK_HEADER(gnutls/gnutls.h,
1396         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1397           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1398      ${gcrypt_LIBS})])
1399
1400   AS_IF([test "${have_gnutls}" = "yes"], [
1401     VLC_ADD_PLUGINS([gnutls])
1402     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
1403   ], [
1404     AS_IF([test "${enable_gnutls}" = "yes"], [
1405       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1406     )]
1407   )]
1408 )
1409
1410
1411 dnl
1412 dnl  Input plugins
1413 dnl
1414
1415 AC_ARG_WITH(,[Input plugins:])
1416
1417 dnl  live.com input
1418 dnl
1419 AC_ARG_ENABLE(livedotcom,
1420 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1421 if test "${enable_livedotcom}" = "yes"; then
1422   AC_ARG_WITH(livedotcom-tree,
1423     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1424
1425   dnl
1426   dnl test for --with-livedotcom-tree
1427   dnl
1428   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1429     AC_LANG_PUSH(C++)
1430     CPPFLAGS_save="${CPPFLAGS}"
1431     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1432     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1433     AC_CHECK_HEADERS(liveMedia.hh, [
1434       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1435       AC_CHECK_LIB(liveMedia_pic, main, [
1436         # We have -lliveMedia_pic, build plugins
1437         VLC_ADD_PLUGINS([livedotcom])
1438         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1439       ], [
1440         AC_CHECK_LIB(liveMedia, main, [
1441           # We only have -lliveMedia, do builtins
1442           VLC_ADD_BUILTINS([livedotcom])
1443           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1444         ])
1445       ])
1446       if test "${SYS}" = "mingw32"; then
1447         # add ws2_32 for closesocket, select, recv
1448         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1449       fi
1450     ])
1451     CPPFLAGS="${CPPFLAGS_save}"
1452     AC_LANG_POP(C++)
1453   else
1454     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1455     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1456     if test -z "${real_livedotcom_tree}"; then
1457       dnl  The given directory can't be found
1458       AC_MSG_RESULT(no)
1459       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1460     fi
1461     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1462       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1463
1464       VLC_ADD_BUILTINS([livedotcom])
1465
1466       if test "${SYS}" = "mingw32"; then
1467         # add ws2_32 for closesocket, select, recv
1468         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1469       fi
1470
1471       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1472       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1473       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1474       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1475
1476       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1477       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1478       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1479       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1480     else
1481       dnl  The given live.com wasn't built
1482       AC_MSG_RESULT(no)
1483       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1484     fi
1485   fi
1486 fi
1487
1488 dnl
1489 dnl dv module: digital video module check for libraw1394
1490 dnl
1491 AC_ARG_ENABLE(dv,
1492 [  --enable-dv             dv input module (default disabled)])
1493 if test "{enable_dv}" != "no"
1494 then
1495   AC_ARG_WITH(dv-raw1394,
1496   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1497   AC_ARG_WITH(dv-raw1394-tree,
1498   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1499
1500   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1501   then
1502     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1503     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1504     then
1505       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1506       AC_MSG_RESULT(yes)
1507       VLC_ADD_PLUGINS([access_dv])
1508       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1509       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1510     else
1511       dnl  No libraw1394 could be found, sorry
1512       AC_MSG_RESULT(no)
1513       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1514     fi
1515   else
1516     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1517     [ VLC_ADD_PLUGINS([access_dv])
1518         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1519     ],[
1520         if test -n "${enable_dv}"
1521         then
1522           AC_MSG_ERROR([cannot find libraw1394 headers])
1523         fi
1524     ])
1525   fi
1526
1527   dnl Check for static linking of libraw1394
1528   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1529   then
1530     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1531     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1532     if test -z "${real_dv_raw1394_tree}"
1533     then
1534       dnl  The given directory can't be found
1535       AC_MSG_RESULT(no)
1536       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1537     fi
1538     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1539     then
1540       dnl  Use a custom libraw1394
1541       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1542       VLC_ADD_BUILTINS([access_dv])
1543       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1544       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1545     else
1546       dnl  The given libraw1394 wasn't built
1547       AC_MSG_RESULT(no)
1548       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1549     fi
1550   fi
1551
1552   dnl
1553   dnl Check for libavc1394
1554   dnl
1555
1556   AC_ARG_WITH(dv-avc1394,
1557   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1558   AC_ARG_WITH(dv-avc1394-tree,
1559   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1560
1561   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1562   then
1563     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1564     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1565     then
1566       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1567       AC_MSG_RESULT(yes)
1568       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1569       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1570     else
1571       dnl  No libavc1394 could be found, sorry
1572       AC_MSG_RESULT(no)
1573       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1574     fi
1575   else
1576     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1577     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1578     ],[
1579         if test -n "${enable_dv}"
1580         then
1581           AC_MSG_ERROR([cannot find libavc1394 headers])
1582         fi
1583     ])
1584   fi
1585
1586   dnl Check for static linking of libavc1394
1587   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1588   then
1589     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1590     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1591     if test -z "${real_dv_avc1394_tree}"
1592     then
1593       dnl  The given directory can't be found
1594       AC_MSG_RESULT(no)
1595       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1596     fi
1597     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1598     then
1599       dnl  Use a custom libavc1394
1600       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1601       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1602       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1603     else
1604       dnl  The given libavc1394 wasn't built
1605       AC_MSG_RESULT(no)
1606       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1607     fi
1608   fi
1609 fi
1610
1611 dnl
1612 dnl dvdread module: check for libdvdread
1613 dnl
1614 AC_ARG_ENABLE(dvdread,
1615 [  --enable-dvdread        dvdread input module (default disabled)])
1616 if test "${enable_dvdread}" != "no"
1617 then
1618   AC_ARG_WITH(dvdread,
1619   [    --with-dvdread=PATH   libdvdread headers and libraries])
1620   AC_ARG_WITH(dvdread-tree,
1621   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1622
1623   dnl Temporary hack (yeah, sure ;)
1624   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1625       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1626   fi
1627
1628   if test -z "${with_dvdread}"
1629   then
1630     if test -z "${with_dvdread_tree}"
1631     then
1632       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1633         [ VLC_ADD_PLUGINS([dvdread])
1634           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1635         ],[
1636           if test -n "${enable_dvdread}"
1637           then
1638             AC_MSG_ERROR([cannot find libdvdread headers])
1639           fi
1640         ])
1641     else
1642       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1643       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1644       if test -z "${real_dvdread_tree}"
1645       then
1646         dnl  The given directory can't be found
1647         AC_MSG_RESULT(no)
1648         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1649       fi
1650       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1651       then
1652         dnl  Use a custom libdvdread
1653         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1654         VLC_ADD_BUILTINS([dvdread])
1655         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1656         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1657       else
1658         dnl  The given libdvdread wasn't built
1659         AC_MSG_RESULT(no)
1660         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1661       fi
1662     fi
1663   else
1664     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1665     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1666     then
1667       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1668       AC_MSG_RESULT(yes)
1669       VLC_ADD_PLUGINS([dvdread])
1670       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1671       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1672     else
1673       dnl  No libdvdread could be found, sorry
1674       AC_MSG_RESULT(no)
1675       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1676     fi
1677   fi
1678 fi
1679
1680 dnl
1681 dnl  libdvdnav plugin
1682 dnl
1683 AC_ARG_ENABLE(dvdnav,
1684   [  --enable-dvdnav         dvdnav input module (default enabled)])
1685 if test "${enable_dvdnav}" != "no"
1686 then
1687   dnl Same hack than dvdread
1688   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1689       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1690   fi
1691
1692   DVDNAV_PATH="${PATH}"
1693   AC_ARG_WITH(dvdnav-config-path,
1694     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1695     [ if test "${with_dvdnav_config_path}" != "no"
1696       then
1697         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1698       fi ])
1699   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1700   if test "${DVDNAV_CONFIG}" != "no"
1701   then
1702     VLC_ADD_PLUGINS([dvdnav])
1703     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1704     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1705   fi
1706 fi
1707
1708 dnl
1709 dnl  Windows DirectShow access module
1710 dnl
1711 AC_ARG_ENABLE(dshow,
1712   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1713 if test "${enable_dshow}" != "no"
1714 then
1715   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1716   then
1717       AC_CHECK_HEADERS(dshow.h,
1718       [ VLC_ADD_PLUGINS([dshow])
1719         VLC_ADD_CXXFLAGS([dshow],[])
1720         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1721   fi
1722 fi
1723
1724 dnl
1725 dnl  libsmbclient plugin
1726 dnl
1727 AC_ARG_ENABLE(smb,
1728   [  --enable-smb            smb input module (default enabled)])
1729 if test "${enable_smb}" != "no"; then
1730   AC_CHECK_HEADERS(libsmbclient.h,
1731     [ VLC_ADD_PLUGINS([access_smb])
1732       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1733     [ if test -n "${enable_smb}"; then
1734         AC_MSG_ERROR([cannot find libsmbclient headers])
1735      fi ])
1736   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1737     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1738     [#include <libsmbclient.h>])
1739 fi
1740
1741 dnl
1742 dnl  libdvbpsi ts demux/mux
1743 dnl
1744 AC_ARG_ENABLE(dvbpsi,
1745 [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1746 if test "${enable_dvbpsi}" != "no"
1747 then
1748   AC_ARG_WITH(dvbpsi,
1749   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1750   AC_ARG_WITH(dvbpsi,
1751   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1752   case "${with_dvbpsi}" in
1753   ""|yes)
1754     if test -z "${with_dvbpsi_tree}"
1755     then
1756       AC_CHECK_HEADERS(dvbpsi/dr.h,
1757         [ VLC_ADD_PLUGINS([ts])
1758           if test "${enable_sout}" != "no"; then
1759             VLC_ADD_BUILTINS([mux_ts])
1760           fi
1761           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1762         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1763         [#if defined( HAVE_STDINT_H )
1764 #   include <stdint.h>
1765 #elif defined( HAVE_INTTYPES_H )
1766 #   include <inttypes.h>
1767 #endif
1768 #include <dvbpsi/dvbpsi.h>
1769 #include <dvbpsi/descriptor.h>
1770 #include <dvbpsi/pat.h>
1771 #include <dvbpsi/pmt.h>])
1772     else
1773       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1774       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1775       if test -z "${real_dvbpsi_tree}"
1776       then
1777         dnl  The given directory can't be found
1778         AC_MSG_RESULT(no)
1779         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1780       fi
1781       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1782       then
1783         dnl  Use a custom libdvbpsi
1784         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1785         VLC_ADD_BUILTINS([ts])
1786         if test "${enable_sout}" != "no"; then
1787           VLC_ADD_BUILTINS([mux_ts])
1788         fi
1789         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1790         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1791       else
1792         dnl  The given libdvbpsi wasn't built
1793         AC_MSG_RESULT(no)
1794         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1795       fi
1796     fi
1797   ;;
1798   no)
1799     dnl  Compile without dvbpsi
1800   ;;
1801   *)
1802     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1803     if test -z "${with_dvbpsi}"
1804     then
1805       LDFLAGS_test=""
1806       CPPFLAGS_test=""
1807     else
1808       LDFLAGS_test="-L${with_dvbpsi}/lib"
1809       CPPFLAGS_test="-I${with_dvbpsi}/include"
1810     fi
1811     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1812     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1813       VLC_ADD_PLUGINS([ts])
1814       if test "${enable_sout}" != "no"; then
1815         VLC_ADD_PLUGINS([mux_ts])
1816       fi
1817       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1818       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1819
1820     ],[
1821       if test -n "${enable_dvbpsi}"
1822       then
1823         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])
1824       fi
1825     ])
1826     CPPFLAGS="${CPPFLAGS_save}"
1827   ;;
1828   esac
1829   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1830     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1831   ], [], [${LDFLAGS_ts}])
1832
1833 fi
1834
1835 dnl
1836 dnl  Video4Linux plugin
1837 dnl
1838 AC_ARG_ENABLE(v4l,
1839   [  --enable-v4l            Video4Linux input support (default disabled)])
1840 if test "${enable_v4l}" = "yes"
1841 then
1842   AC_ARG_WITH(v4l,
1843     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1844   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1845   then
1846     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1847   fi
1848
1849   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1850   AC_CHECK_HEADERS(linux/videodev.h, [
1851     VLC_ADD_PLUGINS([v4l])
1852   ],[])
1853   CPPFLAGS="${CPPFLAGS_save}"
1854 fi
1855
1856 dnl
1857 dnl  special access module for Hauppauge PVR cards
1858 dnl
1859 AC_ARG_ENABLE(pvr,
1860   [  --enable-pvr            PVR cards access module (default disabled)])
1861 if test "${enable_pvr}" = "yes"
1862 then
1863   VLC_ADD_PLUGINS([pvr])
1864 fi
1865
1866 dnl
1867 dnl  gnomeVFS access module
1868 dnl
1869 AC_ARG_ENABLE(gnomevfs,
1870   [  --enable-gnomevfs      GnomeVFS access module (default enabled)])
1871 if test "${enable_gnomevfs}" != "no"
1872 then
1873   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1874     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1875     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1876     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1877     VLC_ADD_PLUGINS([access_gnomevfs]),
1878     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1879 fi
1880
1881 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1882 AC_ARG_ENABLE(libcdio,
1883   [  --enable-libcdio        CD input and control library support (default enabled)])
1884
1885
1886 have_libcdio=no
1887 have_libvcdinfo=no
1888 if test "${enable_libcdio}" != "no"
1889 then
1890   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1891      have_libcdio=yes
1892      AC_DEFINE(HAVE_LIBCDIO, [], 
1893      [Define if you have libcdio 0.72 or greater installed]),
1894      [AC_MSG_WARN(CD Reading and information library not found)])
1895
1896   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1897      [have_libvcdinfo=yes
1898      AC_DEFINE(HAVE_VCDINFO, [], 
1899      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1900      [AC_MSG_WARN(VCD information library not found)])
1901 fi
1902
1903 dnl
1904 dnl  VCDX and CDDAX modules
1905 dnl
1906 AC_ARG_ENABLE(cddax,
1907   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1908  
1909 AC_ARG_ENABLE(libcddb,
1910   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1911  
1912 if test "${enable_cddax}" = "yes"
1913 then
1914   if test "$have_libcdio" = "yes"
1915   then
1916     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1917     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1918     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1919     VLC_ADD_PLUGINS([cddax])
1920     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1921     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1922     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1923   else 
1924     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1925     HAVE_CDDAX=no
1926   fi
1927
1928   if test "$enable_libcddb" != "no"; then
1929     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1930       HAVE_LIBCDDB=yes 
1931       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1932       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1933       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1934       ],
1935       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
1936       HAVE_LIBCDDB=no])
1937   fi
1938  
1939 fi
1940
1941 AC_ARG_ENABLE(vcdx,
1942   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
1943  
1944 if test "${enable_vcdx}" = "yes"
1945 then
1946   if test "${have_libvcdinfo}" = "yes"
1947   then
1948     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1949     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1950   else 
1951     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
1952     HAVE_VCDX=no
1953   fi
1954
1955   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
1956    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
1957     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
1958     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
1959     HAVE_VCDX=no])
1960
1961   if test "$have_libvcdinfo" = "yes"
1962   then
1963     AC_DEFINE(HAVE_VCDX, [], 
1964     [Define for the VCD plugin using libcdio/libvcdinfo])
1965     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1966     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1967     VLC_ADD_PLUGINS([vcdx])
1968   else 
1969     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
1970     HAVE_VCDX=no
1971   fi
1972 fi
1973
1974 dnl
1975 dnl  Built-in CD-DA and VCD module
1976 dnl
1977 AC_ARG_ENABLE(cdda,           
1978   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
1979  
1980 AC_ARG_ENABLE(vcd,
1981   [  --enable-vcd            built-in VCD (default enabled)])
1982
1983 if test "${enable_vcd}" != "no"
1984 then
1985   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1986   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1987     AC_MSG_RESULT(yes)
1988     VLC_ADD_PLUGINS([vcd cdda])
1989   ],[
1990     AC_MSG_RESULT(no)
1991   ])
1992
1993   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1994   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1995     AC_MSG_RESULT(yes)
1996     VLC_ADD_PLUGINS([vcd cdda])
1997     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1998   ],[
1999     AC_MSG_RESULT(no)
2000   ])
2001
2002   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2003   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2004     AC_MSG_RESULT(yes)
2005     VLC_ADD_PLUGINS([vcd cdda])
2006     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2007   ],[
2008     AC_MSG_RESULT(no)
2009   ])
2010
2011   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2012   then
2013     VLC_ADD_PLUGINS([vcd cdda])
2014   fi
2015
2016   if test "${SYS}" = "darwin"
2017   then
2018     VLC_ADD_PLUGINS([vcd cdda])
2019     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2020     VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
2021   fi
2022 fi
2023
2024 dnl
2025 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2026 dnl
2027 AC_ARG_ENABLE(dvb,
2028   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2029
2030 if test "${enable_dvb}" = "yes"
2031 then
2032   AC_ARG_WITH(dvb,
2033   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2034   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2035   then
2036     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2037   fi
2038   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2039   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2040     if test -z "${with_dvbpsi_tree}"
2041     then
2042       VLC_ADD_PLUGINS([dvb])
2043     else
2044       VLC_ADD_BUILTINS([dvb])
2045     fi
2046   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2047   CPPFLAGS="${CPPFLAGS_save}"
2048 fi
2049
2050 dnl
2051 dnl  Screen capture module
2052 dnl
2053 AC_ARG_ENABLE(screen,
2054   [  --enable-screen         Screen capture support (default enabled)])
2055 if test "${enable_screen}" != "no"; then
2056   if test "${SYS}" = "darwin"; then
2057     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2058       VLC_ADD_PLUGINS([screen])
2059       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2060     ])
2061   elif test "${SYS}" = "mingw32"; then
2062     VLC_ADD_PLUGINS([screen])
2063     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2064   elif test "${SYS}" = "mingwce"; then
2065     CPPFLAGS="${CPPFLAGS_save}"
2066   elif test "${SYS}" = "beos"; then
2067     VLC_ADD_PLUGINS([screen])
2068     VLC_ADD_CXXFLAGS([screen],[])
2069     VLC_ADD_LDFLAGS([screen],[-lbe])
2070   else
2071     CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2072     AC_CHECK_HEADERS(X11/Xlib.h, [
2073       VLC_ADD_PLUGINS([screen])
2074       VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
2075       VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
2076     ])
2077     CPPFLAGS="${CPPFLAGS_save}"
2078   fi
2079 fi
2080
2081 dnl
2082 dnl  ipv6 plugin - not for QNX yet
2083 dnl
2084 have_ipv6=no
2085 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2086   AC_CHECK_LIB(resolv,inet_pton,
2087     [have_ipv6=yes
2088      VLC_ADD_LDFLAGS([ipv6 vlc],[-lresolv])])
2089 ])
2090
2091 AS_IF([test "${have_ipv6}" = "yes"], [
2092   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2093
2094 if test "${SYS}" != "nto" &&
2095    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2096 then
2097   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2098   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2099     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2100   AS_IF([test "${have_ipv6}" != "no"], [
2101     VLC_ADD_PLUGINS([ipv6])])
2102 fi
2103 if test "${SYS}" = "mingw32"
2104 then
2105   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2106   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2107     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2108 fi
2109
2110 dnl
2111 dnl  ogg demux plugin
2112 dnl
2113 AC_ARG_ENABLE(ogg,
2114   [  --enable-ogg            Ogg demux support (default enabled)])
2115 if test "${enable_ogg}" != "no"
2116 then
2117   AC_ARG_WITH(ogg-tree,
2118   [    --with-ogg-tree=PATH ogg tree for static linking])
2119   if test -n "${with_ogg_tree}"
2120   then
2121     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2122     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2123     if test -z "${real_ogg_tree}"
2124     then
2125       dnl  The given directory can't be found
2126       AC_MSG_RESULT(no)
2127       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2128     fi
2129     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2130     then
2131       dnl  Use a custom ogg
2132       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2133       VLC_ADD_PLUGINS([ogg])
2134       if test "${enable_sout}" != "no"; then
2135         VLC_ADD_PLUGINS([mux_ogg])
2136       fi
2137       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2138       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2139     else
2140       dnl  The given ogg wasn't built
2141       AC_MSG_RESULT(no)
2142       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2143     fi
2144   else
2145     AC_CHECK_HEADERS(ogg/ogg.h, [
2146       AC_CHECK_LIB( ogg, oggpack_read, [
2147         VLC_ADD_PLUGINS([ogg])
2148         if test "${enable_sout}" != "no"; then
2149           VLC_ADD_PLUGINS([mux_ogg])
2150         fi
2151         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2152      ],[])
2153   fi
2154 fi
2155
2156 dnl
2157 dnl  matroska demux plugin
2158 dnl
2159 AC_ARG_ENABLE(mkv,
2160   [  --enable-mkv            Matroska demux support (default enabled)])
2161 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2162   AC_LANG_PUSH(C++)
2163   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2164     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2165     AC_EGREP_CPP(yes,
2166       [#include <ebml/EbmlVersion.h>
2167        #ifdef LIBEBML_VERSION
2168        #if LIBEBML_VERSION >= 0x000706
2169        yes
2170        #endif
2171        #endif],
2172       [AC_MSG_RESULT([yes])
2173         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2174           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2175           AC_EGREP_CPP(yes,
2176             [#include <matroska/KaxVersion.h>
2177              #ifdef LIBMATROSKA_VERSION
2178              #if LIBMATROSKA_VERSION >= 0x000705
2179              yes
2180              #endif
2181              #endif],
2182             [AC_MSG_RESULT([yes])
2183               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2184               VLC_ADD_CXXFLAGS([mkv],[])
2185               if test "${SYS}" = "darwin"; then
2186                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2187               fi
2188               AC_CHECK_LIB(ebml_pic, main, [
2189                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2190                 VLC_ADD_PLUGINS([mkv])
2191                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2192               ], [
2193                 AC_CHECK_LIB(ebml, main, [
2194                   # We only have libebml, make mkv.a a builtin
2195                   VLC_ADD_BUILTINS([mkv])
2196                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2197                 ])
2198               ])
2199             ],
2200             [AC_MSG_RESULT([no])
2201               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.])
2202           ])
2203         ])
2204       ],
2205       [AC_MSG_RESULT([no])
2206         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.])
2207     ])
2208   ])
2209   AC_LANG_POP(C++)
2210 fi
2211
2212 dnl
2213 dnl  modplug demux plugin
2214 dnl
2215 AC_ARG_ENABLE(mod,
2216   [  --enable-mod            Mod demux support (default enabled)])
2217 if test "${enable_mod}" != "no"
2218 then
2219   AC_ARG_WITH(mod-tree,
2220   [    --with-mod-tree=PATH mod tree for static linking])
2221   if test -n "${with_mod_tree}"
2222   then
2223     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2224     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2225     if test -z "${real_mod_tree}"
2226     then
2227       dnl  The given directory can't be found
2228       AC_MSG_RESULT(no)
2229       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2230     fi
2231     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2232     then
2233       dnl  Use a custom mod
2234       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2235       VLC_ADD_PLUGINS([mod])
2236       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2237       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2238     else
2239       dnl  The given mod wasn't built
2240       AC_MSG_RESULT(no)
2241       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2242     fi
2243   else
2244     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2245       VLC_ADD_PLUGINS([mod])
2246       VLC_ADD_CXXFLAGS([mod],[])
2247       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2248   fi
2249 fi
2250
2251 dnl
2252 dnl  mpc demux plugin
2253 dnl
2254 AC_ARG_ENABLE(mpc,
2255   [  --enable-mpc            Mpc demux support (default enabled)])
2256 if test "${enable_mpc}" != "no"
2257 then
2258   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2259     VLC_ADD_PLUGINS([mpc])
2260     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2261 fi
2262
2263
2264 dnl
2265 dnl  Codec plugins
2266 dnl
2267
2268 AC_ARG_WITH(,[Codec plugins:])
2269
2270 dnl
2271 dnl  mad plugin
2272 dnl
2273 AC_ARG_ENABLE(mad,
2274   [  --enable-mad            libmad module (default enabled)])
2275 if test "${enable_mad}" != "no"
2276 then
2277   AC_ARG_WITH(mad,
2278     [    --with-mad=PATH       path to libmad],[],[])
2279   if test "${with_mad}" != "no" -a -n "${with_mad}"
2280   then
2281     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2282     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2283   fi
2284
2285   AC_ARG_WITH(mad-tree,
2286     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
2287   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2288   then
2289     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2290     if test -z "${real_mad_tree}"
2291     then
2292       dnl  The given directory can't be found
2293       AC_MSG_RESULT(no)
2294       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2295     fi
2296     dnl  Use a custom libmad
2297     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2298     if test -f ${real_mad_tree}/mad.h
2299     then
2300       AC_MSG_RESULT(yes)
2301       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2302       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2303       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2304       AC_CHECK_LIB(mad, mad_bit_init, [
2305         VLC_ADD_BUILTINS([mpgatofixed32])
2306         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2307         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2308       ],[])
2309       LDFLAGS="${LDFLAGS_save}"
2310     else
2311       AC_MSG_RESULT(no)
2312       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2313     fi
2314   else
2315     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2316     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2317     AC_CHECK_HEADERS(mad.h, ,
2318       [ 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.]) ])
2319     AC_CHECK_LIB(mad, mad_bit_init, [
2320       VLC_ADD_PLUGINS([mpgatofixed32])
2321       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2322       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2323     CPPFLAGS="${CPPFLAGS_save}"
2324     LDFLAGS="${LDFLAGS_save}"
2325   fi
2326 fi
2327
2328 dnl
2329 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2330 dnl
2331 AC_CHECK_HEADERS(id3tag.h, [
2332   AC_CHECK_HEADERS(zlib.h, [
2333     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2334     VLC_ADD_PLUGINS([id3tag])]) ])
2335
2336 dnl
2337 dnl  ffmpeg decoder/demuxer plugin
2338 dnl
2339 dnl we try to find ffmpeg using : 1- ffmpeg-config, 2- pkg-config
2340 dnl                             3- default place, 4- given tree
2341
2342 AC_ARG_ENABLE(ffmpeg,
2343 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2344 if test "${enable_ffmpeg}" != "no"
2345 then
2346 dnl Look for a ffmpeg-config (we are on debian )
2347  
2348    FFMPEG_PATH="${PATH}"
2349    AC_ARG_WITH(ffmpeg-config-path,
2350      [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2351      [ if test "${with_ffmpeg_config_path}" != "no"
2352        then
2353          FFMPEG_PATH="${with_ffmpeg_config_path}"
2354        fi ])
2355    AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2356    if test "${FFMPEG_CONFIG}" != "no"
2357    then
2358      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2359      AC_CHECK_HEADERS(postproc/postprocess.h)
2360      VLC_ADD_PLUGINS([ffmpeg])
2361      if test "${enable_sout}" != "no"; then
2362          VLC_ADD_PLUGINS([stream_out_switcher])
2363      fi
2364      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2365      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2366   
2367   else
2368
2369 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2370
2371         AC_ARG_WITH(ffmpeg-mp3lame,
2372       [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2373       [
2374         if test "$with_ffmpeg_mp3lame" = "yes"; then
2375                 VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2376         fi])
2377
2378     AC_ARG_WITH(ffmpeg-faac,
2379       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2380       [
2381         if test "$with_ffmpeg_faac" = "yes"; then
2382                 VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2383         fi])
2384
2385     AC_ARG_WITH(ffmpeg-dts,
2386       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2387       [
2388         if test "$with_ffmpeg_dts" = "yes"; then
2389                 LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2390                 AC_CHECK_LIB(dts_pic, dts_free, 
2391                   [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2392                   [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2393                 LDFLAGS="${LDFLAGS_save}"
2394         fi])
2395
2396     AC_ARG_WITH(ffmpeg-zlib,
2397       [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2398       [
2399         if test "$with_ffmpeg_zlib" = "yes"; then
2400                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2401         fi])
2402
2403 dnl Trying with pkg-config
2404    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2405     [
2406      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2407      AC_CHECK_HEADERS(postproc/postprocess.h)
2408      VLC_ADD_BUILTINS([ffmpeg])
2409      if test "${enable_sout}" != "no"; then
2410          VLC_ADD_BUILTINS([stream_out_switcher])
2411      fi
2412      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2413      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2414
2415     ],[
2416      
2417     dnl
2418     dnl test for !(--with-ffmpeg-tree)
2419     dnl
2420     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
2421       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2422       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2423       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2424       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2425
2426       AC_CHECK_LIB(avutil, av_add_i, [
2427         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2428         LDAVUTIL="-lavutil"])
2429
2430       AC_CHECK_LIB(avcodec, avcodec_init, [
2431         VLC_ADD_BUILTINS([ffmpeg])
2432
2433
2434         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2435         if test "${enable_sout}" != "no"; then
2436             VLC_ADD_BUILTINS([stream_out_switcher])
2437         fi],
2438          [ 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])
2439       AC_CHECK_LIB(avformat, av_open_input_stream, [
2440         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2441         [Define if you have ffmpeg's libavformat.])
2442         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2443       LDFLAGS="${LDFLAGS_save}"
2444       CPPFLAGS="${CPPFLAGS_save}"
2445     fi
2446
2447     dnl
2448     dnl test for --with-ffmpeg-tree
2449     dnl
2450     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2451       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2452       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2453       if test -z "${real_ffmpeg_tree}"; then
2454         dnl  The given directory can't be found
2455         AC_MSG_RESULT(no)
2456         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2457       fi
2458       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2459         dnl  The given libavcodec wasn't built
2460         AC_MSG_RESULT(no)
2461         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2462       fi
2463       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2464         dnl  The given libavcodec wasn't built with --enable-pp
2465         AC_MSG_RESULT(no)
2466         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2467       fi
2468       dnl  Use a custom libffmpeg
2469       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2470
2471       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2472         if test "${with_ffmpeg_zlib}" != "yes"; then
2473           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2474         fi
2475       fi
2476       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2477         if test "${with_ffmpeg_mp3lame}" != "yes"; then
2478           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2479         fi
2480       fi
2481       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2482         if test "${with_ffmpeg_faac}" != "yes"; then
2483           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2484         fi
2485       fi
2486       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2487         if test "${with_ffmpeg_dts}" != "yes"; then
2488           LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2489           AC_CHECK_LIB(dts_pic, dts_free, 
2490             [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2491             [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2492           LDFLAGS="${LDFLAGS_save}"
2493         fi
2494       fi
2495       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2496         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2497       fi
2498       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2499         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2500       fi
2501       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2502         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2503       fi
2504
2505       VLC_ADD_BUILTINS([ffmpeg])
2506       if test "${enable_sout}" != "no"; then
2507         VLC_ADD_BUILTINS([stream_out_switcher])
2508       fi
2509
2510       if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2511         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2512         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2513       fi
2514
2515       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2516       VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2517
2518       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2519         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2520         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2521         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2522       fi
2523     fi
2524     ])
2525     AC_ARG_WITH(ffmpeg-tree,
2526       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2527
2528   fi
2529 fi
2530
2531 dnl
2532 dnl  ffmpeg decoder/demuxer plugin
2533 dnl
2534 AC_ARG_ENABLE(ffmpegaltivec,
2535 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2536 if test "${enable_ffmpegaltivec}" = "yes"
2537 then
2538   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2539     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2540     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2541     if test -z "${real_ffmpeg_tree}"; then
2542       dnl  The given directory can't be found
2543       AC_MSG_RESULT(no)
2544       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2545     fi
2546     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2547       dnl  The given libavcodecaltivec wasn't built
2548       AC_MSG_RESULT(no)
2549       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2550     fi
2551     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2552       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2553       AC_MSG_RESULT(no)
2554       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2555     fi
2556     dnl  Use a custom libffmpeg
2557     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2558     VLC_ADD_BUILTINS([ffmpegaltivec])
2559     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2560     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2561     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2562
2563     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2564       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2565       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2566       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2567     fi
2568     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2569     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2570   fi
2571 fi
2572
2573 dnl
2574 dnl  faad decoder plugin
2575 dnl
2576 AC_ARG_ENABLE(faad,
2577 [  --enable-faad           faad codec (default disabled)])
2578 if test "${enable_faad}" = "yes"
2579 then
2580   AC_ARG_WITH(faad-tree,
2581   [    --with-faad-tree=PATH faad tree for static linking])
2582   if test -n "${with_faad_tree}"
2583   then
2584     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2585     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2586     if test -z "${real_faad_tree}"
2587     then
2588       dnl  The given directory can't be found
2589       AC_MSG_RESULT(no)
2590       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2591     fi
2592     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2593     then
2594       dnl  Use a custom faad
2595       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2596       VLC_ADD_BUILTINS([faad])
2597       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2598       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2599     else
2600       dnl  The given libfaad wasn't built
2601       AC_MSG_RESULT(no)
2602       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2603     fi
2604   else
2605     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2606     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2607     AC_CHECK_HEADERS(faad.h, ,
2608       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2609     AC_CHECK_LIB(faad, faacDecOpen, [
2610       VLC_ADD_PLUGINS([faad])
2611       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2612       AC_CHECK_LIB(faad, NeAACDecOpen, [
2613         VLC_ADD_PLUGINS([faad])
2614         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2615         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2616     LDFLAGS="${LDFLAGS_save}"
2617     CPPFLAGS="${CPPFLAGS_save}"
2618   fi
2619 fi
2620
2621 dnl
2622 dnl twolame encoder plugin
2623 dnl
2624 AC_ARG_ENABLE(twolame,
2625 [  --enable-twolame        twolame codec (default disabled)])
2626 if test "${enable_twolame}" = "yes"
2627 then
2628   AC_ARG_WITH(twolame-tree,
2629   [    --with-twolame-tree=PATH twolame tree for static linking])
2630   if test -n "${with_twolame_tree}"
2631   then
2632     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2633     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2634     if test -z "${real_twolame_tree}"
2635     then
2636       dnl  The given directory can't be found
2637       AC_MSG_RESULT(no)
2638       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2639     fi
2640     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2641     then
2642       dnl  Use a custom twolame
2643       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2644       VLC_ADD_BUILTINS([twolame])
2645       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2646       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2647     else
2648       dnl  The given libtwolame wasn't built
2649       AC_MSG_RESULT(no)
2650       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2651     fi
2652   else
2653     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2654     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2655     AC_CHECK_HEADERS(twolame.h, ,
2656       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2657     AC_CHECK_LIB(twolame, twolame_init, [
2658       VLC_ADD_PLUGINS([twolame])
2659       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2660         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2661     LDFLAGS="${LDFLAGS_save}"  
2662     CPPFLAGS="${CPPFLAGS_save}"
2663   fi
2664 fi
2665
2666 dnl
2667 dnl  QuickTime plugin
2668 dnl
2669 AC_ARG_ENABLE(quicktime,
2670   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2671 if test "${enable_quicktime}" != "no" &&
2672   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2673 then
2674   if test "${SYS}" = "mingw32"; then
2675     VLC_ADD_BUILTINS([quicktime])
2676   else
2677   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2678     [ VLC_ADD_BUILTINS([quicktime])
2679       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2680     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2681   fi
2682 fi
2683
2684 dnl
2685 dnl  Real plugin
2686 dnl
2687 AC_ARG_ENABLE(real,
2688   [  --enable-real           Real audio module (default disabled)])
2689 if test "${enable_real}" = "yes"; then
2690   VLC_ADD_PLUGINS([realaudio])
2691 fi
2692
2693 dnl
2694 dnl  Real RTSP plugin
2695 dnl
2696 AC_ARG_ENABLE(realrtsp,
2697   [  --enable-realrtsp       Real RTSP module (default disabled)])
2698 if test "${enable_realrtsp}" = "yes"; then
2699   VLC_ADD_PLUGINS([access_realrtsp])
2700 fi
2701
2702 dnl
2703 dnl MP4 module
2704 dnl
2705 AC_CHECK_HEADERS(zlib.h, [
2706   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2707 ] )
2708
2709 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2710   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2711 ] )
2712
2713 dnl
2714 dnl skins2 module
2715 dnl
2716 AC_CHECK_HEADERS(libtar.h, [
2717   VLC_ADD_LDFLAGS([skins2],[-ltar])
2718 ] )
2719
2720
2721
2722 dnl
2723 dnl A52/AC3 decoder plugin
2724 dnl
2725 AC_ARG_ENABLE(a52,
2726   [  --enable-a52            A/52 support with liba52 (default enabled)])
2727 if test "${enable_a52}" != "no"
2728 then
2729   AC_ARG_WITH(a52,
2730     [    --with-a52=PATH       a52 headers and libraries])
2731   AC_ARG_WITH(a52-tree,
2732     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2733   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2734   then
2735     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2736     if test -z "${real_a52_tree}"
2737     then
2738       dnl  The given directory can't be found
2739       AC_MSG_RESULT(no)
2740       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2741     fi
2742     dnl  Use a custom a52dec
2743     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2744     if test -f ${real_a52_tree}/include/a52.h
2745     then
2746       AC_MSG_RESULT(yes)
2747       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2748       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2749       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2750       AC_CHECK_LIB(a52, a52_free, [
2751         VLC_ADD_BUILTINS([a52tofloat32])
2752         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2753         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2754         ],[
2755         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2756         then
2757           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2758         else
2759           AC_MSG_ERROR([the specified tree hasn't been compiled])
2760         fi
2761       ])
2762       LDFLAGS="${LDFLAGS_save}"
2763     else
2764       AC_MSG_RESULT(no)
2765       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2766     fi
2767   else
2768     if test -z "${with_a52}"
2769     then
2770       LDFLAGS_test=""
2771       CPPFLAGS_test=""
2772     else
2773       LDFLAGS_test="-L${with_a52}/lib"
2774       CPPFLAGS_test="-I${with_a52}/include"
2775     fi
2776     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2777     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2778     AC_CHECK_HEADERS(a52dec/a52.h, [
2779       AC_CHECK_LIB(a52, a52_free, [
2780         VLC_ADD_PLUGINS([a52tofloat32])
2781         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2782         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2783       ],[
2784         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.])
2785       ])
2786     ])
2787     CPPFLAGS="${CPPFLAGS_save}"
2788     LDFLAGS="${LDFLAGS_save}"
2789   fi
2790 fi
2791
2792 AC_ARG_WITH(a52-fixed,
2793       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2794       [
2795         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2796
2797 dnl
2798 dnl DTS Coherent Acoustics decoder plugin
2799 dnl
2800 AC_ARG_ENABLE(dts,
2801   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2802 if test "${enable_dts}" != "no"; then
2803   AC_ARG_WITH(dts-tree,
2804     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2805   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2806   then
2807     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2808     if test -z "${real_dts_tree}"
2809     then
2810       dnl  The given directory can't be found
2811       AC_MSG_RESULT(no)
2812       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2813     fi
2814     dnl  Use a custom libdts
2815     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2816     if test -f ${real_dts_tree}/include/dts.h
2817     then
2818       AC_MSG_RESULT(yes)
2819       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2820       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2821       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2822       AC_CHECK_LIB(dts_pic, dts_free, [
2823         VLC_ADD_PLUGINS([dtstofloat32])
2824         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2825         ],[
2826         AC_CHECK_LIB(dts, dts_free, [
2827           VLC_ADD_BUILTINS([dtstofloat32])
2828           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2829           ],[
2830           if test -f ${real_dts_tree}/libdts/libdts.a
2831           then
2832             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2833           else
2834             AC_MSG_ERROR([the specified tree hasn't been compiled])
2835           fi
2836         ])
2837       ])
2838       LDFLAGS="${LDFLAGS_save}"
2839     else
2840       AC_MSG_RESULT(no)
2841       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2842     fi
2843   else
2844     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2845     AC_CHECK_HEADERS(dts.h, [
2846       AC_CHECK_LIB(dts_pic, dts_free, [
2847         VLC_ADD_PLUGINS([dtstofloat32])
2848         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2849       ],[
2850         AC_CHECK_LIB(dts, dts_free, [
2851           VLC_ADD_BUILTINS([dtstofloat32])
2852           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2853         ],[
2854           if test "${enable_dts}" = "yes"; then
2855             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2856           fi
2857         ])
2858       ])
2859     ])
2860     LDFLAGS="${LDFLAGS_save}"
2861   fi
2862 fi
2863
2864 dnl
2865 dnl  Flac plugin
2866 dnl
2867 AC_ARG_ENABLE(flac,
2868   [  --enable-flac           flac decoder support (default disabled)])
2869 if test "${enable_flac}" = "yes"
2870 then
2871   AC_ARG_WITH(flac-tree,
2872   [    --with-flac-tree=PATH flac tree for static linking])
2873   if test -n "${with_flac_tree}"
2874   then
2875     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2876     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2877     if test -z "${real_flac_tree}"
2878     then
2879       dnl  The given directory can't be found
2880       AC_MSG_RESULT(no)
2881       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2882     fi
2883     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2884     then
2885       dnl  Use a custom flac
2886       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2887       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2888       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2889       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2890     else
2891       dnl  The given flac wasn't built
2892       AC_MSG_RESULT(no)
2893       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2894     fi
2895   else
2896     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2897       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2898      ],[])
2899   fi
2900 fi
2901
2902 dnl
2903 dnl  Libmpeg2 plugin
2904 dnl
2905 AC_ARG_ENABLE(libmpeg2,
2906   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2907 if test "${enable_libmpeg2}" != "no"
2908 then
2909   AC_ARG_WITH(libmpeg2-tree,
2910   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2911   if test -n "${with_libmpeg2_tree}"
2912   then
2913     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2914     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2915     if test -z "${real_libmpeg2_tree}"
2916     then
2917       dnl  The given directory can't be found
2918       AC_MSG_RESULT(no)
2919       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2920     fi
2921     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2922     then
2923       dnl  Use a custom libmpeg2
2924       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2925       VLC_ADD_BUILTINS([libmpeg2])
2926       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2927       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2928       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2929     else
2930       dnl  The given libmpeg2 wasn't built
2931       AC_MSG_RESULT(no)
2932       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2933     fi
2934   else
2935     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2936       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2937       AC_EGREP_CPP(yes,
2938         [#include <mpeg2dec/mpeg2.h>
2939          #ifdef MPEG2_RELEASE
2940          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
2941          yes
2942          #endif
2943          #endif],
2944         [AC_MSG_RESULT([yes])
2945           VLC_ADD_PLUGINS([libmpeg2])
2946           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
2947         [AC_MSG_RESULT([no])
2948           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.])])],
2949
2950       [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.])]
2951     )
2952   fi
2953 fi
2954
2955 dnl
2956 dnl  Vorbis plugin
2957 dnl
2958 AC_ARG_ENABLE(vorbis,
2959   [  --enable-vorbis         Vorbis decoder support (default enabled)])
2960 if test "${enable_vorbis}" != "no"
2961 then
2962   AC_ARG_WITH(vorbis-tree,
2963   [    --with-vorbis-tree=PATH vorbis tree for static linking])
2964   if test -n "${with_vorbis_tree}"
2965   then
2966     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
2967     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
2968     if test -z "${real_vorbis_tree}"
2969     then
2970       dnl  The given directory can't be found
2971       AC_MSG_RESULT(no)
2972       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
2973     fi
2974     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
2975     then
2976       dnl  Use a custom vorbis 
2977       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
2978       VLC_ADD_PLUGINS([vorbis])
2979       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
2980       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
2981     else
2982       dnl  The given vorbis wasn't built
2983       AC_MSG_RESULT(no)
2984       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
2985     fi
2986   else
2987     AC_CHECK_HEADERS(vorbis/codec.h, [
2988       VLC_ADD_PLUGINS([vorbis])
2989       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
2990
2991     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
2992       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
2993   fi
2994 fi
2995
2996 dnl
2997 dnl  Tremor plugin
2998 dnl
2999 AC_ARG_ENABLE(tremor,
3000   [  --enable-tremor         Tremor decoder support (default disabled)])
3001 if test "${enable_tremor}" = "yes"
3002 then
3003   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3004     VLC_ADD_PLUGINS([tremor])
3005     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3006    ],[])
3007 fi
3008
3009 dnl
3010 dnl  Speex plugin
3011 dnl
3012 AC_ARG_ENABLE(speex,
3013   [  --enable-speex          Speex decoder support (default enabled)])
3014 if test "${enable_speex}" != "no"
3015 then
3016   AC_ARG_WITH(speex-tree,
3017   [    --with-speex-tree=PATH speex tree for static linking])
3018   if test -n "${with_speex_tree}"
3019   then
3020     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3021     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3022     if test -z "${real_speex_tree}"
3023     then
3024       dnl  The given directory can't be found
3025       AC_MSG_RESULT(no)
3026       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3027     fi
3028     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3029     then
3030       dnl  Use a custom speex
3031       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3032       VLC_ADD_PLUGINS([speex])
3033       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3034       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3035     else
3036       dnl  The given speex wasn't built
3037       AC_MSG_RESULT(no)
3038       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3039     fi
3040   else
3041     AC_CHECK_HEADERS(speex/speex.h, [
3042       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3043       AC_CHECK_LIB(speex, speex_decode_int, [
3044         VLC_ADD_PLUGINS([speex])
3045         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3046         [ AC_MSG_RESULT([no])
3047           AC_MSG_WARN([Your libspeex is too old, please get the development
3048                        version.]) ],[])
3049       LDFLAGS="${LDFLAGS_save}"
3050       ],[])
3051   fi
3052 fi
3053
3054 dnl
3055 dnl  tarkin decoder plugin
3056 dnl
3057 AC_ARG_ENABLE(tarkin,
3058 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3059 if test "${enable_tarkin}" = "yes"
3060 then
3061   AC_ARG_WITH(tarkin-tree,
3062   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3063   if test -n "${with_tarkin_tree}"
3064   then
3065     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3066     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3067     if test -f "${real_tarkin_tree}/tarkin.o"
3068     then
3069       VLC_ADD_BUILTINS([tarkin])
3070       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3071       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])
3072       AC_MSG_RESULT(yes)
3073     else
3074       dnl  The given tarkin tree wasn't built
3075       AC_MSG_RESULT(no)
3076       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3077                     make sure you compiled tarkin in ${with_tarkin_tree}])
3078     fi
3079   fi
3080 fi
3081
3082 dnl
3083 dnl  theora decoder plugin
3084 dnl
3085 AC_ARG_ENABLE(theora,
3086 [  --enable-theora         experimental theora codec (default disabled)])
3087 if test "${enable_theora}" = "yes"
3088 then
3089   AC_CHECK_HEADERS(theora/theora.h, [
3090     AC_CHECK_LIB(theora, theora_granule_time, [
3091       if test "${SYS}" = "mingw32"; then
3092         VLC_ADD_PLUGINS([theora])
3093       else
3094         VLC_ADD_BUILTINS([theora])
3095       fi
3096       theora_libs="-ltheora -logg"
3097       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3098       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3099 You also need to check that you have a libogg posterior to the 1.0 release.])],
3100       [-logg])
3101   ])
3102 fi
3103
3104 dnl
3105 dnl  dirac decoder plugin
3106 dnl
3107 AC_ARG_ENABLE(dirac,
3108 [  --enable-dirac          experimental dirac codec (default disabled)])
3109 if test "${enable_dirac}" = "yes"; then
3110   AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
3111     AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
3112       VLC_ADD_PLUGINS([dirac])
3113       VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
3114       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
3115       [-lstdc++])
3116   ])
3117 fi
3118
3119 dnl
3120 dnl  PNG decoder module
3121 dnl
3122 AC_ARG_ENABLE(png,
3123   [  --enable-png            PNG support (default enabled)])
3124 if test "${enable_png}" != "no"; then
3125 AC_CHECK_HEADERS(png.h, [
3126   LDFLAGS="${LDFLAGS_save} -lz"
3127   AC_CHECK_LIB(png, png_set_rows, [
3128     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3129     VLC_ADD_PLUGINS([png])
3130     VLC_ADD_PLUGINS([osdmenu])
3131     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3132     [],[-lz])
3133   LDFLAGS="${LDFLAGS_save}"
3134   ])
3135 fi
3136
3137 dnl
3138 dnl H264 encoder plugin (using libx264)
3139 dnl
3140 AC_ARG_ENABLE(x264,
3141   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3142 if test "${enable_x264}" != "no"; then
3143   AC_ARG_WITH(x264-tree,
3144     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3145   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3146   then
3147     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3148     if test -z "${real_x264_tree}"
3149     then
3150       dnl  The given directory can't be found
3151       AC_MSG_RESULT(no)
3152       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3153     fi
3154     dnl  Use a custom libx264
3155     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3156     if test -f ${real_x264_tree}/x264.h
3157     then
3158       AC_MSG_RESULT(yes)
3159       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3160       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3161       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3162       AC_CHECK_LIB(x264, x264_encoder_open, [
3163         VLC_ADD_BUILTINS([x264])
3164         VLC_ADD_LDFLAGS([x264],[-lx264])
3165       ],[
3166         AC_MSG_ERROR([the specified tree hasn't been compiled])
3167       ])
3168       LDFLAGS="${LDFLAGS_save}"
3169     else
3170       AC_MSG_RESULT(no)
3171       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3172     fi
3173   else
3174     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3175     AC_CHECK_HEADERS(x264.h, [
3176       AC_CHECK_LIB(x264, x264_encoder_open, [
3177         VLC_ADD_PLUGINS([x264])
3178         VLC_ADD_LDFLAGS([x264],[-lx264])
3179       ],[
3180         if test "${enable_x264}" = "yes"; then
3181             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3182           fi
3183       ])
3184     ])
3185     LDFLAGS="${LDFLAGS_save}"
3186   fi
3187 fi
3188
3189 dnl
3190 dnl  CMML plugin
3191 dnl
3192 AC_ARG_ENABLE(cmml,
3193   [  --enable-cmml           CMML support (default enabled)])
3194 if test "${enable_cmml}" != "no"
3195 then
3196   VLC_ADD_PLUGINS([cmml])
3197 fi
3198
3199
3200 dnl
3201 dnl  Video plugins
3202 dnl
3203
3204 AC_ARG_WITH(,[Video plugins:])
3205
3206 dnl Check for DPMS
3207 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3208   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3209   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3210     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3211     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3212       AC_MSG_RESULT(yes)
3213       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3214                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3215     ],[
3216       AC_MSG_RESULT(no)
3217     ])
3218   ],,[
3219     #include <X11/Xlib.h>
3220   ])
3221   CPPFLAGS="${CPPFLAGS_save}"
3222 fi
3223
3224 dnl
3225 dnl  X11 module
3226 dnl  (enabled by default except on win32)
3227 dnl
3228 AC_ARG_ENABLE(x11,
3229   [  --enable-x11            X11 support (default enabled)])
3230 if test "${enable_x11}" != "no" &&
3231   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3232    test "${enable_x11}" = "yes"); then
3233   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3234   AC_CHECK_HEADERS(X11/Xlib.h, [
3235     VLC_ADD_PLUGINS([x11])
3236     VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
3237     VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
3238   ])
3239   CPPFLAGS="${CPPFLAGS_save}"
3240 fi
3241
3242 dnl
3243 dnl  XVideo module
3244 dnl  (enabled by default except on win32)
3245 dnl
3246 AC_ARG_ENABLE(xvideo,
3247   [  --enable-xvideo         XVideo support (default enabled)])
3248 if test "${enable_xvideo}" != "no" &&
3249   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3250    test "${enable_xvideo}" = "yes"); then
3251   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3252   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3253     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
3254     AC_CHECK_LIB(Xv,XvPutImage,[
3255       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3256       # test for libXv_pic.
3257       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3258         VLC_ADD_PLUGINS([xvideo])
3259         VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3260         VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
3261       else
3262         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3263           VLC_ADD_PLUGINS([xvideo])
3264           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3265           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
3266         ],[
3267           VLC_ADD_BUILTINS([xvideo])
3268           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
3269           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3270         ])
3271       fi
3272     ])
3273     CFLAGS="${CFLAGS_save}"
3274   ]
3275   CPPFLAGS="${CPPFLAGS_save}")
3276 fi
3277
3278 dnl
3279 dnl  GLX module
3280 dnl  (enabled by default except on win32)
3281 dnl
3282 AC_ARG_ENABLE(glx,
3283   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3284 if test "${enable_glx}" != "no" &&
3285   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3286    test "${enable_glx}" = "yes"); then
3287   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3288   AC_CHECK_HEADERS(X11/Xlib.h, [
3289     AC_CHECK_HEADERS(GL/glx.h, [
3290       VLC_ADD_PLUGINS([glx])
3291       VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
3292       VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
3293   ]) ])
3294   CPPFLAGS="${CPPFLAGS_save}"
3295 fi
3296
3297 dnl
3298 dnl  Check for the Xinerama extension
3299 dnl
3300 if test "${enable_xvideo}" != "no" &&
3301   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3302    test "${enable_xvideo}" = "yes"); then
3303   ac_cv_have_xinerama="no"
3304   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3305   CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
3306   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3307     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3308       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3309       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3310       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3311       ac_cv_have_xinerama="yes"
3312     ],[
3313       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3314         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3315         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3316         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3317         ac_cv_have_xinerama="yes"
3318       ])
3319     ])
3320   ])
3321   if test "${ac_cv_have_xinerama}" = "yes"; then
3322     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3323   fi
3324   CFLAGS="${CFLAGS_save}"
3325   CPPFLAGS="${CPPFLAGS_save}"
3326 fi
3327
3328 dnl
3329 dnl  OpenGL module
3330 dnl  (enabled by default except on beos)
3331 dnl
3332 AC_ARG_ENABLE(opengl,
3333   [  --enable-opengl         OpenGL support (default enabled)])
3334 if test "${enable_opengl}" != "no" &&
3335    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3336   if test "${SYS}" != "darwin"; then
3337     AC_CHECK_HEADERS(GL/gl.h, [
3338       VLC_ADD_PLUGINS([opengl])
3339       if test "${SYS}" != "mingw32"; then
3340         VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
3341       else
3342         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3343       fi
3344     ])
3345   else
3346     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3347     VLC_ADD_PLUGINS([opengl])
3348     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3349   fi
3350 fi
3351
3352 dnl
3353 dnl  SDL module
3354 dnl
3355 AC_ARG_ENABLE(sdl,
3356   [  --enable-sdl            SDL support (default enabled)])
3357 if test "${enable_sdl}" != "no"
3358 then
3359   SDL_PATH="${PATH}"
3360   AC_ARG_WITH(sdl-config-path,
3361     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3362     [ if test "${with_sdl_config_path}" != "no"
3363       then
3364         SDL_PATH="${with_sdl_config_path}:${PATH}"
3365       fi ])
3366   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3367   SDL_CONFIG="${SDL12_CONFIG}"
3368   SDL_HEADER="SDL12/SDL.h"
3369   SDL_IMAGE="SDL12/SDL_image.h"
3370   if test "${SDL_CONFIG}" = "no"
3371   then
3372     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3373     SDL_CONFIG=${SDL11_CONFIG}
3374     SDL_HEADER="SDL11/SDL.h"
3375     SDL_IMAGE="SDL11/SDL_image.h"
3376   fi
3377   if test "${SDL_CONFIG}" = "no"
3378   then
3379     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3380     SDL_HEADER="SDL/SDL.h"
3381     SDL_IMAGE="SDL/SDL_image.h"
3382   fi
3383   # check for cross-compiling
3384   SDL_PREFIX=
3385   AC_ARG_WITH(sdl-prefix,
3386     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3387                                e.g use as:
3388                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3389   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3390   then
3391     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3392   fi
3393   if test "${SDL_CONFIG}" != "no"
3394   then
3395     # SDL on Darwin is heavily patched and can only run SDL_image
3396     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3397       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3398     fi
3399     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3400     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3401     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3402     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3403       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3404       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3405           As a last resort we also test for SDL.h presence),
3406       [ AC_MSG_ERROR([The development package for SDL is not installed.
3407 Please install it and try again. Alternatively you can also configure with
3408 --disable-sdl.])
3409       ])])
3410     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3411       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3412       VLC_ADD_PLUGINS([sdl_image])
3413       AC_CHECK_LIB(png, png_set_rows,
3414         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3415       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3416         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3417       AC_CHECK_LIB(tiff, TIFFClientOpen,
3418         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3419       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3420       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3421           As a last resort we also test for SDL_image.h presence),
3422       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3423 You should install it alongside your SDL package.])
3424       ])])
3425     CPPFLAGS="${CPPFLAGS_save}"
3426     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3427     then
3428       AC_MSG_ERROR([The development package for SDL is not installed.
3429 Please install it and try again. Alternatively you can also configure with
3430 --disable-sdl.])
3431     fi
3432
3433   elif test "${enable_sdl}" =  "yes"
3434   then
3435     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3436 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3437     ])
3438   fi
3439 fi
3440
3441 dnl
3442 dnl  freetype module
3443 dnl
3444 AC_ARG_ENABLE(freetype,
3445   [  --enable-freetype       freetype support (default enabled)])
3446 AC_ARG_ENABLE(fribidi,
3447   [  --enable-fribidi        fribidi support (default enabled)])
3448 if test "${enable_freetype}" != "no"
3449 then
3450   FREETYPE_PATH="${PATH}"
3451   AC_ARG_WITH(freetype-config-path,
3452     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3453     [ if test "${with_freetype_config_path}" != "no"
3454       then
3455         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3456       fi ])
3457   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3458
3459   if test "${FREETYPE_CONFIG}" != "no"
3460   then
3461     VLC_ADD_PLUGINS([freetype])
3462     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3463     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3464     AC_CHECK_HEADERS(Carbon/Carbon.h,
3465       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3466   elif test "${enable_freetype}" =  "yes"
3467   then
3468     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3469 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3470     ])
3471   fi
3472
3473   dnl fribidi support
3474   if test "${enable_fribidi}" != "no"
3475   then
3476     FRIBIDI_PATH="${PATH}"
3477     AC_ARG_WITH(fribidi-config-path,
3478       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3479       [ if test "${with_fribidi_config_path}" != "no"
3480         then
3481           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3482         fi ])
3483     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3484
3485     if test "${FRIBIDI_CONFIG}" != "no"
3486     then
3487       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3488       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3489       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3490       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3491     fi
3492   fi
3493 fi
3494
3495 dnl
3496 dnl  libxml2 module
3497 dnl
3498 AC_ARG_ENABLE(libxml2,
3499   [  --enable-libxml2        libxml2 support (default enabled)])
3500 if test "${enable_libxml2}" != "no"
3501 then
3502   XML2_PATH="${PATH}"
3503   AC_ARG_WITH(xml2-config-path,
3504     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3505     [ if test "${with_xml2_config_path}" != "no"; then
3506         XML2_PATH="${with_xml2_config_path}:${PATH}"
3507       fi ])
3508   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3509   if test "${XML2_CONFIG}" != "no"; then
3510     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3511     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3512     dnl depends on the xmlTextReader extension
3513     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3514     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3515     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3516       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3517         VLC_ADD_PLUGINS([xml]) ],[
3518           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3519           if test "${enable_xml2}" = "yes"; then
3520             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3521           fi])
3522        ],[
3523       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3524       if test "${enable_xml2}" = "yes"; then
3525         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3526       fi])
3527     LDFLAGS="${LDFLAGS_save}"
3528     CPPFLAGS="${CPPFLAGS_save}"
3529   else
3530     if test "${enable_xml2}" = "yes"; then
3531       AC_MSG_ERROR([Could not find libxml2])
3532     fi
3533   fi
3534 fi
3535
3536 dnl
3537 dnl  SVG module
3538 dnl
3539 AC_ARG_ENABLE(svg,
3540   [  --enable-svg            SVG support (default disabled)])
3541 if test "${enable_svg}" = "yes"
3542 then
3543   PKG_CHECK_MODULES(SVG, 
3544         librsvg-2.0 >= 2.5.0,
3545         [
3546           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3547           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3548           VLC_ADD_PLUGINS([svg]) ],
3549         [AC_MSG_WARN(SVG library not found)])
3550 fi
3551
3552 dnl
3553 dnl  Qt Embedded module
3554 dnl  (disabled by default)
3555 dnl
3556 AC_ARG_ENABLE(qte,
3557   [  --enable-qte            QT Embedded support (default disabled)])
3558 if test "${enable_qte}" = "yes"
3559 then
3560   AC_ARG_WITH(qte,
3561   [    --with-qte=PATH       Qt Embedded headers and libraries])
3562   if test "${with_qte}" != "no" -a -n "${with_qte}"
3563   then
3564     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3565     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])
3566   else
3567     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3568     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3569   fi
3570   VLC_ADD_PLUGINS([qte])
3571   NEED_QTE_MAIN=yes
3572   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3573   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3574     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3575   ] )
3576   CPPFLAGS="${CPPFLAGS_save}"
3577 fi
3578
3579 dnl
3580 dnl  Qt Video output module
3581 dnl  (disabled by default)
3582 dnl
3583 dnl AC_ARG_ENABLE(qt_video,
3584 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3585 dnl if test "${enable_qt_video}" = "yes"
3586 dnl then
3587 dnl  VLC_ADD_PLUGINS([qt_video])
3588 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3589 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3590 dnl   AC_CHECK_LIB(qt-mt,main,[
3591 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3592 dnl  ],[
3593 dnl    AC_CHECK_LIB(qt,main,[
3594 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3595 dnl    ])
3596 dnl  ])
3597 dnl  NEED_QTE_MAIN=yes
3598 dnl  LDFLAGS="${LDFLAGS_save}"
3599 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3600 dnl fi
3601
3602 dnl
3603 dnl Roku HD1000 Video output module
3604 dnl
3605 AC_ARG_ENABLE(hd1000v,
3606   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3607 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3608   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3609    test "${enable_hd1000v}" = "yes"); then
3610   AC_LANG_PUSH([C++])
3611   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3612   [
3613     can_build_roku="yes"
3614   ],
3615   [
3616     can_build_roku="no"
3617     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3618   ])
3619   if test "$can_build_roku" = "yes"
3620   then
3621     VLC_ADD_PLUGINS([hd1000v])
3622     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3623   fi
3624   AC_LANG_POP([C++])
3625 fi
3626
3627 dnl
3628 dnl  Windows DirectX module
3629 dnl
3630 AC_ARG_ENABLE(directx,
3631   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3632 if test "${enable_directx}" != "no"
3633 then
3634   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3635   then
3636     AC_ARG_WITH(directx,
3637     [    --with-directx=PATH   Win32 DirectX headers])
3638     if test -z "${with_directx}"
3639     then
3640       AC_CHECK_HEADERS(ddraw.h,
3641       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3642         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3643         dnl to be moved when dependance is removed
3644         AC_CHECK_HEADERS(GL/gl.h, [
3645             VLC_ADD_PLUGINS([glwin32])
3646             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3647         ]) ])
3648     else
3649       AC_MSG_CHECKING(for directX headers in ${with_directx})
3650       if test -f ${with_directx}/ddraw.h
3651       then
3652         VLC_ADD_PLUGINS([vout_directx aout_directx])
3653         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3654         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3655         AC_MSG_RESULT(yes)
3656       else
3657         AC_MSG_RESULT(no)
3658         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3659       fi
3660     fi
3661   fi
3662 fi
3663
3664 dnl
3665 dnl  Linux framebuffer module
3666 dnl
3667 AC_ARG_ENABLE(fb,
3668   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3669     if test "${enable_fb}" != "no"
3670     then
3671       AC_CHECK_HEADERS(linux/fb.h, [
3672         VLC_ADD_PLUGINS([fb])
3673       ])
3674     fi
3675
3676 dnl
3677 dnl  Linux MGA module
3678 dnl
3679 AC_ARG_ENABLE(mga,
3680   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3681   [ if test "${enable_mga}" = "yes"
3682     then
3683       VLC_ADD_PLUGINS([mga])
3684     fi ])
3685
3686 dnl
3687 dnl  SVGAlib module
3688 dnl
3689 AC_ARG_ENABLE(svgalib,
3690   [  --enable-svgalib        SVGAlib support (default disabled)])
3691 if test "${enable_svgalib}" = "yes"
3692 then
3693   VLC_ADD_PLUGINS([svgalib])
3694   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3695 fi
3696
3697 dnl
3698 dnl  GGI module
3699 dnl
3700 AC_ARG_ENABLE(ggi,
3701   [  --enable-ggi            GGI support (default disabled)])
3702 if test "${enable_ggi}" = "yes"
3703 then
3704   VLC_ADD_PLUGINS([ggi])
3705   VLC_ADD_LDFLAGS([ggi],[-lggi])
3706   AC_ARG_WITH(ggi,
3707     [    --with-ggi=PATH       path to libggi],
3708     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3709       then
3710         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3711         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3712       fi ])
3713 fi
3714
3715 dnl
3716 dnl  Glide module
3717 dnl
3718 AC_ARG_ENABLE(glide,
3719   [  --enable-glide          Glide (3dfx) support (default disabled)])
3720 if test "${enable_glide}" = "yes"
3721 then
3722   VLC_ADD_PLUGINS([glide])
3723   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3724   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3725   AC_ARG_WITH(glide,
3726     [    --with-glide=PATH     path to libglide],
3727     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3728       then
3729         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3730         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3731       fi ])
3732 fi
3733
3734 dnl
3735 dnl  AA plugin
3736 dnl
3737 AC_ARG_ENABLE(aa,
3738   [  --enable-aa             aalib output (default disabled)])
3739 if test "${enable_aa}" = "yes"
3740 then
3741   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3742   if test "${have_aa}" = "true"
3743   then
3744     VLC_ADD_PLUGINS([aa])
3745     VLC_ADD_LDFLAGS([aa],[-laa])
3746   fi
3747 fi
3748
3749 dnl
3750 dnl  libcaca plugin
3751 dnl
3752 AC_ARG_ENABLE(caca,
3753   [  --enable-caca           libcaca output (default disabled)])
3754 if test "${enable_caca}" = "yes"
3755 then
3756   CACA_PATH="${PATH}"
3757   AC_ARG_WITH(caca-config-path,
3758     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3759     [ if test "${with_caca_config_path}" != "no"
3760       then
3761         CACA_PATH="${with_caca_config_path}:${PATH}"
3762       fi ])
3763   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3764   if test "${CACA_CONFIG}" != "no"
3765   then
3766     VLC_ADD_PLUGINS([caca])
3767     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3768     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3769   fi
3770 fi
3771
3772 dnl
3773 dnl  win32 GDI plugin
3774 dnl
3775 AC_ARG_ENABLE(wingdi,
3776   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3777 if test "${enable_wingdi}" != "no"; then
3778   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3779     VLC_ADD_PLUGINS([wingdi])
3780     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3781   fi
3782   if test "${SYS}" = "mingwce"; then
3783     VLC_ADD_PLUGINS([wingdi wingapi])
3784   fi
3785 fi
3786
3787 dnl
3788 dnl  Audio plugins
3789 dnl
3790
3791 AC_ARG_WITH(,[Audio plugins:])
3792
3793 dnl
3794 dnl  OSS /dev/dsp module (enabled by default except on win32)
3795 dnl
3796 AC_ARG_ENABLE(oss,
3797   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3798
3799 if test "${enable_oss}" != "no" &&
3800   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3801    test "${enable_oss}" = "yes")
3802 then
3803   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3804     VLC_ADD_PLUGINS([oss])
3805     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3806   ])
3807 fi
3808
3809 dnl
3810 dnl  Esound module
3811 dnl
3812 AC_ARG_ENABLE(esd,
3813   [  --enable-esd            Esound library support (default disabled)],
3814   [if test "${enable_esd}" = "yes"
3815    then
3816      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3817      if test "${ESD_CONFIG}" != "no"
3818      then
3819        VLC_ADD_PLUGINS([esd])
3820        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3821        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3822      fi
3823    fi])
3824
3825 dnl
3826 dnl  Portaudio module
3827 dnl
3828 AC_ARG_ENABLE(portaudio,
3829   [  --enable-portaudio      Portaudio library support (default disabled)],
3830   [if test "${enable_portaudio}" = "yes"
3831    then
3832      VLC_ADD_PLUGINS([portaudio])
3833      VLC_ADD_CXXFLAGS([portaudio],[])
3834      if test "${SYS}" = "mingw32"; then
3835         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3836      else
3837         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3838      fi
3839    fi])
3840
3841 dnl
3842 dnl  aRts module -- broken (freeze wxWidgets)
3843 dnl
3844 AC_ARG_ENABLE(arts,
3845  [  --enable-arts           aRts sound server (default disabled)],
3846  [if test "${enable_arts}" = "yes"
3847   then
3848     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3849     if test "${ARTS_CONFIG}" != "no"
3850     then
3851       VLC_ADD_PLUGINS([arts])
3852       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3853       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3854     fi
3855   fi])
3856
3857 dnl
3858 dnl  ALSA module
3859 dnl
3860 AC_ARG_ENABLE(alsa,
3861   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3862 if test "${enable_alsa}" != "no"
3863 then
3864   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3865   if test "${have_alsa}" = "true"
3866   then
3867     CFLAGS="${CFLAGS_save}"
3868     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
3869                     #define ALSA_PCM_NEW_SW_PARAMS_API
3870                     #include <alsa/asoundlib.h>],
3871        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
3872         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
3873     VLC_ADD_PLUGINS([alsa])
3874     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
3875   else
3876     if test "${enable_alsa}" = "yes"; then
3877       AC_MSG_ERROR([Could not find ALSA development headers])
3878     fi
3879   fi
3880 fi
3881
3882 dnl
3883 dnl  win32 waveOut plugin
3884 dnl
3885 AC_ARG_ENABLE(waveout,
3886   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3887 if test "${enable_waveout}" != "no"; then
3888   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3889     VLC_ADD_PLUGINS([waveout])
3890     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
3891   fi
3892   if test "${SYS}" = "mingwce"; then
3893     VLC_ADD_PLUGINS([waveout])
3894   fi
3895 fi
3896
3897 dnl
3898 dnl  CoreAudio plugin
3899 dnl
3900 AC_ARG_ENABLE(coreaudio,
3901   [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
3902 if test "${enable_coreaudio}" != "no" &&
3903   (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
3904 then
3905   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
3906     [ VLC_ADD_BUILTINS([coreaudio auhal])
3907       VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
3908     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3909 fi
3910
3911 dnl
3912 dnl  Roku HD1000 audio
3913 dnl
3914 AC_ARG_ENABLE(hd1000a,
3915   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3916 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3917   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3918    test "${enable_hd1000a}" = "yes")
3919 then
3920   AC_LANG_PUSH([C++])
3921   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3922     VLC_ADD_PLUGINS([hd1000a])
3923     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
3924   AC_LANG_POP([C++])
3925 fi
3926
3927 dnl
3928 dnl  CyberLink for C++ UPnP stack
3929 dnl
3930 AC_ARG_ENABLE(cyberlink,
3931   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3932 if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then
3933   AC_ARG_WITH(cyberlink-tree,
3934     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3935
3936   dnl
3937   dnl test for --with-cyberlink-tree
3938   dnl
3939   if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then
3940     AC_LANG_PUSH(C++)
3941     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3942     if test -z "${real_cyberlink_tree}"
3943     then
3944       dnl  The given directory can't be found
3945       AC_MSG_RESULT(no)
3946       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3947     fi
3948     CXXFLAGS_save="${CXXFLAGS}"
3949     CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3950     CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}"
3951     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3952       [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}])
3953         VLC_ADD_PLUGINS([upnp]) 
3954       ],[
3955         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3956       ])
3957     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3958     if test -f "${real_cyberlink_tree}/lib/unix/libclink.a"
3959     then
3960       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3961       VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat])
3962     else
3963       AC_MSG_RESULT(no)
3964        AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3965     fi
3966     CXXFLAGS="${CXXFLAGS_save}"
3967     AC_LANG_POP([C++])
3968   fi
3969 fi
3970
3971 dnl
3972 dnl  Interface plugins
3973 dnl
3974
3975 AC_ARG_WITH(,[Interface plugins:])
3976
3977 dnl special case for BeOS
3978 if test "${SYS}" = "beos"
3979 then
3980     VLC_ADD_BUILTINS([beos])
3981 fi
3982
3983 dnl
3984 dnl Skins2 module
3985 dnl
3986 AC_ARG_ENABLE(skins2,
3987   [  --enable-skins2         Skins2 interface module (experimental)])
3988 if test "${enable_skins2}" = "yes" ||
3989   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3990    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3991
3992   dnl test for the required libraries
3993   skins2_missing_lib="no"
3994
3995   dnl freetype
3996   if test "${FREETYPE_CONFIG}" != "no"; then
3997     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
3998     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
3999   else
4000     skins2_missing_lib="yes"
4001     if test "${enable_skins2}" = "yes"; then
4002       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4003     fi
4004   fi
4005
4006   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4007     VLC_ADD_PLUGINS([skins2])
4008     ALIASES="${ALIASES} svlc"
4009     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4010     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4011     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4012
4013   else if test "${skins2_missing_lib}" = "no"; then
4014     VLC_ADD_PLUGINS([skins2])
4015     ALIASES="${ALIASES} svlc"
4016     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
4017     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4018     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
4019   fi fi
4020 fi
4021
4022
4023 dnl dnl
4024 dnl dnl  Gtk+ module
4025 dnl dnl
4026 dnl AC_ARG_ENABLE(gtk,
4027 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4028 dnl if test "${enable_gtk}" != "no"
4029 dnl then
4030 dnl   GTK_PATH="${PATH}"
4031 dnl   AC_ARG_WITH(gtk-config-path,
4032 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4033 dnl     [ if test "${with_gtk_config_path}"&