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