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