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