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