Java bindings by Filippo Carone.
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2 dnl $Id$
3
4 AC_INIT(vlc,0.8.5-svn)
5 VERSION_MAJOR="0"
6 VERSION_MINOR="8"
7 VERSION_REVISION="5"
8 VERSION_EXTRA="svn"
9
10 CONFIGURE_LINE="$0 $*"
11 CODENAME="Janus"
12
13 AC_PREREQ(2.50)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_SYSTEM
17
18 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
19 dnl them. And we need the comma otherwize automake will choke on it.
20 AM_INIT_AUTOMAKE(vlc,0.8.5-svn)
21 AM_CONFIG_HEADER(config.h)
22
23 dnl HA! HA!
24 AM_MAINTAINER_MODE
25
26 dnl
27 dnl  Save *FLAGS
28 dnl
29 VLC_SAVE_FLAGS
30
31 dnl
32 dnl Check for tools
33 dnl
34 AC_PROG_CC
35 AM_PROG_CC_C_O
36 AC_PROG_CPP
37 AC_PROG_CXX
38 eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
39 if test "${CXX}" != ""; then
40   AC_PROG_CXXCPP
41 fi
42 AC_PROG_MAKE_SET
43 AC_PROG_INSTALL
44 AM_PROG_AS
45
46 dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
47 dnl now otherwise it might be set in an obscure if statement.
48 AC_EGREP_CPP(foo,foo)
49
50 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
51 AC_MSG_CHECKING(for an Objective-C compiler)
52 OBJC="${CXX}"
53 AC_SUBST(OBJC)
54 OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
55 AC_SUBST(OBJCFLAGS)
56 dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
57 #OBJCDEPMODE="depmode=gcc3"
58 #AC_SUBST(OBJCDEPMODE)
59 _AM_DEPENDENCIES(OBJC)
60 AC_MSG_RESULT(not implemented yet)
61
62 dnl Find the right ranlib, even when cross-compiling
63 AC_CHECK_TOOL(RANLIB, ranlib, :)
64 AC_CHECK_TOOL(STRIP, strip, :)
65 AC_CHECK_TOOL(AR, ar, :)
66 AC_CHECK_TOOL(LD, ld, :)
67
68 dnl Sam, if you think I didn't see that... --Meuuh
69 dnl AM_PROG_LIBTOOL
70 AC_PROG_INSTALL
71
72 dnl Check for compiler properties
73 AC_C_CONST
74 AC_C_INLINE
75
76 dnl
77 dnl  Check for the contrib directory
78 dnl
79 AC_ARG_WITH(contrib,
80     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
81   if test "${with_contrib}" != "no"; then 
82
83     topdir="`dirname $0`"
84     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
85        topdir="`pwd`/$topdir"
86     fi
87
88   if test -d ${topdir}/extras/contrib/lib; then
89     export PATH=${topdir}/extras/contrib/bin:$PATH
90 dnl kludge because only the debian package provides a ffmpeg-config
91     with_ffmpeg_config_path=${topdir}/extras/contrib/bin        
92     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
93     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
94     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
95     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
96     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
97     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
98     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
99     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
100     if test $build = $host; then
101         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
102     else
103         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
104     fi
105     if test -d ${topdir}/extras/contrib/vlc-lib; then
106       LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
107       LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
108     fi
109     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
110     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
111     with_livedotcom_tree=${topdir}/extras/contrib/src/live
112     with_goom_tree=${topdir}/extras/contrib/src/goom
113     if test ".`uname -s`" = ".Darwin"; then
114       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
115       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
116     elif test ".`uname -s`" = ".BeOS"; then
117       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
118       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
119     fi
120   fi
121 fi
122 dnl
123 dnl  Set default values
124 dnl
125 LDFLAGS_vlc="${LDFLAGS}"
126
127 dnl
128 dnl  Check the operating system
129 dnl
130 case "${target_os}" in
131   "")
132     SYS=unknown
133     ;;
134   linux*)
135     SYS=linux
136     ;;
137   bsdi*)
138     SYS=bsdi
139     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
140     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
141     ;;
142   *bsd*)
143     SYS="${target_os}"
144     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
145     ;;
146   darwin*)
147     SYS=darwin
148     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
149     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
150     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
151     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
152     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
153     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
154     VLC_ADD_CFLAGS([vlc],[-x objective-c])
155     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
156     ;;
157   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
158     AC_CHECK_TOOL(WINDRES, windres, :)
159
160     case "${target_os}" in
161       *mingw32*)
162         SYS=mingw32
163         ;;
164       *cygwin*)
165         dnl Check if we are using the mno-cygwin mode in which case we are
166         dnl actually dealing with a mingw32 compiler.
167         AC_EGREP_CPP(yes,
168             [#ifdef WIN32
169              yes
170              #endif],
171             SYS=mingw32, SYS=cygwin)
172         ;;
173       *wince* | *mingwce* | *pe*)
174         SYS=mingwce
175         ;;
176     esac
177
178     if test "${SYS}" = "mingw32"; then
179         # add ws2_32 for closesocket, select, recv
180         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
181         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
182         VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
183         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync],[-lws2_32])
184     fi
185     if test "${SYS}" = "mingwce"; then
186         # add ws2 for closesocket, select, recv
187         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
188         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
189         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
190         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
191    fi
192     ;;
193   *nto*)
194     SYS=nto
195     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
196     ;;
197   solaris*)
198     SYS=solaris
199     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
200     # Perhaps it is useful other places as well? 
201     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
202     ;;
203   hpux*)
204     SYS=hpux
205     ;;
206   beos)
207     SYS=beos
208     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
209     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
210     VLC_ADD_CXXFLAGS([beos],[])
211     VLC_ADD_LDFLAGS([vlc beos],[-lbe])
212     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
213
214     dnl Check for BONE
215     if test -f /boot/beos/system/lib/libbind.so; then
216         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lbind -lsocket])
217     else
218         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
219     fi
220
221     dnl Ugly check for Zeta
222     if test -f /boot/beos/system/lib/libzeta.so; then
223         VLC_ADD_LDFLAGS([beos],[-lzeta])
224     fi
225     ;;
226   *)
227     SYS="${target_os}"
228     ;;
229 esac
230 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
231 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
232 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
233 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
234
235 dnl
236 dnl Gettext stuff
237 dnl
238 ALL_LINGUAS="ca da de en_GB es fr it ja ko nl pt_BR ro ru sv tr zh_CN zh_TW"
239 AM_GNU_GETTEXT_VERSION(0.11.5)
240 AM_GNU_GETTEXT
241 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
242   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
243   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
244 else
245   AC_CHECK_FUNCS(textdomain,,[
246     AC_CHECK_LIB(intl,textdomain,
247       VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]),,
248       ${LIBINTL}
249     )
250   ])
251 fi
252 AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
253 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
254
255 dnl
256 dnl Iconv stuff
257 dnl
258 if test "${SYS}" != "mingwce"; then
259 AS_IF([test "$am_cv_func_iconv" != "yes"],
260         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
261 fi
262 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
263 VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
264
265 dnl Check for the need to include the mingwex lib for mingw32
266 if test "${SYS}" = "mingw32"
267 then
268     AC_CHECK_LIB(mingwex,opendir,
269         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
270             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
271     )
272 fi
273
274 dnl Check for fnative-struct or mms-bitfields support for mingw32
275 if test "${SYS}" = "mingw32"
276 then
277     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
278         [ac_cv_c_mms_bitfields],
279         [CFLAGS="${CFLAGS_save} -mms-bitfields"
280          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
281     if test "${ac_cv_c_mms_bitfields}" != "no"; then
282         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
283         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
284     else
285         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
286             [ac_cv_c_fnative_struct],
287             [CFLAGS="${CFLAGS_save} -fnative-struct"
288              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
289         if test "${ac_cv_c_fnative_struct}" != "no"; then
290             CFLAGS_save="${CFLAGS_save} -fnative-struct";
291             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
292         fi
293     fi
294
295     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
296 fi
297
298 dnl Check for fvtable-thunks support for mingw32
299 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
300 then
301 AC_LANG_PUSH(C++)
302     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
303         [ac_cv_cxx_fvtable_thunks],
304         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
305          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
306                         ac_cv_cxx_fvtable_thunks=no)])
307     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
308         CXXFLAGS_mingw32_special="-fvtable-thunks"
309     fi
310
311     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
312 AC_LANG_POP(C++)
313 fi
314
315 dnl Plugin compilation stuff
316
317 VLC_LIBRARY_SUFFIX
318
319 VLC_SYMBOL_PREFIX
320 AC_SUBST(SYMPREF)
321
322 case "${SYS}" in
323   mingw32|cygwin)
324     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
325     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
326     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
327     ;;
328   mingwce)
329     ;;
330   *)
331     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
332     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
333     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
334     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
335     ;;
336 esac
337
338 dnl The -DSYS_FOO flag
339 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
340
341 dnl Check for system libs needed
342 need_libc=false
343
344 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch)
345
346 dnl Check for usual libc functions
347 AC_CHECK_FUNCS(strdup strndup atof)
348 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
349 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
350 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
351
352 dnl Check for setlocal and langinfo
353 AC_CHECK_FUNCS(setlocale)
354 AC_CHECK_HEADERS(langinfo.h)
355 AC_CHECK_FUNCS(nl_langinfo)
356
357 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
358   [AC_TRY_LINK([#include <langinfo.h>],
359     [char* cs = nl_langinfo(CODESET);],
360     ac_cv_langinfo_codeset=yes,
361     ac_cv_langinfo_codeset=no)
362   ])
363 if test ${ac_cv_langinfo_codeset} = yes; then
364   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
365     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
366 fi
367
368 AC_CHECK_FUNCS(connect,,[
369   AC_CHECK_LIB(socket,connect,[
370     VLC_ADD_LDFLAGS([vlc ipv4 cddax],-lsocket)
371   ])
372 ])
373
374 AC_CHECK_FUNCS(send,,[
375   AC_CHECK_LIB(socket,send,[
376     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard],[-lsocket])
377   ])
378 ])
379
380 AC_CHECK_FUNCS(gethostbyname,,[
381   AC_CHECK_LIB(nsl,gethostbyname,[
382     VLC_ADD_LDFLAGS([cddax ipv4 vlc],[-lnsl])
383   ],[
384     AC_CHECK_LIB(bind,gethostbyname,[
385       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
386     ])
387   ])
388 ])
389
390 dnl Check for socklen_t
391 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
392   [AC_TRY_COMPILE(
393      [#include <sys/types.h>
394       #include <sys/socket.h>],
395      [socklen_t len = 42; return len;],
396      ac_cv_type_socklen_t=yes,
397      ac_cv_type_socklen_t=no)])
398 if test "${ac_cv_type_socklen_t}" != "no"; then
399   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
400 fi
401
402 dnl Check for struct sockaddr_storage
403 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
404 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
405 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
406   [AC_TRY_COMPILE(
407     [#include <sys/types.h>
408      #if defined( UNDER_CE )
409      # include <winsock.h>
410      #elif defined( WIN32 )
411      # include <winsock2.h>
412      #else
413      # include <sys/socket.h>
414      #endif], [struct sockaddr_storage addr;],
415      ac_cv_struct_sockaddr_storage=yes,
416      ac_cv_struct_sockaddr_storage=no)])
417 if test $ac_cv_struct_sockaddr_storage = no; then
418   AC_DEFINE(sockaddr_storage, sockaddr)
419   AC_DEFINE(ss_family, sa_family)
420 fi
421
422 dnl getaddrinfo, getnameinfo and gai_strerror check
423 dnl  -lresolv is NOT needed on Solaris
424 dnl  we purposedly make the test fail on Windows
425 AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror])
426 AH_TEMPLATE(HAVE_ADDRINFO, [Define to `1' if <netdb.h> defines struct addrinfo.])
427 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
428 [#include <sys/types.h>
429 #if defined( WIN32 ) || defined( UNDER_CE )
430 # if defined(UNDER_CE) && defined(sockaddr_storage)
431 #  undef sockaddr_storage
432 # endif
433 # include <winsock2.h>
434 # include <ws2tcpip.h>
435 #else
436 # include <netdb.h>
437 #endif])
438
439 dnl Check for va_copy
440 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
441   AC_TRY_LINK(
442     [#include <stdarg.h>],
443     [va_list ap1, ap2; va_copy(ap1,ap2);],
444     [ac_cv_c_va_copy="yes"],
445     [ac_cv_c_va_copy="no"]))
446 if test "${ac_cv_c_va_copy}" = "yes"; then
447   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
448 fi
449 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
450   AC_TRY_LINK(
451     [#include <stdarg.h>],
452     [va_list ap1, ap2; __va_copy(ap1,ap2);],
453     [ac_cv_c___va_copy="yes"],
454     [ac_cv_c___va_copy="no"]))
455 if test "${ac_cv_c___va_copy}" = "yes"; then
456   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
457 fi
458
459 AC_CHECK_FUNCS(inet_aton,,[
460   AC_CHECK_LIB(resolv,inet_aton,[
461     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
462   ])
463 ])
464
465 dnl Check for getopt (always use builtin one on win32)
466 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
467 need_getopt=:
468 else
469 need_getopt=false
470 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
471 [ # FreeBSD has a gnugetopt library for this:
472   AC_CHECK_LIB([gnugetopt],[getopt_long],
473     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
474      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
475     [need_getopt=:])])
476 fi
477 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
478
479 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
480 AC_TYPE_SIGNAL
481 AC_CHECK_LIB(m,cos,[
482   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
483 ])
484 AC_CHECK_LIB(m,pow,[
485   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer vlc freetype mpc],[-lm])
486 ])
487 AC_CHECK_LIB(m,sqrt,[
488   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
489 ])
490 AC_CHECK_LIB(mx,sqrtf,[
491   VLC_ADD_LDFLAGS([x264],[-lmx])
492 ])
493 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
494
495 dnl Check for dynamic plugins
496 ac_cv_have_plugins=no
497
498 # OS X style
499 AC_CHECK_HEADERS(mach-o/dyld.h,
500   [AC_CHECK_FUNCS(NSLinkModule,
501     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
502      ac_cv_have_plugins=yes])])
503
504 # HP-UX style
505 if test "${ac_cv_have_plugins}" = "no"; then
506   AC_CHECK_HEADERS(dl.h)
507   ac_cv_my_have_shl_load=no
508   AC_CHECK_FUNC(shl_load,
509    [ac_cv_my_have_shl_load=yes,
510     AC_CHECK_LIB(dld, shl_load,
511      [ac_cv_my_have_shl_load=yes
512       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
513   if test "${ac_cv_my_have_shl_load}" = "yes"; then
514     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
515     ac_cv_have_plugins=yes
516   fi
517 fi
518
519 # Whatever style
520 if test "${ac_cv_have_plugins}" = "no"; then
521   AC_CHECK_LIB(dld, dld_link,
522    [VLC_ADD_LDFLAGS([vlc],[-ldld])
523     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
524     ac_cv_have_plugins=yes])
525 fi
526
527 # Win32 style
528 if test "${ac_cv_have_plugins}" = "no"; then
529   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
530     AC_CHECK_LIB(kernel32, main,
531      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
532       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
533       ac_cv_have_plugins=yes])
534   fi
535 fi
536
537 # WinCE style
538 if test "${ac_cv_have_plugins}" = "no"; then
539   if test "${SYS}" = "mingwce"; then
540     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
541     ac_cv_have_plugins=yes
542   fi
543 fi
544
545 # BeOS style
546 if test "${ac_cv_have_plugins}" = "no"; then
547   AC_CHECK_HEADERS(image.h)
548   AC_CHECK_FUNCS(load_add_on,
549    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
550     ac_cv_have_plugins=yes])
551 fi
552
553 # Only test for dlopen() if the others didn't work
554 if test "${ac_cv_have_plugins}" = "no"; then
555   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
556   ac_cv_my_have_dlopen=no
557   AC_CHECK_FUNC(dlopen,
558     ac_cv_my_have_dlopen=yes,
559     AC_CHECK_LIB(dl, dlopen,
560       ac_cv_my_have_dlopen=yes
561       VLC_ADD_LDFLAGS([vlc],[-ldl]),
562       AC_CHECK_LIB(svld, dlopen,
563         ac_cv_my_have_dlopen=yes
564         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
565   if test "${ac_cv_my_have_dlopen}" = "yes"; then
566     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
567     ac_cv_have_plugins=yes
568   fi
569 fi
570
571 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
572 dnl Check for pthreads - borrowed from XMMS
573 THREAD_LIB=error
574 if test "${THREAD_LIB}" = "error"; then
575   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
576 fi
577 if test "${THREAD_LIB}" = "error"; then
578   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
579 fi
580 if test "${THREAD_LIB}" = "error"; then
581   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
582 fi
583 if test "${THREAD_LIB}" = "error"; then
584   AC_CHECK_FUNCS(pthread_mutex_lock)
585   THREAD_LIB=""
586 fi
587
588 dnl Check for cthreads under GNU/Hurd for instance
589 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
590
591 dnl
592 dnl  GNU portable threads
593 dnl
594 AC_ARG_ENABLE(pth,
595   [  --enable-pth            GNU Pth support (default disabled)],
596   [ if test "${enable_pth}" = "yes"; then
597     AC_CHECK_LIB(pth,pth_init)
598     AC_MSG_CHECKING(for pth_init in pth.h)
599     AC_EGREP_HEADER(pth_init,pth.h,[
600       AC_MSG_RESULT(yes)
601       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
602                 Define if <pth.h> defines pth_init)
603       THREAD_LIB="-lpth"
604     ],[
605       AC_MSG_RESULT(no)
606     ])
607     fi
608 ])
609
610 dnl
611 dnl  State Threads
612 dnl
613 AC_ARG_ENABLE(st,
614   [  --enable-st             State Threads (default disabled)],
615   [ if test "${enable_st}" = "yes"; then
616     AC_CHECK_LIB(st,st_init)
617     AC_MSG_CHECKING(for st_init in st.h)
618     AC_EGREP_HEADER(st_init,st.h,[
619       AC_MSG_RESULT(yes)
620       AC_DEFINE(ST_INIT_IN_ST_H, 1,
621                 Define if <st.h> defines st_init)
622       THREAD_LIB="-lst"
623     ],[
624       AC_MSG_RESULT(yes)
625     ])
626     fi
627 ])
628
629 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
630
631 dnl Don't link with rt when using GNU-pth
632 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
633   dnl HP/UX port
634   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
635
636   have_nanosleep=false
637   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
638     AC_CHECK_LIB(rt,nanosleep,
639       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
640       [AC_CHECK_LIB(posix4,nanosleep,
641           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
642     )
643   ])
644   if ${have_nanosleep}; then
645     AC_DEFINE(HAVE_NANOSLEEP, 1,
646               Define if nanosleep is available.)
647   fi
648 fi
649
650 dnl Check for misc headers
651 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
652 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
653   AC_MSG_RESULT(yes)
654   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
655             Define if <pthread.h> defines pthread_cond_t.)],[
656   AC_MSG_RESULT(no)])
657
658 AC_MSG_CHECKING(for pthread_once in pthread.h)
659 AC_EGREP_HEADER(pthread_once,pthread.h,[
660   AC_MSG_RESULT(yes)
661   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
662             Define if <pthread.h> defines pthread_once.)],[
663   AC_MSG_RESULT(no)])
664 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
665
666 AC_MSG_CHECKING(for strncasecmp in strings.h)
667 AC_EGREP_HEADER(strncasecmp,strings.h,[
668   AC_MSG_RESULT(yes)
669   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
670             Define if <strings.h> defines strncasecmp.)],[
671   AC_MSG_RESULT(no)])
672
673 dnl Check for headers
674 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
675 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
676 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
677 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
678 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
679 AC_CHECK_HEADERS(linux/version.h)
680 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     if test "${with_tuning}" != "no"; then
1252         CFLAGS_TUNING="-mtune=${with_tuning}"
1253     fi
1254 else
1255     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1256         CFLAGS_TUNING="-mtune=pentium2"
1257     elif test "${target_cpu}" = "x86_64"; then
1258         CFLAGS_TUNING="-mtune=athlon64"
1259     elif test "${target_cpu}" = "powerpc"; then
1260         CFLAGS_TUNING="-mtune=750";
1261     fi
1262 fi
1263
1264 dnl NOTE: this can't be cached cleanly
1265 AS_IF([test "${CFLAGS_TUNING}"],
1266    [CFLAGS_save="${CFLAGS}"
1267     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1268
1269     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1270     AC_COMPILE_IFELSE([ ],
1271                       [tuning="yes"],
1272                       [CFLAGS_TUNING=""; tuning="no"
1273                        AS_IF([test "${with_tuning}"],
1274                              [AC_MSG_ERROR([requested tuning not supported])])])
1275
1276     AC_MSG_RESULT([$tuning])
1277     CFLAGS="${CFLAGS_save}"
1278 ])
1279
1280 dnl
1281 dnl  x86 accelerations
1282 dnl
1283 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1284 then
1285     ARCH="${ARCH} mmx"
1286     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1287 fi
1288
1289 dnl
1290 dnl  Memory usage
1291 dnl
1292 AC_ARG_ENABLE(optimize-memory,
1293 [  --enable-optimize-memory      optimize memory usage over performance])
1294 if test "${enable_optimize_memory}" = "yes"; then
1295   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1296 fi
1297
1298 dnl
1299 dnl  Enable/disable optimizations
1300 dnl
1301 AC_ARG_ENABLE(optimizations,
1302 [  --disable-optimizations disable compiler optimizations (default enabled)])
1303 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1304
1305 dnl
1306 dnl  AltiVec acceleration
1307 dnl
1308 AC_ARG_ENABLE(altivec,
1309 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1310 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1311     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1312 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1313     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1314
1315 dnl
1316 dnl  Debugging mode
1317 dnl
1318 AC_ARG_ENABLE(debug,
1319 [  --enable-debug          debug mode (default disabled)])
1320 test "${enable_debug}" != "yes" && enable_debug="no"
1321
1322 dnl
1323 dnl  Enable release-specific flags
1324 dnl
1325 AC_ARG_ENABLE(release,
1326 [  --enable-release        activate extra optimizations (default disabled)])
1327 test "${enable_release}" != "yes" && enable_release="no"
1328
1329 dnl
1330 dnl  Is the shared libvlc forced ?
1331 dnl
1332 build_pic=no
1333 AC_ARG_ENABLE(shared-libvlc,
1334   [  --enable-shared-libvlc  shared libvlc (default disabled EXPERIMENTAL)],
1335   ,[shared_libvlc=no])
1336
1337
1338 dnl
1339 dnl Stream output
1340 dnl
1341 AC_ARG_ENABLE(sout,
1342   [  --enable-sout           Stream output modules (default enabled)])
1343 if test "${enable_sout}" != "no"
1344 then
1345   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1346   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1347   VLC_ADD_PLUGINS([packetizer_copy])
1348
1349   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1350   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1351 #  VLC_ADD_PLUGINS([stream_out_transrate])
1352
1353   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1354 fi
1355
1356 dnl Check for libshout
1357 AC_ARG_ENABLE(shout,
1358   [  --enable-shout          libshout output plugin (default disabled)])
1359 if test "${enable_shout}" = "yes"; then
1360   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1361     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1362      VLC_ADD_PLUGINS([access_output_shout])
1363      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1364      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1365     [AC_MSG_WARN(libshout library not found)])
1366 fi
1367
1368 dnl
1369 dnl HTTP daemon
1370 dnl
1371 AC_ARG_ENABLE(httpd,
1372   [  --enable-httpd          HTTP daemon (default enabled)])
1373 if test "${enable_httpd}" != "no"
1374 then
1375   VLC_ADD_PLUGINS([http])
1376   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1377 fi
1378
1379 dnl
1380 dnl VideoLAN manager
1381 dnl
1382 AC_ARG_ENABLE(vlm,
1383   [  --enable-vlm            VideoLAN manager (default enabled)])
1384 if test "${enable_vlm}" != "no"
1385 then
1386   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1387 fi
1388
1389 dnl
1390 dnl TLS/SSL
1391 dnl
1392 AC_ARG_ENABLE(gnutls,
1393   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1394 AS_IF([test "${enable_gnutls}" != "no"], [
1395
1396   gcrypt_LIBS="-lgpg-error"
1397   AS_IF([test "${SYS}" = "mingw32"],
1398     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1399      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1400   )
1401
1402   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
1403
1404   AC_CHECK_HEADER(gcrypt.h,
1405     [AC_CHECK_LIB(gcrypt, gcry_control,
1406       [AC_CHECK_HEADER(gnutls/gnutls.h,
1407         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1408           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1409      ${gcrypt_LIBS})])
1410
1411   AS_IF([test "${have_gnutls}" = "yes"], [
1412     VLC_ADD_PLUGINS([gnutls])
1413     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
1414   ], [
1415     AS_IF([test "${enable_gnutls}" = "yes"], [
1416       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1417     )]
1418   )]
1419 )
1420
1421
1422 dnl
1423 dnl  Input plugins
1424 dnl
1425
1426 AC_ARG_WITH(,[Input plugins:])
1427
1428 dnl  live.com input
1429 dnl
1430 AC_ARG_ENABLE(livedotcom,
1431 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1432 if test "${enable_livedotcom}" = "yes"; then
1433   AC_ARG_WITH(livedotcom-tree,
1434     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1435
1436   dnl
1437   dnl test for --with-livedotcom-tree
1438   dnl
1439   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1440     AC_LANG_PUSH(C++)
1441     CPPFLAGS_save="${CPPFLAGS}"
1442     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1443     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1444     AC_CHECK_HEADERS(liveMedia.hh, [
1445       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1446       AC_CHECK_LIB(liveMedia_pic, main, [
1447         # We have -lliveMedia_pic, build plugins
1448         VLC_ADD_PLUGINS([livedotcom])
1449         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1450       ], [
1451         AC_CHECK_LIB(liveMedia, main, [
1452           # We only have -lliveMedia, do builtins
1453           VLC_ADD_BUILTINS([livedotcom])
1454           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1455         ])
1456       ])
1457       if test "${SYS}" = "mingw32"; then
1458         # add ws2_32 for closesocket, select, recv
1459         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1460       fi
1461     ])
1462     CPPFLAGS="${CPPFLAGS_save}"
1463     AC_LANG_POP(C++)
1464   else
1465     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1466     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1467     if test -z "${real_livedotcom_tree}"; then
1468       dnl  The given directory can't be found
1469       AC_MSG_RESULT(no)
1470       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1471     fi
1472     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1473       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1474
1475       VLC_ADD_BUILTINS([livedotcom])
1476
1477       if test "${SYS}" = "mingw32"; then
1478         # add ws2_32 for closesocket, select, recv
1479         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1480       fi
1481
1482       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1483       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1484       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1485       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1486
1487       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1488       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1489       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1490       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1491     else
1492       dnl  The given live.com wasn't built
1493       AC_MSG_RESULT(no)
1494       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1495     fi
1496   fi
1497 fi
1498
1499 dnl
1500 dnl dv module: digital video module check for libraw1394
1501 dnl
1502 AC_ARG_ENABLE(dv,
1503 [  --enable-dv             dv input module (default disabled)])
1504 if test "{enable_dv}" = "yes"
1505 then
1506   AC_ARG_WITH(dv-raw1394,
1507   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1508   AC_ARG_WITH(dv-raw1394-tree,
1509   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1510
1511   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1512   then
1513     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1514     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1515     then
1516       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1517       AC_MSG_RESULT(yes)
1518       VLC_ADD_PLUGINS([access_dv])
1519       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1520       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1521     else
1522       dnl  No libraw1394 could be found, sorry
1523       AC_MSG_RESULT(no)
1524       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1525     fi
1526   else
1527     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1528     [ VLC_ADD_PLUGINS([access_dv])
1529         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1530     ],[
1531         if test -n "${enable_dv}"
1532         then
1533           AC_MSG_ERROR([cannot find libraw1394 headers])
1534         fi
1535     ])
1536   fi
1537
1538   dnl Check for static linking of libraw1394
1539   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1540   then
1541     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1542     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1543     if test -z "${real_dv_raw1394_tree}"
1544     then
1545       dnl  The given directory can't be found
1546       AC_MSG_RESULT(no)
1547       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1548     fi
1549     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1550     then
1551       dnl  Use a custom libraw1394
1552       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1553       VLC_ADD_BUILTINS([access_dv])
1554       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1555       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1556     else
1557       dnl  The given libraw1394 wasn't built
1558       AC_MSG_RESULT(no)
1559       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1560     fi
1561   fi
1562
1563   dnl
1564   dnl Check for libavc1394
1565   dnl
1566
1567   AC_ARG_WITH(dv-avc1394,
1568   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1569   AC_ARG_WITH(dv-avc1394-tree,
1570   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1571
1572   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1573   then
1574     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1575     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1576     then
1577       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1578       AC_MSG_RESULT(yes)
1579       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1580       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1581     else
1582       dnl  No libavc1394 could be found, sorry
1583       AC_MSG_RESULT(no)
1584       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1585     fi
1586   else
1587     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1588     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1589     ],[
1590         if test -n "${enable_dv}"
1591         then
1592           AC_MSG_ERROR([cannot find libavc1394 headers])
1593         fi
1594     ])
1595   fi
1596
1597   dnl Check for static linking of libavc1394
1598   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1599   then
1600     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1601     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1602     if test -z "${real_dv_avc1394_tree}"
1603     then
1604       dnl  The given directory can't be found
1605       AC_MSG_RESULT(no)
1606       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1607     fi
1608     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1609     then
1610       dnl  Use a custom libavc1394
1611       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1612       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1613       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1614     else
1615       dnl  The given libavc1394 wasn't built
1616       AC_MSG_RESULT(no)
1617       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1618     fi
1619   fi
1620 fi
1621
1622 dnl
1623 dnl dvdread module: check for libdvdread
1624 dnl
1625 AC_ARG_ENABLE(dvdread,
1626 [  --enable-dvdread        dvdread input module (default disabled)])
1627 if test "${enable_dvdread}" != "no"
1628 then
1629   AC_ARG_WITH(dvdread,
1630   [    --with-dvdread=PATH   libdvdread headers and libraries])
1631   AC_ARG_WITH(dvdread-tree,
1632   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1633
1634   dnl Temporary hack (yeah, sure ;)
1635   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1636       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1637   fi
1638
1639   if test -z "${with_dvdread}"
1640   then
1641     if test -z "${with_dvdread_tree}"
1642     then
1643       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1644         [ VLC_ADD_PLUGINS([dvdread])
1645           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1646         ],[
1647           if test -n "${enable_dvdread}"
1648           then
1649             AC_MSG_ERROR([cannot find libdvdread headers])
1650           fi
1651         ])
1652     else
1653       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1654       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1655       if test -z "${real_dvdread_tree}"
1656       then
1657         dnl  The given directory can't be found
1658         AC_MSG_RESULT(no)
1659         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1660       fi
1661       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1662       then
1663         dnl  Use a custom libdvdread
1664         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1665         VLC_ADD_BUILTINS([dvdread])
1666         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1667         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1668       else
1669         dnl  The given libdvdread wasn't built
1670         AC_MSG_RESULT(no)
1671         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1672       fi
1673     fi
1674   else
1675     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1676     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1677     then
1678       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1679       AC_MSG_RESULT(yes)
1680       VLC_ADD_PLUGINS([dvdread])
1681       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1682       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1683     else
1684       dnl  No libdvdread could be found, sorry
1685       AC_MSG_RESULT(no)
1686       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1687     fi
1688   fi
1689 fi
1690
1691 dnl
1692 dnl  libdvdnav plugin
1693 dnl
1694 AC_ARG_ENABLE(dvdnav,
1695   [  --enable-dvdnav         dvdnav input module (default enabled)])
1696 if test "${enable_dvdnav}" != "no"
1697 then
1698   dnl Same hack than dvdread
1699   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1700       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1701   fi
1702
1703   DVDNAV_PATH="${PATH}"
1704   AC_ARG_WITH(dvdnav-config-path,
1705     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1706     [ if test "${with_dvdnav_config_path}" != "no"
1707       then
1708         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1709       fi ])
1710   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1711   if test "${DVDNAV_CONFIG}" != "no"
1712   then
1713     VLC_ADD_PLUGINS([dvdnav])
1714     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1715     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1716   fi
1717 fi
1718
1719 dnl
1720 dnl  Windows DirectShow access module
1721 dnl
1722 AC_ARG_ENABLE(dshow,
1723   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1724 if test "${enable_dshow}" != "no"
1725 then
1726   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1727   then
1728       AC_CHECK_HEADERS(dshow.h,
1729       [ VLC_ADD_PLUGINS([dshow])
1730         VLC_ADD_CXXFLAGS([dshow],[])
1731         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1732   fi
1733 fi
1734
1735 dnl
1736 dnl  libsmbclient plugin
1737 dnl
1738 AC_ARG_ENABLE(smb,
1739   [  --enable-smb            smb input module (default enabled)])
1740 if test "${enable_smb}" != "no"; then
1741   AC_CHECK_HEADERS(libsmbclient.h,
1742     [ VLC_ADD_PLUGINS([access_smb])
1743       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1744     [ if test -n "${enable_smb}"; then
1745         AC_MSG_ERROR([cannot find libsmbclient headers])
1746      fi ])
1747   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1748     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1749     [#include <libsmbclient.h>])
1750 fi
1751
1752 dnl
1753 dnl  libdvbpsi ts demux/mux
1754 dnl
1755 AC_ARG_ENABLE(dvbpsi,
1756 [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1757 if test "${enable_dvbpsi}" != "no"
1758 then
1759   AC_ARG_WITH(dvbpsi,
1760   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1761   AC_ARG_WITH(dvbpsi,
1762   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1763   case "${with_dvbpsi}" in
1764   ""|yes)
1765     if test -z "${with_dvbpsi_tree}"
1766     then
1767       AC_CHECK_HEADERS(dvbpsi/dr.h,
1768         [ VLC_ADD_PLUGINS([ts])
1769           if test "${enable_sout}" != "no"; then
1770             VLC_ADD_BUILTINS([mux_ts])
1771           fi
1772           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1773         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1774         [#if defined( HAVE_STDINT_H )
1775 #   include <stdint.h>
1776 #elif defined( HAVE_INTTYPES_H )
1777 #   include <inttypes.h>
1778 #endif
1779 #include <dvbpsi/dvbpsi.h>
1780 #include <dvbpsi/descriptor.h>
1781 #include <dvbpsi/pat.h>
1782 #include <dvbpsi/pmt.h>])
1783     else
1784       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1785       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1786       if test -z "${real_dvbpsi_tree}"
1787       then
1788         dnl  The given directory can't be found
1789         AC_MSG_RESULT(no)
1790         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1791       fi
1792       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1793       then
1794         dnl  Use a custom libdvbpsi
1795         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1796         VLC_ADD_BUILTINS([ts])
1797         if test "${enable_sout}" != "no"; then
1798           VLC_ADD_BUILTINS([mux_ts])
1799         fi
1800         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1801         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1802       else
1803         dnl  The given libdvbpsi wasn't built
1804         AC_MSG_RESULT(no)
1805         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1806       fi
1807     fi
1808   ;;
1809   no)
1810     dnl  Compile without dvbpsi
1811   ;;
1812   *)
1813     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1814     if test -z "${with_dvbpsi}"
1815     then
1816       LDFLAGS_test=""
1817       CPPFLAGS_test=""
1818     else
1819       LDFLAGS_test="-L${with_dvbpsi}/lib"
1820       CPPFLAGS_test="-I${with_dvbpsi}/include"
1821     fi
1822     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1823     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1824       VLC_ADD_PLUGINS([ts])
1825       if test "${enable_sout}" != "no"; then
1826         VLC_ADD_PLUGINS([mux_ts])
1827       fi
1828       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1829       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1830
1831     ],[
1832       if test -n "${enable_dvbpsi}"
1833       then
1834         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])
1835       fi
1836     ])
1837     CPPFLAGS="${CPPFLAGS_save}"
1838   ;;
1839   esac
1840   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1841     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1842   ], [], [${LDFLAGS_ts}])
1843
1844 fi
1845
1846 dnl
1847 dnl  Video4Linux plugin
1848 dnl
1849 AC_ARG_ENABLE(v4l,
1850   [  --enable-v4l            Video4Linux input support (default disabled)])
1851 if test "${enable_v4l}" = "yes"
1852 then
1853   AC_ARG_WITH(v4l,
1854     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1855   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1856   then
1857     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1858   fi
1859
1860   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1861   AC_CHECK_HEADERS(linux/videodev.h, [
1862     VLC_ADD_PLUGINS([v4l])
1863   ],[])
1864   CPPFLAGS="${CPPFLAGS_save}"
1865 fi
1866
1867 dnl
1868 dnl  special access module for Hauppauge PVR cards
1869 dnl
1870 AC_ARG_ENABLE(pvr,
1871   [  --enable-pvr            PVR cards access module (default disabled)])
1872 if test "${enable_pvr}" = "yes"
1873 then
1874   VLC_ADD_PLUGINS([pvr])
1875 fi
1876
1877 dnl
1878 dnl  gnomeVFS access module
1879 dnl
1880 AC_ARG_ENABLE(gnomevfs,
1881   [  --enable-gnomevfs      GnomeVFS access module (default enabled)])
1882 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1883 then
1884   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1885     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1886     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1887     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1888     VLC_ADD_PLUGINS([access_gnomevfs]),
1889     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1890 fi
1891
1892 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1893 AC_ARG_ENABLE(libcdio,
1894   [  --enable-libcdio        CD input and control library support (default enabled)])
1895
1896
1897 have_libcdio=no
1898 have_libvcdinfo=no
1899 if test "${enable_libcdio}" != "no"
1900 then
1901   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1902      have_libcdio=yes
1903      AC_DEFINE(HAVE_LIBCDIO, [], 
1904      [Define if you have libcdio 0.72 or greater installed]),
1905      [AC_MSG_WARN(CD Reading and information library not found)])
1906
1907   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1908      [have_libvcdinfo=yes
1909      AC_DEFINE(HAVE_VCDINFO, [], 
1910      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1911      [AC_MSG_WARN(VCD information library not found)])
1912 fi
1913
1914 dnl
1915 dnl  VCDX and CDDAX modules
1916 dnl
1917 AC_ARG_ENABLE(cddax,
1918   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1919  
1920 AC_ARG_ENABLE(libcddb,
1921   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1922  
1923 if test "${enable_cddax}" = "yes"
1924 then
1925   if test "$have_libcdio" = "yes"
1926   then
1927     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1928     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1929     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1930     VLC_ADD_PLUGINS([cddax])
1931     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1932     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1933     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1934   else 
1935     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1936     HAVE_CDDAX=no
1937   fi
1938
1939   if test "$enable_libcddb" != "no"; then
1940     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1941       HAVE_LIBCDDB=yes 
1942       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1943       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1944       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1945       ],
1946       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
1947       HAVE_LIBCDDB=no])
1948   fi
1949  
1950 fi
1951
1952 AC_ARG_ENABLE(vcdx,
1953   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
1954  
1955 if test "${enable_vcdx}" = "yes"
1956 then
1957   if test "${have_libvcdinfo}" = "yes"
1958   then
1959     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1960     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1961   else 
1962     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
1963     HAVE_VCDX=no
1964   fi
1965
1966   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
1967    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
1968     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
1969     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
1970     HAVE_VCDX=no])
1971
1972   if test "$have_libvcdinfo" = "yes"
1973   then
1974     AC_DEFINE(HAVE_VCDX, [], 
1975     [Define for the VCD plugin using libcdio/libvcdinfo])
1976     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1977     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1978     VLC_ADD_PLUGINS([vcdx])
1979   else 
1980     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
1981     HAVE_VCDX=no
1982   fi
1983 fi
1984
1985 dnl
1986 dnl  Built-in CD-DA and VCD module
1987 dnl
1988 AC_ARG_ENABLE(cdda,           
1989   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
1990  
1991 AC_ARG_ENABLE(vcd,
1992   [  --enable-vcd            built-in VCD (default enabled)])
1993
1994 if test "${enable_vcd}" != "no"
1995 then
1996   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1997   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1998     AC_MSG_RESULT(yes)
1999     VLC_ADD_PLUGINS([vcd cdda])
2000   ],[
2001     AC_MSG_RESULT(no)
2002   ])
2003
2004   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2005   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2006     AC_MSG_RESULT(yes)
2007     VLC_ADD_PLUGINS([vcd cdda])
2008     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2009   ],[
2010     AC_MSG_RESULT(no)
2011   ])
2012
2013   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2014   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2015     AC_MSG_RESULT(yes)
2016     VLC_ADD_PLUGINS([vcd cdda])
2017     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2018   ],[
2019     AC_MSG_RESULT(no)
2020   ])
2021
2022   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2023   then
2024     VLC_ADD_PLUGINS([vcd cdda])
2025   fi
2026
2027   if test "${SYS}" = "darwin"
2028   then
2029     VLC_ADD_PLUGINS([vcd cdda])
2030     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2031     VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
2032   fi
2033 fi
2034
2035 dnl
2036 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2037 dnl
2038 AC_ARG_ENABLE(dvb,
2039   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2040
2041 if test "${enable_dvb}" = "yes"
2042 then
2043   AC_ARG_WITH(dvb,
2044   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2045   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2046   then
2047     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2048   fi
2049   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2050   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2051     if test -z "${with_dvbpsi_tree}"
2052     then
2053       VLC_ADD_PLUGINS([dvb])
2054     else
2055       VLC_ADD_BUILTINS([dvb])
2056     fi
2057   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2058   CPPFLAGS="${CPPFLAGS_save}"
2059 fi
2060
2061 dnl
2062 dnl  Screen capture module
2063 dnl
2064 AC_ARG_ENABLE(screen,
2065   [  --enable-screen         Screen capture support (default enabled)])
2066 if test "${enable_screen}" != "no"; then
2067   if test "${SYS}" = "darwin"; then
2068     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2069       VLC_ADD_PLUGINS([screen])
2070       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2071     ])
2072   elif test "${SYS}" = "mingw32"; then
2073     VLC_ADD_PLUGINS([screen])
2074     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2075   elif test "${SYS}" = "mingwce"; then
2076     CPPFLAGS="${CPPFLAGS_save}"
2077   elif test "${SYS}" = "beos"; then
2078     VLC_ADD_PLUGINS([screen])
2079     VLC_ADD_CXXFLAGS([screen],[])
2080     VLC_ADD_LDFLAGS([screen],[-lbe])
2081   else
2082     CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2083     AC_CHECK_HEADERS(X11/Xlib.h, [
2084       VLC_ADD_PLUGINS([screen])
2085       VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
2086       VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
2087     ])
2088     CPPFLAGS="${CPPFLAGS_save}"
2089   fi
2090 fi
2091
2092 dnl
2093 dnl  ipv6 plugin - not for QNX yet
2094 dnl
2095 have_ipv6=no
2096 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2097   AC_CHECK_LIB(resolv,inet_pton,
2098     [have_ipv6=yes
2099      VLC_ADD_LDFLAGS([ipv6 vlc],[-lresolv])])
2100 ])
2101
2102 AS_IF([test "${have_ipv6}" = "yes"], [
2103   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2104
2105 if test "${SYS}" != "nto" &&
2106    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2107 then
2108   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2109   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2110     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2111   AS_IF([test "${have_ipv6}" != "no"], [
2112     VLC_ADD_PLUGINS([ipv6])])
2113 fi
2114 if test "${SYS}" = "mingw32"
2115 then
2116   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2117   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2118     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2119 fi
2120
2121 dnl
2122 dnl  ogg demux plugin
2123 dnl
2124 AC_ARG_ENABLE(ogg,
2125   [  --enable-ogg            Ogg demux support (default enabled)])
2126 if test "${enable_ogg}" != "no"
2127 then
2128   AC_ARG_WITH(ogg-tree,
2129   [    --with-ogg-tree=PATH ogg tree for static linking])
2130   if test -n "${with_ogg_tree}"
2131   then
2132     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2133     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2134     if test -z "${real_ogg_tree}"
2135     then
2136       dnl  The given directory can't be found
2137       AC_MSG_RESULT(no)
2138       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2139     fi
2140     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2141     then
2142       dnl  Use a custom ogg
2143       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2144       VLC_ADD_PLUGINS([ogg])
2145       if test "${enable_sout}" != "no"; then
2146         VLC_ADD_PLUGINS([mux_ogg])
2147       fi
2148       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2149       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2150     else
2151       dnl  The given ogg wasn't built
2152       AC_MSG_RESULT(no)
2153       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2154     fi
2155   else
2156     AC_CHECK_HEADERS(ogg/ogg.h, [
2157       AC_CHECK_LIB( ogg, oggpack_read, [
2158         VLC_ADD_PLUGINS([ogg])
2159         if test "${enable_sout}" != "no"; then
2160           VLC_ADD_PLUGINS([mux_ogg])
2161         fi
2162         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2163      ],[])
2164   fi
2165 fi
2166
2167 dnl
2168 dnl  matroska demux plugin
2169 dnl
2170 AC_ARG_ENABLE(mkv,
2171   [  --enable-mkv            Matroska demux support (default enabled)])
2172 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2173   AC_LANG_PUSH(C++)
2174   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2175     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2176     AC_EGREP_CPP(yes,
2177       [#include <ebml/EbmlVersion.h>
2178        #ifdef LIBEBML_VERSION
2179        #if LIBEBML_VERSION >= 0x000706
2180        yes
2181        #endif
2182        #endif],
2183       [AC_MSG_RESULT([yes])
2184         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2185           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2186           AC_EGREP_CPP(yes,
2187             [#include <matroska/KaxVersion.h>
2188              #ifdef LIBMATROSKA_VERSION
2189              #if LIBMATROSKA_VERSION >= 0x000705
2190              yes
2191              #endif
2192              #endif],
2193             [AC_MSG_RESULT([yes])
2194               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2195               VLC_ADD_CXXFLAGS([mkv],[])
2196               if test "${SYS}" = "darwin"; then
2197                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2198               fi
2199               AC_CHECK_LIB(ebml_pic, main, [
2200                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2201                 VLC_ADD_PLUGINS([mkv])
2202                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2203               ], [
2204                 AC_CHECK_LIB(ebml, main, [
2205                   # We only have libebml, make mkv.a a builtin
2206                   VLC_ADD_BUILTINS([mkv])
2207                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2208                 ])
2209               ])
2210             ],
2211             [AC_MSG_RESULT([no])
2212               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.])
2213           ])
2214         ])
2215       ],
2216       [AC_MSG_RESULT([no])
2217         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.])
2218     ])
2219   ])
2220   AC_LANG_POP(C++)
2221 fi
2222
2223 dnl
2224 dnl  modplug demux plugin
2225 dnl
2226 AC_ARG_ENABLE(mod,
2227   [  --enable-mod            Mod demux support (default enabled)])
2228 if test "${enable_mod}" != "no"
2229 then
2230   AC_ARG_WITH(mod-tree,
2231   [    --with-mod-tree=PATH mod tree for static linking])
2232   if test -n "${with_mod_tree}"
2233   then
2234     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2235     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2236     if test -z "${real_mod_tree}"
2237     then
2238       dnl  The given directory can't be found
2239       AC_MSG_RESULT(no)
2240       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2241     fi
2242     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2243     then
2244       dnl  Use a custom mod
2245       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2246       VLC_ADD_PLUGINS([mod])
2247       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2248       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2249     else
2250       dnl  The given mod wasn't built
2251       AC_MSG_RESULT(no)
2252       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2253     fi
2254   else
2255     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2256       VLC_ADD_PLUGINS([mod])
2257       VLC_ADD_CXXFLAGS([mod],[])
2258       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2259   fi
2260 fi
2261
2262 dnl
2263 dnl  mpc demux plugin
2264 dnl
2265 AC_ARG_ENABLE(mpc,
2266   [  --enable-mpc            Mpc demux support (default enabled)])
2267 if test "${enable_mpc}" != "no"
2268 then
2269   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2270     VLC_ADD_PLUGINS([mpc])
2271     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2272 fi
2273
2274
2275 dnl
2276 dnl  Codec plugins
2277 dnl
2278
2279 AC_ARG_WITH(,[Codec plugins:])
2280
2281 dnl
2282 dnl  mad plugin
2283 dnl
2284 AC_ARG_ENABLE(mad,
2285   [  --enable-mad            libmad module (default enabled)])
2286 if test "${enable_mad}" != "no"
2287 then
2288   AC_ARG_WITH(mad,
2289     [    --with-mad=PATH       path to libmad],[],[])
2290   if test "${with_mad}" != "no" -a -n "${with_mad}"
2291   then
2292     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2293     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2294   fi
2295
2296   AC_ARG_WITH(mad-tree,
2297     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
2298   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2299   then
2300     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2301     if test -z "${real_mad_tree}"
2302     then
2303       dnl  The given directory can't be found
2304       AC_MSG_RESULT(no)
2305       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2306     fi
2307     dnl  Use a custom libmad
2308     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2309     if test -f ${real_mad_tree}/mad.h
2310     then
2311       AC_MSG_RESULT(yes)
2312       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2313       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2314       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2315       AC_CHECK_LIB(mad, mad_bit_init, [
2316         VLC_ADD_BUILTINS([mpgatofixed32])
2317         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2318         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2319       ],[])
2320       LDFLAGS="${LDFLAGS_save}"
2321     else
2322       AC_MSG_RESULT(no)
2323       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2324     fi
2325   else
2326     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2327     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2328     AC_CHECK_HEADERS(mad.h, ,
2329       [ 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.]) ])
2330     AC_CHECK_LIB(mad, mad_bit_init, [
2331       VLC_ADD_PLUGINS([mpgatofixed32])
2332       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2333       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2334     CPPFLAGS="${CPPFLAGS_save}"
2335     LDFLAGS="${LDFLAGS_save}"
2336   fi
2337 fi
2338
2339 dnl
2340 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2341 dnl
2342 AC_CHECK_HEADERS(id3tag.h, [
2343   AC_CHECK_HEADERS(zlib.h, [
2344     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2345     VLC_ADD_PLUGINS([id3tag])]) ])
2346
2347 dnl
2348 dnl  ffmpeg decoder/demuxer plugin
2349 dnl
2350 dnl we try to find ffmpeg using : 1- ffmpeg-config, 2- pkg-config
2351 dnl                             3- default place, 4- given tree
2352
2353 AC_ARG_ENABLE(ffmpeg,
2354 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2355 if test "${enable_ffmpeg}" != "no"
2356 then
2357 dnl Look for a ffmpeg-config (we are on debian )
2358  
2359    FFMPEG_PATH="${PATH}"
2360    AC_ARG_WITH(ffmpeg-config-path,
2361      [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2362      [ if test "${with_ffmpeg_config_path}" != "no"
2363        then
2364          FFMPEG_PATH="${with_ffmpeg_config_path}"
2365        fi ])
2366    AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2367    if test "${FFMPEG_CONFIG}" != "no"
2368    then
2369      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2370      AC_CHECK_HEADERS(postproc/postprocess.h)
2371      VLC_ADD_PLUGINS([ffmpeg])
2372      if test "${enable_sout}" != "no"; then
2373          VLC_ADD_PLUGINS([stream_out_switcher])
2374      fi
2375      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2376      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2377   
2378   else
2379
2380 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2381
2382         AC_ARG_WITH(ffmpeg-mp3lame,
2383       [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2384       [
2385         if test "$with_ffmpeg_mp3lame" = "yes"; then
2386                 VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2387         fi])
2388
2389     AC_ARG_WITH(ffmpeg-faac,
2390       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2391       [
2392         if test "$with_ffmpeg_faac" = "yes"; then
2393                 VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2394         fi])
2395
2396     AC_ARG_WITH(ffmpeg-dts,
2397       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2398       [
2399         if test "$with_ffmpeg_dts" = "yes"; then
2400                 LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2401                 AC_CHECK_LIB(dts_pic, dts_free, 
2402                   [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2403                   [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2404                 LDFLAGS="${LDFLAGS_save}"
2405         fi])
2406
2407     AC_ARG_WITH(ffmpeg-zlib,
2408       [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2409       [
2410         if test "$with_ffmpeg_zlib" = "yes"; then
2411                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2412         fi])
2413
2414 dnl Trying with pkg-config
2415    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2416     [
2417      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2418      AC_CHECK_HEADERS(postproc/postprocess.h)
2419      VLC_ADD_BUILTINS([ffmpeg])
2420      if test "${enable_sout}" != "no"; then
2421          VLC_ADD_BUILTINS([stream_out_switcher])
2422      fi
2423      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2424      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2425
2426     ],[
2427      
2428     dnl
2429     dnl test for !(--with-ffmpeg-tree)
2430     dnl
2431     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
2432       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2433       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2434       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2435       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2436
2437       AC_CHECK_LIB(avutil, av_add_i, [
2438         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2439         LDAVUTIL="-lavutil"])
2440
2441       AC_CHECK_LIB(avcodec, avcodec_init, [
2442         VLC_ADD_BUILTINS([ffmpeg])
2443
2444
2445         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2446         if test "${enable_sout}" != "no"; then
2447             VLC_ADD_BUILTINS([stream_out_switcher])
2448         fi],
2449          [ 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])
2450       AC_CHECK_LIB(avformat, av_open_input_stream, [
2451         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2452         [Define if you have ffmpeg's libavformat.])
2453         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2454       LDFLAGS="${LDFLAGS_save}"
2455       CPPFLAGS="${CPPFLAGS_save}"
2456     fi
2457
2458     dnl
2459     dnl test for --with-ffmpeg-tree
2460     dnl
2461     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2462       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2463       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2464       if test -z "${real_ffmpeg_tree}"; then
2465         dnl  The given directory can't be found
2466         AC_MSG_RESULT(no)
2467         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2468       fi
2469       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2470         dnl  The given libavcodec wasn't built
2471         AC_MSG_RESULT(no)
2472         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2473       fi
2474       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2475         dnl  The given libavcodec wasn't built with --enable-pp
2476         AC_MSG_RESULT(no)
2477         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2478       fi
2479       dnl  Use a custom libffmpeg
2480       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2481
2482       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2483         if test "${with_ffmpeg_zlib}" != "yes"; then
2484           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2485         fi
2486       fi
2487       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2488         if test "${with_ffmpeg_mp3lame}" != "yes"; then
2489           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2490         fi
2491       fi
2492       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2493         if test "${with_ffmpeg_faac}" != "yes"; then
2494           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2495         fi
2496       fi
2497       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2498         if test "${with_ffmpeg_dts}" != "yes"; then
2499           LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2500           AC_CHECK_LIB(dts_pic, dts_free, 
2501             [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2502             [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2503           LDFLAGS="${LDFLAGS_save}"
2504         fi
2505       fi
2506       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2507         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2508       fi
2509       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2510         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2511       fi
2512       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2513         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2514       fi
2515
2516       VLC_ADD_BUILTINS([ffmpeg])
2517       if test "${enable_sout}" != "no"; then
2518         VLC_ADD_BUILTINS([stream_out_switcher])
2519       fi
2520
2521       if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2522         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2523         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2524       fi
2525
2526       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2527       VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2528
2529       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2530         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2531         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2532         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2533       fi
2534     fi
2535     ])
2536     AC_ARG_WITH(ffmpeg-tree,
2537       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2538
2539   fi
2540 fi
2541
2542 dnl
2543 dnl  ffmpeg decoder/demuxer plugin
2544 dnl
2545 AC_ARG_ENABLE(ffmpegaltivec,
2546 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2547 if test "${enable_ffmpegaltivec}" = "yes"
2548 then
2549   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2550     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2551     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2552     if test -z "${real_ffmpeg_tree}"; then
2553       dnl  The given directory can't be found
2554       AC_MSG_RESULT(no)
2555       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2556     fi
2557     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2558       dnl  The given libavcodecaltivec wasn't built
2559       AC_MSG_RESULT(no)
2560       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2561     fi
2562     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2563       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2564       AC_MSG_RESULT(no)
2565       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2566     fi
2567     dnl  Use a custom libffmpeg
2568     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2569     VLC_ADD_BUILTINS([ffmpegaltivec])
2570     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2571     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2572     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2573
2574     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2575       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2576       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2577       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2578     fi
2579     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2580     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2581   fi
2582 fi
2583
2584 dnl
2585 dnl  faad decoder plugin
2586 dnl
2587 AC_ARG_ENABLE(faad,
2588 [  --enable-faad           faad codec (default disabled)])
2589 if test "${enable_faad}" = "yes"
2590 then
2591   AC_ARG_WITH(faad-tree,
2592   [    --with-faad-tree=PATH faad tree for static linking])
2593   if test -n "${with_faad_tree}"
2594   then
2595     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2596     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2597     if test -z "${real_faad_tree}"
2598     then
2599       dnl  The given directory can't be found
2600       AC_MSG_RESULT(no)
2601       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2602     fi
2603     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2604     then
2605       dnl  Use a custom faad
2606       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2607       VLC_ADD_BUILTINS([faad])
2608       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2609       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2610     else
2611       dnl  The given libfaad wasn't built
2612       AC_MSG_RESULT(no)
2613       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2614     fi
2615   else
2616     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2617     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2618     AC_CHECK_HEADERS(faad.h, ,
2619       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2620     AC_CHECK_LIB(faad, faacDecOpen, [
2621       VLC_ADD_PLUGINS([faad])
2622       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2623       AC_CHECK_LIB(faad, NeAACDecOpen, [
2624         VLC_ADD_PLUGINS([faad])
2625         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2626         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2627     LDFLAGS="${LDFLAGS_save}"
2628     CPPFLAGS="${CPPFLAGS_save}"
2629   fi
2630 fi
2631
2632 dnl
2633 dnl twolame encoder plugin
2634 dnl
2635 AC_ARG_ENABLE(twolame,
2636 [  --enable-twolame        twolame codec (default disabled)])
2637 if test "${enable_twolame}" = "yes"
2638 then
2639   AC_ARG_WITH(twolame-tree,
2640   [    --with-twolame-tree=PATH twolame tree for static linking])
2641   if test -n "${with_twolame_tree}"
2642   then
2643     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2644     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2645     if test -z "${real_twolame_tree}"
2646     then
2647       dnl  The given directory can't be found
2648       AC_MSG_RESULT(no)
2649       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2650     fi
2651     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2652     then
2653       dnl  Use a custom twolame
2654       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2655       VLC_ADD_BUILTINS([twolame])
2656       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2657       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2658     else
2659       dnl  The given libtwolame wasn't built
2660       AC_MSG_RESULT(no)
2661       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2662     fi
2663   else
2664     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2665     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2666     AC_CHECK_HEADERS(twolame.h, ,
2667       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2668     AC_CHECK_LIB(twolame, twolame_init, [
2669       VLC_ADD_PLUGINS([twolame])
2670       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2671         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2672     LDFLAGS="${LDFLAGS_save}"  
2673     CPPFLAGS="${CPPFLAGS_save}"
2674   fi
2675 fi
2676
2677 dnl
2678 dnl  QuickTime plugin
2679 dnl
2680 AC_ARG_ENABLE(quicktime,
2681   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2682 if test "${enable_quicktime}" != "no" &&
2683   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2684 then
2685   if test "${SYS}" = "mingw32"; then
2686     VLC_ADD_BUILTINS([quicktime])
2687   else
2688   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2689     [ VLC_ADD_BUILTINS([quicktime])
2690       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2691     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2692   fi
2693 fi
2694
2695 dnl
2696 dnl  Real plugin
2697 dnl
2698 AC_ARG_ENABLE(real,
2699   [  --enable-real           Real audio module (default disabled)])
2700 if test "${enable_real}" = "yes"; then
2701   VLC_ADD_PLUGINS([realaudio])
2702 fi
2703
2704 dnl
2705 dnl  Real RTSP plugin
2706 dnl
2707 AC_ARG_ENABLE(realrtsp,
2708   [  --enable-realrtsp       Real RTSP module (default disabled)])
2709 if test "${enable_realrtsp}" = "yes"; then
2710   VLC_ADD_PLUGINS([access_realrtsp])
2711 fi
2712
2713 dnl
2714 dnl MP4 module
2715 dnl
2716 AC_CHECK_HEADERS(zlib.h, [
2717   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2718 ] )
2719
2720 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2721   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2722 ] )
2723
2724 dnl
2725 dnl skins2 module
2726 dnl
2727 AC_CHECK_HEADERS(libtar.h, [
2728   VLC_ADD_LDFLAGS([skins2],[-ltar])
2729 ] )
2730
2731
2732
2733 dnl
2734 dnl A52/AC3 decoder plugin
2735 dnl
2736 AC_ARG_ENABLE(a52,
2737   [  --enable-a52            A/52 support with liba52 (default enabled)])
2738 if test "${enable_a52}" != "no"
2739 then
2740   AC_ARG_WITH(a52,
2741     [    --with-a52=PATH       a52 headers and libraries])
2742   AC_ARG_WITH(a52-tree,
2743     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2744   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2745   then
2746     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2747     if test -z "${real_a52_tree}"
2748     then
2749       dnl  The given directory can't be found
2750       AC_MSG_RESULT(no)
2751       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2752     fi
2753     dnl  Use a custom a52dec
2754     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2755     if test -f ${real_a52_tree}/include/a52.h
2756     then
2757       AC_MSG_RESULT(yes)
2758       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2759       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2760       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2761       AC_CHECK_LIB(a52, a52_free, [
2762         VLC_ADD_BUILTINS([a52tofloat32])
2763         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2764         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2765         ],[
2766         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2767         then
2768           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2769         else
2770           AC_MSG_ERROR([the specified tree hasn't been compiled])
2771         fi
2772       ])
2773       LDFLAGS="${LDFLAGS_save}"
2774     else
2775       AC_MSG_RESULT(no)
2776       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2777     fi
2778   else
2779     if test -z "${with_a52}"
2780     then
2781       LDFLAGS_test=""
2782       CPPFLAGS_test=""
2783     else
2784       LDFLAGS_test="-L${with_a52}/lib"
2785       CPPFLAGS_test="-I${with_a52}/include"
2786     fi
2787     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2788     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2789     AC_CHECK_HEADERS(a52dec/a52.h, [
2790       AC_CHECK_LIB(a52, a52_free, [
2791         VLC_ADD_PLUGINS([a52tofloat32])
2792         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2793         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2794       ],[
2795         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.])
2796       ])
2797     ])
2798     CPPFLAGS="${CPPFLAGS_save}"
2799     LDFLAGS="${LDFLAGS_save}"
2800   fi
2801 fi
2802
2803 AC_ARG_WITH(a52-fixed,
2804       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2805       [
2806         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2807
2808 dnl
2809 dnl DTS Coherent Acoustics decoder plugin
2810 dnl
2811 AC_ARG_ENABLE(dts,
2812   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2813 if test "${enable_dts}" != "no"; then
2814   AC_ARG_WITH(dts-tree,
2815     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2816   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2817   then
2818     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2819     if test -z "${real_dts_tree}"
2820     then
2821       dnl  The given directory can't be found
2822       AC_MSG_RESULT(no)
2823       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2824     fi
2825     dnl  Use a custom libdts
2826     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2827     if test -f ${real_dts_tree}/include/dts.h
2828     then
2829       AC_MSG_RESULT(yes)
2830       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2831       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2832       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2833       AC_CHECK_LIB(dts_pic, dts_free, [
2834         VLC_ADD_PLUGINS([dtstofloat32])
2835         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2836         ],[
2837         AC_CHECK_LIB(dts, dts_free, [
2838           VLC_ADD_BUILTINS([dtstofloat32])
2839           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2840           ],[
2841           if test -f ${real_dts_tree}/libdts/libdts.a
2842           then
2843             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2844           else
2845             AC_MSG_ERROR([the specified tree hasn't been compiled])
2846           fi
2847         ])
2848       ])
2849       LDFLAGS="${LDFLAGS_save}"
2850     else
2851       AC_MSG_RESULT(no)
2852       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2853     fi
2854   else
2855     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2856     AC_CHECK_HEADERS(dts.h, [
2857       AC_CHECK_LIB(dts_pic, dts_free, [
2858         VLC_ADD_PLUGINS([dtstofloat32])
2859         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2860       ],[
2861         AC_CHECK_LIB(dts, dts_free, [
2862           VLC_ADD_BUILTINS([dtstofloat32])
2863           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2864         ],[
2865           if test "${enable_dts}" = "yes"; then
2866             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2867           fi
2868         ])
2869       ])
2870     ])
2871     LDFLAGS="${LDFLAGS_save}"
2872   fi
2873 fi
2874
2875 dnl
2876 dnl  Flac plugin
2877 dnl
2878 AC_ARG_ENABLE(flac,
2879   [  --enable-flac           flac decoder support (default disabled)])
2880 if test "${enable_flac}" = "yes"
2881 then
2882   AC_ARG_WITH(flac-tree,
2883   [    --with-flac-tree=PATH flac tree for static linking])
2884   if test -n "${with_flac_tree}"
2885   then
2886     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2887     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2888     if test -z "${real_flac_tree}"
2889     then
2890       dnl  The given directory can't be found
2891       AC_MSG_RESULT(no)
2892       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2893     fi
2894     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2895     then
2896       dnl  Use a custom flac
2897       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2898       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2899       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2900       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2901     else
2902       dnl  The given flac wasn't built
2903       AC_MSG_RESULT(no)
2904       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2905     fi
2906   else
2907     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2908       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2909      ],[])
2910   fi
2911 fi
2912
2913 dnl
2914 dnl  Libmpeg2 plugin
2915 dnl
2916 AC_ARG_ENABLE(libmpeg2,
2917   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2918 if test "${enable_libmpeg2}" != "no"
2919 then
2920   AC_ARG_WITH(libmpeg2-tree,
2921   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2922   if test -n "${with_libmpeg2_tree}"
2923   then
2924     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2925     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2926     if test -z "${real_libmpeg2_tree}"
2927     then
2928       dnl  The given directory can't be found
2929       AC_MSG_RESULT(no)
2930       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2931     fi
2932     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2933     then
2934       dnl  Use a custom libmpeg2
2935       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2936       VLC_ADD_BUILTINS([libmpeg2])
2937       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2938       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2939       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2940     else
2941       dnl  The given libmpeg2 wasn't built
2942       AC_MSG_RESULT(no)
2943       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2944     fi
2945   else
2946     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2947       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2948       AC_EGREP_CPP(yes,
2949         [#include <mpeg2dec/mpeg2.h>
2950          #ifdef MPEG2_RELEASE
2951          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
2952          yes
2953          #endif
2954          #endif],
2955         [AC_MSG_RESULT([yes])
2956           VLC_ADD_PLUGINS([libmpeg2])
2957           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
2958         [AC_MSG_RESULT([no])
2959           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.])])],
2960
2961       [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.])]
2962     )
2963   fi
2964 fi
2965
2966 dnl
2967 dnl  Vorbis plugin
2968 dnl
2969 AC_ARG_ENABLE(vorbis,
2970   [  --enable-vorbis         Vorbis decoder support (default enabled)])
2971 if test "${enable_vorbis}" != "no"
2972 then
2973   AC_ARG_WITH(vorbis-tree,
2974   [    --with-vorbis-tree=PATH vorbis tree for static linking])
2975   if test -n "${with_vorbis_tree}"
2976   then
2977     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
2978     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
2979     if test -z "${real_vorbis_tree}"
2980     then
2981       dnl  The given directory can't be found
2982       AC_MSG_RESULT(no)
2983       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
2984     fi
2985     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
2986     then
2987       dnl  Use a custom vorbis 
2988       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
2989       VLC_ADD_PLUGINS([vorbis])
2990       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
2991       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
2992     else
2993       dnl  The given vorbis wasn't built
2994       AC_MSG_RESULT(no)
2995       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
2996     fi
2997   else
2998     AC_CHECK_HEADERS(vorbis/codec.h, [
2999       VLC_ADD_PLUGINS([vorbis])
3000       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3001
3002     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3003       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3004   fi
3005 fi
3006
3007 dnl
3008 dnl  Tremor plugin
3009 dnl
3010 AC_ARG_ENABLE(tremor,
3011   [  --enable-tremor         Tremor decoder support (default disabled)])
3012 if test "${enable_tremor}" = "yes"
3013 then
3014   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3015     VLC_ADD_PLUGINS([tremor])
3016     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3017    ],[])
3018 fi
3019
3020 dnl
3021 dnl  Speex plugin
3022 dnl
3023 AC_ARG_ENABLE(speex,
3024   [  --enable-speex          Speex decoder support (default enabled)])
3025 if test "${enable_speex}" != "no"
3026 then
3027   AC_ARG_WITH(speex-tree,
3028   [    --with-speex-tree=PATH speex tree for static linking])
3029   if test -n "${with_speex_tree}"
3030   then
3031     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3032     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3033     if test -z "${real_speex_tree}"
3034     then
3035       dnl  The given directory can't be found
3036       AC_MSG_RESULT(no)
3037       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3038     fi
3039     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3040     then
3041       dnl  Use a custom speex
3042       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3043       VLC_ADD_PLUGINS([speex])
3044       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3045       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3046     else
3047       dnl  The given speex wasn't built
3048       AC_MSG_RESULT(no)
3049       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3050     fi
3051   else
3052     AC_CHECK_HEADERS(speex/speex.h, [
3053       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3054       AC_CHECK_LIB(speex, speex_decode_int, [
3055         VLC_ADD_PLUGINS([speex])
3056         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3057         [ AC_MSG_RESULT([no])
3058           AC_MSG_WARN([Your libspeex is too old, please get the development
3059                        version.]) ],[])
3060       LDFLAGS="${LDFLAGS_save}"
3061       ],[])
3062   fi
3063 fi
3064
3065 dnl
3066 dnl  tarkin decoder plugin
3067 dnl
3068 AC_ARG_ENABLE(tarkin,
3069 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3070 if test "${enable_tarkin}" = "yes"
3071 then
3072   AC_ARG_WITH(tarkin-tree,
3073   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3074   if test -n "${with_tarkin_tree}"
3075   then
3076     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3077     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3078     if test -f "${real_tarkin_tree}/tarkin.o"
3079     then
3080       VLC_ADD_BUILTINS([tarkin])
3081       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3082       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])
3083       AC_MSG_RESULT(yes)
3084     else
3085       dnl  The given tarkin tree wasn't built
3086       AC_MSG_RESULT(no)
3087       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3088                     make sure you compiled tarkin in ${with_tarkin_tree}])
3089     fi
3090   fi
3091 fi
3092
3093 dnl
3094 dnl  theora decoder plugin
3095 dnl
3096 AC_ARG_ENABLE(theora,
3097 [  --enable-theora         experimental theora codec (default disabled)])
3098 if test "${enable_theora}" = "yes"
3099 then
3100   AC_CHECK_HEADERS(theora/theora.h, [
3101     AC_CHECK_LIB(theora, theora_granule_time, [
3102       if test "${SYS}" = "mingw32"; then
3103         VLC_ADD_PLUGINS([theora])
3104       else
3105         VLC_ADD_BUILTINS([theora])
3106       fi
3107       theora_libs="-ltheora -logg"
3108       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3109       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3110 You also need to check that you have a libogg posterior to the 1.0 release.])],
3111       [-logg])
3112   ])
3113 fi
3114
3115 dnl
3116 dnl  dirac decoder plugin
3117 dnl
3118 AC_ARG_ENABLE(dirac,
3119 [  --enable-dirac          experimental dirac codec (default disabled)])
3120 if test "${enable_dirac}" = "yes"; then
3121   AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
3122     AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
3123       VLC_ADD_PLUGINS([dirac])
3124       VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
3125       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
3126       [-lstdc++])
3127   ])
3128 fi
3129
3130 dnl
3131 dnl  PNG decoder module
3132 dnl
3133 AC_ARG_ENABLE(png,
3134   [  --enable-png            PNG support (default enabled)])
3135 if test "${enable_png}" != "no"; then
3136 AC_CHECK_HEADERS(png.h, [
3137   LDFLAGS="${LDFLAGS_save} -lz"
3138   AC_CHECK_LIB(png, png_set_rows, [
3139     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3140     VLC_ADD_PLUGINS([png])
3141     VLC_ADD_PLUGINS([osdmenu])
3142     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3143     [],[-lz])
3144   LDFLAGS="${LDFLAGS_save}"
3145   ])
3146 fi
3147
3148 dnl
3149 dnl H264 encoder plugin (using libx264)
3150 dnl
3151 AC_ARG_ENABLE(x264,
3152   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3153 if test "${enable_x264}" != "no"; then
3154   AC_ARG_WITH(x264-tree,
3155     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3156   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3157   then
3158     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3159     if test -z "${real_x264_tree}"
3160     then
3161       dnl  The given directory can't be found
3162       AC_MSG_RESULT(no)
3163       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3164     fi
3165     dnl  Use a custom libx264
3166     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3167     if test -f ${real_x264_tree}/x264.h
3168     then
3169       AC_MSG_RESULT(yes)
3170       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3171       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3172       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3173       AC_CHECK_LIB(x264, x264_encoder_open, [
3174         VLC_ADD_BUILTINS([x264])
3175         VLC_ADD_LDFLAGS([x264],[-lx264])
3176       ],[
3177         AC_MSG_ERROR([the specified tree hasn't been compiled])
3178       ])
3179       LDFLAGS="${LDFLAGS_save}"
3180     else
3181       AC_MSG_RESULT(no)
3182       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3183     fi
3184   else
3185     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3186     AC_CHECK_HEADERS(x264.h, [
3187       AC_CHECK_LIB(x264, x264_encoder_open, [
3188         VLC_ADD_PLUGINS([x264])
3189         VLC_ADD_LDFLAGS([x264],[-lx264])
3190       ],[
3191         if test "${enable_x264}" = "yes"; then
3192             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3193           fi
3194       ])
3195     ])
3196     LDFLAGS="${LDFLAGS_save}"
3197   fi
3198 fi
3199
3200 dnl
3201 dnl  CMML plugin
3202 dnl
3203 AC_ARG_ENABLE(cmml,
3204   [  --enable-cmml           CMML support (default enabled)])
3205 if test "${enable_cmml}" != "no"
3206 then
3207   VLC_ADD_PLUGINS([cmml])
3208 fi
3209
3210
3211 dnl
3212 dnl  Video plugins
3213 dnl
3214
3215 AC_ARG_WITH(,[Video plugins:])
3216
3217 dnl Check for DPMS
3218 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3219   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3220   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3221     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3222     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3223       AC_MSG_RESULT(yes)
3224       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3225                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3226     ],[
3227       AC_MSG_RESULT(no)
3228     ])
3229   ],,[
3230     #include <X11/Xlib.h>
3231   ])
3232   CPPFLAGS="${CPPFLAGS_save}"
3233 fi
3234
3235 dnl
3236 dnl  X11 module
3237 dnl  (enabled by default except on win32)
3238 dnl
3239 AC_ARG_ENABLE(x11,
3240   [  --enable-x11            X11 support (default enabled)])
3241 if test "${enable_x11}" != "no" &&
3242   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3243    test "${enable_x11}" = "yes"); then
3244   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3245   AC_CHECK_HEADERS(X11/Xlib.h, [
3246     VLC_ADD_PLUGINS([x11])
3247     VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
3248     VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
3249   ])
3250   CPPFLAGS="${CPPFLAGS_save}"
3251 fi
3252
3253 dnl
3254 dnl  XVideo module
3255 dnl  (enabled by default except on win32)
3256 dnl
3257 AC_ARG_ENABLE(xvideo,
3258   [  --enable-xvideo         XVideo support (default enabled)])
3259 if test "${enable_xvideo}" != "no" &&
3260   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3261    test "${enable_xvideo}" = "yes"); then
3262   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3263   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3264     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
3265     AC_CHECK_LIB(Xv,XvPutImage,[
3266       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3267       # test for libXv_pic.
3268       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3269         VLC_ADD_PLUGINS([xvideo])
3270         VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3271         VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
3272       else
3273         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3274           VLC_ADD_PLUGINS([xvideo])
3275           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3276           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
3277         ],[
3278           VLC_ADD_BUILTINS([xvideo])
3279           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
3280           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
3281         ])
3282       fi
3283     ])
3284     CFLAGS="${CFLAGS_save}"
3285   ]
3286   CPPFLAGS="${CPPFLAGS_save}")
3287 fi
3288
3289 dnl
3290 dnl  GLX module
3291 dnl  (enabled by default except on win32)
3292 dnl
3293 AC_ARG_ENABLE(glx,
3294   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3295 if test "${enable_glx}" != "no" &&
3296   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3297    test "${enable_glx}" = "yes"); then
3298   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3299   AC_CHECK_HEADERS(X11/Xlib.h, [
3300     AC_CHECK_HEADERS(GL/glx.h, [
3301       VLC_ADD_PLUGINS([glx])
3302       VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
3303       VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
3304   ]) ])
3305   CPPFLAGS="${CPPFLAGS_save}"
3306 fi
3307
3308 dnl
3309 dnl  Check for the Xinerama extension
3310 dnl
3311 if test "${enable_xvideo}" != "no" &&
3312   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3313    test "${enable_xvideo}" = "yes"); then
3314   ac_cv_have_xinerama="no"
3315   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
3316   CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
3317   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3318     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3319       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3320       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3321       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3322       ac_cv_have_xinerama="yes"
3323     ],[
3324       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3325         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3326         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3327         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3328         ac_cv_have_xinerama="yes"
3329       ])
3330     ])
3331   ])
3332   if test "${ac_cv_have_xinerama}" = "yes"; then
3333     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3334   fi
3335   CFLAGS="${CFLAGS_save}"
3336   CPPFLAGS="${CPPFLAGS_save}"
3337 fi
3338
3339 dnl
3340 dnl  OpenGL module
3341 dnl  (enabled by default except on beos)
3342 dnl
3343 AC_ARG_ENABLE(opengl,
3344   [  --enable-opengl         OpenGL support (default enabled)])
3345 if test "${enable_opengl}" != "no" &&
3346    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3347   if test "${SYS}" != "darwin"; then
3348     AC_CHECK_HEADERS(GL/gl.h, [
3349       VLC_ADD_PLUGINS([opengl])
3350       if test "${SYS}" != "mingw32"; then
3351         VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
3352       else
3353         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3354       fi
3355     ])
3356   else
3357     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3358     VLC_ADD_PLUGINS([opengl])
3359     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3360   fi
3361 fi
3362
3363 dnl
3364 dnl  SDL module
3365 dnl
3366 AC_ARG_ENABLE(sdl,
3367   [  --enable-sdl            SDL support (default enabled)])
3368 if test "${enable_sdl}" != "no"
3369 then
3370   SDL_PATH="${PATH}"
3371   AC_ARG_WITH(sdl-config-path,
3372     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3373     [ if test "${with_sdl_config_path}" != "no"
3374       then
3375         SDL_PATH="${with_sdl_config_path}:${PATH}"
3376       fi ])
3377   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3378   SDL_CONFIG="${SDL12_CONFIG}"
3379   SDL_HEADER="SDL12/SDL.h"
3380   SDL_IMAGE="SDL12/SDL_image.h"
3381   if test "${SDL_CONFIG}" = "no"
3382   then
3383     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3384     SDL_CONFIG=${SDL11_CONFIG}
3385     SDL_HEADER="SDL11/SDL.h"
3386     SDL_IMAGE="SDL11/SDL_image.h"
3387   fi
3388   if test "${SDL_CONFIG}" = "no"
3389   then
3390     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3391     SDL_HEADER="SDL/SDL.h"
3392     SDL_IMAGE="SDL/SDL_image.h"
3393   fi
3394   # check for cross-compiling
3395   SDL_PREFIX=
3396   AC_ARG_WITH(sdl-prefix,
3397     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3398                                e.g use as:
3399                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3400   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3401   then
3402     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3403   fi
3404   if test "${SDL_CONFIG}" != "no"
3405   then
3406     # SDL on Darwin is heavily patched and can only run SDL_image
3407     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3408       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3409     fi
3410     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3411     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3412     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3413     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3414       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3415       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3416           As a last resort we also test for SDL.h presence),
3417       [ AC_MSG_ERROR([The development package for SDL is not installed.
3418 Please install it and try again. Alternatively you can also configure with
3419 --disable-sdl.])
3420       ])])
3421     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3422       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3423       VLC_ADD_PLUGINS([sdl_image])
3424       AC_CHECK_LIB(png, png_set_rows,
3425         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3426       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3427         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3428       AC_CHECK_LIB(tiff, TIFFClientOpen,
3429         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3430       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3431       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3432           As a last resort we also test for SDL_image.h presence),
3433       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3434 You should install it alongside your SDL package.])
3435       ])])
3436     CPPFLAGS="${CPPFLAGS_save}"
3437     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3438     then
3439       AC_MSG_ERROR([The development package for SDL is not installed.
3440 Please install it and try again. Alternatively you can also configure with
3441 --disable-sdl.])
3442     fi
3443
3444   elif test "${enable_sdl}" =  "yes"
3445   then
3446     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3447 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3448     ])
3449   fi
3450 fi
3451
3452 dnl
3453 dnl  freetype module
3454 dnl
3455 AC_ARG_ENABLE(freetype,
3456   [  --enable-freetype       freetype support (default enabled)])
3457 AC_ARG_ENABLE(fribidi,
3458   [  --enable-fribidi        fribidi support (default enabled)])
3459 if test "${enable_freetype}" != "no"
3460 then
3461   FREETYPE_PATH="${PATH}"
3462   AC_ARG_WITH(freetype-config-path,
3463     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3464     [ if test "${with_freetype_config_path}" != "no"
3465       then
3466         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3467       fi ])
3468   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3469
3470   if test "${FREETYPE_CONFIG}" != "no"
3471   then
3472     VLC_ADD_PLUGINS([freetype])
3473     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3474     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3475     AC_CHECK_HEADERS(Carbon/Carbon.h,
3476       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3477   elif test "${enable_freetype}" =  "yes"
3478   then
3479     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3480 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3481     ])
3482   fi
3483
3484   dnl fribidi support
3485   if test "${enable_fribidi}" != "no"
3486   then
3487     FRIBIDI_PATH="${PATH}"
3488     AC_ARG_WITH(fribidi-config-path,
3489       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3490       [ if test "${with_fribidi_config_path}" != "no"
3491         then
3492           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3493         fi ])
3494     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3495
3496     if test "${FRIBIDI_CONFIG}" != "no"
3497     then
3498       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3499       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3500       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3501       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3502     fi
3503   fi
3504 fi
3505
3506 dnl
3507 dnl  libxml2 module
3508 dnl
3509 AC_ARG_ENABLE(libxml2,
3510   [  --enable-libxml2        libxml2 support (default enabled)])
3511 if test "${enable_libxml2}" != "no"
3512 then
3513   XML2_PATH="${PATH}"
3514   AC_ARG_WITH(xml2-config-path,
3515     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3516     [ if test "${with_xml2_config_path}" != "no"; then
3517         XML2_PATH="${with_xml2_config_path}:${PATH}"
3518       fi ])
3519   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3520   if test "${XML2_CONFIG}" != "no"; then
3521     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3522     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3523     dnl depends on the xmlTextReader extension
3524     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3525     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3526     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3527       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3528         VLC_ADD_PLUGINS([xml]) ],[
3529           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3530           if test "${enable_xml2}" = "yes"; then
3531             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3532           fi])
3533        ],[
3534       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3535       if test "${enable_xml2}" = "yes"; then
3536         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3537       fi])
3538     LDFLAGS="${LDFLAGS_save}"
3539     CPPFLAGS="${CPPFLAGS_save}"
3540   else
3541     if test "${enable_xml2}" = "yes"; then
3542       AC_MSG_ERROR([Could not find libxml2])
3543     fi
3544   fi
3545 fi
3546
3547 dnl
3548 dnl  SVG module
3549 dnl
3550 AC_ARG_ENABLE(svg,
3551   [  --enable-svg            SVG support (default disabled)])
3552 if test "${enable_svg}" = "yes"
3553 then
3554   PKG_CHECK_MODULES(SVG, 
3555         librsvg-2.0 >= 2.5.0,
3556         [
3557           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3558           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3559           VLC_ADD_PLUGINS([svg]) ],
3560         [AC_MSG_WARN(SVG library not found)])
3561 fi
3562
3563 dnl
3564 dnl  Qt Embedded module
3565 dnl  (disabled by default)
3566 dnl
3567 AC_ARG_ENABLE(qte,
3568   [  --enable-qte            QT Embedded support (default disabled)])
3569 if test "${enable_qte}" = "yes"
3570 then
3571   AC_ARG_WITH(qte,
3572   [    --with-qte=PATH       Qt Embedded headers and libraries])
3573   if test "${with_qte}" != "no" -a -n "${with_qte}"
3574   then
3575     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3576     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])
3577   else
3578     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3579     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3580   fi
3581   VLC_ADD_PLUGINS([qte])
3582   NEED_QTE_MAIN=yes
3583   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3584   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3585     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3586   ] )
3587   CPPFLAGS="${CPPFLAGS_save}"
3588 fi
3589
3590 dnl
3591 dnl  Qt Video output module
3592 dnl  (disabled by default)
3593 dnl
3594 dnl AC_ARG_ENABLE(qt_video,
3595 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3596 dnl if test "${enable_qt_video}" = "yes"
3597 dnl then
3598 dnl  VLC_ADD_PLUGINS([qt_video])
3599 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3600 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3601 dnl   AC_CHECK_LIB(qt-mt,main,[
3602 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3603 dnl  ],[
3604 dnl    AC_CHECK_LIB(qt,main,[
3605 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3606 dnl    ])
3607 dnl  ])
3608 dnl  NEED_QTE_MAIN=yes
3609 dnl  LDFLAGS="${LDFLAGS_save}"
3610 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3611 dnl fi
3612
3613 dnl
3614 dnl Roku HD1000 Video output module
3615 dnl
3616 AC_ARG_ENABLE(hd1000v,
3617   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3618 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3619   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3620    test "${enable_hd1000v}" = "yes"); then
3621   AC_LANG_PUSH([C++])
3622   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3623   [
3624     can_build_roku="yes"
3625   ],
3626   [
3627     can_build_roku="no"
3628     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3629   ])
3630   if test "$can_build_roku" = "yes"
3631   then
3632     VLC_ADD_PLUGINS([hd1000v])
3633     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3634   fi
3635   AC_LANG_POP([C++])
3636 fi
3637
3638 dnl
3639 dnl  Windows DirectX module
3640 dnl
3641 AC_ARG_ENABLE(directx,
3642   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3643 if test "${enable_directx}" != "no"
3644 then
3645   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3646   then
3647     AC_ARG_WITH(directx,
3648     [    --with-directx=PATH   Win32 DirectX headers])
3649     if test -z "${with_directx}"
3650     then
3651       AC_CHECK_HEADERS(ddraw.h,
3652       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3653         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3654         dnl to be moved when dependance is removed
3655         AC_CHECK_HEADERS(GL/gl.h, [
3656             VLC_ADD_PLUGINS([glwin32])
3657             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3658         ]) ])
3659     else
3660       AC_MSG_CHECKING(for directX headers in ${with_directx})
3661       if test -f ${with_directx}/ddraw.h
3662       then
3663         VLC_ADD_PLUGINS([vout_directx aout_directx])
3664         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3665         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3666         AC_MSG_RESULT(yes)
3667       else
3668         AC_MSG_RESULT(no)
3669         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3670       fi
3671     fi
3672   fi
3673 fi
3674
3675 dnl
3676 dnl  Linux framebuffer module
3677 dnl
3678 AC_ARG_ENABLE(fb,
3679   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3680     if test "${enable_fb}" != "no"
3681     then
3682       AC_CHECK_HEADERS(linux/fb.h, [
3683         VLC_ADD_PLUGINS([fb])
3684       ])
3685     fi
3686
3687 dnl
3688 dnl  Linux MGA module
3689 dnl
3690 AC_ARG_ENABLE(mga,
3691   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3692   [ if test "${enable_mga}" = "yes"
3693     then
3694       VLC_ADD_PLUGINS([mga])
3695     fi ])
3696
3697 dnl
3698 dnl  SVGAlib module
3699 dnl
3700 AC_ARG_ENABLE(svgalib,
3701   [  --enable-svgalib        SVGAlib support (default disabled)])
3702 if test "${enable_svgalib}" = "yes"
3703 then
3704   VLC_ADD_PLUGINS([svgalib])
3705   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3706 fi
3707
3708 dnl
3709 dnl  GGI module
3710 dnl
3711 AC_ARG_ENABLE(ggi,
3712   [  --enable-ggi            GGI support (default disabled)])
3713 if test "${enable_ggi}" = "yes"
3714 then
3715   VLC_ADD_PLUGINS([ggi])
3716   VLC_ADD_LDFLAGS([ggi],[-lggi])
3717   AC_ARG_WITH(ggi,
3718     [    --with-ggi=PATH       path to libggi],
3719     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3720       then
3721         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3722         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3723       fi ])
3724 fi
3725
3726 dnl
3727 dnl  Glide module
3728 dnl
3729 AC_ARG_ENABLE(glide,
3730   [  --enable-glide          Glide (3dfx) support (default disabled)])
3731 if test "${enable_glide}" = "yes"
3732 then
3733   VLC_ADD_PLUGINS([glide])
3734   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3735   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3736   AC_ARG_WITH(glide,
3737     [    --with-glide=PATH     path to libglide],
3738     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3739       then
3740         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3741         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3742       fi ])
3743 fi
3744
3745 dnl
3746 dnl  AA plugin
3747 dnl
3748 AC_ARG_ENABLE(aa,
3749   [  --enable-aa             aalib output (default disabled)])
3750 if test "${enable_aa}" = "yes"
3751 then
3752   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3753   if test "${have_aa}" = "true"
3754   then
3755     VLC_ADD_PLUGINS([aa])
3756     VLC_ADD_LDFLAGS([aa],[-laa])
3757   fi
3758 fi
3759
3760 dnl
3761 dnl  libcaca plugin
3762 dnl
3763 AC_ARG_ENABLE(caca,
3764   [  --enable-caca           libcaca output (default disabled)])
3765 if test "${enable_caca}" = "yes"
3766 then
3767   CACA_PATH="${PATH}"
3768   AC_ARG_WITH(caca-config-path,
3769     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3770     [ if test "${with_caca_config_path}" != "no"
3771       then
3772         CACA_PATH="${with_caca_config_path}:${PATH}"
3773       fi ])
3774   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3775   if test "${CACA_CONFIG}" != "no"
3776   then
3777     VLC_ADD_PLUGINS([caca])
3778     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3779     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3780   fi
3781 fi
3782
3783 dnl
3784 dnl  win32 GDI plugin
3785 dnl
3786 AC_ARG_ENABLE(wingdi,
3787   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3788 if test "${enable_wingdi}" != "no"; then
3789   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3790     VLC_ADD_PLUGINS([wingdi])
3791     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3792   fi
3793   if test "${SYS}" = "mingwce"; then
3794     VLC_ADD_PLUGINS([wingdi wingapi])
3795   fi
3796 fi
3797
3798 dnl
3799 dnl  Audio plugins
3800 dnl
3801
3802 AC_ARG_WITH(,[Audio plugins:])
3803
3804 dnl
3805 dnl  OSS /dev/dsp module (enabled by default except on win32)
3806 dnl
3807 AC_ARG_ENABLE(oss,
3808   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3809
3810 if test "${enable_oss}" != "no" &&
3811   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3812    test "${enable_oss}" = "yes")
3813 then
3814   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3815     VLC_ADD_PLUGINS([oss])
3816     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3817   ])
3818 fi
3819
3820 dnl
3821 dnl  Esound module
3822 dnl
3823 AC_ARG_ENABLE(esd,
3824   [  --enable-esd            Esound library support (default disabled)],
3825   [if test "${enable_esd}" = "yes"
3826    then
3827      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3828      if test "${ESD_CONFIG}" != "no"
3829      then
3830        VLC_ADD_PLUGINS([esd])
3831        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3832        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3833      fi
3834    fi])
3835
3836 dnl
3837 dnl  Portaudio module
3838 dnl
3839 AC_ARG_ENABLE(portaudio,
3840   [  --enable-portaudio      Portaudio library support (default disabled)],
3841   [if test "${enable_portaudio}" = "yes"
3842    then
3843      VLC_ADD_PLUGINS([portaudio])
3844      VLC_ADD_CXXFLAGS([portaudio],[])
3845      if test "${SYS}" = "mingw32"; then
3846         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3847      else
3848         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3849      fi
3850    fi])
3851
3852 dnl
3853 dnl  aRts module -- broken (freeze wxWidgets)
3854 dnl
3855 AC_ARG_ENABLE(arts,
3856  [  --enable-arts           aRts sound server (default disabled)],
3857  [if test "${enable_arts}" = "yes"
3858   then
3859     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3860     if test "${ARTS_CONFIG}" != "no"
3861     then
3862       VLC_ADD_PLUGINS([arts])
3863       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3864       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3865     fi
3866   fi])
3867
3868 dnl
3869 dnl  ALSA module
3870 dnl
3871 AC_ARG_ENABLE(alsa,
3872   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3873 if test "${enable_alsa}" != "no"
3874 then
3875   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3876   if test "${have_alsa}" = "true"
3877   then
3878     CFLAGS="${CFLAGS_save}"
3879     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
3880                     #define ALSA_PCM_NEW_SW_PARAMS_API
3881                     #include <alsa/asoundlib.h>],
3882        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
3883         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
3884     VLC_ADD_PLUGINS([alsa])
3885     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
3886   else
3887     if test "${enable_alsa}" = "yes"; then
3888       AC_MSG_ERROR([Could not find ALSA development headers])
3889     fi
3890   fi
3891 fi
3892
3893 dnl
3894 dnl  win32 waveOut plugin
3895 dnl
3896 AC_ARG_ENABLE(waveout,
3897   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3898 if test "${enable_waveout}" != "no"; then
3899   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3900     VLC_ADD_PLUGINS([waveout])
3901     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
3902   fi
3903   if test "${SYS}" = "mingwce"; then
3904     VLC_ADD_PLUGINS([waveout])
3905   fi
3906 fi
3907
3908 dnl
3909 dnl  CoreAudio plugin
3910 dnl
3911 AC_ARG_ENABLE(coreaudio,
3912   [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
3913 if test "${enable_coreaudio}" != "no" &&
3914   (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
3915 then
3916   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
3917     [ VLC_ADD_BUILTINS([coreaudio auhal])
3918       VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
3919     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3920 fi
3921
3922 dnl
3923 dnl  Roku HD1000 audio
3924 dnl
3925 AC_ARG_ENABLE(hd1000a,
3926   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3927 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3928   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3929    test "${enable_hd1000a}" = "yes")
3930 then
3931   AC_LANG_PUSH([C++])
3932   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3933     VLC_ADD_PLUGINS([hd1000a])
3934     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
3935   AC_LANG_POP([C++])
3936 fi
3937
3938 dnl
3939 dnl  CyberLink for C++ UPnP stack
3940 dnl
3941 AC_ARG_ENABLE(cyberlink,
3942   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3943 if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then
3944   AC_ARG_WITH(cyberlink-tree,
3945     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3946
3947   dnl
3948   dnl test for --with-cyberlink-tree
3949   dnl
3950   if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then
3951     AC_LANG_PUSH(C++)
3952     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3953     if test -z "${real_cyberlink_tree}"
3954     then
3955       dnl  The given directory can't be found
3956       AC_MSG_RESULT(no)
3957       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3958     fi
3959     CXXFLAGS_save="${CXXFLAGS}"
3960     CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3961     CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}"
3962     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3963       [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}])
3964         VLC_ADD_PLUGINS([upnp]) 
3965       ],[
3966         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3967       ])
3968     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3969     if test -f "${real_cyberlink_tree}/lib/unix/libclink.a"
3970     then
3971       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3972       VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat])
3973     else
3974       AC_MSG_RESULT(no)
3975        AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3976     fi
3977     CXXFLAGS="${CXXFLAGS_save}"
3978     AC_LANG_POP([C++])
3979   fi
3980 fi
3981
3982 dnl
3983 dnl  Interface plugins
3984 dnl
3985
3986 AC_ARG_WITH(,[Interface plugins:])
3987
3988 dnl special case for BeOS
3989 if test "${SYS}" = "beos"
3990 then
3991     VLC_ADD_BUILTINS([beos])
3992 fi
3993
3994 dnl
3995 dnl Skins2 module
3996 dnl
3997 AC_ARG_ENABLE(skins2,
3998   [  --enable-skins2         Skins2 interface module (experimental)])
3999 if test "${enable_skins2}" = "yes" ||
4000   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4001    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4002
4003   dnl test for the required libraries
4004   skins2_missing_lib="no"
4005
4006   dnl freetype
4007   if test "${FREETYPE_CONFIG}" != "no"; then
4008     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4009     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4010   else
4011     skins2_missing_lib="yes"
4012     if test "${enable_skins2}" = "yes"; then
4013       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4014     fi
4015   fi
4016
4017   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4018     VLC_ADD_PLUGINS([skins2])
4019     ALIASES="${ALIASES} svlc"
4020     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4021     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4022     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4023
4024   else if test "${skins2_missing_lib}" = "no"; then
4025     VLC_ADD_PLUGINS([skins2])
4026     ALIASES="${ALIASES} svlc"
4027     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
4028     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4029     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
4030   fi fi
4031 fi
4032
4033
4034