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