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