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