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