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