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