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