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