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