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