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