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