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