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