]> git.sesse.net Git - vlc/blob - configure.ac
demux/playlist/*: Added a special "shoutcast" mode to b4s parser
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2 dnl $Id$
3  
4 AC_INIT(vlc,0.8.2-svn)
5
6 CONFIGURE_LINE="$0 $*"
7 CODENAME="Janus"
8
9 AC_PREREQ(2.50)
10 AC_CONFIG_SRCDIR(src/libvlc.c)
11 AC_CONFIG_AUX_DIR(autotools)
12 AC_CANONICAL_SYSTEM
13
14 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
15 dnl them. And we need the comma otherwize automake will choke on it.
16 AM_INIT_AUTOMAKE(vlc,0.8.2-svn)
17 AM_CONFIG_HEADER(config.h)
18
19 dnl
20 dnl  Save *FLAGS
21 dnl
22 VLC_SAVE_FLAGS
23
24 dnl
25 dnl Check for tools
26 dnl
27 AC_PROG_CC
28 AM_PROG_CC_C_O
29 AC_PROG_CPP
30 AC_PROG_CXX
31 eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
32 if test "${CXX}" != ""; then
33   AC_PROG_CXXCPP
34 fi
35 AC_PROG_MAKE_SET
36 AC_PROG_INSTALL
37
38 dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
39 dnl now otherwise it might be set in an obscure if statement.
40 AC_EGREP_CPP(foo,foo)
41
42 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
43 AC_MSG_CHECKING(for an Objective-C compiler)
44 OBJC="${CXX}"
45 AC_SUBST(OBJC)
46 OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
47 AC_SUBST(OBJCFLAGS)
48 dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
49 #OBJCDEPMODE="depmode=gcc3"
50 #AC_SUBST(OBJCDEPMODE)
51 _AM_DEPENDENCIES(OBJC)
52 AC_MSG_RESULT(not implemented yet)
53
54 dnl Find the right ranlib, even when cross-compiling
55 AC_CHECK_TOOL(RANLIB, ranlib, :)
56 AC_CHECK_TOOL(STRIP, strip, :)
57 AC_CHECK_TOOL(AR, ar, :)
58 AC_CHECK_TOOL(LD, ld, :)
59
60 dnl Sam, if you think I didn't see that... --Meuuh
61 dnl AM_PROG_LIBTOOL
62 AC_PROG_INSTALL
63
64 dnl Check for compiler properties
65 AC_C_CONST
66 AC_C_INLINE
67
68 dnl
69 dnl  Check for the contrib directory
70 dnl
71 topdir="`pwd`"
72 if test -d ${topdir}/extras/contrib/lib; then
73   export PATH=${topdir}/extras/contrib/bin:$PATH
74   CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
75   CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
76   CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
77   CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
78   CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
79   CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
80   OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
81   OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
82   if test -d ${topdir}/extras/contrib/vlc-lib; then
83     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
84     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
85   fi
86   LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
87   LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
88   with_livedotcom_tree=${topdir}/extras/contrib/src/live
89   with_goom_tree=${topdir}/extras/contrib/src/goom
90   if test ".`uname -s`" = ".Darwin"; then
91     export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
92     export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
93   elif test ".`uname -s`" = ".BeOS"; then
94     export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
95     export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
96   fi
97 fi
98
99 dnl
100 dnl  Set default values
101 dnl
102 LDFLAGS_vlc="${LDFLAGS}"
103
104 dnl
105 dnl  Check the operating system
106 dnl
107 case "${target_os}" in
108   "")
109     SYS=unknown
110     ;;
111   linux*)
112     SYS=linux
113     ;;
114   bsdi*)
115     SYS=bsdi
116     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
117     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
118     ;;
119   *bsd*)
120     SYS="${target_os}"
121     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
122     ;;
123   darwin*)
124     SYS=darwin
125     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
126     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
127     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
128     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
129     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
130     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
131     VLC_ADD_CFLAGS([vlc],[-x objective-c])
132     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
133     ;;
134   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
135     AC_CHECK_TOOL(WINDRES, windres, :)
136
137     case "${target_os}" in
138       *mingw32*)
139         SYS=mingw32
140         ;;
141       *cygwin*)
142         dnl Check if we are using the mno-cygwin mode in which case we are
143         dnl actually dealing with a mingw32 compiler.
144         AC_EGREP_CPP(yes,
145             [#ifdef WIN32
146              yes
147              #endif],
148             SYS=mingw32, SYS=cygwin)
149         ;;
150       *wince* | *mingwce* | *pe*)
151         SYS=mingwce
152         ;;
153     esac
154
155     if test "${SYS}" = "mingw32"; then
156         # add ws2_32 for closesocket, select, recv
157         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
158         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
159         VLC_ADD_LDFLAGS([vcdx cddax],[-lwinmm])
160         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard telnet netsync],[-lws2_32])
161     fi
162     if test "${SYS}" = "mingwce"; then
163         # add ws2 for closesocket, select, recv
164         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
165         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
166         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
167         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
168     fi
169     ;;
170   *nto*)
171     SYS=nto
172     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
173     ;;
174   solaris*)
175     SYS=solaris
176     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
177     # Perhaps it is useful other places as well? 
178     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
179     ;;
180   hpux*)
181     SYS=hpux
182     ;;
183   beos)
184     SYS=beos
185     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
186     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
187     VLC_ADD_CXXFLAGS([beos],[])
188     VLC_ADD_LDFLAGS([vlc beos],[-lbe])
189     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
190     VLC_ADD_LDFLAGS([access_file access_mms access_output_udp telnet netsync sap ipv4 vlc],[-lnet])
191
192     dnl Ugly check for Zeta
193     if test -f /boot/beos/system/lib/libzeta.so; then
194         VLC_ADD_LDFLAGS([beos],[-lzeta])
195     fi
196     ;;
197   *)
198     SYS="${target_os}"
199     ;;
200 esac
201 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
202 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
203 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
204 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
205
206 dnl
207 dnl Gettext stuff
208 dnl
209 ALL_LINGUAS="bn da de el en_GB es fr hi hu it ja my ne nl no pl ps pt_BR ru sv tet tl"
210 AM_GNU_GETTEXT_VERSION(0.11.5)
211 AM_GNU_GETTEXT
212 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
213   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
214   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
215 else
216   AC_CHECK_FUNCS(textdomain,,[
217     AC_CHECK_LIB(intl,textdomain,
218       VLC_ADD_LDFLAGS([vlc],[${LIBINTL}]),,
219       ${LIBINTL}
220     )
221   ])
222 fi
223 AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
224 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
225
226 AC_ARG_ENABLE(utf8,
227   [  --enable-utf8           unicode utf8 support (default enabled on darwin/beos/win32)])
228 if test "${enable_utf8}" = "yes" || (test "${enable_utf8}" != "no" && (test "${SYS}" = "mingw32" || test "${SYS}" = "beos" || test "${SYS}" = "darwin" ) )
229 then
230   AC_DEFINE(ENABLE_UTF8, 1,
231             Define if you want utf8 support)
232 fi
233
234 dnl
235 dnl Iconv stuff
236 dnl
237 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
238 VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
239
240 dnl Check for the need to include the mingwex lib for mingw32
241 if test "${SYS}" = "mingw32"
242 then
243     AC_CHECK_LIB(mingwex,opendir,
244         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
245             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
246     )
247 fi
248
249 dnl Check for fnative-struct or mms-bitfields support for mingw32
250 if test "${SYS}" = "mingw32"
251 then
252     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
253         [ac_cv_c_mms_bitfields],
254         [CFLAGS="${CFLAGS_save} -mms-bitfields"
255          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
256     if test "${ac_cv_c_mms_bitfields}" != "no"; then
257         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
258         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
259     else
260         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
261             [ac_cv_c_fnative_struct],
262             [CFLAGS="${CFLAGS_save} -fnative-struct"
263              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
264         if test "${ac_cv_c_fnative_struct}" != "no"; then
265             CFLAGS_save="${CFLAGS_save} -fnative-struct";
266             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
267         fi
268     fi
269
270     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
271 fi
272
273 dnl Check for fvtable-thunks support for mingw32
274 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
275 then
276 AC_LANG_PUSH(C++)
277     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
278         [ac_cv_cxx_fvtable_thunks],
279         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
280          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
281                         ac_cv_cxx_fvtable_thunks=no)])
282     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
283         CXXFLAGS_mingw32_special="-fvtable-thunks"
284     fi
285
286     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
287 AC_LANG_POP(C++)
288 fi
289
290 dnl Plugin compilation stuff
291
292 VLC_LIBRARY_SUFFIX
293
294 case "${SYS}" in
295   mingw32|cygwin)
296     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
297     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
298     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
299     ;;
300   mingwce)
301     ;;
302   *)
303     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
304     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
305     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
306     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
307     ;;
308 esac
309
310 dnl The -DSYS_FOO flag
311 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
312
313 dnl Check for system libs needed
314 need_libc=false
315
316 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon)
317
318 dnl Check for usual libc functions
319 AC_CHECK_FUNCS(strdup strndup atof)
320 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
321 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
322 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
323
324 dnl Check for setlocal and langinfo
325 AC_CHECK_FUNCS(setlocale)
326 AC_CHECK_HEADERS(langinfo.h)
327 AC_CHECK_FUNCS(nl_langinfo)
328
329 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
330   [AC_TRY_LINK([#include <langinfo.h>],
331     [char* cs = nl_langinfo(CODESET);],
332     ac_cv_langinfo_codeset=yes,
333     ac_cv_langinfo_codeset=no)
334   ])
335 if test ${ac_cv_langinfo_codeset} = yes; then
336   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
337     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
338 fi
339
340 AC_CHECK_FUNCS(connect,,[
341   AC_CHECK_LIB(socket,connect,[
342     VLC_ADD_LDFLAGS([vlc ipv4 cddax],-lsocket)
343   ])
344 ])
345
346 AC_CHECK_FUNCS(send,,[
347   AC_CHECK_LIB(socket,send,[
348     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard],[-lsocket])
349   ])
350 ])
351
352 AC_CHECK_FUNCS(gethostbyname,,[
353   AC_CHECK_LIB(nsl,gethostbyname,[
354     VLC_ADD_LDFLAGS([cddax ipv4 vlc],[-lnsl])
355   ],[
356     AC_CHECK_LIB(bind,gethostbyname,[
357       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
358     ])
359   ])
360 ])
361
362 dnl Check for socklen_t
363 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
364   [AC_TRY_COMPILE(
365      [#include <sys/types.h>
366       #include <sys/socket.h>],
367      [socklen_t len = 42; return len;],
368      ac_cv_type_socklen_t=yes,
369      ac_cv_type_socklen_t=no)])
370 if test "${ac_cv_type_socklen_t}" != "no"; then
371   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
372 fi
373
374 dnl Check for struct sockaddr_storage
375 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
376 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
377 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
378   [AC_TRY_COMPILE(
379     [#include <sys/types.h>
380      #if defined( UNDER_CE )
381      # include <winsock.h>
382      #elif defined( WIN32 )
383      # include <winsock2.h>
384      #else
385      # include <sys/socket.h>
386      #endif], [struct sockaddr_storage addr;],
387      ac_cv_struct_sockaddr_storage=yes,
388      ac_cv_struct_sockaddr_storage=no)])
389 if test $ac_cv_struct_sockaddr_storage = no; then
390   AC_DEFINE(sockaddr_storage, sockaddr)
391   AC_DEFINE(ss_family, sa_family)
392 fi
393
394 dnl getaddrinfo, getnameinfo and gai_strerror check
395 dnl  -lresolv is NOT needed on Solaris
396 dnl  we purposedly make the test fail on Windows
397 AC_CHECK_FUNCS([getaddrinfo getnameinfo gai_strerror])
398 AH_TEMPLATE(HAVE_ADDRINFO, [Define to `1' if <netdb.h> defines struct addrinfo.])
399 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
400 [#include <sys/types.h>
401 #if defined( UNDER_CE )
402 # include <winsock.h>
403 #elif defined( WIN32 )
404 # include <winsock2.h>
405 # include <ws2tcpip.h>
406 #else
407 # include <netdb.h>
408 #endif])
409
410 dnl Check for va_copy
411 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
412   AC_TRY_LINK(
413     [#include <stdarg.h>],
414     [va_list ap1, ap2; va_copy(ap1,ap2);],
415     [ac_cv_c_va_copy="yes"],
416     [ac_cv_c_va_copy="no"]))
417 if test "${ac_cv_c_va_copy}" = "yes"; then
418   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
419 fi
420 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
421   AC_TRY_LINK(
422     [#include <stdarg.h>],
423     [va_list ap1, ap2; __va_copy(ap1,ap2);],
424     [ac_cv_c___va_copy="yes"],
425     [ac_cv_c___va_copy="no"]))
426 if test "${ac_cv_c___va_copy}" = "yes"; then
427   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
428 fi
429
430 AC_CHECK_FUNCS(inet_aton,,[
431   AC_CHECK_LIB(resolv,inet_aton,[
432     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
433   ])
434 ])
435
436 dnl Check for getopt (always use builtin one on win32)
437 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
438 need_getopt=:
439 else
440 need_getopt=false
441 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
442 [ # FreeBSD has a gnugetopt library for this:
443   AC_CHECK_LIB([gnugetopt],[getopt_long],
444     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
445      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
446     [need_getopt=:])])
447 fi
448 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
449
450 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
451 AC_TYPE_SIGNAL
452 AC_CHECK_LIB(m,cos,[
453   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
454 ])
455 AC_CHECK_LIB(m,pow,[
456   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad toolame equalizer vlc freetype],[-lm])
457 ])
458 AC_CHECK_LIB(m,sqrt,[
459   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
460 ])
461 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
462
463 dnl Check for dynamic plugins
464 ac_cv_have_plugins=no
465
466 # OS X style
467 AC_CHECK_HEADERS(mach-o/dyld.h,
468   [AC_CHECK_FUNCS(NSLinkModule,
469     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
470      ac_cv_have_plugins=yes])])
471
472 # HP-UX style
473 if test "${ac_cv_have_plugins}" = "no"; then
474   AC_CHECK_HEADERS(dl.h)
475   ac_cv_my_have_shl_load=no
476   AC_CHECK_FUNC(shl_load,
477    [ac_cv_my_have_shl_load=yes,
478     AC_CHECK_LIB(dld, shl_load,
479      [ac_cv_my_have_shl_load=yes
480       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
481   if test "${ac_cv_my_have_shl_load}" = "yes"; then
482     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
483     ac_cv_have_plugins=yes
484   fi
485 fi
486
487 # Whatever style
488 if test "${ac_cv_have_plugins}" = "no"; then
489   AC_CHECK_LIB(dld, dld_link,
490    [VLC_ADD_LDFLAGS([vlc],[-ldld])
491     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
492     ac_cv_have_plugins=yes])
493 fi
494
495 # Win32 style
496 if test "${ac_cv_have_plugins}" = "no"; then
497   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
498     AC_CHECK_LIB(kernel32, main,
499      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
500       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
501       ac_cv_have_plugins=yes])
502   fi
503 fi
504
505 # WinCE style
506 if test "${ac_cv_have_plugins}" = "no"; then
507   if test "${SYS}" = "mingwce"; then
508     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
509     ac_cv_have_plugins=yes
510   fi
511 fi
512
513 # BeOS style
514 if test "${ac_cv_have_plugins}" = "no"; then
515   AC_CHECK_HEADERS(image.h)
516   AC_CHECK_FUNCS(load_add_on,
517    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
518     ac_cv_have_plugins=yes])
519 fi
520
521 # Only test for dlopen() if the others didn't work
522 if test "${ac_cv_have_plugins}" = "no"; then
523   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
524   ac_cv_my_have_dlopen=no
525   AC_CHECK_FUNC(dlopen,
526     ac_cv_my_have_dlopen=yes,
527     AC_CHECK_LIB(dl, dlopen,
528       ac_cv_my_have_dlopen=yes
529       VLC_ADD_LDFLAGS([vlc],[-ldl]),
530       AC_CHECK_LIB(svld, dlopen,
531         ac_cv_my_have_dlopen=yes
532         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
533   if test "${ac_cv_my_have_dlopen}" = "yes"; then
534     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
535     ac_cv_have_plugins=yes
536   fi
537 fi
538
539 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
540 dnl Check for pthreads - borrowed from XMMS
541 THREAD_LIB=error
542 if test "${THREAD_LIB}" = "error"; then
543   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
544 fi
545 if test "${THREAD_LIB}" = "error"; then
546   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
547 fi
548 if test "${THREAD_LIB}" = "error"; then
549   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
550 fi
551 if test "${THREAD_LIB}" = "error"; then
552   AC_CHECK_FUNCS(pthread_mutex_lock)
553   THREAD_LIB=""
554 fi
555
556 dnl Check for cthreads under GNU/Hurd for instance
557 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
558
559 dnl
560 dnl  GNU portable threads
561 dnl
562 AC_ARG_ENABLE(pth,
563   [  --enable-pth            GNU Pth support (default disabled)],
564   [ if test "${enable_pth}" = "yes"; then
565     AC_CHECK_LIB(pth,pth_init)
566     AC_MSG_CHECKING(for pth_init in pth.h)
567     AC_EGREP_HEADER(pth_init,pth.h,[
568       AC_MSG_RESULT(yes)
569       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
570                 Define if <pth.h> defines pth_init)
571       THREAD_LIB="-lpth"
572     ],[
573       AC_MSG_RESULT(no)
574     ])
575     fi
576 ])
577
578 dnl
579 dnl  State Threads
580 dnl
581 AC_ARG_ENABLE(st,
582   [  --enable-st             State Threads (default disabled)],
583   [ if test "${enable_st}" = "yes"; then
584     AC_CHECK_LIB(st,st_init)
585     AC_MSG_CHECKING(for st_init in st.h)
586     AC_EGREP_HEADER(st_init,st.h,[
587       AC_MSG_RESULT(yes)
588       AC_DEFINE(ST_INIT_IN_ST_H, 1,
589                 Define if <st.h> defines st_init)
590       THREAD_LIB="-lst"
591     ],[
592       AC_MSG_RESULT(yes)
593     ])
594     fi
595 ])
596
597 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
598
599 dnl Don't link with rt when using GNU-pth
600 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
601   dnl HP/UX port
602   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
603
604   have_nanosleep=false
605   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
606     AC_CHECK_LIB(rt,nanosleep,
607       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
608       [AC_CHECK_LIB(posix4,nanosleep,
609           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
610     )
611   ])
612   if ${have_nanosleep}; then
613     AC_DEFINE(HAVE_NANOSLEEP, 1,
614               Define if nanosleep is available.)
615   fi
616 fi
617
618 dnl Check for misc headers
619 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
620 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
621   AC_MSG_RESULT(yes)
622   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
623             Define if <pthread.h> defines pthread_cond_t.)],[
624   AC_MSG_RESULT(no)])
625
626 AC_MSG_CHECKING(for pthread_once in pthread.h)
627 AC_EGREP_HEADER(pthread_once,pthread.h,[
628   AC_MSG_RESULT(yes)
629   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
630             Define if <pthread.h> defines pthread_once.)],[
631   AC_MSG_RESULT(no)])
632 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
633
634 AC_MSG_CHECKING(for strncasecmp in strings.h)
635 AC_EGREP_HEADER(strncasecmp,strings.h,[
636   AC_MSG_RESULT(yes)
637   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
638             Define if <strings.h> defines strncasecmp.)],[
639   AC_MSG_RESULT(no)])
640
641 dnl Check for headers
642 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)
643 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
644 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
645 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
646 AC_CHECK_HEADERS(machine/param.h sys/shm.h altivec.h)
647 AC_CHECK_HEADERS(linux/version.h)
648 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
649
650 AC_HEADER_TIME
651
652 dnl Check for dirent
653 need_dirent=false
654 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
655 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
656
657 dnl Mac OS X and other OSes don't have declaration for nanosleep
658 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
659 AC_MSG_CHECKING(for nanosleep in time.h)
660 AC_EGREP_HEADER(nanosleep,time.h,[
661   AC_MSG_RESULT(yes)
662   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
663             Define if <time.h> defines nanosleep.)
664 ],[
665   AC_MSG_RESULT(no)
666 ])
667 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
668
669 dnl Make sure we have timespecs
670 AC_MSG_CHECKING(for timespec in sys/time.h)
671 AC_EGREP_HEADER(timespec,sys/time.h,[
672   AC_MSG_RESULT(yes)
673   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
674             Define if <sys/time.h> defines struct timespec.)
675 ],[
676   AC_MSG_RESULT(no)
677 ])
678
679 dnl Check for threads library
680 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
681 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
682 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
683
684 dnl Default X headers and libraries
685 if test "${x_includes}" = "NONE"; then
686   x_includes="/usr/X11R6/include"
687 fi
688 if test "${x_libraries}" = "NONE"; then
689   x_libraries="/usr/X11R6/lib"
690 fi
691
692 dnl Check for hal
693 AC_ARG_ENABLE(hal,
694   [  --enable-hal            Linux HAL services discovery (default enabled)])
695  
696 if test "${enable_hal}" != "no"
697 then
698   PKG_CHECK_MODULES(HAL, hal >= 0.2.97,
699     [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
700      VLC_ADD_PLUGINS([hal])
701      VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
702      VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
703     [AC_MSG_WARN(HAL library not found)])
704 fi
705
706 dnl Build the gtk_main plugins?
707 NEED_GTK_MAIN=no
708 NEED_GNOME_MAIN=no
709 NEED_GTK2_MAIN=no
710 NEED_GNOME2_MAIN=no
711
712 dnl build the qte plugin ?
713 NEED_QTE_MAIN=no
714
715 dnl Check for ntohl, etc.
716 AC_CACHE_CHECK([for ntohl in sys/param.h],
717     [ac_cv_c_ntohl_sys_param_h],
718     [CFLAGS="${CFLAGS_save} -Wall -Werror"
719      AC_TRY_COMPILE([#include <sys/param.h>],
720         [void foo() { int meuh; ntohl(meuh); }],
721         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
722 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
723     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
724 fi
725
726 # XXX: do this with an M4 macro?
727 #dnl Check for various -W flags
728 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
729 #do
730 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
731 #        [ac_cv_c_W${flag}],
732 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
733 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
734 #    if test "${ac_cv_c_W${flag}}" != "no"; then
735 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
736 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
737 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
738 #    fi
739 #done
740
741 AC_CACHE_CHECK([if \$CC accepts -Wall],
742     [ac_cv_c_Wall],
743     [CFLAGS="-Wall ${CFLAGS_save}"
744      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
745
746 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
747     [ac_cv_c_Wconversion],
748     [CFLAGS="-Wconversion ${CFLAGS_save}"
749      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
750
751 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
752     [ac_cv_c_Wunreachable_code],
753     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
754      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
755
756 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
757     [ac_cv_c_Wsign_compare],
758     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
759      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
760
761 if test "${ac_cv_c_Wall}" != "no"; then
762     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
763     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
764     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
765 fi
766
767 if test "${ac_cv_c_Wsign_compare}" != "no"; then
768     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
769     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
770     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
771 fi
772
773 dnl Check for -pipe
774 AC_CACHE_CHECK([if \$CC accepts -pipe],
775     [ac_cv_c_pipe],
776     [CFLAGS="${CFLAGS_save} -pipe"
777      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
778 if test "${ac_cv_c_pipe}" != "no"; then
779     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
780     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
781     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
782 fi
783
784 dnl Check for various optimization flags
785 AC_CACHE_CHECK([if \$CC accepts -Os],
786     [ac_cv_c_os],
787     [CFLAGS="${CFLAGS_save} -Os"
788      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
789 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
790     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
791 fi
792
793 AC_CACHE_CHECK([if \$CC accepts -O3],
794     [ac_cv_c_o3],
795     [CFLAGS="${CFLAGS_save} -O3"
796      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
797 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
798     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
799 fi
800
801 AC_CACHE_CHECK([if \$CC accepts -O2],
802     [ac_cv_c_o2],
803     [CFLAGS="${CFLAGS_save} -O2"
804      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
805 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
806     if test "${ac_cv_c_o3}" = "no"; then
807         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
808     fi
809     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
810 else 
811     AC_CACHE_CHECK([if \$CC accepts -O],
812         [ac_cv_c_o],
813         [CFLAGS="${CFLAGS_save} -O"
814          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
815     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
816         if test "${ac_cv_c_o3}" = "no"; then
817             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
818         fi
819         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
820     fi
821 fi
822
823 dnl Check for -ffast-math
824 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
825     [ac_cv_c_fast_math],
826     [CFLAGS="${CFLAGS_save} -ffast-math"
827      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
828 if test "${ac_cv_c_fast_math}" != "no"; then
829     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
830 fi
831
832 dnl Check for -funroll-loops
833 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
834 if test "${SYS}" != "beos"
835 then
836   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
837       [ac_cv_c_unroll_loops],
838       [CFLAGS="${CFLAGS_save} -funroll-loops"
839        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
840   if test "${ac_cv_c_unroll_loops}" != "no"; then
841       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
842   fi
843 fi
844
845 dnl Check for -fomit-frame-pointer
846 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
847     [ac_cv_c_omit_frame_pointer],
848     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
849      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
850 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
851     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
852     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
853     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
854 fi
855
856 dnl Check for -mdynamic-no-pic
857 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
858     [ac_cv_c_dynamic_no_pic],
859     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
860      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
861 if test "${ac_cv_c_dynamic_no_pic}" != "no"; then
862     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
863     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
864 fi
865
866 dnl Check for Darwin plugin linking flags
867 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
868     [ac_cv_ld_darwin],
869     [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
870      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
871 if test "${ac_cv_ld_darwin}" != "no"; then
872     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
873     AC_CHECK_LIB(cc_dynamic, main,[
874       VLC_ADD_LDFLAGS([plugin],[-lcc_dynamic])
875     ])
876 fi
877
878 dnl Check for standard plugin linking flags
879 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
880 if test "${SYS}" = "beos"; then
881   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
882 else
883   AC_CACHE_CHECK([if \$CC accepts -shared],
884       [ac_cv_ld_plugins],
885       [CFLAGS="${CFLAGS_save} -shared"
886        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
887   if test "${ac_cv_ld_plugins}" != "no"; then
888     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
889   fi
890 fi
891
892 dnl Check for variadic macros
893 AC_CACHE_CHECK([for variadic cpp macros],
894     [ac_cv_cpp_variadic_macros],
895     [CFLAGS="${CFLAGS_save}"
896      AC_TRY_COMPILE(
897          [#include <stdio.h>
898           #define a(b,c...) printf(b,##c)],
899          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
900          ac_cv_cpp_variadic_macros=yes,
901          ac_cv_cpp_variadic_macros=no)])
902 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
903     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
904 fi
905
906 dnl Checks for __attribute__(aligned()) directive
907 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
908     [ac_cv_c_attribute_aligned],
909     [ac_cv_c_attribute_aligned=0
910         CFLAGS="${CFLAGS_save} -Werror"
911     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
912         AC_TRY_COMPILE([],
913         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
914         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
915     done
916         CFLAGS="${CFLAGS_save}"])
917 if test "${ac_cv_c_attribute_aligned}" != "0"; then
918     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
919         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
920 fi
921
922 dnl Checks for __attribute__(format()) directive
923 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
924     [ac_cv_c_attribute_format],
925     [ac_cv_c_attribute_format=no
926         CFLAGS="${CFLAGS_save} -Werror"
927         AC_TRY_COMPILE([],
928         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
929         [ac_cv_c_attribute_format=yes])
930         CFLAGS="${CFLAGS_save}"])
931 if test "${ac_cv_c_attribute_format}" != "no"; then
932     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
933 fi
934
935 dnl Check for __attribute__(())
936 AC_CACHE_CHECK([for __attribute__((packed))],
937   [ac_cv_c_attribute_packed],
938   [ac_cv_c_attribute_packed=no
939    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
940                     [ac_cv_c_attribute_packed=yes])])
941 if test "${ac_cv_c_attribute_packed}" != "no"; then
942   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
943 fi
944
945 dnl
946 dnl  Check the CPU
947 dnl
948 case "${target_cpu}" in
949   "")
950     ARCH=unknown
951     ;;
952   *)
953     ARCH="${target_cpu}"
954     ;;
955 esac
956
957 dnl
958 dnl  Enable profiling
959 dnl
960 AC_ARG_ENABLE(gprof,
961 [  --enable-gprof          gprof profiling (default disabled)])
962 AC_ARG_ENABLE(cprof,
963 [  --enable-cprof          cprof profiling (default disabled)])
964 test "${enable_gprof}" != "yes" && enable_gprof="no"
965 test "${enable_cprof}" != "yes" && enable_cprof="no"
966
967 dnl
968 dnl  default modules
969 dnl
970 VLC_ADD_PLUGINS([dummy logger memcpy])
971 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
972 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
973 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur])
974 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
975 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
976 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
977 VLC_ADD_PLUGINS([playlist export sgimb m3u xtag])
978 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo])
979 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
980 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
981 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
982 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
983 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
984
985 if test "${SYS}" != "mingwce"; then
986   VLC_ADD_PLUGINS([externrun])
987   VLC_ADD_PLUGINS([access_fake access_filter_timeshift])
988   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq sap shout])
989   VLC_ADD_PLUGINS([picture mosaic wall motiondetect clone crop])
990   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
991   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
992   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
993   VLC_ADD_PLUGINS([headphone_channel_mixer normvol equalizer])
994   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
995 fi
996
997 dnl
998 dnl  Switch to enable a version of VLC where most modules will be builtin
999 dnl
1000 AC_ARG_ENABLE(mostly-builtin,
1001 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1002 if test "${enable_mostly_builtin}" = "yes"; then
1003   VLC_ADD_BUILTINS([${PLUGINS}])
1004   PLUGINS=""
1005 fi
1006
1007 dnl
1008 dnl Some plugins aren't useful on some platforms
1009 dnl
1010 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1011     VLC_ADD_PLUGINS([screensaver])
1012 elif test "${SYS}" != "mingwce"; then
1013     VLC_ADD_PLUGINS([ntservice access_smb dmo])
1014     VLC_ADD_LDFLAGS([dmo],[-lole32])
1015 else
1016     VLC_ADD_PLUGINS([win32text])
1017 fi
1018
1019 dnl
1020 dnl  Accelerated modules
1021 dnl
1022 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1023 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1024 MMXEXT_MODULES="memcpymmxext"
1025 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1026 THREEDNOW_MODULES="memcpy3dn"
1027 SSE_MODULES=""
1028 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1029 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1030
1031 if test "${enable_gprof}" != "yes"
1032 then
1033   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1034 fi
1035
1036 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1037     [ac_cv_mmx_inline],
1038     [CFLAGS="${CFLAGS_save}"
1039      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1040                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1041 if test "${ac_cv_mmx_inline}" != "no"; then
1042   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1043   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1044 fi
1045
1046 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1047     [ac_cv_mmxext_inline],
1048     [CFLAGS="${CFLAGS_save}"
1049      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1050                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1051 if test "${ac_cv_mmxext_inline}" != "no"; then
1052   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1053   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1054 fi
1055
1056 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1057     [ac_cv_3dnow_inline],
1058     [CFLAGS="${CFLAGS_save}"
1059      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1060                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1061 if test "${ac_cv_3dnow_inline}" != "no"; then
1062   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1063   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1064 fi
1065
1066 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1067     [ac_cv_sse_inline],
1068     [CFLAGS="${CFLAGS_save}"
1069      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1070                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1071 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1072   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1073   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1074 fi
1075
1076 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1077 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1078     [ac_cv_altivec_inline],
1079     [CFLAGS="${CFLAGS_save}"
1080      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1081          ac_cv_altivec_inline=yes,
1082          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1083           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1084             [ac_cv_altivec_inline="-Wa,-m7400"],
1085             ac_cv_altivec_inline=no)
1086          ])])
1087 if test "${ac_cv_altivec_inline}" != "no"; then
1088   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1089   if test "${ac_cv_altivec_inline}" != "yes"; then
1090     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1091     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1092     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1093     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1094     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1095   fi
1096   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1097 fi
1098
1099 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1100     [ac_cv_c_altivec],
1101     [# Darwin test
1102      CFLAGS="${CFLAGS_save} -faltivec"
1103      AC_TRY_COMPILE([],
1104        [vec_ld(0, (unsigned char *)0);],
1105        [ac_cv_c_altivec="-faltivec"],
1106        [# Linux/PPC test (no flags)
1107         CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -maltivec -mabi=altivec"
1108         AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
1109                         #include <altivec.h>
1110                         #endif],
1111           [vec_ld(0, (unsigned char *)0);],
1112           [ac_cv_c_altivec=""
1113            ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1114           [# Linux/PPC test (old GCC versions)
1115            CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
1116            AC_TRY_COMPILE([#ifdef HAVE_ALTIVEC_H
1117                            #include <altivec.h>
1118                            #endif],
1119              [vec_ld(0, (unsigned char *)0);],
1120              [ac_cv_c_altivec="-fvec"],
1121              [ac_cv_c_altivec=no])
1122            ])
1123         ])
1124      CFLAGS="${CFLAGS_save}"])
1125 if test "${ac_cv_c_altivec}" != "no"; then
1126   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1127   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1128   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1129   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1130   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1131 fi
1132
1133 AC_CACHE_CHECK([if linker needs -framework vecLib],
1134     [ac_cv_ld_altivec],
1135     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1136      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1137      LDFLAGS="${LDFLAGS_save}"
1138     ])
1139 if test "${ac_cv_ld_altivec}" != "no"; then
1140   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1141 fi
1142 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1143
1144 AC_ARG_WITH(,[])
1145 AC_ARG_WITH(,[Optimization options:])
1146
1147 dnl
1148 dnl  Special arch tuning
1149 dnl
1150 AC_ARG_WITH(tuning,
1151 [  --with-tuning=ARCH      enable special tuning for an architecture
1152                           (default i686 on IA-32 and 750 on PPC)])
1153 if test -n "${with_tuning}"; then
1154     if test "${target_cpu}" = "powerpc"; then
1155         CFLAGS_TUNING="-mtune=${with_tuning}"
1156     else
1157         CFLAGS_TUNING="-mcpu=${with_tuning}"
1158     fi
1159 else
1160     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1161         CFLAGS_TUNING="-mcpu=pentiumpro"
1162     else
1163         if test "${target_cpu}" = "powerpc"; then CFLAGS_TUNING="-mtune=750"; fi
1164     fi
1165 fi
1166
1167 dnl
1168 dnl  x86 accelerations
1169 dnl
1170 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386"
1171 then
1172     ARCH="${ARCH} mmx"
1173     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1174 fi
1175
1176 dnl
1177 dnl  Memory usage
1178 dnl
1179 AC_ARG_ENABLE(optimize-memory,
1180 [  --enable-optimize-memory      optimize memory usage over performance])
1181 if test "${enable_optimize_memory}" = "yes"; then
1182   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1183 fi
1184
1185 dnl
1186 dnl  Enable/disable optimizations
1187 dnl
1188 AC_ARG_ENABLE(optimizations,
1189 [  --disable-optimizations disable compiler optimizations (default enabled)])
1190 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1191
1192 dnl
1193 dnl  AltiVec acceleration
1194 dnl
1195 AC_ARG_ENABLE(altivec,
1196 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1197 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1198     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1199 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1200     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1201
1202 dnl
1203 dnl  Debugging mode
1204 dnl
1205 AC_ARG_ENABLE(debug,
1206 [  --enable-debug          debug mode (default disabled)])
1207 test "${enable_debug}" != "yes" && enable_debug="no"
1208
1209 dnl
1210 dnl  Enable release-specific flags
1211 dnl
1212 AC_ARG_ENABLE(release,
1213 [  --enable-release        activate extra optimizations (default disabled)])
1214 test "${enable_release}" != "yes" && enable_release="no"
1215
1216 dnl
1217 dnl Stream output
1218 dnl
1219 AC_ARG_ENABLE(sout,
1220   [  --enable-sout           Stream output modules (default enabled)])
1221 if test "${enable_sout}" != "no"
1222 then
1223   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1224   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1225   VLC_ADD_PLUGINS([packetizer_copy])
1226
1227   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1228   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge])
1229 #  VLC_ADD_PLUGINS([stream_out_transrate])
1230
1231   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1232 fi
1233
1234 dnl
1235 dnl HTTP daemon
1236 dnl
1237 AC_ARG_ENABLE(httpd,
1238   [  --enable-httpd          HTTP daemon (default enabled)])
1239 if test "${enable_httpd}" != "no"
1240 then
1241   VLC_ADD_PLUGINS([http])
1242   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1243 fi
1244
1245 dnl
1246 dnl VideoLAN manager
1247 dnl
1248 AC_ARG_ENABLE(vlm,
1249   [  --enable-vlm            VideoLAN manager (default enabled)])
1250 if test "${enable_vlm}" != "no"
1251 then
1252   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1253 fi
1254
1255 dnl
1256 dnl TLS/SSL
1257 dnl
1258 AC_ARG_ENABLE(gnutls,
1259   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1260 AS_IF([test "${enable_gnutls}" != "no"], [
1261
1262   gcrypt_LIBS="-lgpg-error"
1263   AS_IF([test "${SYS}" = "mingw32"],
1264     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1265      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1266   )
1267
1268   gnutls_LIBS="-lgcrypt ${gcrypt_LIBS}"
1269
1270   AC_CHECK_HEADER(gcrypt.h,
1271     [AC_CHECK_LIB(gcrypt, gcry_control,
1272       [AC_CHECK_HEADER(gnutls/gnutls.h,
1273         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1274           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1275      ${gcrypt_LIBS})])
1276
1277   AS_IF([test "${have_gnutls}" = "yes"], [
1278     VLC_ADD_PLUGINS([gnutls])
1279     VLC_ADD_LDFLAGS([gnutls], [-lgnutls -lgcrypt -lgpg-error])
1280   ], [
1281     AS_IF([test "${enable_gnutls}" = "yes"], [
1282       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1283     )]
1284   )]
1285 )
1286
1287
1288 dnl
1289 dnl  Input plugins
1290 dnl
1291
1292 AC_ARG_WITH(,[Input plugins:])
1293
1294 dnl  live.com input
1295 dnl
1296 AC_ARG_ENABLE(livedotcom,
1297 [  --enable-livedotcom     live.com input plugin (default disabled)])
1298 if test "${enable_livedotcom}" = "yes"; then
1299   AC_ARG_WITH(livedotcom-tree,
1300     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1301
1302   dnl
1303   dnl test for --with-livedotcom-tree
1304   dnl
1305   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1306     AC_LANG_PUSH(C++)
1307     CPPFLAGS_save="${CPPFLAGS}"
1308     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1309     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1310     AC_CHECK_HEADERS(liveMedia.hh, [
1311       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1312       AC_CHECK_LIB(liveMedia_pic, main, [
1313         # We have -lliveMedia_pic, build plugins
1314         VLC_ADD_PLUGINS([livedotcom])
1315         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1316       ], [
1317         AC_CHECK_LIB(liveMedia, main, [
1318           # We only have -lliveMedia, do builtins
1319           VLC_ADD_BUILTINS([livedotcom])
1320           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1321         ])
1322       ])
1323       if test "${SYS}" = "mingw32"; then
1324         # add ws2_32 for closesocket, select, recv
1325         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1326       fi
1327     ])
1328     CPPFLAGS="${CPPFLAGS_save}"
1329     AC_LANG_POP(C++)
1330   else
1331     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1332     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1333     if test -z "${real_livedotcom_tree}"; then
1334       dnl  The given directory can't be found
1335       AC_MSG_RESULT(no)
1336       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1337     fi
1338     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1339       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1340
1341       VLC_ADD_BUILTINS([livedotcom])
1342
1343       if test "${SYS}" = "mingw32"; then
1344         # add ws2_32 for closesocket, select, recv
1345         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1346       fi
1347
1348       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1349       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1350       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1351       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1352
1353       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1354       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1355       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1356       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1357     else
1358       dnl  The given live.com wasn't built
1359       AC_MSG_RESULT(no)
1360       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1361     fi
1362   fi
1363 fi
1364
1365
1366 dnl
1367 dnl dvdread module: check for libdvdread
1368 dnl
1369 AC_ARG_ENABLE(dvdread,
1370 [  --enable-dvdread        dvdread input module (default disabled)])
1371 if test "${enable_dvdread}" != "no"
1372 then
1373   AC_ARG_WITH(dvdread,
1374   [    --with-dvdread=PATH   libdvdread headers and libraries])
1375   AC_ARG_WITH(dvdread-tree,
1376   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1377
1378   dnl Temporary hack (yeah, sure ;)
1379   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1380       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1381   fi
1382
1383   if test -z "${with_dvdread}"
1384   then
1385     if test -z "${with_dvdread_tree}"
1386     then
1387       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1388         [ VLC_ADD_PLUGINS([dvdread])
1389           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1390         ],[
1391           if test -n "${enable_dvdread}"
1392           then
1393             AC_MSG_ERROR([cannot find libdvdread headers])
1394           fi
1395         ])
1396     else
1397       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1398       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1399       if test -z "${real_dvdread_tree}"
1400       then
1401         dnl  The given directory can't be found
1402         AC_MSG_RESULT(no)
1403         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1404       fi
1405       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1406       then
1407         dnl  Use a custom libdvdread
1408         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1409         VLC_ADD_BUILTINS([dvdread])
1410         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1411         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1412       else
1413         dnl  The given libdvdread wasn't built
1414         AC_MSG_RESULT(no)
1415         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1416       fi
1417     fi
1418   else
1419     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1420     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1421     then
1422       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1423       AC_MSG_RESULT(yes)
1424       VLC_ADD_PLUGINS([dvdread])
1425       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1426       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1427     else
1428       dnl  No libdvdread could be found, sorry
1429       AC_MSG_RESULT(no)
1430       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1431     fi
1432   fi
1433 fi
1434
1435 dnl
1436 dnl  libdvdnav plugin
1437 dnl
1438 AC_ARG_ENABLE(dvdnav,
1439   [  --enable-dvdnav         dvdnav input module (default enabled)])
1440 if test "${enable_dvdnav}" != "no"
1441 then
1442   dnl Same hack than dvdread
1443   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1444       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1445   fi
1446
1447   DVDNAV_PATH="${PATH}"
1448   AC_ARG_WITH(dvdnav-config-path,
1449     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1450     [ if test "${with_dvdnav_config_path}" != "no"
1451       then
1452         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1453       fi ])
1454   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1455   if test "${DVDNAV_CONFIG}" != "no"
1456   then
1457     VLC_ADD_PLUGINS([dvdnav])
1458     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1459     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1460   fi
1461 fi
1462
1463 dnl
1464 dnl  Windows DirectShow access module
1465 dnl
1466 AC_ARG_ENABLE(dshow,
1467   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1468 if test "${enable_dshow}" != "no"
1469 then
1470   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1471   then
1472       AC_CHECK_HEADERS(dshow.h,
1473       [ VLC_ADD_PLUGINS([dshow])
1474         VLC_ADD_CXXFLAGS([dshow],[])
1475         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1476   fi
1477 fi
1478
1479 dnl
1480 dnl  libsmbclient plugin
1481 dnl
1482 AC_ARG_ENABLE(smb,
1483   [  --enable-smb         smb input module (default enabled)])
1484 if test "${enable_smb}" != "no"; then
1485   AC_CHECK_HEADERS(libsmbclient.h,
1486     [ VLC_ADD_PLUGINS([access_smb])
1487       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1488     [ if test -n "${enable_smb}"; then
1489         AC_MSG_ERROR([cannot find libsmbclient headers])
1490      fi ])
1491 fi
1492
1493 dnl
1494 dnl  libdvbpsi ts demux/mux
1495 dnl
1496 AC_ARG_ENABLE(dvbpsi,
1497 [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1498 if test "${enable_dvbpsi}" != "no"
1499 then
1500   AC_ARG_WITH(dvbpsi,
1501   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1502   AC_ARG_WITH(dvbpsi,
1503   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1504   case "${with_dvbpsi}" in
1505   ""|yes)
1506     if test -z "${with_dvbpsi_tree}"
1507     then
1508       AC_CHECK_HEADERS(dvbpsi/dr.h,
1509         [ VLC_ADD_PLUGINS([ts])
1510           if test "${enable_sout}" != "no"; then
1511             VLC_ADD_BUILTINS([mux_ts])
1512           fi
1513           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1514         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1515         [#if defined( HAVE_STDINT_H )
1516 #   include <stdint.h>
1517 #elif defined( HAVE_INTTYPES_H )
1518 #   include <inttypes.h>
1519 #endif
1520 #include <dvbpsi/dvbpsi.h>
1521 #include <dvbpsi/descriptor.h>
1522 #include <dvbpsi/pat.h>
1523 #include <dvbpsi/pmt.h>])
1524     else
1525       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1526       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1527       if test -z "${real_dvbpsi_tree}"
1528       then
1529         dnl  The given directory can't be found
1530         AC_MSG_RESULT(no)
1531         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1532       fi
1533       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1534       then
1535         dnl  Use a custom libdvbpsi
1536         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1537         VLC_ADD_BUILTINS([ts])
1538         if test "${enable_sout}" != "no"; then
1539           VLC_ADD_BUILTINS([mux_ts])
1540         fi
1541         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1542         VLC_ADD_LDFLAGS([mux_ts ts dvb],[-L${real_dvbpsi_tree}/src/.libs -ldvbpsi])
1543       else
1544         dnl  The given libdvbpsi wasn't built
1545         AC_MSG_RESULT(no)
1546         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1547       fi
1548     fi
1549   ;;
1550   no)
1551     dnl  Compile without dvbpsi
1552   ;;
1553   *)
1554     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1555     if test -z "${with_dvbpsi}"
1556     then
1557       LDFLAGS_test=""
1558       CPPFLAGS_test=""
1559     else
1560       LDFLAGS_test="-L${with_dvbpsi}/lib"
1561       CPPFLAGS_test="-I${with_dvbpsi}/include"
1562     fi
1563     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1564     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1565       VLC_ADD_PLUGINS([ts])
1566       if test "${enable_sout}" != "no"; then
1567         VLC_ADD_PLUGINS([mux_ts])
1568       fi
1569       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1570       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1571
1572     ],[
1573       if test -n "${enable_dvbpsi}"
1574       then
1575         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])
1576       fi
1577     ])
1578     CPPFLAGS="${CPPFLAGS_save}"
1579   ;;
1580   esac
1581 fi
1582
1583 dnl
1584 dnl  Video4Linux plugin
1585 dnl
1586 AC_ARG_ENABLE(v4l,
1587   [  --enable-v4l            Video4Linux input support (default disabled)])
1588 if test "${enable_v4l}" = "yes"
1589 then
1590   AC_ARG_WITH(v4l,
1591     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1592   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1593   then
1594     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1595   fi
1596
1597   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1598   AC_CHECK_HEADERS(linux/videodev.h, [
1599     VLC_ADD_PLUGINS([v4l])
1600   ],[])
1601   CPPFLAGS="${CPPFLAGS_save}"
1602 fi
1603
1604 dnl
1605 dnl  special access module for Hauppauge PVR cards
1606 dnl
1607 AC_ARG_ENABLE(pvr,
1608   [  --enable-pvr            PVR cards access module (default disabled)])
1609 if test "${enable_pvr}" = "yes"
1610 then
1611   VLC_ADD_PLUGINS([pvr])
1612 fi
1613
1614 dnl
1615 dnl  VCDX and CDDAX modules
1616 dnl
1617 AC_ARG_ENABLE(libcdio,
1618   [  --enable-libcdio        CDDA support via libcdio (default enabled)])
1619  
1620 AC_ARG_ENABLE(libcddb,
1621   [  --enable-libcddb        CDDB support for CDDAX (default enabled)])
1622  
1623 AC_ARG_ENABLE(vcdx,
1624   [  --enable-vcdx           VCD support with Navigation (default disabled)])
1625  
1626 AC_ARG_ENABLE(cdda,           
1627   [  --enable-cdda           CDDA plugin support (default enabled)])
1628  
1629 AC_ARG_ENABLE(cddax,
1630   [  --enable-cddax          CDDA plugin with CD Text and possibly CDDB and paranoia support (default disabled)])
1631  
1632 if test "${enable_cddax}" = "yes"
1633 then
1634   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71,
1635    [
1636     AC_DEFINE(HAVE_CDDAX, [], [Define for the CD-DA plugin using libcdio])
1637     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1638     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1639     VLC_ADD_PLUGINS([cddax])], 
1640     [AC_MSG_WARN(libcdio library not found)
1641     HAVE_CDDAX=no])
1642
1643   PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1644   VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])], 
1645   HAVE_CDDAX=no)
1646
1647   if test "$enable_libcddb" != "no"; then
1648     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1649       HAVE_LIBCDDB=yes 
1650       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1651       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1652       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1653       ],
1654       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
1655       HAVE_LIBCDDB=no])
1656   fi
1657  
1658 fi
1659
1660 if test "${enable_vcdx}" = "yes"
1661 then
1662   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1663    [VLC_ADD_LDFLAGS([vcdx],[$LIBCDIO_LIBS])
1664     VLC_ADD_CFLAGS([vcdx],[$LIBCDIO_CFLAGS])],
1665     [AC_MSG_WARN(libcdio library not found)
1666     HAVE_VCDX=no])
1667
1668   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
1669    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
1670     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
1671     [AC_MSG_WARN(libiso9660 library not found)
1672     HAVE_VCDX=no])
1673
1674   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1675    [AC_DEFINE(HAVE_VCDX, [], 
1676     [Define for the VCD plugin using libcdio/libvcdinfo])
1677     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
1678     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
1679     VLC_ADD_PLUGINS([vcdx])], 
1680    [AC_MSG_WARN(vcdinfo library not found)
1681    HAVE_VCDX=no])
1682 fi
1683
1684 dnl
1685 dnl  VCD module
1686 dnl
1687 AC_ARG_ENABLE(vcd,
1688   [  --enable-vcd            VCD support for Linux, FreeBSD, MacOS X and Win32 (default enabled)])
1689
1690 if test "${enable_vcd}" != "no"
1691 then
1692   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
1693   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
1694     AC_MSG_RESULT(yes)
1695     VLC_ADD_PLUGINS([vcd cdda])
1696   ],[
1697     AC_MSG_RESULT(no)
1698   ])
1699
1700   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
1701   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
1702     AC_MSG_RESULT(yes)
1703     VLC_ADD_PLUGINS([vcd cdda])
1704     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
1705   ],[
1706     AC_MSG_RESULT(no)
1707   ])
1708
1709   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
1710   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
1711     AC_MSG_RESULT(yes)
1712     VLC_ADD_PLUGINS([vcd cdda])
1713     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
1714   ],[
1715     AC_MSG_RESULT(no)
1716   ])
1717
1718   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
1719   then
1720     VLC_ADD_PLUGINS([vcd cdda])
1721   fi
1722
1723   if test "${SYS}" = "darwin"
1724   then
1725     VLC_ADD_PLUGINS([vcd cdda])
1726     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
1727     VLC_ADD_LDFLAGS([vcdx cddax],[-liconv])
1728   fi
1729 fi
1730
1731 dnl
1732 dnl  Satellite input module
1733 dnl
1734 AC_ARG_ENABLE(satellite,
1735   [  --enable-satellite      satellite card support (default disabled)],
1736   [ if test "${enable_satellite}" = "yes"
1737     then
1738       AC_DEFINE(HAVE_SATELLITE, [], 
1739       [Define for the VCD plugin using libcdio/libvcdinfo])
1740       VLC_ADD_PLUGINS([satellite])
1741     fi])
1742
1743 dnl
1744 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
1745 dnl
1746 AC_ARG_ENABLE(dvb,
1747   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
1748
1749 if test "${enable_dvb}" = "yes"
1750 then
1751   AC_ARG_WITH(dvb,
1752   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
1753   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
1754   then
1755     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
1756   fi
1757   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
1758   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
1759     VLC_ADD_PLUGINS([dvb])
1760   ],[])
1761   CPPFLAGS="${CPPFLAGS_save}"
1762 fi
1763
1764 dnl
1765 dnl  Screen capture module
1766 dnl
1767 AC_ARG_ENABLE(screen,
1768   [  --enable-screen         Screen capture support (default enabled)])
1769 if test "${enable_screen}" != "no"; then
1770   if test "${SYS}" = "darwin"; then
1771     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
1772       VLC_ADD_PLUGINS([screen])
1773       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
1774     ])
1775   elif test "${SYS}" = "mingw32"; then
1776     VLC_ADD_PLUGINS([screen])
1777     VLC_ADD_LDFLAGS([screen],[-lgdi32])
1778   elif test "${SYS}" = "mingwce"; then
1779     CPPFLAGS="${CPPFLAGS_save}"
1780   elif test "${SYS}" = "beos"; then
1781     VLC_ADD_PLUGINS([screen])
1782     VLC_ADD_CXXFLAGS([screen],[])
1783     VLC_ADD_LDFLAGS([screen],[-lbe])
1784   else
1785     CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
1786     AC_CHECK_HEADERS(X11/Xlib.h, [
1787       VLC_ADD_PLUGINS([screen])
1788       VLC_ADD_LDFLAGS([screen],[-L${x_libraries} -lX11 -lXext])
1789       VLC_ADD_CPPFLAGS([screen],[-I${x_includes}])
1790     ])
1791     CPPFLAGS="${CPPFLAGS_save}"
1792   fi
1793 fi
1794
1795 dnl
1796 dnl  ipv6 plugin - not for QNX yet
1797 dnl
1798 if test "${SYS}" != "nto" &&
1799    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1800 then
1801   have_ipv6=false
1802   AC_CHECK_FUNCS(inet_pton,[have_ipv6=:],[
1803     AC_CHECK_LIB(resolv,inet_pton,
1804       [have_ipv6=:
1805        VLC_ADD_LDFLAGS([ipv6],[-lresolv])])
1806   ])
1807   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
1808   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
1809     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no) have_ipv6=false])
1810   if ${have_ipv6}; then
1811     VLC_ADD_PLUGINS([ipv6])
1812   fi
1813 fi
1814 if test "${SYS}" = "mingw32"
1815 then
1816   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
1817   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
1818     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
1819 fi
1820
1821 dnl
1822 dnl  ogg demux plugin
1823 dnl
1824 AC_ARG_ENABLE(ogg,
1825   [  --enable-ogg            Ogg demux support (default enabled)])
1826 if test "${enable_ogg}" != "no"
1827 then
1828   AC_CHECK_HEADERS(ogg/ogg.h, [
1829     AC_CHECK_LIB( ogg, oggpack_read, [
1830       VLC_ADD_PLUGINS([ogg])
1831       if test "${enable_sout}" != "no"; then
1832         VLC_ADD_PLUGINS([mux_ogg])
1833       fi
1834       VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
1835    ],[])
1836 fi
1837
1838 dnl
1839 dnl  matroska demux plugin
1840 dnl
1841 AC_ARG_ENABLE(mkv,
1842   [  --enable-mkv            Matroska demux support (default enabled)])
1843 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
1844   AC_LANG_PUSH(C++)
1845   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
1846     AC_MSG_CHECKING(for libebml version >= 0.7.3)
1847     AC_EGREP_CPP(yes,
1848       [#include <ebml/EbmlVersion.h>
1849        #ifdef LIBEBML_VERSION
1850        #if LIBEBML_VERSION >= 0x000703
1851        yes
1852        #endif
1853        #endif],
1854       [AC_MSG_RESULT([yes])
1855         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
1856           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
1857           AC_EGREP_CPP(yes,
1858             [#include <matroska/KaxVersion.h>
1859              #ifdef LIBMATROSKA_VERSION
1860              #if LIBMATROSKA_VERSION >= 0x000705
1861              yes
1862              #endif
1863              #endif],
1864             [AC_MSG_RESULT([yes])
1865               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
1866               VLC_ADD_CXXFLAGS([mkv],[])
1867               AC_CHECK_LIB(ebml_pic, main, [
1868                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
1869                 VLC_ADD_PLUGINS([mkv])
1870                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
1871               ], [
1872                 AC_CHECK_LIB(ebml, main, [
1873                   # We only have libebml, make mkv.a a builtin
1874                   VLC_ADD_BUILTINS([mkv])
1875                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
1876                 ])
1877               ])
1878             ],
1879             [AC_MSG_RESULT([no])
1880               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.])
1881           ])
1882         ])
1883       ],
1884       [AC_MSG_RESULT([no])
1885         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.])
1886     ])
1887   ])
1888   AC_LANG_POP(C++)
1889 fi
1890
1891 dnl
1892 dnl  modplug demux plugin
1893 dnl
1894 AC_ARG_ENABLE(mod,
1895   [  --enable-mod            Mod demux support (default enabled)])
1896 if test "${enable_mod}" != "no"
1897 then
1898   AC_CHECK_HEADERS(libmodplug/modplug.h, [
1899     VLC_ADD_PLUGINS([mod])
1900     VLC_ADD_CXXFLAGS([mod],[])
1901     VLC_ADD_LDFLAGS([mod],[-lmodplug])])
1902 fi
1903
1904 dnl
1905 dnl  Codec plugins
1906 dnl
1907
1908 AC_ARG_WITH(,[Codec plugins:])
1909
1910 dnl
1911 dnl  mad plugin
1912 dnl
1913 AC_ARG_ENABLE(mad,
1914   [  --enable-mad            libmad module (default enabled)])
1915 if test "${enable_mad}" != "no"
1916 then
1917   AC_ARG_WITH(mad,
1918     [    --with-mad=PATH       path to libmad],[],[])
1919   if test "${with_mad}" != "no" -a -n "${with_mad}"
1920   then
1921     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
1922     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
1923   fi
1924
1925   AC_ARG_WITH(mad-tree,
1926     [    --with-mad-tree=PATH  mad tree for static linking],[],[])
1927   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
1928   then
1929     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
1930     if test -z "${real_mad_tree}"
1931     then
1932       dnl  The given directory can't be found
1933       AC_MSG_RESULT(no)
1934       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
1935     fi
1936     dnl  Use a custom libmad
1937     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
1938     if test -f ${real_mad_tree}/mad.h
1939     then
1940       AC_MSG_RESULT(yes)
1941       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
1942       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
1943       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
1944       AC_CHECK_LIB(mad, mad_bit_init, [
1945         VLC_ADD_BUILTINS([mpgatofixed32])
1946         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
1947         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
1948       ],[])
1949       LDFLAGS="${LDFLAGS_save}"
1950     else
1951       AC_MSG_RESULT(no)
1952       AC_MSG_ERROR([the specified tree doesn't have mad.h])
1953     fi
1954   else
1955     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
1956     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
1957     AC_CHECK_HEADERS(mad.h, ,
1958       [ 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.]) ])
1959     AC_CHECK_LIB(mad, mad_bit_init, [
1960       VLC_ADD_PLUGINS([mpgatofixed32])
1961       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
1962       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
1963     CPPFLAGS="${CPPFLAGS_save}"
1964     LDFLAGS="${LDFLAGS_save}"
1965   fi
1966 fi
1967
1968 dnl
1969 dnl   libid3tag support (FIXME!!! doesn't work with new input)
1970 dnl
1971 AC_CHECK_HEADERS(id3tag.h, [
1972   AC_CHECK_HEADERS(zlib.h, [
1973     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
1974     VLC_ADD_PLUGINS([id3tag])]) ])
1975
1976 dnl
1977 dnl  ffmpeg decoder/demuxer plugin
1978 dnl
1979 AC_ARG_ENABLE(ffmpeg,
1980 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
1981 if test "${enable_ffmpeg}" != "no"
1982 then
1983   FFMPEG_PATH="${PATH}"
1984   AC_ARG_WITH(ffmpeg-config-path,
1985     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
1986     [ if test "${with_ffmpeg_config_path}" != "no"
1987       then
1988         FFMPEG_PATH="${with_ffmpeg_config_path}:${PATH}"
1989       fi ])
1990   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
1991   if test "${FFMPEG_CONFIG}" != "no"
1992   then
1993     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
1994     AC_CHECK_HEADERS(postproc/postprocess.h)
1995     VLC_ADD_PLUGINS([ffmpeg])
1996     if test "${enable_sout}" != "no"; then
1997         VLC_ADD_PLUGINS([stream_out_switcher])
1998     fi
1999     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2000     VLC_ADD_LDFLAGS([ffmpeg],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2001   else
2002     AC_ARG_WITH(ffmpeg-mp3lame,
2003       [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2004       [
2005         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
2006
2007     AC_ARG_WITH(ffmpeg-faac,
2008       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2009       [
2010         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
2011
2012     AC_ARG_WITH(ffmpeg-dts,
2013       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2014       [
2015         VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2016
2017     AC_ARG_WITH(ffmpeg-zlib,
2018       [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2019       [
2020         VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
2021
2022     AC_ARG_WITH(ffmpeg-tree,
2023       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2024
2025     dnl
2026     dnl test for !(--with-ffmpeg-tree)
2027     dnl
2028     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
2029       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2030       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2031       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2032       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2033       AC_CHECK_LIB(avcodec, avcodec_init, [
2034         VLC_ADD_BUILTINS([ffmpeg])
2035         if test "${enable_sout}" != "no"; then
2036             VLC_ADD_BUILTINS([stream_out_switcher])
2037         fi
2038         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])],
2039          [ 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.]) ])
2040       AC_CHECK_LIB(avformat, av_open_input_stream, [
2041         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2042         [Define if you have ffmpeg's libavformat.])
2043         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz])
2044       LDFLAGS="${LDFLAGS_save}"
2045       CPPFLAGS="${CPPFLAGS_save}"
2046     fi
2047
2048     dnl
2049     dnl test for --with-ffmpeg-tree
2050     dnl
2051     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2052       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2053       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2054       if test -z "${real_ffmpeg_tree}"; then
2055         dnl  The given directory can't be found
2056         AC_MSG_RESULT(no)
2057         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2058       fi
2059       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2060         dnl  The given libavcodec wasn't built
2061         AC_MSG_RESULT(no)
2062         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2063       fi
2064       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2065         dnl  The given libavcodec wasn't built with --enable-pp
2066         AC_MSG_RESULT(no)
2067         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2068       fi
2069       dnl  Use a custom libffmpeg
2070       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2071
2072       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2073         if test "${with_ffmpeg_zlib}" != "yes"; then
2074           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2075         fi
2076       fi
2077       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2078         if test "${with_ffmpeg_mp3lame}" != "yes"; then
2079           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2080         fi
2081       fi
2082       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2083         if test "${with_ffmpeg_faac}" != "yes"; then
2084           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2085         fi
2086       fi
2087       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2088         if test "${with_ffmpeg_dts}" != "yes"; then
2089           VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
2090         fi
2091       fi
2092       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2093         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2094       fi
2095       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2096         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2097       fi
2098       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2099         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2100       fi
2101
2102       VLC_ADD_BUILTINS([ffmpeg])
2103       if test "${enable_sout}" != "no"; then
2104           VLC_ADD_BUILTINS([stream_out_switcher])
2105       fi
2106       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2107       VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2108
2109       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2110         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2111         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2112         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2113       fi
2114     fi
2115   fi
2116 fi
2117
2118 dnl
2119 dnl  ffmpeg decoder/demuxer plugin
2120 dnl
2121 AC_ARG_ENABLE(ffmpegaltivec,
2122 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2123 if test "${enable_ffmpegaltivec}" == "yes"
2124 then
2125   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2126     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2127     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2128     if test -z "${real_ffmpeg_tree}"; then
2129       dnl  The given directory can't be found
2130       AC_MSG_RESULT(no)
2131       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2132     fi
2133     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2134       dnl  The given libavcodecaltivec wasn't built
2135       AC_MSG_RESULT(no)
2136       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2137     fi
2138     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2139       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2140       AC_MSG_RESULT(no)
2141       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2142     fi
2143     dnl  Use a custom libffmpeg
2144     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2145     VLC_ADD_BUILTINS([ffmpegaltivec])
2146     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2147     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2148     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2149
2150     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2151       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2152       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2153       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2154     fi
2155     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2156     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2157   fi
2158 fi
2159
2160 dnl
2161 dnl  faad decoder plugin
2162 dnl
2163 AC_ARG_ENABLE(faad,
2164 [  --enable-faad           faad codec (default disabled)])
2165 if test "${enable_faad}" = "yes"
2166 then
2167   AC_ARG_WITH(faad-tree,
2168   [    --with-faad-tree=PATH faad tree for static linking])
2169   if test -n "${with_faad_tree}"
2170   then
2171     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2172     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2173     if test -z "${real_faad_tree}"
2174     then
2175       dnl  The given directory can't be found
2176       AC_MSG_RESULT(no)
2177       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2178     fi
2179     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2180     then
2181       dnl  Use a custom faad
2182       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2183       VLC_ADD_BUILTINS([faad])
2184       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2185       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2186     else
2187       dnl  The given libfaad wasn't built
2188       AC_MSG_RESULT(no)
2189       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2190     fi
2191   else
2192     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2193     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2194     AC_CHECK_HEADERS(faad.h, ,
2195       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2196     AC_CHECK_LIB(faad, faacDecOpen, [
2197       VLC_ADD_PLUGINS([faad])
2198       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2199       AC_CHECK_LIB(faad, NeAACDecOpen, [
2200         VLC_ADD_PLUGINS([faad])
2201         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2202         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2203     LDFLAGS="${LDFLAGS_save}"
2204     CPPFLAGS="${CPPFLAGS_save}"
2205   fi
2206 fi
2207
2208 dnl
2209 dnl toolame encoder plugin
2210 dnl
2211 AC_ARG_ENABLE(toolame,
2212 [  --enable-toolame        toolame codec (default disabled)])
2213 if test "${enable_toolame}" = "yes"
2214 then
2215   AC_ARG_WITH(toolame-tree,
2216   [    --with-toolame-tree=PATH toolame tree for static linking])
2217   if test -n "${with_toolame_tree}"
2218   then
2219     AC_MSG_CHECKING(for libtoolame.a in ${with_toolame_tree})
2220     real_toolame_tree="`cd ${with_toolame_tree} 2>/dev/null && pwd`"
2221     if test -z "${real_toolame_tree}"
2222     then
2223       dnl  The given directory can't be found
2224       AC_MSG_RESULT(no)
2225       AC_MSG_ERROR([cannot cd to ${with_toolame_tree}])
2226     fi
2227     if test -f "${real_toolame_tree}/libtoolame/libtoolame.a"
2228     then
2229       dnl  Use a custom toolame
2230       AC_MSG_RESULT(${real_toolame_tree}/libtoolame/libtoolame.a)
2231       VLC_ADD_BUILTINS([toolame])
2232       VLC_ADD_LDFLAGS([toolame],[${real_toolame_tree}/libtoolame/libtoolame.a])
2233       VLC_ADD_CPPFLAGS([toolame],[-I${real_toolame_tree}/libtoolame])
2234     else
2235       dnl  The given libtoolame wasn't built
2236       AC_MSG_RESULT(no)
2237       AC_MSG_ERROR([cannot find ${real_toolame_tree}/libtoolame/libtoolame.a, make sure you compiled libtoolame in ${with_toolame_tree}])
2238     fi
2239   else
2240     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_toolame}"
2241     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_toolame}"
2242     AC_CHECK_HEADERS(toolame.h, ,
2243       [ AC_MSG_ERROR([Cannot find development header for libtoolame...]) ])
2244     AC_CHECK_LIB(toolame, toolame_init, [
2245       VLC_ADD_PLUGINS([toolame])
2246       VLC_ADD_LDFLAGS([toolame],[-ltoolame]) ],
2247         [ AC_MSG_ERROR([Cannot find libtoolame library...]) ])
2248     LDFLAGS="${LDFLAGS_save}"
2249     CPPFLAGS="${CPPFLAGS_save}"
2250   fi
2251 fi
2252
2253 dnl
2254 dnl  QuickTime plugin
2255 dnl
2256 AC_ARG_ENABLE(quicktime,
2257   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2258 if test "${enable_quicktime}" != "no" &&
2259   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2260 then
2261   if test "${SYS}" = "mingw32"; then
2262     VLC_ADD_BUILTINS([quicktime])
2263   else
2264   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2265     [ VLC_ADD_BUILTINS([quicktime])
2266       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2267     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2268   fi
2269 fi
2270
2271 dnl
2272 dnl MP4 module
2273 dnl
2274 AC_CHECK_HEADERS(zlib.h, [
2275   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2276 ] )
2277
2278 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2279   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2280 ] )
2281
2282 dnl
2283 dnl skins2 module
2284 dnl
2285 AC_CHECK_HEADERS(libtar.h, [
2286   VLC_ADD_LDFLAGS([skins2],[-ltar])
2287 ] )
2288
2289
2290
2291 dnl
2292 dnl A52/AC3 decoder plugin
2293 dnl
2294 AC_ARG_ENABLE(a52,
2295   [  --enable-a52            A/52 support with liba52 (default enabled)])
2296 if test "${enable_a52}" != "no"
2297 then
2298   AC_ARG_WITH(a52,
2299     [    --with-a52=PATH       a52 headers and libraries])
2300   AC_ARG_WITH(a52-tree,
2301     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2302   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2303   then
2304     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2305     if test -z "${real_a52_tree}"
2306     then
2307       dnl  The given directory can't be found
2308       AC_MSG_RESULT(no)
2309       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2310     fi
2311     dnl  Use a custom a52dec
2312     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2313     if test -f ${real_a52_tree}/include/a52.h
2314     then
2315       AC_MSG_RESULT(yes)
2316       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2317       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2318       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2319       AC_CHECK_LIB(a52, a52_free, [
2320         VLC_ADD_BUILTINS([a52tofloat32])
2321         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2322         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2323         ],[
2324         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2325         then
2326           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2327         else
2328           AC_MSG_ERROR([the specified tree hasn't been compiled])
2329         fi
2330       ])
2331       LDFLAGS="${LDFLAGS_save}"
2332     else
2333       AC_MSG_RESULT(no)
2334       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2335     fi
2336   else
2337     if test -z "${with_a52}"
2338     then
2339       LDFLAGS_test=""
2340       CPPFLAGS_test=""
2341     else
2342       LDFLAGS_test="-L${with_a52}/lib"
2343       CPPFLAGS_test="-I${with_a52}/include"
2344     fi
2345     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2346     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2347     AC_CHECK_HEADERS(a52dec/a52.h, [
2348       AC_CHECK_LIB(a52, a52_free, [
2349         VLC_ADD_PLUGINS([a52tofloat32])
2350         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2351         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2352       ],[
2353         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.])
2354       ])
2355     ])
2356     CPPFLAGS="${CPPFLAGS_save}"
2357     LDFLAGS="${LDFLAGS_save}"
2358   fi
2359 fi
2360
2361 AC_ARG_WITH(a52-fixed,
2362       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2363       [
2364         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2365
2366 dnl
2367 dnl DTS Coherent Acoustics decoder plugin
2368 dnl
2369 AC_ARG_ENABLE(dts,
2370   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2371 if test "${enable_dts}" != "no"; then
2372   AC_ARG_WITH(dts-tree,
2373     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2374   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2375   then
2376     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2377     if test -z "${real_dts_tree}"
2378     then
2379       dnl  The given directory can't be found
2380       AC_MSG_RESULT(no)
2381       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2382     fi
2383     dnl  Use a custom libdts
2384     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2385     if test -f ${real_dts_tree}/include/dts.h
2386     then
2387       AC_MSG_RESULT(yes)
2388       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2389       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2390       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2391       AC_CHECK_LIB(dts_pic, dts_free, [
2392         VLC_ADD_PLUGINS([dtstofloat32])
2393         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2394         ],[
2395         AC_CHECK_LIB(dts, dts_free, [
2396           VLC_ADD_BUILTINS([dtstofloat32])
2397           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2398           ],[
2399           if test -f ${real_dts_tree}/libdts/libdts.a
2400           then
2401             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2402           else
2403             AC_MSG_ERROR([the specified tree hasn't been compiled])
2404           fi
2405         ])
2406       ])
2407       LDFLAGS="${LDFLAGS_save}"
2408     else
2409       AC_MSG_RESULT(no)
2410       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2411     fi
2412   else
2413     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2414     AC_CHECK_HEADERS(dts.h, [
2415       AC_CHECK_LIB(dts_pic, dts_free, [
2416         VLC_ADD_PLUGINS([dtstofloat32])
2417         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2418       ],[
2419         AC_CHECK_LIB(dts, dts_free, [
2420           VLC_ADD_BUILTINS([dtstofloat32])
2421           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2422         ],[
2423           if test "${enable_dts}" = "yes"; then
2424             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2425           fi
2426         ])
2427       ])
2428     ])
2429     LDFLAGS="${LDFLAGS_save}"
2430   fi
2431 fi
2432
2433 dnl
2434 dnl  Flac plugin
2435 dnl
2436 AC_ARG_ENABLE(flac,
2437   [  --enable-flac           flac decoder support (default disabled)])
2438 if test "${enable_flac}" = "yes"
2439 then
2440   AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2441     VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2442    ],[])
2443 fi
2444
2445 dnl
2446 dnl  Libmpeg2 plugin
2447 dnl
2448 AC_ARG_ENABLE(libmpeg2,
2449   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2450 if test "${enable_libmpeg2}" != "no"
2451 then
2452   AC_ARG_WITH(libmpeg2-tree,
2453   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2454   if test -n "${with_libmpeg2_tree}"
2455   then
2456     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2457     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2458     if test -z "${real_libmpeg2_tree}"
2459     then
2460       dnl  The given directory can't be found
2461       AC_MSG_RESULT(no)
2462       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2463     fi
2464     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2465     then
2466       dnl  Use a custom libmpeg2
2467       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2468       VLC_ADD_PLUGINS([libmpeg2])
2469       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2470       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2471       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2472     else
2473       dnl  The given libmpeg2 wasn't built
2474       AC_MSG_RESULT(no)
2475       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2476     fi
2477   else
2478     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2479       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2480       AC_EGREP_CPP(yes,
2481         [#include <mpeg2dec/mpeg2.h>
2482          #ifdef MPEG2_RELEASE
2483          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
2484          yes
2485          #endif
2486          #endif],
2487         [AC_MSG_RESULT([yes])
2488           VLC_ADD_PLUGINS([libmpeg2])
2489           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
2490         [AC_MSG_RESULT([no])
2491           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.])])],
2492
2493       [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.])]
2494     )
2495   fi
2496 fi
2497
2498 dnl
2499 dnl  Vorbis plugin
2500 dnl
2501 AC_ARG_ENABLE(vorbis,
2502   [  --enable-vorbis         Vorbis decoder support (default enabled)])
2503 if test "${enable_vorbis}" != "no"
2504 then
2505   AC_CHECK_HEADERS(vorbis/codec.h, [
2506     VLC_ADD_PLUGINS([vorbis])
2507     VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
2508
2509   AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
2510     VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
2511 fi
2512
2513 dnl
2514 dnl  Tremor plugin
2515 dnl
2516 AC_ARG_ENABLE(tremor,
2517   [  --enable-tremor         Tremor decoder support (default disabled)])
2518 if test "${enable_tremor}" = "yes"
2519 then
2520   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2521     VLC_ADD_PLUGINS([tremor])
2522     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
2523    ],[])
2524 fi
2525
2526 dnl
2527 dnl  Speex plugin
2528 dnl
2529 AC_ARG_ENABLE(speex,
2530   [  --enable-speex          Speex decoder support (default enabled)])
2531 if test "${enable_speex}" != "no"
2532 then
2533   AC_CHECK_HEADERS(speex/speex.h, [
2534     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_toolame}"
2535     AC_CHECK_LIB(speex, speex_decode_int, [
2536       VLC_ADD_PLUGINS([speex])
2537       VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
2538       [ AC_MSG_RESULT([no])
2539         AC_MSG_WARN([Your libspeex is too old, please get the development
2540                      version.]) ],[])
2541     LDFLAGS="${LDFLAGS_save}"
2542     ],[])
2543 fi
2544
2545 dnl
2546 dnl  tarkin decoder plugin
2547 dnl
2548 AC_ARG_ENABLE(tarkin,
2549 [  --enable-tarkin         experimental tarkin codec (default disabled)])
2550 if test "${enable_tarkin}" = "yes"
2551 then
2552   AC_ARG_WITH(tarkin-tree,
2553   [    --with-tarkin-tree=PATH tarkin tree for static linking])
2554   if test -n "${with_tarkin_tree}"
2555   then
2556     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
2557     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
2558     if test -f "${real_tarkin_tree}/tarkin.o"
2559     then
2560       VLC_ADD_BUILTINS([tarkin])
2561       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
2562       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])
2563       AC_MSG_RESULT(yes)
2564     else
2565       dnl  The given tarkin tree wasn't built
2566       AC_MSG_RESULT(no)
2567       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
2568                     make sure you compiled tarkin in ${with_tarkin_tree}])
2569     fi
2570   fi
2571 fi
2572
2573 dnl
2574 dnl  theora decoder plugin
2575 dnl
2576 AC_ARG_ENABLE(theora,
2577 [  --enable-theora         experimental theora codec (default disabled)])
2578 if test "${enable_theora}" = "yes"
2579 then
2580   AC_CHECK_HEADERS(theora/theora.h, [
2581     AC_CHECK_LIB(theora, theora_granule_time, [
2582       if test "${SYS}" = "mingw32"; then
2583         VLC_ADD_PLUGINS([theora])
2584       else
2585         VLC_ADD_BUILTINS([theora])
2586       fi
2587       theora_libs="-ltheora -logg"
2588       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
2589       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
2590 You also need to check that you have a libogg posterior to the 1.0 release.])],
2591       [-logg])
2592   ])
2593 fi
2594
2595 dnl
2596 dnl  dirac decoder plugin
2597 dnl
2598 AC_ARG_ENABLE(dirac,
2599 [  --enable-dirac          experimental dirac codec (default disabled)])
2600 if test "${enable_dirac}" = "yes"; then
2601   AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
2602     AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
2603       VLC_ADD_PLUGINS([dirac])
2604       VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
2605       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
2606       [-lstdc++])
2607   ])
2608 fi
2609
2610 dnl
2611 dnl  PNG decoder module
2612 dnl
2613 AC_ARG_ENABLE(png,
2614   [  --enable-png            PNG support (default enabled)])
2615 if test "${enable_png}" != "no"; then
2616 AC_CHECK_HEADERS(png.h, [
2617   LDFLAGS="${LDFLAGS_save} -lz"
2618   AC_CHECK_LIB(png, png_set_rows, [
2619     VLC_ADD_LDFLAGS([png],[-lpng -lz])
2620     VLC_ADD_PLUGINS([png])
2621     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
2622     [],[-lz])
2623   LDFLAGS="${LDFLAGS_save}"
2624   ])
2625 fi
2626
2627 dnl
2628 dnl H264 encoder plugin (using libx264)
2629 dnl
2630 AC_ARG_ENABLE(x264,
2631   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2632 if test "${enable_x264}" != "no"; then
2633   AC_ARG_WITH(x264-tree,
2634     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
2635   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2636   then
2637     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2638     if test -z "${real_x264_tree}"
2639     then
2640       dnl  The given directory can't be found
2641       AC_MSG_RESULT(no)
2642       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
2643     fi
2644     dnl  Use a custom libx264
2645     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2646     if test -f ${real_x264_tree}/x264.h
2647     then
2648       AC_MSG_RESULT(yes)
2649       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2650       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
2651       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2652       AC_CHECK_LIB(x264, x264_encoder_open, [
2653         VLC_ADD_BUILTINS([x264])
2654         VLC_ADD_LDFLAGS([x264],[-lx264])
2655       ],[
2656         AC_MSG_ERROR([the specified tree hasn't been compiled])
2657       ])
2658       LDFLAGS="${LDFLAGS_save}"
2659     else
2660       AC_MSG_RESULT(no)
2661       AC_MSG_ERROR([the specified tree doesn't have x264.h])
2662     fi
2663   else
2664     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2665     AC_CHECK_HEADERS(x264.h, [
2666       AC_CHECK_LIB(x264, x264_encoder_open, [
2667         VLC_ADD_PLUGINS([x264])
2668         VLC_ADD_LDFLAGS([x264],[-lx264])
2669       ],[
2670         if test "${enable_x264}" = "yes"; then
2671             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
2672           fi
2673       ])
2674     ])
2675     LDFLAGS="${LDFLAGS_save}"
2676   fi
2677 fi
2678
2679 dnl
2680 dnl  CMML plugin
2681 dnl
2682 AC_ARG_ENABLE(cmml,
2683   [  --enable-cmml           CMML support (default enabled)])
2684 if test "${enable_cmml}" != "no"
2685 then
2686   VLC_ADD_PLUGINS([cmml])
2687 fi
2688
2689
2690 dnl
2691 dnl  Video plugins
2692 dnl
2693
2694 AC_ARG_WITH(,[Video plugins:])
2695
2696 dnl Check for DPMS
2697 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
2698   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2699   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
2700     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
2701     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
2702       AC_MSG_RESULT(yes)
2703       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
2704                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
2705     ],[
2706       AC_MSG_RESULT(no)
2707     ])
2708   ],,[
2709     #include <X11/Xlib.h>
2710   ])
2711   CPPFLAGS="${CPPFLAGS_save}"
2712 fi
2713
2714 dnl
2715 dnl  X11 module
2716 dnl  (enabled by default except on win32)
2717 dnl
2718 AC_ARG_ENABLE(x11,
2719   [  --enable-x11            X11 support (default enabled)])
2720 if test "${enable_x11}" != "no" &&
2721   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2722    test "${enable_x11}" = "yes"); then
2723   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2724   AC_CHECK_HEADERS(X11/Xlib.h, [
2725     VLC_ADD_PLUGINS([x11])
2726     VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
2727     VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
2728   ])
2729   CPPFLAGS="${CPPFLAGS_save}"
2730 fi
2731
2732 dnl
2733 dnl  XVideo module
2734 dnl  (enabled by default except on win32)
2735 dnl
2736 AC_ARG_ENABLE(xvideo,
2737   [  --enable-xvideo         XVideo support (default enabled)])
2738 if test "${enable_xvideo}" != "no" &&
2739   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2740    test "${enable_xvideo}" = "yes"); then
2741   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2742   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
2743     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2744     AC_CHECK_LIB(Xv,XvPutImage,[
2745       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
2746       # test for libXv_pic.
2747       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
2748         VLC_ADD_PLUGINS([xvideo])
2749         VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2750         VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2751       else
2752         AC_CHECK_LIB(Xv_pic,XvPutImage,[
2753           VLC_ADD_PLUGINS([xvideo])
2754           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2755           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
2756         ],[
2757           VLC_ADD_BUILTINS([xvideo])
2758           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2759           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2760         ])
2761       fi
2762     ])
2763     CFLAGS="${CFLAGS_save}"
2764   ]
2765   CPPFLAGS="${CPPFLAGS_save}")
2766 fi
2767
2768 dnl
2769 dnl  GLX module
2770 dnl  (enabled by default except on win32)
2771 dnl
2772 AC_ARG_ENABLE(glx,
2773   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
2774 if test "${enable_glx}" != "no" &&
2775   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2776    test "${enable_glx}" = "yes"); then
2777   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2778   AC_CHECK_HEADERS(X11/Xlib.h, [
2779     AC_CHECK_HEADERS(GL/glx.h, [
2780       VLC_ADD_PLUGINS([glx])
2781       VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
2782       VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
2783   ]) ])
2784   CPPFLAGS="${CPPFLAGS_save}"
2785 fi
2786
2787 dnl
2788 dnl  Check for the Xinerama extension
2789 dnl
2790 if test "${enable_xvideo}" != "no" &&
2791   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2792    test "${enable_xvideo}" = "yes"); then
2793   ac_cv_have_xinerama="no"
2794   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2795   CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2796   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
2797     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
2798       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
2799       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
2800       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
2801       ac_cv_have_xinerama="yes"
2802     ],[
2803       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
2804         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
2805         VLC_ADD_LDFLAGS([x11],[-lXinerama])
2806         VLC_ADD_LDFLAGS([glx],[-lXinerama])
2807         ac_cv_have_xinerama="yes"
2808       ])
2809     ])
2810   ])
2811   if test "${ac_cv_have_xinerama}" = "yes"; then
2812     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
2813   fi
2814   CFLAGS="${CFLAGS_save}"
2815   CPPFLAGS="${CPPFLAGS_save}"
2816 fi
2817
2818 dnl
2819 dnl  OpenGL module
2820 dnl  (enabled by default except on beos)
2821 dnl
2822 AC_ARG_ENABLE(opengl,
2823   [  --enable-opengl         OpenGL support (default enabled)])
2824 if test "${enable_opengl}" != "no" &&
2825    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
2826   if test "${SYS}" != "darwin"; then
2827     AC_CHECK_HEADERS(GL/gl.h, [
2828       VLC_ADD_PLUGINS([opengl])
2829       if test "${SYS}" != "mingw32"; then
2830         VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
2831       else
2832         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
2833       fi
2834     ])
2835   else
2836     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
2837     VLC_ADD_PLUGINS([opengl])
2838     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
2839   fi
2840 fi
2841
2842 dnl
2843 dnl  SDL module
2844 dnl
2845 AC_ARG_ENABLE(sdl,
2846   [  --enable-sdl            SDL support (default enabled)])
2847 if test "${enable_sdl}" != "no"
2848 then
2849   SDL_PATH="${PATH}"
2850   AC_ARG_WITH(sdl-config-path,
2851     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
2852     [ if test "${with_sdl_config_path}" != "no"
2853       then
2854         SDL_PATH="${with_sdl_config_path}:${PATH}"
2855       fi ])
2856   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
2857   SDL_CONFIG="${SDL12_CONFIG}"
2858   SDL_HEADER="SDL12/SDL.h"
2859   if test "${SDL_CONFIG}" = "no"
2860   then
2861     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
2862     SDL_CONFIG=${SDL11_CONFIG}
2863     SDL_HEADER="SDL11/SDL.h"
2864   fi
2865   if test "${SDL_CONFIG}" = "no"
2866   then
2867     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
2868     SDL_HEADER="SDL/SDL.h"
2869   fi
2870   # check for cross-compiling
2871   SDL_PREFIX=
2872   AC_ARG_WITH(sdl-prefix,
2873     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
2874                                e.g use as:
2875                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
2876   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
2877   then
2878     SDL_PREFIX="--prefix=${with_sdl_prefix}"
2879   fi
2880   if test "${SDL_CONFIG}" != "no"
2881   then
2882     VLC_ADD_PLUGINS([vout_sdl aout_sdl])
2883     VLC_ADD_CFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
2884     VLC_ADD_LDFLAGS([vout_sdl aout_sdl],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
2885     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
2886     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
2887       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
2888       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
2889           As a last resort we also test for SDL.h presence),
2890       [ AC_MSG_ERROR([The development package for SDL is not installed.
2891 Please install it and try again. Alternatively you can also configure with
2892 --disable-sdl.])
2893       ])])
2894     CPPFLAGS="${CPPFLAGS_save}"
2895     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
2896     then
2897       AC_MSG_ERROR([The development package for SDL is not installed.
2898 Please install it and try again. Alternatively you can also configure with
2899 --disable-sdl.])
2900     fi
2901   elif test "${enable_sdl}" =  "yes"
2902   then
2903     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
2904 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
2905     ])
2906   fi
2907 fi
2908
2909 dnl
2910 dnl  freetype module
2911 dnl
2912 AC_ARG_ENABLE(freetype,
2913   [  --enable-freetype       freetype support (default enabled)])
2914 AC_ARG_ENABLE(fribidi,
2915   [  --enable-fribidi        fribidi support (default enabled)])
2916 if test "${enable_freetype}" != "no"
2917 then
2918   FREETYPE_PATH="${PATH}"
2919   AC_ARG_WITH(freetype-config-path,
2920     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
2921     [ if test "${with_freetype_config_path}" != "no"
2922       then
2923         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
2924       fi ])
2925   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
2926
2927   if test "${FREETYPE_CONFIG}" != "no"
2928   then
2929     VLC_ADD_PLUGINS([freetype])
2930     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
2931     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
2932     AC_CHECK_HEADERS(Carbon/Carbon.h,
2933       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
2934   elif test "${enable_freetype}" =  "yes"
2935   then
2936     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
2937 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
2938     ])
2939   fi
2940
2941   dnl fribidi support
2942   if test "${enable_fribidi}" != "no"
2943   then
2944     FRIBIDI_PATH="${PATH}"
2945     AC_ARG_WITH(fribidi-config-path,
2946       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
2947       [ if test "${with_fribidi_config_path}" != "no"
2948         then
2949           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
2950         fi ])
2951     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
2952
2953     if test "${FRIBIDI_CONFIG}" != "no"
2954     then
2955       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
2956       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
2957       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
2958       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
2959     fi
2960   fi
2961 fi
2962
2963 dnl
2964 dnl  libxml2 module
2965 dnl
2966 AC_ARG_ENABLE(libxml2,
2967   [  --enable-libxml2        libxml2 support (default enabled)])
2968 if test "${enable_libxml2}" != "no"
2969 then
2970   XML2_PATH="${PATH}"
2971   AC_ARG_WITH(xml2-config-path,
2972     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
2973     [ if test "${with_xml2_config_path}" != "no"; then
2974         XML2_PATH="${with_xml2_config_path}:${PATH}"
2975       fi ])
2976   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
2977   if test "${XML2_CONFIG}" != "no"; then
2978     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
2979     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
2980     dnl depends on the xmlTextReader extension
2981     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
2982     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
2983     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
2984       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
2985         VLC_ADD_PLUGINS([xml]) ],[
2986           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
2987           if test "${enable_xml2}" = "yes"; then
2988             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
2989           fi])
2990        ],[
2991       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
2992       if test "${enable_xml2}" = "yes"; then
2993         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
2994       fi])
2995     LDFLAGS="${LDFLAGS_save}"
2996     CPPFLAGS="${CPPFLAGS_save}"
2997   else
2998     if test "${enable_xml2}" = "yes"; then
2999       AC_MSG_ERROR([Could not find libxml2])
3000     fi
3001   fi
3002 fi
3003
3004 dnl
3005 dnl  SVG module
3006 dnl
3007 AC_ARG_ENABLE(svg,
3008   [  --enable-svg            SVG support (default disabled)])
3009 if test "${enable_svg}" == "yes"
3010 then
3011   PKG_CHECK_MODULES(SVG, 
3012         librsvg-2.0 >= 2.5.0,
3013         [
3014           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3015           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3016           VLC_ADD_PLUGINS([svg]) ],
3017         [AC_MSG_WARN(SVG library not found)])
3018 fi
3019
3020 dnl
3021 dnl  Qt Embedded module
3022 dnl  (disabled by default)
3023 dnl
3024 AC_ARG_ENABLE(qte,
3025   [  --enable-qte            QT Embedded support (default disabled)])
3026 if test "${enable_qte}" = "yes"
3027 then
3028   AC_ARG_WITH(qte,
3029   [    --with-qte=PATH       Qt Embedded headers and libraries])
3030   if test "${with_qte}" != "no" -a -n "${with_qte}"
3031   then
3032     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3033     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])
3034   else
3035     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3036     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3037   fi
3038   VLC_ADD_PLUGINS([qte])
3039   NEED_QTE_MAIN=yes
3040   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3041   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3042     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3043   ] )
3044   CPPFLAGS="${CPPFLAGS_save}"
3045 fi
3046
3047 dnl
3048 dnl  Qt Video output module
3049 dnl  (disabled by default)
3050 dnl
3051 dnl AC_ARG_ENABLE(qt_video,
3052 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3053 dnl if test "${enable_qt_video}" = "yes"
3054 dnl then
3055 dnl  VLC_ADD_PLUGINS([qt_video])
3056 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3057 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3058 dnl   AC_CHECK_LIB(qt-mt,main,[
3059 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3060 dnl  ],[
3061 dnl    AC_CHECK_LIB(qt,main,[
3062 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3063 dnl    ])
3064 dnl  ])
3065 dnl  NEED_QTE_MAIN=yes
3066 dnl  LDFLAGS="${LDFLAGS_save}"
3067 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3068 dnl fi
3069
3070 dnl
3071 dnl Roku HD1000 Video output module
3072 dnl
3073 AC_ARG_ENABLE(hd1000v,
3074   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3075 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3076   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3077    test "${enable_hd1000v}" = "yes"); then
3078   AC_LANG_PUSH([C++])
3079   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3080   [
3081     can_build_roku="yes"
3082   ],
3083   [
3084     can_build_roku="no"
3085     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3086   ])
3087   if test "$can_build_roku" = "yes"
3088   then
3089     VLC_ADD_PLUGINS([hd1000v])
3090     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3091   fi
3092   AC_LANG_POP([C++])
3093 fi
3094
3095 dnl
3096 dnl  Windows DirectX module
3097 dnl
3098 AC_ARG_ENABLE(directx,
3099   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3100 if test "${enable_directx}" != "no"
3101 then
3102   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3103   then
3104     AC_ARG_WITH(directx,
3105     [    --with-directx=PATH   Win32 DirectX headers])
3106     if test -z "${with_directx}"
3107     then
3108       AC_CHECK_HEADERS(ddraw.h,
3109       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3110         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3111         dnl to be moved when dependance is removed
3112         AC_CHECK_HEADERS(GL/gl.h, [
3113             VLC_ADD_PLUGINS([glwin32])
3114             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3115         ]) ])
3116     else
3117       AC_MSG_CHECKING(for directX headers in ${with_directx})
3118       if test -f ${with_directx}/ddraw.h
3119       then
3120         VLC_ADD_PLUGINS([vout_directx aout_directx])
3121         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3122         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3123         AC_MSG_RESULT(yes)
3124       else
3125         AC_MSG_RESULT(no)
3126         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3127       fi
3128     fi
3129   fi
3130 fi
3131
3132 dnl
3133 dnl  Linux framebuffer module
3134 dnl
3135 AC_ARG_ENABLE(fb,
3136   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3137     if test "${enable_fb}" != "no"
3138     then
3139       AC_CHECK_HEADERS(linux/fb.h, [
3140         VLC_ADD_PLUGINS([fb])
3141       ])
3142     fi
3143
3144 dnl
3145 dnl  Linux MGA module
3146 dnl
3147 AC_ARG_ENABLE(mga,
3148   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3149   [ if test "${enable_mga}" = "yes"
3150     then
3151       VLC_ADD_PLUGINS([mga])
3152     fi ])
3153
3154 dnl
3155 dnl  SVGAlib module
3156 dnl
3157 AC_ARG_ENABLE(svgalib,
3158   [  --enable-svgalib        SVGAlib support (default disabled)])
3159 if test "${enable_svgalib}" = "yes"
3160 then
3161   VLC_ADD_PLUGINS([svgalib])
3162   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3163 fi
3164
3165 dnl
3166 dnl  GGI module
3167 dnl
3168 AC_ARG_ENABLE(ggi,
3169   [  --enable-ggi            GGI support (default disabled)])
3170 if test "${enable_ggi}" = "yes"
3171 then
3172   VLC_ADD_PLUGINS([ggi])
3173   VLC_ADD_LDFLAGS([ggi],[-lggi])
3174   AC_ARG_WITH(ggi,
3175     [    --with-ggi=PATH       path to libggi],
3176     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3177       then
3178         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3179         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3180       fi ])
3181 fi
3182
3183 dnl
3184 dnl  Glide module
3185 dnl
3186 AC_ARG_ENABLE(glide,
3187   [  --enable-glide          Glide (3dfx) support (default disabled)])
3188 if test "${enable_glide}" = "yes"
3189 then
3190   VLC_ADD_PLUGINS([glide])
3191   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3192   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3193   AC_ARG_WITH(glide,
3194     [    --with-glide=PATH     path to libglide],
3195     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3196       then
3197         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3198         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3199       fi ])
3200 fi
3201
3202 dnl
3203 dnl  AA plugin
3204 dnl
3205 AC_ARG_ENABLE(aa,
3206   [  --enable-aa             aalib output (default disabled)])
3207 if test "${enable_aa}" = "yes"
3208 then
3209   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3210   if test "${have_aa}" = "true"
3211   then
3212     VLC_ADD_PLUGINS([aa])
3213     VLC_ADD_LDFLAGS([aa],[-laa])
3214   fi
3215 fi
3216
3217 dnl
3218 dnl  libcaca plugin
3219 dnl
3220 AC_ARG_ENABLE(caca,
3221   [  --enable-caca           libcaca output (default disabled)])
3222 if test "${enable_caca}" = "yes"
3223 then
3224   CACA_PATH="${PATH}"
3225   AC_ARG_WITH(caca-config-path,
3226     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3227     [ if test "${with_caca_config_path}" != "no"
3228       then
3229         CACA_PATH="${with_caca_config_path}:${PATH}"
3230       fi ])
3231   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3232   if test "${CACA_CONFIG}" != "no"
3233   then
3234     VLC_ADD_PLUGINS([caca])
3235     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3236     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3237   fi
3238 fi
3239
3240 dnl
3241 dnl  win32 GDI plugin
3242 dnl
3243 AC_ARG_ENABLE(wingdi,
3244   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3245 if test "${enable_wingdi}" != "no"; then
3246   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3247     VLC_ADD_PLUGINS([wingdi])
3248     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3249   fi
3250   if test "${SYS}" = "mingwce"; then
3251     VLC_ADD_PLUGINS([wingdi wingapi])
3252   fi
3253 fi
3254
3255 dnl
3256 dnl  Audio plugins
3257 dnl
3258
3259 AC_ARG_WITH(,[Audio plugins:])
3260
3261 dnl
3262 dnl  OSS /dev/dsp module (enabled by default except on win32)
3263 dnl
3264 AC_ARG_ENABLE(oss,
3265   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3266
3267 if test "${enable_oss}" != "no" &&
3268   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3269    test "${enable_oss}" = "yes")
3270 then
3271   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3272     VLC_ADD_PLUGINS([oss])
3273     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3274   ])
3275 fi
3276
3277 dnl
3278 dnl  Esound module
3279 dnl
3280 AC_ARG_ENABLE(esd,
3281   [  --enable-esd            Esound library support (default disabled)],
3282   [if test "${enable_esd}" = "yes"
3283    then
3284      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3285      if test "${ESD_CONFIG}" != "no"
3286      then
3287        VLC_ADD_PLUGINS([esd])
3288        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3289        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3290      fi
3291    fi])
3292
3293 dnl
3294 dnl  Portaudio module
3295 dnl
3296 AC_ARG_ENABLE(portaudio,
3297   [  --enable-portaudio      Portaudio library support (default disabled)],
3298   [if test "${enable_portaudio}" = "yes"
3299    then
3300      VLC_ADD_PLUGINS([portaudio])
3301      VLC_ADD_CXXFLAGS([portaudio],[])
3302      if test "${SYS}" = "mingw32"; then
3303         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3304      else
3305         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3306      fi
3307    fi])
3308
3309 dnl
3310 dnl  aRts module
3311 dnl
3312 AC_ARG_ENABLE(arts,
3313   [  --enable-arts           aRts sound server (default disabled)],
3314   [if test "${enable_arts}" = "yes"
3315    then
3316      AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3317      if test "${ARTS_CONFIG}" != "no"
3318      then
3319        VLC_ADD_PLUGINS([arts])
3320        VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3321        VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3322      fi
3323    fi])
3324
3325 dnl
3326 dnl  ALSA module
3327 dnl
3328 AC_ARG_ENABLE(alsa,
3329   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3330 if test "${enable_alsa}" != "no"
3331 then
3332   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3333   if test "${have_alsa}" = "true"
3334   then
3335     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
3336                     #define ALSA_PCM_NEW_SW_PARAMS_API
3337                     #include <alsa/asoundlib.h>],
3338        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
3339         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
3340     VLC_ADD_PLUGINS([alsa])
3341     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
3342   else
3343     if test "${enable_alsa}" = "yes"; then
3344       AC_MSG_ERROR([Could not find ALSA development headers])
3345     fi
3346   fi
3347 fi
3348
3349 dnl
3350 dnl  win32 waveOut plugin
3351 dnl
3352 AC_ARG_ENABLE(waveout,
3353   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3354 if test "${enable_waveout}" != "no"; then
3355   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3356     VLC_ADD_PLUGINS([waveout])
3357     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
3358   fi
3359   if test "${SYS}" = "mingwce"; then
3360     VLC_ADD_PLUGINS([waveout])
3361   fi
3362 fi
3363
3364 dnl
3365 dnl  CoreAudio plugin
3366 dnl
3367 AC_ARG_ENABLE(coreaudio,
3368   [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
3369 if test "${enable_coreaudio}" != "no" &&
3370   (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
3371 then
3372   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
3373     [ VLC_ADD_BUILTINS([coreaudio])
3374       VLC_ADD_LDFLAGS([coreaudio],[-framework CoreAudio])
3375       AC_MSG_CHECKING(for kAudioConverterPrimeMethod in AudioToolbox/AudioConverter.h)
3376       AC_EGREP_HEADER(kAudioConverterPrimeMethod,AudioToolbox/AudioConverter.h,[
3377         AC_MSG_RESULT(yes)
3378         VLC_ADD_PLUGINS([coreaudio_resampler])
3379         VLC_ADD_LDFLAGS([coreaudio_resampler],[-framework AudioToolbox])
3380       ],[ AC_MSG_RESULT(no) ])
3381     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3382 fi
3383
3384 dnl
3385 dnl  Roku HD1000 audio
3386 dnl
3387 AC_ARG_ENABLE(hd1000a,
3388   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3389 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3390   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3391    test "${enable_hd1000a}" = "yes")
3392 then
3393   AC_LANG_PUSH([C++])
3394   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3395     VLC_ADD_PLUGINS([hd1000a])
3396     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
3397   AC_LANG_POP([C++])
3398 fi
3399
3400 dnl
3401 dnl  Interface plugins
3402 dnl
3403
3404 AC_ARG_WITH(,[Interface plugins:])
3405
3406 dnl special case for BeOS
3407 if test "${SYS}" = "beos"
3408 then
3409     VLC_ADD_BUILTINS([beos])
3410 fi
3411
3412 dnl
3413 dnl Skins2 module
3414 dnl
3415 AC_ARG_ENABLE(skins2,
3416   [  --enable-skins2         Skins2 interface module (experimental)])
3417 if test "${enable_skins2}" = "yes" ||
3418   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3419    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3420
3421   dnl test for the required libraries
3422   skins2_missing_lib="no"
3423
3424   dnl freetype
3425   if test "${FREETYPE_CONFIG}" != "no"; then
3426     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
3427     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
3428   else
3429     skins2_missing_lib="yes"
3430     if test "${enable_skins2}" = "yes"; then
3431       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3432     fi
3433   fi
3434
3435   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
3436     VLC_ADD_PLUGINS([skins2])
3437     ALIASES="${ALIASES} svlc"
3438     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3439     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3440     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3441
3442   else if test "${skins2_missing_lib}" = "no"; then
3443     VLC_ADD_PLUGINS([skins2])
3444     ALIASES="${ALIASES} svlc"
3445     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
3446     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3447     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
3448   fi fi
3449 fi
3450
3451
3452 dnl dnl
3453 dnl dnl  Gtk+ module
3454 dnl dnl
3455 dnl AC_ARG_ENABLE(gtk,
3456 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
3457 dnl if test "${enable_gtk}" != "no"
3458 dnl then
3459 dnl   GTK_PATH="${PATH}"
3460 dnl   AC_ARG_WITH(gtk-config-path,
3461 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
3462 dnl     [ if test "${with_gtk_config_path}" != "no"
3463 dnl       then
3464 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
3465 dnl       fi ])
3466 dnl   # look for gtk-config
3467 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
3468 dnl   GTK_CONFIG=${GTK12_CONFIG}
3469 dnl   if test "${GTK_CONFIG}" = "no"
3470 dnl   then
3471 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
3472 dnl   fi
3473 dnl   if test "${GTK_CONFIG}" != "no"
3474 dnl   then
3475 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
3476 dnl     then
3477 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
3478 dnl     fi
3479 dnl     if test "${SYS}" != "mingw32"; then
3480 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
3481 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
3482 dnl     else
3483 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
3484 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
3485 dnl     fi
3486 dnl     # now look for the gtk.h header
3487 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
3488 dnl     ac_cv_gtk_headers=yes
3489 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
3490 dnl       ac_cv_gtk_headers=no
3491 dnl       echo "Cannot find gtk development headers."
3492 dnl     ])
3493 dnl     if test "${ac_cv_gtk_headers}" = "yes"
3494 dnl     then
3495 dnl       VLC_ADD_PLUGINS([gtk])
3496 dnl       if test "${SYS}" != "mingw32"; then
3497 dnl         NEED_GTK_MAIN=yes
3498 dnl       fi
3499 dnl       ALIASES="${ALIASES} gvlc"
3500 dnl     fi
3501 dnl     CPPFLAGS="${CPPFLAGS_save}"
3502 dnl   fi
3503 dnl fi
3504 dnl 
3505 dnl
3506 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
3507 dnl
3508 dnl AC_ARG_ENABLE(gtk2,
3509 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
3510 dnl if test "${enable_gtk2}" = "yes"
3511 dnl then
3512 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3513 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3514 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3515 dnl   VLC_ADD_PLUGINS([gtk2])
3516 dnl   if test "${SYS}" != "mingw32"; then
3517 dnl     NEED_GTK2_MAIN=yes
3518 dnl   fi
3519 dnl fi
3520
3521 dnl
3522 dnl  PDA Gtk+2 module
3523 dnl
3524 AC_ARG_ENABLE(pda,
3525   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
3526 if test "${enable_pda}" = "yes"
3527 then
3528   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3529   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3530   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3531   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
3532   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
3533   VLC_ADD_PLUGINS([pda])
3534   if test "${SYS}" != "mingw32"; then
3535     NEED_GTK2_MAIN=yes
3536   fi
3537 fi
3538
3539 dnl dnl
3540 dnl dnl  Gnome module
3541 dnl dnl
3542 dnl AC_ARG_ENABLE(gnome,
3543 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
3544 dnl   [if test "${enable_gnome}" = "yes"; then
3545 dnl     # look for gnome-config
3546 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
3547 dnl     if test -x ${GNOME_CONFIG}
3548 dnl     then
3549 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
3550 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
3551 dnl     fi
3552 dnl     # now look for the gnome.h header
3553 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
3554 dnl     AC_CHECK_HEADERS(gnome.h, [
3555 dnl       VLC_ADD_PLUGINS([gnome])
3556 dnl       NEED_GTK_MAIN=yes
3557 dnl       NEED_GNOME_MAIN=yes
3558 dnl       ALIASES="${ALIASES} gnome-vlc"
3559 dnl       dnl We need this because of some moronic gnomesupport.h flavours
3560 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
3561 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
3562 dnl         AC_MSG_RESULT(yes)
3563 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
3564 dnl                   Define if <gnome.h> defines strndup.)],[
3565 dnl         AC_MSG_RESULT(no)])
3566 dnl      ],[
3567 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
3568 dnl developement tools or remove the --enable-gnome option])
3569 dnl      ])
3570 dnl     CPPFLAGS="${CPPFLAGS_save}"
3571 dnl   fi])
3572
3573 dnl
3574 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
3575 dnl
3576 dnl AC_ARG_ENABLE(gnome2,
3577 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
3578 dnl if test "${enable_gnome2}" = "yes"
3579 dnl then
3580 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
3581 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
3582 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
3583 dnl   VLC_ADD_PLUGINS([gnome2])
3584 dnl   if test "${SYS}" != "mingw32"; then
3585 dnl     NEED_GNOME2_MAIN=yes
3586 dnl   fi
3587 dnl fi
3588
3589 dnl
3590 dnl  wxWindows module
3591 dnl
3592 AC_ARG_ENABLE(wxwindows,
3593   [  --enable-wxwindows      wxWindows support (default enabled)])
3594 if test "${enable_wxwindows}" != "no"
3595 then
3596   WXWINDOWS_PATH="${PATH}"
3597   AC_ARG_WITH(wx-config-path,
3598     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
3599     [ if test "${with_wx_config_path}" != "no"
3600       then
3601         WXWINDOWS_PATH="${with_wx_config_path}:${PATH}"
3602       fi ])
3603   WXWINDOWS_NAME="wx-config"
3604   AC_ARG_WITH(wx-config,
3605     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
3606     [ if test "${with_wx_config}" != "no"
3607       then
3608         WXWINDOWS_NAME="${with_wx_config}"
3609       fi ])
3610   # look for wx-config
3611   AC_PATH_PROG(WX_CONFIG, ${WXWINDOWS_NAME}, no, ${WXWINDOWS_PATH})
3612   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
3613   then
3614     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
3615     then
3616       AC_MSG_ERROR([Your development package for wxWindows is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwindows.])
3617     fi
3618     AC_LANG_PUSH(C++)
3619     # Turn this error:
3620     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
3621     # into a warning. However better would be to fix playlist.cpp
3622     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
3623         [ac_cv_cxx_fpermissive],
3624         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
3625          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
3626                         ac_cv_cxx_fpermissive=no)])
3627     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
3628       VLC_ADD_CXXFLAGS([wxwindows],-fpermissive)
3629     fi
3630     VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags`])
3631     VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`])
3632     # now look for the wxprec.h header
3633     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
3634     ac_cv_wx_headers=yes
3635     AC_CHECK_HEADERS(wx/wxprec.h, , [
3636       ac_cv_wx_headers=no
3637       echo "Cannot find wxWindows development headers."
3638     ])
3639     if test "${ac_cv_wx_headers}" = "yes"
3640     then
3641       VLC_ADD_PLUGINS([wxwindows])
3642       ALIASES="${ALIASES} wxvlc"
3643     fi
3644     CPPFLAGS="${CPPFLAGS_save}"
3645     AC_LANG_POP(C++)
3646   fi
3647 fi
3648
3649 dnl
3650 dnl  WinCE GUI module
3651 dnl
3652 if test "${SYS}" = "mingwce"; then
3653   VLC_ADD_BUILTINS([wince])
3654   VLC_ADD_CXXFLAGS([wince],[])
3655   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
3656   dnl Gross hack
3657   VLC_ADD_LDFLAGS([wince],[modules/gui/wince/wince_rc.o])
3658 elif test "${SYS}" = "mingw32"; then
3659   VLC_ADD_CXXFLAGS([wince],[])
3660   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
3661   dnl Gross hack
3662   VLC_ADD_LDFLAGS([wince],[modules/gui/wince/wince_rc.o])
3663 fi
3664
3665 dnl
3666 dnl Simple test for skins2 dependency
3667 dnl
3668 if test "${enable_skins2}" != "no"
3669 then
3670   if test "${WX_CONFIG}" = "no"
3671   then
3672     AC_MSG_ERROR([The skins2 module depends on the wxWindows development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWindows development package or alternatively you can also configure with: --disable-wxwindows --disable-skins2.])
3673   fi
3674 fi
3675
3676 dnl dnl
3677 dnl dnl  Qt module
3678 dnl dnl
3679 dnl AC_ARG_ENABLE(qt,
3680 dnl   [  --enable-qt             Qt interface support (default disabled)],
3681 dnl   [if test "${enable_qt}" = "yes"; then
3682 dnl      VLC_ADD_PLUGINS([qt])
3683 dnl      ALIASES="${ALIASES} qvlc"
3684 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
3685 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
3686 dnl      AC_CHECK_LIB(qt-mt,main,[
3687 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
3688 dnl      ],[
3689 dnl        AC_CHECK_LIB(qt,main,[
3690 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
3691 dnl        ])
3692 dnl      ])
3693 dnl      LDFLAGS="${LDFLAGS_save}"
3694 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3695 dnl      if test -x ${QTDIR}/bin/moc
3696 dnl      then
3697 dnl        MOC=${QTDIR}/bin/moc
3698 dnl      else
3699 dnl        MOC=moc
3700 dnl      fi
3701 dnl    fi])
3702 dnl 
3703 dnl dnl
3704 dnl dnl  KDE module
3705 dnl dnl
3706 dnl AC_ARG_ENABLE(kde,
3707 dnl   [  --enable-kde            KDE interface support (default disabled)],
3708 dnl   [if test "${enable_kde}" = "yes"; then
3709 dnl      VLC_ADD_PLUGINS([kde])
3710 dnl      ALIASES="${ALIASES} kvlc"
3711 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
3712 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
3713 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3714 dnl      AC_CHECK_LIB(kfile,main,[
3715 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
3716 dnl      ])
3717 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3718 dnl      AC_CHECK_LIB(kdeui,main,[
3719 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
3720 dnl      ])
3721 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3722 dnl      AC_CHECK_LIB(kio,main,[
3723 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
3724 dnl      ])
3725 dnl      LDFLAGS="${LDFLAGS_save}"
3726 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
3727 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
3728 dnl      if test -x ${QTDIR}/bin/moc
3729 dnl      then
3730 dnl        MOC=${QTDIR}/bin/moc
3731 dnl      else
3732 dnl        MOC=moc
3733 dnl      fi
3734 dnl    fi])
3735
3736 dnl
3737 dnl  Opie QT embedded module
3738 dnl
3739 AC_ARG_ENABLE(opie,
3740   [  --enable-opie           Qt embedded interface support (default disabled)],
3741   [if test "${enable_opie}" = "yes"; then
3742      AC_ARG_WITH(qte,
3743      [    --with-qte=PATH       Qt Embedded headers and libraries])
3744      if test "${with_qte}" != "no" -a -n "${with_qte}"
3745      then
3746        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3747        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])
3748      else
3749        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
3750        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
3751      fi
3752      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3753      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3754        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3755      ] )
3756      CPPFLAGS="${CPPFLAGS_save}"
3757
3758      VLC_ADD_PLUGINS([opie])
3759      NEED_QTE_MAIN=yes
3760      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
3761      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
3762      if test "${with_qte}" != "no" -a -n "${with_qte}"
3763      then
3764        MOC=${with_qte}/bin/moc
3765      else
3766        MOC=${QTDIR}/bin/moc
3767      fi
3768    fi])
3769
3770 dnl
3771 dnl  MacOS X module
3772 dnl
3773 AC_ARG_ENABLE(macosx,
3774   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
3775   [if test "${enable_macosx}" = "yes"
3776    then
3777      VLC_ADD_BUILTINS([macosx])
3778      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3779    fi],
3780   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
3781      VLC_ADD_BUILTINS([macosx])
3782      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3783    )])
3784
3785 dnl
3786 dnl  QNX RTOS module
3787 dnl
3788 AC_ARG_ENABLE(qnx,
3789   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
3790     if test "${enable_qnx}" != "no"
3791     then
3792       AC_CHECK_HEADERS(Ph.h, [
3793         VLC_ADD_PLUGINS([qnx])
3794         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
3795       ])
3796     fi
3797
3798 dnl
3799 dnl  ncurses module
3800 dnl
3801 AC_ARG_ENABLE(ncurses,
3802   [  --enable-ncurses        ncurses interface support (default disabled)],
3803   [if test "${enable_ncurses}" = "yes"; then
3804      VLC_ADD_PLUGINS([ncurses])
3805      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
3806    fi])
3807
3808 dnl
3809 dnl  XOSD plugin
3810 dnl
3811 AC_ARG_ENABLE(xosd,
3812   [  --enable-xosd           xosd interface support (default disabled)])
3813 if test "${enable_xosd}" = "yes"
3814 then
3815   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
3816   AC_CHECK_LIB(xosd,xosd_set_offset,
3817       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
3818     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
3819         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
3820       AC_TRY_COMPILE([#include <xosd.h>],
3821          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
3822           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
3823   if test "${have_xosd}" = "true"
3824   then
3825     VLC_ADD_PLUGINS([xosd])
3826     VLC_ADD_LDFLAGS([xosd],[-lxosd])
3827   fi
3828 fi
3829
3830 dnl
3831 dnl Visualisation plugin
3832 dnl
3833 AC_ARG_ENABLE(visual,
3834   [  --enable-visual         visualisation plugin (default enabled)])
3835 if test "${enable_visual}" != "no"
3836 then
3837     VLC_ADD_PLUGINS([visual])
3838 fi
3839
3840 dnl
3841 dnl OpenGL visualisation plugin
3842 dnl
3843 AC_ARG_ENABLE(galaktos,
3844   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
3845 if test "${enable_galaktos}" = "yes"
3846 then
3847   AC_CHECK_HEADERS(GL/gl.h, [
3848     VLC_ADD_PLUGINS([galaktos])
3849     if test "${SYS}" != "mingw32"; then
3850       VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
3851     else
3852       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
3853     fi
3854   ])
3855 fi
3856
3857 dnl
3858 dnl  goom visualization plugin
3859 dnl
3860 AC_ARG_ENABLE(goom,
3861 [  --enable-goom           goom visualisation plugin (default disabled)])
3862 if test "${enable_goom}" = "yes"
3863 then
3864   AC_ARG_WITH(goom-tree,
3865     [    --with-goom-tree=PATH goom tree for static linking (required)])
3866
3867   dnl
3868   dnl test for --with-goom-tree
3869   dnl
3870   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
3871     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
3872     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
3873     if test -z "${real_goom_tree}"; then
3874       dnl  The given directory can't be found
3875       AC_MSG_RESULT(no)
3876       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
3877     fi
3878     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
3879       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
3880       VLC_ADD_BUILTINS([goom])
3881       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
3882       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
3883     else
3884       dnl  The given libgoom2 wasn't built, try to look for the old goom
3885       AC_MSG_RESULT(no)
3886       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
3887       if test -f "${real_goom_tree}/libgoom.a"; then
3888         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
3889         VLC_ADD_BUILTINS([goom])
3890         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
3891         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
3892       else
3893         dnl  The given libgoom wasn't built
3894         AC_MSG_RESULT(no)
3895         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
3896       fi
3897     fi
3898   else
3899     AC_CHECK_HEADERS(goom/goom.h, [
3900       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
3901       AC_CHECK_LIB(goom2, goom_init, [
3902         VLC_ADD_PLUGINS([goom])
3903         VLC_ADD_LDFLAGS([goom],[-lgoom2])
3904       ],[
3905         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
3906       ])
3907       LDFLAGS="${LDFLAGS_save}"
3908     ])
3909   fi
3910 fi
3911
3912 dnl
3913 dnl  SLP access plugin
3914 dnl
3915 AC_ARG_ENABLE(slp,
3916   [  --enable-slp            SLP service discovery support (default disabled)])
3917 if test "${enable_slp}" = "yes"
3918 then
3919   AC_ARG_WITH(slp,
3920   [    --with-slp=PATH       libslp headers and libraries])
3921   if test -z "${with_slp}"
3922   then
3923     AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
3924     if test "${have_slp}" = "true"
3925     then
3926       VLC_ADD_PLUGINS([slp])
3927       VLC_ADD_LDFLAGS([slp],[-lslp])
3928       VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
3929     fi
3930   else
3931     AC_MSG_CHECKING(for slp headers in ${with_slp})
3932     if test -f ${with_slp}/slp.h
3933     then
3934       dnl  Use ${with_slp}/libslp/slp.h
3935       AC_MSG_RESULT(yes)
3936       VLC_ADD_PLUGINS([slp])
3937       VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
3938       VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
3939       VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
3940       AC_DEFINE(HAVE_SLP_H)
3941     else
3942       dnl  No libslp could be found, sorry
3943       AC_MSG_RESULT(no)
3944       AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
3945     fi
3946   fi
3947 fi
3948
3949 dnl
3950 dnl DAAP access plugin and services discovery 
3951 dnl
3952 AC_ARG_ENABLE(daap,
3953   [  --enable-daap                DAAP shares services discovery support (default enabled)])
3954 if test "$enable_daap" != "no"
3955 then
3956    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
3957       [ VLC_ADD_PLUGINS([daap])
3958        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
3959        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
3960       [AC_MSG_WARN(DAAP library not found)])
3961 fi
3962
3963 dnl
3964 dnl  Lirc plugin
3965 dnl
3966 AC_ARG_ENABLE(lirc,
3967   [  --enable-lirc           lirc support (default disabled)])
3968 if test "${enable_lirc}" = "yes"
3969 then
3970   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3971   if test "${have_lirc}" = "true"
3972   then
3973     VLC_ADD_PLUGINS([lirc])
3974     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
3975   fi
3976 fi
3977
3978 dnl 
3979 dnl  Joystick plugin
3980 dnl
3981 AC_ARG_ENABLE(joystick,
3982   [  --enable-joystick       joystick control (default enabled)])
3983 if test "${enable_joystick}" = "yes"; then
3984   AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
3985 fi
3986
3987 dnl
3988 dnl corba (ORBit) plugin
3989 dnl
3990 dnl Default: do not enable corba
3991 enablecorba=false
3992 AC_ARG_ENABLE(corba,
3993   [  --enable-corba          corba interface support (default disabled)])
3994 if test "${enable_corba}" = "yes"; then
3995       GLIB_VERSION=2.3.2
3996       PKG_CHECK_MODULES(CORBA, 
3997         ORBit-2.0 >= 2.8.0 \
3998         glib-2.0 >= $GLIB_VERSION \
3999         gobject-2.0 >= $GLIB_VERSION \
4000         gthread-2.0 >= $GLIB_VERSION,
4001         [
4002           enablecorba=true
4003           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4004           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4005           VLC_ADD_PLUGINS([corba snapshot]) ],
4006         [ enablecorba=false
4007           AC_MSG_WARN(corba library not found) ])
4008 fi
4009 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4010
4011 AC_ARG_WITH(,[Misc options:])
4012
4013 dnl
4014 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4015 dnl
4016 dnl  We give the user the opportunity to specify
4017 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4018 dnl
4019 AC_ARG_WITH(words,
4020   [    --with-words=endianness set endianness (big or little)])
4021   case "${with_words}" in
4022     big)
4023       ac_cv_c_bigendian=yes
4024       ;;
4025     little)
4026       ac_cv_c_bigendian=no
4027       ;;
4028     *)
4029       dnl  Try to guess endianness by matching patterns on a compiled
4030       dnl  binary, by looking for an ASCII or EBCDIC string
4031       AC_CACHE_CHECK([whether the byte order is big-endian],
4032         [ac_cv_c_bigendian],
4033         [ac_cv_c_bigendian="unknown"
4034         [cat >conftest.c <<EOF
4035         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4036         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4037         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4038         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4039         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4040         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4041         int main(void) { _a(); _e(); return 0; }
4042 EOF
4043         ]
4044         if test -f conftest.c
4045         then
4046           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4047               && test -f conftest.o
4048           then
4049             if test "`strings conftest.o | grep BIGenDianSyS`"
4050             then
4051               ac_cv_c_bigendian="yes"
4052             fi
4053             if test "`strings conftest.o | grep LiTTleEnDian`"
4054             then
4055               ac_cv_c_bigendian="no"
4056             fi
4057           fi
4058         fi
4059       ])
4060       if test "${ac_cv_c_bigendian}" = "unknown"
4061       then
4062         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4063       fi
4064       ;;
4065   esac
4066 dnl  Now we know what to use for endianness, just put it in the header
4067 if test "${ac_cv_c_bigendian}" = "yes"
4068 then
4069   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4070 fi
4071
4072 dnl
4073 dnl  Microsoft ActiveX support
4074 dnl
4075 activex=false
4076 AC_ARG_ENABLE(activex,
4077   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4078 if test "${enable_activex}" != "no"
4079 then
4080   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4081   then
4082     AC_CHECK_PROGS(MIDL, [midl widl], no)
4083     AC_CHECK_HEADERS(ole2.h olectl.h,
4084       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4085         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4086         AC_CHECK_HEADERS(objsafe.h,
4087           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
4088         )
4089         activex=:
4090       ],
4091       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4092     )
4093   fi
4094 fi
4095 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4096 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4097 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4098
4099 dnl
4100 dnl  Mozilla plugin
4101 dnl
4102 mozilla=false
4103 AC_ARG_ENABLE(mozilla,
4104   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4105 if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
4106 then
4107   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4108   if test "${MOZILLA_CONFIG}" = "no"
4109   then
4110     AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4111   else
4112     if test "${SYS}" != "mingw32"; then
4113       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
4114       AC_CHECK_LIB(Xt,XtStrings,
4115        [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
4116        [],
4117        [[-L${x_libraries} -lX11 -lSM -lICE]
4118       ])
4119       LDFLAGS="${LDFLAGS_save}"
4120     fi
4121     mozilla=:
4122     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4123     VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4124     VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4125     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4126     AC_CHECK_HEADERS(mozilla-config.h)
4127     CPPFLAGS="${CPPFLAGS_save}"
4128   fi
4129
4130 dnl special case for mingw32
4131 elif test "${enable_mozilla}" = "yes"
4132 then
4133   AC_CHECK_TOOL(CYGPATH, cygpath, "")
4134   AC_ARG_WITH(mozilla-sdk-path,
4135     [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
4136     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4137     CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
4138     AC_CHECK_HEADERS(mozilla-config.h, [
4139       mozilla=:
4140       VLC_ADD_CPPFLAGS([mozilla],[-DXPCOM_GLUE -I${real_mozilla_sdk} -I${real_mozilla_sdk}/embedstring/include -I${real_mozilla_sdk}/xpcom/include -I${real_mozilla_sdk}/nspr/include -I${real_mozilla_sdk}/string/include -I${real_mozilla_sdk}/plugin/include -I${real_mozilla_sdk}/java/include])
4141       VLC_ADD_LDFLAGS([mozilla],[-L${real_mozilla_sdk}/embedstring/bin -L${real_mozilla_sdk}/xpcom/bin -L${real_mozilla_sdk}/nspr/bin -L${real_mozilla_sdk}/string/bin -lnspr4 -lplds4 -lplc4 -lembedstring -lxpcomglue -Wl,--kill-at])
4142       XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
4143       if test -n "${CYGPATH}"; then
4144         XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
4145         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4146         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
4147       fi ])
4148     CPPFLAGS="${CPPFLAGS_save}"
4149   ])
4150 fi
4151
4152 dnl Not necessarily in ${PATH}
4153 if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
4154   XPIDL="/usr/lib/mozilla/xpidl"
4155 fi
4156 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4157
4158 dnl
4159 dnl  test plugins
4160 dnl
4161 AC_ARG_ENABLE(testsuite,
4162   [  --enable-testsuite      build test modules (default disabled)])
4163 if test "${enable_testsuite}" = "yes"
4164 then
4165   TESTS="test1 test2 test3 test4"
4166
4167   dnl  we define those so that bootstrap sets the right linker
4168   VLC_ADD_CXXFLAGS([test2],[])
4169   VLC_ADD_OBJCFLAGS([test3],[])
4170   dnl  this one is needed until automake knows what to do
4171   VLC_ADD_LDFLAGS([test3],[-lobjc])
4172
4173   VLC_ADD_PLUGINS([${TESTS}])
4174   #VLC_ADD_BUILTINS([${TESTS}])
4175 fi
4176
4177 dnl
4178 dnl  gtk_main plugin
4179 dnl
4180 if test "${NEED_GTK_MAIN}" != "no"
4181 then
4182     VLC_ADD_PLUGINS([gtk_main])
4183     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4184     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4185 fi
4186
4187 if test "${NEED_GNOME_MAIN}" != "no"
4188 then
4189     VLC_ADD_PLUGINS([gnome_main])
4190     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4191     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4192 fi
4193
4194 if test "${NEED_GTK2_MAIN}" != "no"
4195 then
4196     VLC_ADD_PLUGINS([gtk2_main])
4197     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4198     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4199     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4200     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4201 fi
4202
4203 if test "${NEED_GNOME2_MAIN}" != "no"
4204 then
4205     VLC_ADD_PLUGINS([gnome2_main])
4206     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
4207     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
4208 fi
4209
4210 dnl
4211 dnl  qte_main plugin
4212 dnl
4213 if test "${NEED_QTE_MAIN}" != "no"
4214 then
4215     VLC_ADD_PLUGINS([qte_main])
4216     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4217     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4218     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4219 fi
4220
4221
4222 dnl
4223 dnl  Plugin and builtin checks
4224 dnl
4225 builtin_support=false
4226 plugin_support=:
4227
4228 dnl Support for plugins - this must be AT THE END
4229 AC_ARG_ENABLE(plugins,
4230   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
4231   [if test "${enable_plugins}" = "no"
4232    then
4233      plugin_support=false
4234    fi])
4235
4236 dnl Automagically disable plugins if there is no system support for
4237 dnl dynamically loadable files (.so, .dll, .dylib).
4238 dnl don't forget vlc-win32 still can load .dll as plugins
4239 if test "${ac_cv_have_plugins}" = "no"
4240 then
4241   echo "*** Your system doesn't have plugin support. All plugins will be built"
4242   echo "statically."
4243   plugin_support=false
4244 fi
4245
4246 dnl Export automake variables
4247 if ${plugin_support}
4248 then
4249   for plugin in `echo ${PLUGINS}`
4250   do
4251     eval "${plugin}_p=yes"
4252   done
4253 else
4254   VLC_ADD_BUILTINS([${PLUGINS}])
4255   PLUGINS=""
4256 fi
4257 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
4258
4259 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
4260 then
4261   builtin_support=:
4262   for builtin in `echo ${BUILTINS}`
4263   do
4264     eval "${builtin}_b=yes"
4265   done
4266 fi]
4267 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
4268
4269 dnl Import conditional variables generated by bootstrap
4270 VLC_CONDITIONALS
4271
4272 dnl
4273 dnl  Stuff used by the program
4274 dnl
4275 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
4276 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 VideoLAN", [Copyright string])
4277 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4278
4279 VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
4280 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
4281 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
4282
4283 DATA_PATH="${ac_tool_prefix}/share/vlc"
4284 AC_SUBST(DATA_PATH)
4285 PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
4286 AC_SUBST(PLUGIN_PATH)
4287
4288 dnl
4289 dnl  Handle substvars that use $(top_srcdir)
4290 dnl
4291 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4292 AC_SUBST(VLC_CONFIG)
4293 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
4294
4295 dnl
4296 dnl  Restore *FLAGS
4297 dnl
4298 VLC_RESTORE_FLAGS
4299
4300 dnl
4301 dnl  Create the vlc-config script
4302 dnl
4303 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
4304 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
4305
4306 dnl
4307 dnl  Configuration is finished
4308 dnl
4309 AC_SUBST(SYS)
4310 AC_SUBST(ARCH)
4311 AC_SUBST(ALIASES)
4312 AC_SUBST(ASM)
4313 AC_SUBST(MOC)
4314 AC_SUBST(WINDRES)
4315 AC_SUBST(XPIDL)
4316 AC_SUBST(XPIDL_INCL)
4317 AC_SUBST(LIBEXT)
4318 AC_SUBST(INCLUDES)
4319 AC_SUBST(ALL_LINGUAS)
4320
4321 dnl Import substitutions generated by bootstrap
4322 VLC_SUBSTS
4323
4324 dnl Create vlc-config.in
4325 VLC_OUTPUT_VLC_CONFIG_IN
4326
4327 AC_CONFIG_FILES([
4328   Makefile
4329   activex/Makefile
4330   debian/Makefile
4331   doc/Makefile
4332   intl/Makefile
4333   ipkg/Makefile
4334   lib/Makefile
4335   modules/Makefile
4336   mozilla/Makefile
4337   m4/Makefile
4338   po/Makefile.in
4339   share/Makefile
4340   src/Makefile
4341 ])
4342
4343 AC_CONFIG_FILES([
4344   modules/access/Makefile
4345   modules/access/dshow/Makefile
4346   modules/access/dvb/Makefile
4347   modules/access/mms/Makefile
4348   modules/access/pvr/Makefile
4349   modules/access/satellite/Makefile
4350   modules/access/v4l/Makefile
4351   modules/access/cdda/Makefile
4352   modules/access/vcd/Makefile
4353   modules/access/vcdx/Makefile
4354   modules/access/screen/Makefile
4355   modules/access_filter/Makefile
4356   modules/access_output/Makefile
4357   modules/audio_filter/Makefile
4358   modules/audio_filter/channel_mixer/Makefile
4359   modules/audio_filter/converter/Makefile
4360   modules/audio_filter/resampler/Makefile
4361   modules/audio_mixer/Makefile
4362   modules/audio_output/Makefile
4363   modules/codec/Makefile
4364   modules/codec/cmml/Makefile
4365   modules/codec/dmo/Makefile
4366   modules/codec/ffmpeg/Makefile
4367   modules/codec/spudec/Makefile
4368   modules/control/Makefile
4369   modules/control/corba/Makefile
4370   modules/demux/Makefile
4371   modules/demux/asf/Makefile
4372   modules/demux/avi/Makefile
4373   modules/demux/mp4/Makefile
4374   modules/demux/mpeg/Makefile
4375   modules/demux/playlist/Makefile
4376   modules/demux/util/Makefile
4377   modules/gui/Makefile
4378   modules/gui/beos/Makefile
4379   modules/gui/pda/Makefile
4380   modules/gui/gtk/Makefile
4381   modules/gui/gtk2/Makefile
4382   modules/gui/kde/Makefile
4383   modules/gui/macosx/Makefile
4384   modules/gui/qnx/Makefile
4385   modules/gui/qt/Makefile
4386   modules/gui/skins2/Makefile
4387   modules/gui/wxwindows/Makefile
4388   modules/gui/wince/Makefile
4389   modules/misc/Makefile
4390   modules/misc/dummy/Makefile
4391   modules/misc/memcpy/Makefile
4392   modules/misc/network/Makefile
4393   modules/misc/testsuite/Makefile
4394   modules/misc/playlist/Makefile
4395   modules/misc/xml/Makefile
4396   modules/mux/Makefile
4397   modules/mux/mpeg/Makefile
4398   modules/packetizer/Makefile
4399   modules/services_discovery/Makefile
4400   modules/stream_out/Makefile
4401   modules/stream_out/transrate/Makefile
4402   modules/video_chroma/Makefile
4403   modules/video_filter/Makefile
4404   modules/video_filter/swscale/Makefile
4405   modules/video_output/Makefile
4406   modules/video_output/directx/Makefile
4407   modules/video_output/qte/Makefile
4408   modules/video_output/x11/Makefile
4409   modules/visualization/Makefile
4410   modules/visualization/visual/Makefile
4411   modules/visualization/galaktos/Makefile
4412 ])
4413
4414 dnl Generate makefiles
4415 AC_OUTPUT
4416
4417 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4418 # not provided with the source
4419 ${SHELL} ./config.status --file=vlc-config
4420 chmod 0755 vlc-config
4421
4422 printf "
4423 vlc configuration
4424 --------------------
4425 vlc version           : ${VERSION}
4426 system                : ${SYS}
4427 architecture          : ${ARCH}
4428 build flavour         : "
4429 test "${enable_debug}" = "yes" && printf "debug "
4430 test "${enable_cprof}" = "yes" && printf "cprof "
4431 test "${enable_gprof}" = "yes" && printf "gprof "
4432 test "${enable_optimizations}" = "yes" && printf "optim "
4433 test "${enable_release}" = "yes" && printf "release " || printf "devel "
4434 echo "
4435 vlc aliases           :${ALIASES}
4436
4437 You can tune the compiler flags in vlc-config.
4438 To build vlc and its plugins, type \`make'.
4439 "
4440