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