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