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