]> git.sesse.net Git - vlc/blob - configure.ac
configure.ac: Allow libcdio 0.71 for libcdio things.
[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  Interface plugins
3442 dnl
3443
3444 AC_ARG_WITH(,[Interface plugins:])
3445
3446 dnl special case for BeOS
3447 if test "${SYS}" = "beos"
3448 then
3449     VLC_ADD_BUILTINS([beos])
3450 fi
3451
3452 dnl
3453 dnl Skins2 module
3454 dnl
3455 AC_ARG_ENABLE(skins2,
3456   [  --enable-skins2         Skins2 interface module (experimental)])
3457 if test "${enable_skins2}" = "yes" ||
3458   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3459    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3460
3461   dnl test for the required libraries
3462   skins2_missing_lib="no"
3463
3464   dnl freetype
3465   if test "${FREETYPE_CONFIG}" != "no"; then
3466     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
3467     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
3468   else
3469     skins2_missing_lib="yes"
3470     if test "${enable_skins2}" = "yes"; then
3471       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3472     fi
3473   fi
3474
3475   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
3476     VLC_ADD_PLUGINS([skins2])
3477     ALIASES="${ALIASES} svlc"
3478     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3479     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3480     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3481
3482   else if test "${skins2_missing_lib}" = "no"; then
3483     VLC_ADD_PLUGINS([skins2])
3484     ALIASES="${ALIASES} svlc"
3485     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
3486     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3487     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
3488   fi fi
3489 fi
3490
3491
3492 dnl dnl
3493 dnl dnl  Gtk+ module
3494 dnl dnl
3495 dnl AC_ARG_ENABLE(gtk,
3496 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
3497 dnl if test "${enable_gtk}" != "no"
3498 dnl then
3499 dnl   GTK_PATH="${PATH}"
3500 dnl   AC_ARG_WITH(gtk-config-path,
3501 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
3502 dnl     [ if test "${with_gtk_config_path}" != "no"
3503 dnl       then
3504 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
3505 dnl       fi ])
3506 dnl   # look for gtk-config
3507 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
3508 dnl   GTK_CONFIG=${GTK12_CONFIG}
3509 dnl   if test "${GTK_CONFIG}" = "no"
3510 dnl   then
3511 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
3512 dnl   fi
3513 dnl   if test "${GTK_CONFIG}" != "no"
3514 dnl   then
3515 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
3516 dnl     then
3517 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.])
3518 dnl     fi
3519 dnl     if test "${SYS}" != "mingw32"; then
3520 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
3521 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
3522 dnl     else
3523 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
3524 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
3525 dnl     fi
3526 dnl     # now look for the gtk.h header
3527 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
3528 dnl     ac_cv_gtk_headers=yes
3529 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
3530 dnl       ac_cv_gtk_headers=no
3531 dnl       echo "Cannot find gtk development headers."
3532 dnl     ])
3533 dnl     if test "${ac_cv_gtk_headers}" = "yes"
3534 dnl     then
3535 dnl       VLC_ADD_PLUGINS([gtk])
3536 dnl       if test "${SYS}" != "mingw32"; then
3537 dnl         NEED_GTK_MAIN=yes
3538 dnl       fi
3539 dnl       ALIASES="${ALIASES} gvlc"
3540 dnl     fi
3541 dnl     CPPFLAGS="${CPPFLAGS_save}"
3542 dnl   fi
3543 dnl fi
3544 dnl 
3545 dnl
3546 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
3547 dnl
3548 dnl AC_ARG_ENABLE(gtk2,
3549 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
3550 dnl if test "${enable_gtk2}" = "yes"
3551 dnl then
3552 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3553 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3554 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3555 dnl   VLC_ADD_PLUGINS([gtk2])
3556 dnl   if test "${SYS}" != "mingw32"; then
3557 dnl     NEED_GTK2_MAIN=yes
3558 dnl   fi
3559 dnl fi
3560
3561 dnl
3562 dnl  PDA Gtk+2 module
3563 dnl
3564 AC_ARG_ENABLE(pda,
3565   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
3566 if test "${enable_pda}" = "yes"
3567 then
3568   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3569   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3570   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3571   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
3572   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
3573   VLC_ADD_PLUGINS([pda])
3574   if test "${SYS}" != "mingw32"; then
3575     NEED_GTK2_MAIN=yes
3576   fi
3577 fi
3578
3579 dnl dnl
3580 dnl dnl  Gnome module
3581 dnl dnl
3582 dnl AC_ARG_ENABLE(gnome,
3583 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
3584 dnl   [if test "${enable_gnome}" = "yes"; then
3585 dnl     # look for gnome-config
3586 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
3587 dnl     if test -x ${GNOME_CONFIG}
3588 dnl     then
3589 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
3590 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
3591 dnl     fi
3592 dnl     # now look for the gnome.h header
3593 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
3594 dnl     AC_CHECK_HEADERS(gnome.h, [
3595 dnl       VLC_ADD_PLUGINS([gnome])
3596 dnl       NEED_GTK_MAIN=yes
3597 dnl       NEED_GNOME_MAIN=yes
3598 dnl       ALIASES="${ALIASES} gnome-vlc"
3599 dnl       dnl We need this because of some moronic gnomesupport.h flavours
3600 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
3601 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
3602 dnl         AC_MSG_RESULT(yes)
3603 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
3604 dnl                   Define if <gnome.h> defines strndup.)],[
3605 dnl         AC_MSG_RESULT(no)])
3606 dnl      ],[
3607 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
3608 dnl developement tools or remove the --enable-gnome option])
3609 dnl      ])
3610 dnl     CPPFLAGS="${CPPFLAGS_save}"
3611 dnl   fi])
3612
3613 dnl
3614 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
3615 dnl
3616 dnl AC_ARG_ENABLE(gnome2,
3617 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
3618 dnl if test "${enable_gnome2}" = "yes"
3619 dnl then
3620 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
3621 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
3622 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
3623 dnl   VLC_ADD_PLUGINS([gnome2])
3624 dnl   if test "${SYS}" != "mingw32"; then
3625 dnl     NEED_GNOME2_MAIN=yes
3626 dnl   fi
3627 dnl fi
3628
3629 dnl
3630 dnl  wxWindows module
3631 dnl
3632 AC_ARG_ENABLE(wxwindows,
3633   [  --enable-wxwindows      wxWindows support (default enabled)])
3634 if test "${enable_wxwindows}" != "no"
3635 then
3636   WXWINDOWS_PATH="${PATH}"
3637   AC_ARG_WITH(wx-config-path,
3638     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
3639     [ if test "${with_wx_config_path}" != "no"
3640       then
3641         WXWINDOWS_PATH="${with_wx_config_path}:${PATH}"
3642       fi ])
3643   WXWINDOWS_NAME="wx-config"
3644   AC_ARG_WITH(wx-config,
3645     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
3646     [ if test "${with_wx_config}" != "no"
3647       then
3648         WXWINDOWS_NAME="${with_wx_config}"
3649       fi ])
3650   # look for wx-config
3651   AC_PATH_PROG(WX_CONFIG, ${WXWINDOWS_NAME}, no, ${WXWINDOWS_PATH})
3652   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
3653   then
3654     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
3655     then
3656       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.])
3657     fi
3658     AC_LANG_PUSH(C++)
3659     # Turn this error:
3660     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
3661     # into a warning. However better would be to fix playlist.cpp
3662     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
3663         [ac_cv_cxx_fpermissive],
3664         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
3665          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
3666                         ac_cv_cxx_fpermissive=no)])
3667     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
3668       VLC_ADD_CXXFLAGS([wxwindows],-fpermissive)
3669     fi
3670     VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`])
3671     VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags`])
3672     if test "$have_libcdio" = "yes"
3673     then 
3674       VLC_ADD_LDFLAGS([wxwindows],[$LIBCDIO_LIBS])
3675       VLC_ADD_CXXFLAGS([wxwindows],[$LIBCDIO_CFLAGS])
3676     else 
3677       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
3678     fi
3679
3680     if test "$have_libvcdinfo" = "yes"
3681     then 
3682       VLC_ADD_LDFLAGS([wxwindows],[$VCDINFO_LIBS])
3683       VLC_ADD_CXXFLAGS([wxwindows],[$VCDINFO_CFLAGS])
3684     else 
3685       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
3686     fi
3687
3688     # now look for the wxprec.h header
3689     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
3690     ac_cv_wx_headers=yes
3691     AC_CHECK_HEADERS(wx/wxprec.h, , [
3692       ac_cv_wx_headers=no
3693       echo "Cannot find wxWindows development headers."
3694     ])
3695     if test "${ac_cv_wx_headers}" = "yes"
3696     then
3697       VLC_ADD_PLUGINS([wxwindows])
3698       ALIASES="${ALIASES} wxvlc"
3699     fi
3700     CPPFLAGS="${CPPFLAGS_save}"
3701     AC_LANG_POP(C++)
3702   fi
3703 fi
3704
3705 dnl
3706 dnl  WinCE GUI module
3707 dnl
3708 if test "${SYS}" = "mingwce"; then
3709   VLC_ADD_BUILTINS([wince])
3710   VLC_ADD_CXXFLAGS([wince],[])
3711   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
3712   dnl Gross hack
3713   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3714 elif test "${SYS}" = "mingw32"; then
3715   VLC_ADD_CXXFLAGS([wince],[])
3716   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
3717   dnl Gross hack
3718   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3719 fi
3720
3721 dnl
3722 dnl Simple test for skins2 dependency
3723 dnl
3724 if test "${enable_skins2}" != "no"
3725 then
3726   if test "${WX_CONFIG}" = "no"
3727   then
3728     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.])
3729   fi
3730 fi
3731
3732 dnl dnl
3733 dnl dnl  Qt module
3734 dnl dnl
3735 dnl AC_ARG_ENABLE(qt,
3736 dnl   [  --enable-qt             Qt interface support (default disabled)],
3737 dnl   [if test "${enable_qt}" = "yes"; then
3738 dnl      VLC_ADD_PLUGINS([qt])
3739 dnl      ALIASES="${ALIASES} qvlc"
3740 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
3741 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
3742 dnl      AC_CHECK_LIB(qt-mt,main,[
3743 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
3744 dnl      ],[
3745 dnl        AC_CHECK_LIB(qt,main,[
3746 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
3747 dnl        ])
3748 dnl      ])
3749 dnl      LDFLAGS="${LDFLAGS_save}"
3750 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3751 dnl      if test -x ${QTDIR}/bin/moc
3752 dnl      then
3753 dnl        MOC=${QTDIR}/bin/moc
3754 dnl      else
3755 dnl        MOC=moc
3756 dnl      fi
3757 dnl    fi])
3758 dnl 
3759 dnl dnl
3760 dnl dnl  KDE module
3761 dnl dnl
3762 dnl AC_ARG_ENABLE(kde,
3763 dnl   [  --enable-kde            KDE interface support (default disabled)],
3764 dnl   [if test "${enable_kde}" = "yes"; then
3765 dnl      VLC_ADD_PLUGINS([kde])
3766 dnl      ALIASES="${ALIASES} kvlc"
3767 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
3768 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
3769 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3770 dnl      AC_CHECK_LIB(kfile,main,[
3771 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
3772 dnl      ])
3773 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3774 dnl      AC_CHECK_LIB(kdeui,main,[
3775 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
3776 dnl      ])
3777 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3778 dnl      AC_CHECK_LIB(kio,main,[
3779 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
3780 dnl      ])
3781 dnl      LDFLAGS="${LDFLAGS_save}"
3782 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
3783 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
3784 dnl      if test -x ${QTDIR}/bin/moc
3785 dnl      then
3786 dnl        MOC=${QTDIR}/bin/moc
3787 dnl      else
3788 dnl        MOC=moc
3789 dnl      fi
3790 dnl    fi])
3791
3792 dnl
3793 dnl  Opie QT embedded module
3794 dnl
3795 AC_ARG_ENABLE(opie,
3796   [  --enable-opie           Qt embedded interface support (default disabled)],
3797   [if test "${enable_opie}" = "yes"; then
3798      AC_ARG_WITH(qte,
3799      [    --with-qte=PATH       Qt Embedded headers and libraries])
3800      if test "${with_qte}" != "no" -a -n "${with_qte}"
3801      then
3802        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3803        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])
3804      else
3805        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
3806        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
3807      fi
3808      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3809      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3810        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3811      ] )
3812      CPPFLAGS="${CPPFLAGS_save}"
3813
3814      VLC_ADD_PLUGINS([opie])
3815      NEED_QTE_MAIN=yes
3816      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
3817      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
3818      if test "${with_qte}" != "no" -a -n "${with_qte}"
3819      then
3820        MOC=${with_qte}/bin/moc
3821      else
3822        MOC=${QTDIR}/bin/moc
3823      fi
3824    fi])
3825
3826 dnl
3827 dnl  MacOS X module
3828 dnl
3829 AC_ARG_ENABLE(macosx,
3830   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
3831   [if test "${enable_macosx}" = "yes"
3832    then
3833      VLC_ADD_BUILTINS([macosx])
3834      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3835    fi],
3836   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
3837      VLC_ADD_BUILTINS([macosx])
3838      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3839    )])
3840
3841 dnl
3842 dnl  QNX RTOS module
3843 dnl
3844 AC_ARG_ENABLE(qnx,
3845   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
3846     if test "${enable_qnx}" != "no"
3847     then
3848       AC_CHECK_HEADERS(Ph.h, [
3849         VLC_ADD_PLUGINS([qnx])
3850         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
3851       ])
3852     fi
3853
3854 dnl
3855 dnl  ncurses module
3856 dnl
3857 AC_ARG_ENABLE(ncurses,
3858   [  --enable-ncurses        ncurses interface support (default disabled)],
3859   [if test "${enable_ncurses}" = "yes"; then
3860      VLC_ADD_PLUGINS([ncurses])
3861      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
3862    fi])
3863
3864 dnl
3865 dnl  XOSD plugin
3866 dnl
3867 AC_ARG_ENABLE(xosd,
3868   [  --enable-xosd           xosd interface support (default disabled)])
3869 if test "${enable_xosd}" = "yes"
3870 then
3871   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
3872   AC_CHECK_LIB(xosd,xosd_set_offset,
3873       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
3874     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
3875         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
3876       AC_TRY_COMPILE([#include <xosd.h>],
3877          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
3878           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
3879   if test "${have_xosd}" = "true"
3880   then
3881     VLC_ADD_PLUGINS([xosd])
3882     VLC_ADD_LDFLAGS([xosd],[-lxosd])
3883   fi
3884 fi
3885
3886 dnl
3887 dnl Visualisation plugin
3888 dnl
3889 AC_ARG_ENABLE(visual,
3890   [  --enable-visual         visualisation plugin (default enabled)])
3891 if test "${enable_visual}" != "no"
3892 then
3893     VLC_ADD_PLUGINS([visual])
3894 fi
3895
3896 dnl
3897 dnl OpenGL visualisation plugin
3898 dnl
3899 AC_ARG_ENABLE(galaktos,
3900   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
3901 if test "${enable_galaktos}" = "yes"
3902 then
3903   AC_CHECK_HEADERS(GL/gl.h, [
3904     VLC_ADD_PLUGINS([galaktos])
3905     if test "${SYS}" != "mingw32"; then
3906       VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
3907     else
3908       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
3909     fi
3910   ])
3911 fi
3912
3913 dnl
3914 dnl  goom visualization plugin
3915 dnl
3916 AC_ARG_ENABLE(goom,
3917 [  --enable-goom           goom visualisation plugin (default disabled)])
3918 if test "${enable_goom}" = "yes"
3919 then
3920   AC_ARG_WITH(goom-tree,
3921     [    --with-goom-tree=PATH goom tree for static linking (required)])
3922
3923   dnl
3924   dnl test for --with-goom-tree
3925   dnl
3926   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
3927     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
3928     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
3929     if test -z "${real_goom_tree}"; then
3930       dnl  The given directory can't be found
3931       AC_MSG_RESULT(no)
3932       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
3933     fi
3934     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
3935       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
3936       VLC_ADD_BUILTINS([goom])
3937       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
3938       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
3939     else
3940       dnl  The given libgoom2 wasn't built, try to look for the old goom
3941       AC_MSG_RESULT(no)
3942       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
3943       if test -f "${real_goom_tree}/libgoom.a"; then
3944         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
3945         VLC_ADD_BUILTINS([goom])
3946         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
3947         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
3948       else
3949         dnl  The given libgoom wasn't built
3950         AC_MSG_RESULT(no)
3951         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
3952       fi
3953     fi
3954   else
3955     AC_CHECK_HEADERS(goom/goom.h, [
3956       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
3957       AC_CHECK_LIB(goom2, goom_init, [
3958         VLC_ADD_PLUGINS([goom])
3959         VLC_ADD_LDFLAGS([goom],[-lgoom2])
3960       ],[
3961         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
3962       ])
3963       LDFLAGS="${LDFLAGS_save}"
3964     ])
3965   fi
3966 fi
3967
3968 dnl
3969 dnl  SLP access plugin
3970 dnl
3971 AC_ARG_ENABLE(slp,
3972   [  --enable-slp            SLP service discovery support (default disabled)])
3973 if test "${enable_slp}" = "yes"
3974 then
3975   AC_ARG_WITH(slp,
3976   [    --with-slp=PATH       libslp headers and libraries])
3977   if test -z "${with_slp}"
3978   then
3979     AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
3980     if test "${have_slp}" = "true"
3981     then
3982       VLC_ADD_PLUGINS([slp])
3983       VLC_ADD_LDFLAGS([slp],[-lslp])
3984       VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
3985     fi
3986   else
3987     AC_MSG_CHECKING(for slp headers in ${with_slp})
3988     if test -f ${with_slp}/slp.h
3989     then
3990       dnl  Use ${with_slp}/libslp/slp.h
3991       AC_MSG_RESULT(yes)
3992       VLC_ADD_PLUGINS([slp])
3993       VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
3994       VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
3995       VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
3996       AC_DEFINE(HAVE_SLP_H)
3997     else
3998       dnl  No libslp could be found, sorry
3999       AC_MSG_RESULT(no)
4000       AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
4001     fi
4002   fi
4003 fi
4004
4005 dnl
4006 dnl DAAP access plugin and services discovery 
4007 dnl
4008 AC_ARG_ENABLE(daap,
4009   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4010 if test "$enable_daap" != "no"
4011 then
4012    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4013       [ VLC_ADD_PLUGINS([daap])
4014        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4015        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4016       [AC_MSG_WARN(DAAP library not found)])
4017 fi
4018
4019 dnl
4020 dnl  Lirc plugin
4021 dnl
4022 AC_ARG_ENABLE(lirc,
4023   [  --enable-lirc           lirc support (default disabled)])
4024 if test "${enable_lirc}" = "yes"
4025 then
4026   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4027   if test "${have_lirc}" = "true"
4028   then
4029     VLC_ADD_PLUGINS([lirc])
4030     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4031   fi
4032 fi
4033
4034 dnl 
4035 dnl  Joystick plugin
4036 dnl
4037 AC_ARG_ENABLE(joystick,
4038   [  --enable-joystick       joystick control (default enabled)])
4039 if test "${enable_joystick}" = "yes"; then
4040   AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
4041 fi
4042
4043 dnl
4044 dnl corba (ORBit) plugin
4045 dnl
4046 dnl Default: do not enable corba
4047 enablecorba=false
4048 AC_ARG_ENABLE(corba,
4049   [  --enable-corba          corba interface support (default disabled)])
4050 if test "${enable_corba}" = "yes"; then
4051       GLIB_VERSION=2.3.2
4052       PKG_CHECK_MODULES(CORBA, 
4053         ORBit-2.0 >= 2.8.0 \
4054         glib-2.0 >= $GLIB_VERSION \
4055         gobject-2.0 >= $GLIB_VERSION \
4056         gthread-2.0 >= $GLIB_VERSION,
4057         [
4058           enablecorba=true
4059           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4060           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4061           VLC_ADD_PLUGINS([corba snapshot]) ],
4062         [ enablecorba=false
4063           AC_MSG_WARN(corba library not found) ])
4064 fi
4065 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4066
4067 AC_ARG_WITH(,[Misc options:])
4068
4069 dnl
4070 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4071 dnl
4072 dnl  We give the user the opportunity to specify
4073 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4074 dnl
4075 AC_ARG_WITH(words,
4076   [    --with-words=endianness set endianness (big or little)])
4077   case "${with_words}" in
4078     big)
4079       ac_cv_c_bigendian=yes
4080       ;;
4081     little)
4082       ac_cv_c_bigendian=no
4083       ;;
4084     *)
4085       dnl  Try to guess endianness by matching patterns on a compiled
4086       dnl  binary, by looking for an ASCII or EBCDIC string
4087       AC_CACHE_CHECK([whether the byte order is big-endian],
4088         [ac_cv_c_bigendian],
4089         [ac_cv_c_bigendian="unknown"
4090         [cat >conftest.c <<EOF
4091         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4092         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4093         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4094         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4095         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4096         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4097         int main(void) { _a(); _e(); return 0; }
4098 EOF
4099         ]
4100         if test -f conftest.c
4101         then
4102           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4103               && test -f conftest.o
4104           then
4105             if test "`strings conftest.o | grep BIGenDianSyS`"
4106             then
4107               ac_cv_c_bigendian="yes"
4108             fi
4109             if test "`strings conftest.o | grep LiTTleEnDian`"
4110             then
4111               ac_cv_c_bigendian="no"
4112             fi
4113           fi
4114         fi
4115       ])
4116       if test "${ac_cv_c_bigendian}" = "unknown"
4117       then
4118         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4119       fi
4120       ;;
4121   esac
4122 dnl  Now we know what to use for endianness, just put it in the header
4123 if test "${ac_cv_c_bigendian}" = "yes"
4124 then
4125   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4126 fi
4127
4128 dnl
4129 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4130 dnl
4131 loader=false
4132 AC_ARG_ENABLE(loader,
4133   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4134 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4135 AS_IF([test "${enable_loader}" = "yes"],
4136   [ VLC_ADD_PLUGINS([dmo quicktime])
4137     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4138     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4139     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4140     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4141   ])
4142
4143 dnl
4144 dnl  Microsoft ActiveX support
4145 dnl
4146 activex=false
4147 AC_ARG_ENABLE(activex,
4148   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4149 if test "${enable_activex}" != "no"
4150 then
4151   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4152   then
4153     AC_CHECK_PROGS(MIDL, [midl widl], no)
4154     AC_CHECK_HEADERS(ole2.h olectl.h,
4155       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4156         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4157         AC_CHECK_HEADERS(objsafe.h,
4158           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
4159         )
4160         activex=:
4161       ],
4162       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4163     )
4164   fi
4165 fi
4166 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4167 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4168 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4169
4170 dnl
4171 dnl  Mozilla plugin
4172 dnl
4173 mozilla=false
4174 AC_ARG_ENABLE(mozilla,
4175   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4176 if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
4177 then
4178   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4179   if test "${MOZILLA_CONFIG}" = "no"
4180   then
4181     AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4182   else
4183     if test "${SYS}" != "mingw32"; then
4184       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
4185       AC_CHECK_LIB(Xt,XtStrings,
4186        [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
4187        [],
4188        [[-L${x_libraries} -lX11 -lSM -lICE]
4189       ])
4190       LDFLAGS="${LDFLAGS_save}"
4191     fi
4192     mozilla=:
4193     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4194     VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4195     VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4196     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4197     AC_CHECK_HEADERS(mozilla-config.h)
4198     CPPFLAGS="${CPPFLAGS_save}"
4199   fi
4200
4201 dnl special case for mingw32
4202 elif test "${enable_mozilla}" = "yes"
4203 then
4204   AC_CHECK_TOOL(CYGPATH, cygpath, "")
4205   AC_ARG_WITH(mozilla-sdk-path,
4206     [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
4207     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4208     CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
4209     AC_CHECK_HEADERS(mozilla-config.h, [
4210       mozilla=:
4211       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])
4212       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])
4213       XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
4214       if test -n "${CYGPATH}"; then
4215         XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
4216         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4217         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
4218       fi ])
4219     CPPFLAGS="${CPPFLAGS_save}"
4220   ])
4221 fi
4222
4223 dnl Not necessarily in ${PATH}
4224 if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
4225   XPIDL="/usr/lib/mozilla/xpidl"
4226 fi
4227 AS_IF([test "${MOZILLA_CONFIG}"], [
4228   if test -z "${XPIDL_INCL}"; then
4229     XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
4230     `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
4231   fi
4232 ])
4233 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4234
4235 dnl
4236 dnl  test plugins
4237 dnl
4238 AC_ARG_ENABLE(testsuite,
4239   [  --enable-testsuite      build test modules (default disabled)])
4240 if test "${enable_testsuite}" = "yes"
4241 then
4242   TESTS="test1 test2 test3 test4"
4243
4244   dnl  we define those so that bootstrap sets the right linker
4245   VLC_ADD_CXXFLAGS([test2],[])
4246   VLC_ADD_OBJCFLAGS([test3],[])
4247   dnl  this one is needed until automake knows what to do
4248   VLC_ADD_LDFLAGS([test3],[-lobjc])
4249
4250   VLC_ADD_PLUGINS([${TESTS}])
4251   #VLC_ADD_BUILTINS([${TESTS}])
4252 fi
4253
4254 dnl
4255 dnl  gtk_main plugin
4256 dnl
4257 if test "${NEED_GTK_MAIN}" != "no"
4258 then
4259     VLC_ADD_PLUGINS([gtk_main])
4260     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4261     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4262 fi
4263
4264 if test "${NEED_GNOME_MAIN}" != "no"
4265 then
4266     VLC_ADD_PLUGINS([gnome_main])
4267     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4268     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4269 fi
4270
4271 if test "${NEED_GTK2_MAIN}" != "no"
4272 then
4273     VLC_ADD_PLUGINS([gtk2_main])
4274     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4275     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4276     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4277     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4278 fi
4279
4280 if test "${NEED_GNOME2_MAIN}" != "no"
4281 then
4282     VLC_ADD_PLUGINS([gnome2_main])
4283     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
4284     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
4285 fi
4286
4287 dnl
4288 dnl  qte_main plugin
4289 dnl
4290 if test "${NEED_QTE_MAIN}" != "no"
4291 then
4292     VLC_ADD_PLUGINS([qte_main])
4293     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4294     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4295     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4296 fi
4297
4298
4299 dnl
4300 dnl  Plugin and builtin checks
4301 dnl
4302 builtin_support=false
4303 plugin_support=:
4304
4305 dnl Support for plugins - this must be AT THE END
4306 AC_ARG_ENABLE(plugins,
4307   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
4308   [if test "${enable_plugins}" = "no"
4309    then
4310      plugin_support=false
4311    fi])
4312
4313 dnl Automagically disable plugins if there is no system support for
4314 dnl dynamically loadable files (.so, .dll, .dylib).
4315 dnl don't forget vlc-win32 still can load .dll as plugins
4316 if test "${ac_cv_have_plugins}" = "no"
4317 then
4318   echo "*** Your system doesn't have plugin support. All plugins will be built"
4319   echo "statically."
4320   plugin_support=false
4321 fi
4322
4323 dnl Export automake variables
4324 if ${plugin_support}
4325 then
4326   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
4327   for plugin in `echo ${PLUGINS}`
4328   do
4329     eval "${plugin}_p=yes"
4330   done
4331 else
4332   VLC_ADD_BUILTINS([${PLUGINS}])
4333   PLUGINS=""
4334 fi
4335 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
4336
4337 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
4338 then
4339   builtin_support=:
4340   for builtin in `echo ${BUILTINS}`
4341   do
4342     eval "${builtin}_b=yes"
4343   done
4344 fi]
4345 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
4346
4347 dnl Import conditional variables generated by bootstrap
4348 VLC_CONDITIONALS
4349
4350 dnl
4351 dnl  Stuff used by the program
4352 dnl
4353 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
4354 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 the VideoLAN team", [Copyright string])
4355 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4356
4357 dnl Old definitions for version-dependant plugins
4358 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
4359 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
4360 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
4361
4362 dnl New definitions with value matching 0.8.2 release
4363 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__0_8_2", [String suffix for module functions])
4364 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, 0_8_2, [Symbol suffix for module functions])
4365
4366 dnl Version number for ActiveX INF
4367 VERSION32="`echo -n ${VERSION} | sed -e 's/@<:@a-z\-@:>@//g' | sed -e 'y/./,/'; echo ',0'`"
4368 AC_SUBST(VERSION32)
4369
4370 DATA_PATH="${ac_tool_prefix}/share/vlc"
4371 AC_SUBST(DATA_PATH)
4372 PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
4373 AC_SUBST(PLUGIN_PATH)
4374
4375 dnl
4376 dnl  Handle substvars that use $(top_srcdir)
4377 dnl
4378 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4379 AC_SUBST(VLC_CONFIG)
4380 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
4381
4382 dnl
4383 dnl  Restore *FLAGS
4384 dnl
4385 VLC_RESTORE_FLAGS
4386
4387 dnl
4388 dnl  Create the vlc-config script
4389 dnl
4390 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
4391 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
4392
4393 dnl
4394 dnl  Configuration is finished
4395 dnl
4396 AC_SUBST(SYS)
4397 AC_SUBST(ARCH)
4398 AC_SUBST(ALIASES)
4399 AC_SUBST(ASM)
4400 AC_SUBST(MOC)
4401 AC_SUBST(WINDRES)
4402 AC_SUBST(XPIDL)
4403 AC_SUBST(XPIDL_INCL)
4404 AC_SUBST(LIBEXT)
4405 AC_SUBST(INCLUDES)
4406 AC_SUBST(ALL_LINGUAS)
4407
4408 dnl Import substitutions generated by bootstrap
4409 VLC_SUBSTS
4410
4411 dnl Create vlc-config.in
4412 VLC_OUTPUT_VLC_CONFIG_IN
4413
4414 AC_CONFIG_FILES([
4415   Makefile
4416   activex/Makefile
4417   activex/axvlc.inf
4418   debian/Makefile
4419   doc/Makefile
4420   intl/Makefile
4421   ipkg/Makefile
4422   lib/Makefile
4423   loader/Makefile
4424   modules/Makefile
4425   mozilla/Makefile
4426   m4/Makefile
4427   po/Makefile.in
4428   share/Makefile
4429   src/Makefile
4430 ])
4431
4432 AC_CONFIG_FILES([
4433   modules/access/Makefile
4434   modules/access/dshow/Makefile
4435   modules/access/dvb/Makefile
4436   modules/access/mms/Makefile
4437   modules/access/pvr/Makefile
4438   modules/access/satellite/Makefile
4439   modules/access/v4l/Makefile
4440   modules/access/cdda/Makefile
4441   modules/access/vcd/Makefile
4442   modules/access/vcdx/Makefile
4443   modules/access/screen/Makefile
4444   modules/access_filter/Makefile
4445   modules/access_output/Makefile
4446   modules/audio_filter/Makefile
4447   modules/audio_filter/channel_mixer/Makefile
4448   modules/audio_filter/converter/Makefile
4449   modules/audio_filter/resampler/Makefile
4450   modules/audio_mixer/Makefile
4451   modules/audio_output/Makefile
4452   modules/codec/Makefile
4453   modules/codec/cmml/Makefile
4454   modules/codec/dmo/Makefile
4455   modules/codec/ffmpeg/Makefile
4456   modules/codec/spudec/Makefile
4457   modules/control/Makefile
4458   modules/control/corba/Makefile
4459   modules/demux/Makefile
4460   modules/demux/asf/Makefile
4461   modules/demux/avi/Makefile
4462   modules/demux/mp4/Makefile
4463   modules/demux/mpeg/Makefile
4464   modules/demux/playlist/Makefile
4465   modules/demux/util/Makefile
4466   modules/gui/Makefile
4467   modules/gui/beos/Makefile
4468   modules/gui/pda/Makefile
4469   modules/gui/gtk/Makefile
4470   modules/gui/gtk2/Makefile
4471   modules/gui/kde/Makefile
4472   modules/gui/macosx/Makefile
4473   modules/gui/qnx/Makefile
4474   modules/gui/qt/Makefile
4475   modules/gui/skins2/Makefile
4476   modules/gui/wxwindows/Makefile
4477   modules/gui/wince/Makefile
4478   modules/misc/Makefile
4479   modules/misc/dummy/Makefile
4480   modules/misc/memcpy/Makefile
4481   modules/misc/network/Makefile
4482   modules/misc/testsuite/Makefile
4483   modules/misc/playlist/Makefile
4484   modules/misc/xml/Makefile
4485   modules/mux/Makefile
4486   modules/mux/mpeg/Makefile
4487   modules/packetizer/Makefile
4488   modules/services_discovery/Makefile
4489   modules/stream_out/Makefile
4490   modules/stream_out/transrate/Makefile
4491   modules/video_chroma/Makefile
4492   modules/video_filter/Makefile
4493   modules/video_filter/swscale/Makefile
4494   modules/video_output/Makefile
4495   modules/video_output/directx/Makefile
4496   modules/video_output/qte/Makefile
4497   modules/video_output/x11/Makefile
4498   modules/visualization/Makefile
4499   modules/visualization/visual/Makefile
4500   modules/visualization/galaktos/Makefile
4501 ])
4502
4503 dnl Generate makefiles
4504 AC_OUTPUT
4505
4506 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4507 # not provided with the source
4508 ${SHELL} ./config.status --file=vlc-config
4509 chmod 0755 vlc-config
4510
4511 dnl echo "Enabled builtin modules :"
4512 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
4513
4514 dnl echo "Enabled plugin modules :"
4515 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
4516
4517 printf "
4518 vlc configuration
4519 --------------------
4520 vlc version           : ${VERSION}
4521 system                : ${SYS}
4522 architecture          : ${ARCH}
4523 build flavour         : "
4524 test "${enable_debug}" = "yes" && printf "debug "
4525 test "${enable_cprof}" = "yes" && printf "cprof "
4526 test "${enable_gprof}" = "yes" && printf "gprof "
4527 test "${enable_optimizations}" = "yes" && printf "optim "
4528 test "${enable_release}" = "yes" && printf "release " || printf "devel "
4529 echo "
4530 vlc aliases           :${ALIASES}
4531
4532 You can tune the compiler flags in vlc-config.
4533 To build vlc and its plugins, type \`make'.
4534 "
4535