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