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