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