82984b8e407744248b49e2a3f080014cbf91e4d1
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.8.5-svn)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="8"
6 VERSION_REVISION="5"
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.5-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
97     topdir="`dirname $0`"
98     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
99        topdir="`pwd`/$topdir"
100     fi
101
102   if test -d ${topdir}/extras/contrib/lib; then
103     export PATH=${topdir}/extras/contrib/bin:$PATH
104     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
105     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
106     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
107     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
108     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
109     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
110     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
111     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
112     if test $build = $host -o $PKG_CONFIG_LIBDIR; then
113         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
114     else
115         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
116     fi
117     if test -d ${topdir}/extras/contrib/vlc-lib; then
118       LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
119       LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
120     fi
121     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
122     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
123
124 dnl kludge because only the debian package provides a ffmpeg-config
125     if test -z $with_ffmpeg_config_path; then 
126        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
127     fi
128     if test -z $with_livedotcom_tree; then
129        with_livedotcom_tree=${topdir}/extras/contrib/src/live
130     fi
131     if test -z $with_goom_tree; then
132       with_goom_tree=${topdir}/extras/contrib/src/goom
133     fi
134
135     if test ".`uname -s`" = ".Darwin"; then
136       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
137       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
138     elif test ".`uname -s`" = ".BeOS"; then
139       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
140       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
141     fi
142   fi
143 fi
144 dnl
145 dnl  Set default values
146 dnl
147 LDFLAGS_vlc="${LDFLAGS}"
148
149 dnl
150 dnl  Check the operating system
151 dnl
152 case "${target_os}" in
153   "")
154     SYS=unknown
155     ;;
156   linux*)
157     SYS=linux
158     ;;
159   bsdi*)
160     SYS=bsdi
161     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
162     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
163     ;;
164   *bsd*)
165     SYS="${target_os}"
166     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
167     case "${target_os}" in
168       freebsd*)
169         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
170         CPPFLAGS="${CPPFLAGS_save}"
171         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
172         LDFLAGS="${LDLFAGS_save}"
173         ;;
174     esac
175     ;;
176   darwin1.[0123])
177     dnl Mac OS X < 10.3
178     SYS=darwin
179     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
180     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
181     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
182     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
183     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
184     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
185     VLC_ADD_CFLAGS([vlc],[-x objective-c])
186     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
187     ;;
188   darwin*)
189     SYS=darwin
190     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
191     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
192     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
193     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
194     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
195     VLC_ADD_CFLAGS([vlc],[-x objective-c])
196     ;;
197   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
198     AC_CHECK_TOOL(WINDRES, windres, :)
199
200     case "${target_os}" in
201       *mingw32*)
202         SYS=mingw32
203         ;;
204       *cygwin*)
205         dnl Check if we are using the mno-cygwin mode in which case we are
206         dnl actually dealing with a mingw32 compiler.
207         AC_EGREP_CPP(yes,
208             [#ifdef WIN32
209              yes
210              #endif],
211             SYS=mingw32, SYS=cygwin)
212         ;;
213       *wince* | *mingwce* | *pe*)
214         SYS=mingwce
215         ;;
216     esac
217
218     if test "${SYS}" = "mingw32"; then
219         # add ws2_32 for closesocket, select, recv
220         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
221         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
222         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
223         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])
224     fi
225     if test "${SYS}" = "mingwce"; then
226         # add ws2 for closesocket, select, recv
227         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
228         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
229         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
230         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
231    fi
232     ;;
233   *nto*)
234     SYS=nto
235     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
236     ;;
237   solaris*)
238     SYS=solaris
239     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
240     # Perhaps it is useful other places as well? 
241     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
242     ;;
243   hpux*)
244     SYS=hpux
245     ;;
246   beos)
247     SYS=beos
248     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
249     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
250     VLC_ADD_CXXFLAGS([beos],[])
251     VLC_ADD_LDFLAGS([vlc beos logger],[-lbe])
252     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
253
254     dnl Check for BONE
255     if test -f /boot/beos/system/lib/libbind.so; then
256         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket])
257     else
258         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet])
259     fi
260
261     dnl Ugly check for Zeta
262     if test -f /boot/beos/system/lib/libzeta.so; then
263         VLC_ADD_LDFLAGS([beos],[-lzeta])
264     fi
265     ;;
266   *)
267     SYS="${target_os}"
268     ;;
269 esac
270 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
271 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
272 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
273 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
274
275 dnl
276 dnl  Check for Mac OS X SDK settings
277 dnl
278 AC_ARG_WITH(macosx-sdk,
279    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
280 if test "${with_macosx_sdk}" != "no" ; then
281   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
282   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
283   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
284   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
285   export MACOSX_DEPLOYMENT_TARGET=10.3
286   MACOSX_DEPLOYMENT_TARGET="10.3"
287 fi
288
289 dnl
290 dnl Gettext stuff
291 dnl
292 ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl oc pt_BR ro ru sv tr zh_CN zh_TW"
293 AM_GNU_GETTEXT_VERSION(0.11.5)
294 AM_GNU_GETTEXT
295 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
296   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
297   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
298   AS_IF([test "${enable_libtool}" != "no"], [
299     INCLUDED_LIBINTL="${LTLIBINTL}"
300   ],[
301     INCLUDED_LIBINTL="${LIBINTL}"
302   ])
303 else
304   VLC_ADD_LDFLAGS([vlc],[${LIBINTL}])
305   INCLUDED_LIBINTL=
306 fi
307 AC_SUBST(INCLUDED_LIBINTL)
308 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
309
310 dnl
311 dnl Iconv stuff
312 dnl
313 if test "${SYS}" != "mingwce"; then
314 AS_IF([test "$am_cv_func_iconv" != "yes"],
315         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
316 fi
317 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
318 AS_IF([test "${enable_libtool}" != "no"], [
319   VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
320 ],[
321   VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
322 ])
323
324 dnl Check for the need to include the mingwex lib for mingw32
325 if test "${SYS}" = "mingw32"
326 then
327     AC_CHECK_LIB(mingwex,opendir,
328         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
329             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
330     )
331 fi
332
333 dnl Check for fnative-struct or mms-bitfields support for mingw32
334 if test "${SYS}" = "mingw32"
335 then
336     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
337         [ac_cv_c_mms_bitfields],
338         [CFLAGS="${CFLAGS_save} -mms-bitfields"
339          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
340     if test "${ac_cv_c_mms_bitfields}" != "no"; then
341         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
342         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
343     else
344         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
345             [ac_cv_c_fnative_struct],
346             [CFLAGS="${CFLAGS_save} -fnative-struct"
347              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
348         if test "${ac_cv_c_fnative_struct}" != "no"; then
349             CFLAGS_save="${CFLAGS_save} -fnative-struct";
350             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
351         fi
352     fi
353
354     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
355 fi
356
357 dnl Check for fvtable-thunks support for mingw32
358 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
359 then
360 AC_LANG_PUSH(C++)
361     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
362         [ac_cv_cxx_fvtable_thunks],
363         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
364          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
365                         ac_cv_cxx_fvtable_thunks=no)])
366     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
367         CXXFLAGS_mingw32_special="-fvtable-thunks"
368     fi
369
370     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
371 AC_LANG_POP(C++)
372 fi
373
374 dnl Plugin compilation stuff
375
376 VLC_LIBRARY_SUFFIX
377
378 VLC_SYMBOL_PREFIX
379 AC_SUBST(SYMPREF)
380
381 AS_IF([test "${enable_libtool}" = "no"], [
382 case "${SYS}" in
383   mingw32|cygwin)
384     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
385     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
386     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
387     ;;
388   mingwce)
389     ;;
390   *)
391     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
392     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
393     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
394     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
395     ;;
396 esac
397 ])
398
399 dnl The -DSYS_FOO flag
400 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
401
402 dnl Check for system libs needed
403 need_libc=false
404
405 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat)
406
407 dnl Check for usual libc functions
408 AC_CHECK_FUNCS(strdup strndup atof)
409 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
410 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
411 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
412
413 dnl Check for setlocal and langinfo
414 AC_CHECK_FUNCS(setlocale)
415 AC_CHECK_HEADERS(langinfo.h)
416 AC_CHECK_FUNCS(nl_langinfo)
417
418 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
419   [AC_TRY_LINK([#include <langinfo.h>],
420     [char* cs = nl_langinfo(CODESET);],
421     ac_cv_langinfo_codeset=yes,
422     ac_cv_langinfo_codeset=no)
423   ])
424 if test ${ac_cv_langinfo_codeset} = yes; then
425   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
426     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
427 fi
428
429 AC_CHECK_FUNCS(connect,,[
430   AC_CHECK_LIB(socket,connect,[
431     VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lsocket)
432     LIBS_socket="-lsocket"
433   ])
434 ])
435
436 AC_CHECK_FUNCS(send,,[
437   AC_CHECK_LIB(socket,send,[
438     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
439   ])
440 ])
441
442 AC_CHECK_FUNCS(gethostbyname,,[
443   AC_CHECK_LIB(nsl,gethostbyname,[
444     VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl])
445   ],[
446     AC_CHECK_LIB(bind,gethostbyname,[
447       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
448     ])
449   ])
450 ])
451
452 dnl Check for socklen_t
453 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
454   [AC_TRY_COMPILE(
455      [#include <sys/types.h>
456       #include <sys/socket.h>],
457      [socklen_t len = 42; return len;],
458      ac_cv_type_socklen_t=yes,
459      ac_cv_type_socklen_t=no)])
460 if test "${ac_cv_type_socklen_t}" != "no"; then
461   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
462 fi
463
464 dnl Check for struct sockaddr_storage
465 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
466 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
467 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
468   [AC_TRY_COMPILE(
469     [#include <sys/types.h>
470      #if defined( UNDER_CE )
471      # include <winsock.h>
472      #elif defined( WIN32 )
473      # include <winsock2.h>
474      #else
475      # include <sys/socket.h>
476      #endif], [struct sockaddr_storage addr;],
477      ac_cv_struct_sockaddr_storage=yes,
478      ac_cv_struct_sockaddr_storage=no)])
479 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
480   AC_DEFINE(sockaddr_storage, sockaddr)
481   AC_DEFINE(ss_family, sa_family)
482 ])
483
484 dnl getaddrinfo, getnameinfo and gai_strerror check
485 dnl  -lnsl and -lsocket are needed on Solaris;
486 dnl  we purposedly make the test fail on Windows
487 LIBS_save="${LIBS}"
488 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
489 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
490
491 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
492 dnl are
493 LIBS="${LIBS_gai}"
494 AC_CHECK_FUNCS([getnameinfo gai_strerror])
495 LIBS="${LIBS_save}"
496
497 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
498 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
499 [#include <sys/types.h>
500 #if defined( WIN32 ) || defined( UNDER_CE )
501 # if defined(UNDER_CE) && defined(sockaddr_storage)
502 #  undef sockaddr_storage
503 # endif
504 # include <winsock2.h>
505 # include <ws2tcpip.h>
506 #else
507 # include <netdb.h>
508 #endif])
509
510 dnl Check for va_copy
511 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
512   AC_TRY_LINK(
513     [#include <stdarg.h>],
514     [va_list ap1, ap2; va_copy(ap1,ap2);],
515     [ac_cv_c_va_copy="yes"],
516     [ac_cv_c_va_copy="no"]))
517 if test "${ac_cv_c_va_copy}" = "yes"; then
518   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
519 fi
520 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
521   AC_TRY_LINK(
522     [#include <stdarg.h>],
523     [va_list ap1, ap2; __va_copy(ap1,ap2);],
524     [ac_cv_c___va_copy="yes"],
525     [ac_cv_c___va_copy="no"]))
526 if test "${ac_cv_c___va_copy}" = "yes"; then
527   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
528 fi
529
530 AC_CHECK_FUNCS(inet_aton,,[
531   AC_CHECK_LIB(resolv,inet_aton,[
532     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
533   ])
534 ])
535
536 dnl Check for getopt (always use builtin one on win32)
537 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
538 need_getopt=:
539 else
540 need_getopt=false
541 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
542 [ # FreeBSD has a gnugetopt library for this:
543   AC_CHECK_LIB([gnugetopt],[getopt_long],
544     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
545      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
546     [need_getopt=:])])
547 fi
548 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
549
550 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
551 AC_TYPE_SIGNAL
552 AC_CHECK_LIB(m,cos,[
553   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
554 ])
555 AC_CHECK_LIB(m,pow,[
556   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc],[-lm])
557 ])
558 AC_CHECK_LIB(m,sqrt,[
559   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
560 ])
561 AC_CHECK_LIB(mx,sqrtf,[
562   VLC_ADD_LDFLAGS([x264],[-lmx])
563 ])
564 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
565
566 dnl Check for dynamic plugins
567 ac_cv_have_plugins=no
568
569 # OS X style
570 AC_CHECK_HEADERS(mach-o/dyld.h,
571   [AC_CHECK_FUNCS(NSLinkModule,
572     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
573      ac_cv_have_plugins=yes])])
574
575 # HP-UX style
576 if test "${ac_cv_have_plugins}" = "no"; then
577   AC_CHECK_HEADERS(dl.h)
578   ac_cv_my_have_shl_load=no
579   AC_CHECK_FUNC(shl_load,
580    [ac_cv_my_have_shl_load=yes,
581     AC_CHECK_LIB(dld, shl_load,
582      [ac_cv_my_have_shl_load=yes
583       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
584   if test "${ac_cv_my_have_shl_load}" = "yes"; then
585     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
586     ac_cv_have_plugins=yes
587   fi
588 fi
589
590 # Whatever style
591 if test "${ac_cv_have_plugins}" = "no"; then
592   AC_CHECK_LIB(dld, dld_link,
593    [VLC_ADD_LDFLAGS([vlc],[-ldld])
594     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
595     ac_cv_have_plugins=yes])
596 fi
597
598 # Win32 style
599 if test "${ac_cv_have_plugins}" = "no"; then
600   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
601     AC_CHECK_LIB(kernel32, main,
602      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
603       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
604       ac_cv_have_plugins=yes])
605   fi
606 fi
607
608 # WinCE style
609 if test "${ac_cv_have_plugins}" = "no"; then
610   if test "${SYS}" = "mingwce"; then
611     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
612     ac_cv_have_plugins=yes
613   fi
614 fi
615
616 # BeOS style
617 if test "${ac_cv_have_plugins}" = "no"; then
618   AC_CHECK_HEADERS(image.h)
619   AC_CHECK_FUNCS(load_add_on,
620    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
621     ac_cv_have_plugins=yes])
622 fi
623
624 # Only test for dlopen() if the others didn't work
625 if test "${ac_cv_have_plugins}" = "no"; then
626   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
627   ac_cv_my_have_dlopen=no
628   AC_CHECK_FUNC(dlopen,
629     ac_cv_my_have_dlopen=yes,
630     AC_CHECK_LIB(dl, dlopen,
631       ac_cv_my_have_dlopen=yes
632       VLC_ADD_LDFLAGS([vlc],[-ldl]),
633       AC_CHECK_LIB(svld, dlopen,
634         ac_cv_my_have_dlopen=yes
635         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
636   if test "${ac_cv_my_have_dlopen}" = "yes"; then
637     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
638     ac_cv_have_plugins=yes
639   fi
640 fi
641
642 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
643 dnl Check for pthreads - borrowed from XMMS
644 THREAD_LIB=error
645 if test "${THREAD_LIB}" = "error"; then
646   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
647 fi
648 if test "${THREAD_LIB}" = "error"; then
649   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
650 fi
651 if test "${THREAD_LIB}" = "error"; then
652   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
653 fi
654 if test "${THREAD_LIB}" = "error"; then
655   AC_CHECK_FUNCS(pthread_mutex_lock)
656   THREAD_LIB=""
657 fi
658
659 dnl Check for cthreads under GNU/Hurd for instance
660 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
661
662 dnl
663 dnl  GNU portable threads
664 dnl
665 AC_ARG_ENABLE(pth,
666   [  --enable-pth            GNU Pth support (default disabled)],
667   [ if test "${enable_pth}" = "yes"; then
668     AC_CHECK_LIB(pth,pth_init)
669     AC_MSG_CHECKING(for pth_init in pth.h)
670     AC_EGREP_HEADER(pth_init,pth.h,[
671       AC_MSG_RESULT(yes)
672       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
673                 Define if <pth.h> defines pth_init)
674       THREAD_LIB="-lpth"
675     ],[
676       AC_MSG_RESULT(no)
677     ])
678     fi
679 ])
680
681 dnl
682 dnl  State Threads
683 dnl
684 AC_ARG_ENABLE(st,
685   [  --enable-st             State Threads (default disabled)],
686   [ if test "${enable_st}" = "yes"; then
687     AC_CHECK_LIB(st,st_init)
688     AC_MSG_CHECKING(for st_init in st.h)
689     AC_EGREP_HEADER(st_init,st.h,[
690       AC_MSG_RESULT(yes)
691       AC_DEFINE(ST_INIT_IN_ST_H, 1,
692                 Define if <st.h> defines st_init)
693       THREAD_LIB="-lst"
694     ],[
695       AC_MSG_RESULT(yes)
696     ])
697     fi
698 ])
699
700 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
701
702 dnl Don't link with rt when using GNU-pth
703 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
704   dnl HP/UX port
705   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
706
707   have_nanosleep=false
708   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
709     AC_CHECK_LIB(rt,nanosleep,
710       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
711       [AC_CHECK_LIB(posix4,nanosleep,
712           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
713     )
714   ])
715   if ${have_nanosleep}; then
716     AC_DEFINE(HAVE_NANOSLEEP, 1,
717               Define if nanosleep is available.)
718   fi
719 fi
720
721 dnl Check for misc headers
722 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
723 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
724   AC_MSG_RESULT(yes)
725   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
726             Define if <pthread.h> defines pthread_cond_t.)],[
727   AC_MSG_RESULT(no)])
728
729 AC_MSG_CHECKING(for pthread_once in pthread.h)
730 AC_EGREP_HEADER(pthread_once,pthread.h,[
731   AC_MSG_RESULT(yes)
732   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
733             Define if <pthread.h> defines pthread_once.)],[
734   AC_MSG_RESULT(no)])
735 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
736
737 AC_MSG_CHECKING(for strncasecmp in strings.h)
738 AC_EGREP_HEADER(strncasecmp,strings.h,[
739   AC_MSG_RESULT(yes)
740   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
741             Define if <strings.h> defines strncasecmp.)],[
742   AC_MSG_RESULT(no)])
743
744 dnl Check for headers
745 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)
746 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
747 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
748 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
749 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
750 AC_CHECK_HEADERS(linux/version.h)
751 AC_CHECK_HEADERS(syslog.h)
752 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
753
754 AC_HEADER_TIME
755
756 dnl Check for dirent
757 need_dirent=false
758 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
759 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
760
761 dnl Mac OS X and other OSes don't have declaration for nanosleep
762 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
763 AC_MSG_CHECKING(for nanosleep in time.h)
764 AC_EGREP_HEADER(nanosleep,time.h,[
765   AC_MSG_RESULT(yes)
766   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
767             Define if <time.h> defines nanosleep.)
768 ],[
769   AC_MSG_RESULT(no)
770 ])
771 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
772
773 dnl Make sure we have timespecs
774 AC_MSG_CHECKING(for timespec in sys/time.h)
775 AC_EGREP_HEADER(timespec,sys/time.h,[
776   AC_MSG_RESULT(yes)
777   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
778             Define if <sys/time.h> defines struct timespec.)
779 ],[
780   AC_MSG_RESULT(no)
781 ])
782
783 dnl Check for threads library
784 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
785 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
786 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
787
788 dnl Find where are the X headers and libraries
789 AC_PATH_XTRA()
790
791 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.
792
793 PKG_PROG_PKG_CONFIG()
794
795 dnl Check for hal
796 AC_ARG_ENABLE(hal,
797   [  --enable-hal            Linux HAL services discovery (default enabled)])
798  
799 if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
800 then
801   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
802     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
803       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
804       VLC_ADD_PLUGINS([hal]) 
805       VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
806       VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
807     dnl No hal 0.5 Test for 0.2
808     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
809        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
810         VLC_ADD_PLUGINS([hal])
811         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
812         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
813        [AC_MSG_WARN(HAL library not found)])
814     ]
815   )
816 fi
817
818 dnl Build the gtk_main plugins?
819 NEED_GTK_MAIN=no
820 NEED_GNOME_MAIN=no
821 NEED_GTK2_MAIN=no
822 NEED_GNOME2_MAIN=no
823
824 dnl build the qte plugin ?
825 NEED_QTE_MAIN=no
826
827 dnl Check for ntohl, etc.
828 AC_CACHE_CHECK([for ntohl in sys/param.h],
829     [ac_cv_c_ntohl_sys_param_h],
830     [CFLAGS="${CFLAGS_save} -Wall -Werror"
831      AC_TRY_COMPILE([#include <sys/param.h>],
832         [void foo() { int meuh; ntohl(meuh); }],
833         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
834 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
835     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
836 fi
837
838 # XXX: do this with an M4 macro?
839 #dnl Check for various -W flags
840 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
841 #do
842 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
843 #        [ac_cv_c_W${flag}],
844 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
845 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
846 #    if test "${ac_cv_c_W${flag}}" != "no"; then
847 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
848 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
849 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
850 #    fi
851 #done
852
853 AC_CACHE_CHECK([if \$CC accepts -Wall],
854     [ac_cv_c_Wall],
855     [CFLAGS="-Wall ${CFLAGS_save}"
856      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
857
858 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
859     [ac_cv_c_Wconversion],
860     [CFLAGS="-Wconversion ${CFLAGS_save}"
861      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
862
863 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
864     [ac_cv_c_Wunreachable_code],
865     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
866      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
867
868 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
869     [ac_cv_c_Wsign_compare],
870     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
871      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
872
873 if test "${ac_cv_c_Wall}" != "no"; then
874     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
875     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
876     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
877 fi
878
879 if test "${ac_cv_c_Wsign_compare}" != "no"; then
880     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
881     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
882     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
883 fi
884
885 dnl Check for -pipe
886 AC_CACHE_CHECK([if \$CC accepts -pipe],
887     [ac_cv_c_pipe],
888     [CFLAGS="${CFLAGS_save} -pipe"
889      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
890 if test "${ac_cv_c_pipe}" != "no"; then
891     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
892     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
893     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
894 fi
895
896 dnl Check for various optimization flags
897 AC_CACHE_CHECK([if \$CC accepts -Os],
898     [ac_cv_c_os],
899     [CFLAGS="${CFLAGS_save} -Os"
900      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
901 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
902     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
903 fi
904
905 AC_CACHE_CHECK([if \$CC accepts -O3],
906     [ac_cv_c_o3],
907     [CFLAGS="${CFLAGS_save} -O3"
908      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
909 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
910     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
911 fi
912
913 AC_CACHE_CHECK([if \$CC accepts -O2],
914     [ac_cv_c_o2],
915     [CFLAGS="${CFLAGS_save} -O2"
916      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
917 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
918     if test "${ac_cv_c_o3}" = "no"; then
919         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
920     fi
921     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
922 else 
923     AC_CACHE_CHECK([if \$CC accepts -O],
924         [ac_cv_c_o],
925         [CFLAGS="${CFLAGS_save} -O"
926          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
927     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
928         if test "${ac_cv_c_o3}" = "no"; then
929             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
930         fi
931         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
932     fi
933 fi
934
935 dnl Check for -ffast-math
936 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
937     [ac_cv_c_fast_math],
938     [CFLAGS="${CFLAGS_save} -ffast-math"
939      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
940 if test "${ac_cv_c_fast_math}" != "no"; then
941     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
942 fi
943
944 dnl Check for -funroll-loops
945 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
946 if test "${SYS}" != "beos"
947 then
948   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
949       [ac_cv_c_unroll_loops],
950       [CFLAGS="${CFLAGS_save} -funroll-loops"
951        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
952   if test "${ac_cv_c_unroll_loops}" != "no"; then
953       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
954   fi
955 fi
956
957 dnl Check for -fomit-frame-pointer
958 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
959     [ac_cv_c_omit_frame_pointer],
960     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
961      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
962 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
963     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
964     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
965     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
966 fi
967
968 dnl Check for -mdynamic-no-pic
969 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
970     [ac_cv_c_dynamic_no_pic],
971     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
972      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
973 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
974     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
975     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
976 ])
977
978 dnl Check for Darwin plugin linking flags
979 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
980     [ac_cv_ld_darwin],
981     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
982      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
983 if test "${ac_cv_ld_darwin}" != "no"; then
984     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
985 fi
986
987 dnl Check for standard plugin linking flags
988 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
989 if test "${SYS}" = "beos"; then
990   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
991 else
992   AC_CACHE_CHECK([if \$CC accepts -shared],
993       [ac_cv_ld_plugins],
994       [CFLAGS="${CFLAGS_save} -shared"
995        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
996   if test "${ac_cv_ld_plugins}" != "no"; then
997     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
998   fi
999 fi
1000
1001 dnl Check for variadic macros
1002 AC_CACHE_CHECK([for variadic cpp macros],
1003     [ac_cv_cpp_variadic_macros],
1004     [CFLAGS="${CFLAGS_save}"
1005      AC_TRY_COMPILE(
1006          [#include <stdio.h>
1007           #define a(b,c...) printf(b,##c)],
1008          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1009          ac_cv_cpp_variadic_macros=yes,
1010          ac_cv_cpp_variadic_macros=no)])
1011 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1012     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1013 fi
1014
1015 dnl Checks for __attribute__(aligned()) directive
1016 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1017     [ac_cv_c_attribute_aligned],
1018     [ac_cv_c_attribute_aligned=0
1019         CFLAGS="${CFLAGS_save} -Werror"
1020     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1021         AC_TRY_COMPILE([],
1022         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1023         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1024     done
1025         CFLAGS="${CFLAGS_save}"])
1026 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1027     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1028         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1029 fi
1030
1031 dnl Checks for __attribute__(format()) directive
1032 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1033     [ac_cv_c_attribute_format],
1034     [ac_cv_c_attribute_format=no
1035         CFLAGS="${CFLAGS_save} -Werror"
1036         AC_TRY_COMPILE([],
1037         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1038         [ac_cv_c_attribute_format=yes])
1039         CFLAGS="${CFLAGS_save}"])
1040 if test "${ac_cv_c_attribute_format}" != "no"; then
1041     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1042 fi
1043
1044 dnl Check for __attribute__(())
1045 AC_CACHE_CHECK([for __attribute__((packed))],
1046   [ac_cv_c_attribute_packed],
1047   [ac_cv_c_attribute_packed=no
1048    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1049                     [ac_cv_c_attribute_packed=yes])])
1050 if test "${ac_cv_c_attribute_packed}" != "no"; then
1051   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1052 fi
1053
1054 dnl
1055 dnl  Check the CPU
1056 dnl
1057 case "${target_cpu}" in
1058   "")
1059     ARCH=unknown
1060     ;;
1061   *)
1062     ARCH="${target_cpu}"
1063     ;;
1064 esac
1065
1066 dnl
1067 dnl  Enable profiling
1068 dnl
1069 AC_ARG_ENABLE(gprof,
1070 [  --enable-gprof          gprof profiling (default disabled)])
1071 AC_ARG_ENABLE(cprof,
1072 [  --enable-cprof          cprof profiling (default disabled)])
1073 test "${enable_gprof}" != "yes" && enable_gprof="no"
1074 test "${enable_cprof}" != "yes" && enable_cprof="no"
1075
1076 dnl
1077 dnl  default modules
1078 dnl
1079 VLC_ADD_PLUGINS([dummy logger memcpy])
1080 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
1081 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1082 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
1083 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
1084 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1085 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1086 VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
1087 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1088 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1089 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1090 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1091 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1092 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1093
1094 if test "${SYS}" != "mingwce"; then
1095 dnl  VLC_ADD_PLUGINS([externrun])
1096   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1097   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
1098   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1099   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1100   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1101   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1102   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1103   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1104 fi
1105
1106 dnl
1107 dnl  Switch to enable a version of VLC where most modules will be builtin
1108 dnl
1109 AC_ARG_ENABLE(mostly-builtin,
1110 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1111 if test "${enable_mostly_builtin}" = "yes"; then
1112   VLC_ADD_BUILTINS([${PLUGINS}])
1113   PLUGINS=""
1114 fi
1115
1116 dnl
1117 dnl Some plugins aren't useful on some platforms
1118 dnl
1119 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1120     VLC_ADD_PLUGINS([screensaver])
1121 elif test "${SYS}" != "mingwce"; then
1122     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1123     VLC_ADD_LDFLAGS([dmo],[-lole32])
1124 else
1125     VLC_ADD_PLUGINS([win32text])
1126 fi
1127
1128 dnl
1129 dnl  Accelerated modules
1130 dnl
1131 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1132 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1133 MMXEXT_MODULES="memcpymmxext"
1134 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1135 THREEDNOW_MODULES="memcpy3dn"
1136 SSE_MODULES=""
1137 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1138 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1139
1140 if test "${enable_gprof}" != "yes"
1141 then
1142   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1143 fi
1144
1145 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1146     [ac_cv_mmx_inline],
1147     [CFLAGS="${CFLAGS_save}"
1148      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1149                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1150 if test "${ac_cv_mmx_inline}" != "no"; then
1151   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1152   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1153 fi
1154
1155 dnl  Check for fully workin MMX intrinsics
1156 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1157 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1158 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1159     [ac_cv_c_mmx_intrinsics],
1160     [CFLAGS="${CFLAGS_save} -O -mmmx"
1161      AC_TRY_COMPILE([#include <mmintrin.h>
1162                      #include <stdint.h>
1163                      uint64_t frobzor;],
1164                     [__m64 a, b, c;
1165                      a = b = c = (__m64)frobzor;
1166                      a = _mm_slli_pi16(a, 3);
1167                      a = _mm_adds_pi16(a, b);
1168                      c = _mm_srli_pi16(c, 8);
1169                      c = _mm_slli_pi16(c, 3);
1170                      b = _mm_adds_pi16(b, c);
1171                      a = _mm_unpacklo_pi8(a, b);
1172                      frobzor = (uint64_t)a;],
1173                     [ac_cv_c_mmx_intrinsics=yes],
1174                     [ac_cv_c_mmx_intrinsics=no])])
1175 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1176   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1177   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1178 fi
1179
1180 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1181     [ac_cv_mmxext_inline],
1182     [CFLAGS="${CFLAGS_save}"
1183      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1184                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1185 if test "${ac_cv_mmxext_inline}" != "no"; then
1186   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1187   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1188 fi
1189
1190 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1191     [ac_cv_3dnow_inline],
1192     [CFLAGS="${CFLAGS_save}"
1193      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1194                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1195 if test "${ac_cv_3dnow_inline}" != "no"; then
1196   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1197   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1198 fi
1199
1200 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1201     [ac_cv_sse_inline],
1202     [CFLAGS="${CFLAGS_save}"
1203      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1204                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1205 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1206   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1207   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1208 fi
1209
1210 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1211 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1212     [ac_cv_altivec_inline],
1213     [CFLAGS="${CFLAGS_save}"
1214      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1215          ac_cv_altivec_inline=yes,
1216          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1217           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1218             [ac_cv_altivec_inline="-Wa,-m7400"],
1219             ac_cv_altivec_inline=no)
1220          ])])
1221 if test "${ac_cv_altivec_inline}" != "no"; then
1222   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1223   if test "${ac_cv_altivec_inline}" != "yes"; then
1224     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1225     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1226     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1227     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1228     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1229   fi
1230   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1231 fi
1232
1233 dnl The AltiVec C extensions
1234 dnl
1235 dnl There are several possible cases:
1236 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1237 dnl                      need <altivec.h>
1238 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1239 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1240 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1241 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1242 dnl - Others: test should fail
1243 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1244   [ac_cv_c_altivec],
1245   [# OS X/PPC test (gcc 4.x)
1246    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1247    AC_TRY_COMPILE([],
1248      [vec_ld(0, (unsigned char *)0);],
1249      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1250      [# OS X/PPC test (gcc 3.x)
1251       CFLAGS="${CFLAGS_save} -faltivec"
1252       AC_TRY_COMPILE([],
1253         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1254         [ac_cv_c_altivec="-faltivec"],
1255         dnl Below this are the Linux tests
1256         [# Linux/PPC test (gcc 4.x)
1257          CFLAGS="${CFLAGS_save} -maltivec"
1258          AC_TRY_COMPILE([#include <altivec.h>],
1259            [vec_ld(0, (unsigned char *)0);],
1260            [ac_cv_c_altivec="-maltivec"],
1261            [# Linux/PPC test (gcc 3.3)
1262             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1263             AC_TRY_COMPILE([#include <altivec.h>],
1264               [vec_ld(0, (unsigned char *)0);],
1265               [ac_cv_c_altivec=""
1266                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1267               [# Linux/PPC test (gcc 3.3)
1268                CFLAGS="${CFLAGS_save} -fvec"
1269                AC_TRY_COMPILE([#include <altivec.h>],
1270                  [vec_ld(0, (unsigned char *)0);],
1271                  [ac_cv_c_altivec="-fvec"],
1272                  [ac_cv_c_altivec=no])
1273               ])
1274            ])
1275         ])
1276      ])
1277    CFLAGS="${CFLAGS_save}"
1278   ])
1279
1280 if test "${ac_cv_c_altivec}" != "no"; then
1281   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1282 fi
1283 AC_CHECK_HEADERS(altivec.h)
1284 CPPFLAGS="${CPPFLAGS_save}"
1285
1286 if test "${ac_cv_c_altivec}" != "no"; then
1287   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1288   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1289   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1290   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1291   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1292 fi
1293
1294 AC_CACHE_CHECK([if linker needs -framework vecLib],
1295     [ac_cv_ld_altivec],
1296     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1297      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1298      LDFLAGS="${LDFLAGS_save}"
1299     ])
1300 if test "${ac_cv_ld_altivec}" != "no"; then
1301   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1302 fi
1303 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1304
1305 AC_ARG_WITH(,[])
1306 AC_ARG_WITH(,[Optimization options:])
1307
1308 dnl
1309 dnl  Special arch tuning
1310 dnl
1311 AC_ARG_WITH(tuning,
1312 [  --with-tuning=ARCH      enable special tuning for an architecture
1313                           (default Pentium 2 on IA-32 and 750 on PPC)])
1314 if test -n "${with_tuning}"; then
1315     if test "${with_tuning}" != "no"; then
1316         CFLAGS_TUNING="-mtune=${with_tuning}"
1317     fi
1318 else
1319     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1320         CFLAGS_TUNING="-mtune=pentium2"
1321     elif test "${target_cpu}" = "x86_64"; then
1322         CFLAGS_TUNING="-mtune=athlon64"
1323     elif test "${target_cpu}" = "powerpc"; then
1324         CFLAGS_TUNING="-mtune=750";
1325     fi
1326 fi
1327
1328 dnl NOTE: this can't be cached cleanly
1329 AS_IF([test "${CFLAGS_TUNING}"],
1330    [CFLAGS_save="${CFLAGS}"
1331     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1332
1333     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1334     AC_COMPILE_IFELSE([ ],
1335                       [tuning="yes"],
1336                       [CFLAGS_TUNING=""; tuning="no"
1337                        AS_IF([test "${with_tuning}"],
1338                              [AC_MSG_ERROR([requested tuning not supported])])])
1339
1340     AC_MSG_RESULT([$tuning])
1341     CFLAGS="${CFLAGS_save}"
1342 ])
1343
1344 dnl
1345 dnl  x86 accelerations
1346 dnl
1347 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1348 then
1349     ARCH="${ARCH} mmx"
1350     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1351 fi
1352
1353 dnl
1354 dnl  Memory usage
1355 dnl
1356 AC_ARG_ENABLE(optimize-memory,
1357 [  --enable-optimize-memory      optimize memory usage over performance])
1358 if test "${enable_optimize_memory}" = "yes"; then
1359   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1360 fi
1361
1362 dnl
1363 dnl  Enable/disable optimizations
1364 dnl
1365 AC_ARG_ENABLE(optimizations,
1366 [  --disable-optimizations disable compiler optimizations (default enabled)])
1367 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1368
1369 dnl
1370 dnl  AltiVec acceleration
1371 dnl
1372 AC_ARG_ENABLE(altivec,
1373 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1374 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1375     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1376 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1377     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1378
1379 dnl
1380 dnl  Debugging mode
1381 dnl
1382 AC_ARG_ENABLE(debug,
1383 [  --enable-debug          debug mode (default disabled)])
1384 test "${enable_debug}" != "yes" && enable_debug="no"
1385 AH_TEMPLATE(NDEBUG,
1386             [Define to 1 if debug code should NOT be compiled])
1387 AS_IF([test "x${enable_debug}" == "xno"], [AC_DEFINE(NDEBUG)])
1388
1389 dnl
1390 dnl  Enable release-specific flags
1391 dnl
1392 AC_ARG_ENABLE(release,
1393 [  --enable-release        activate extra optimizations (default disabled)])
1394 test "${enable_release}" != "yes" && enable_release="no"
1395
1396 dnl
1397 dnl  Is the shared libvlc forced ?
1398 dnl
1399 build_pic=no
1400 AC_ARG_ENABLE(shared-libvlc,
1401   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1402 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1403   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1404 ])
1405
1406 dnl
1407 dnl Stream output
1408 dnl
1409 AC_ARG_ENABLE(sout,
1410   [  --enable-sout           Stream output modules (default enabled)])
1411 if test "${enable_sout}" != "no"
1412 then
1413   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1414   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1415   VLC_ADD_PLUGINS([packetizer_copy])
1416
1417   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1418   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1419 #  VLC_ADD_PLUGINS([stream_out_transrate])
1420
1421   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1422 fi
1423
1424 dnl Check for libshout
1425 AC_ARG_ENABLE(shout,
1426   [  --enable-shout          libshout output plugin (default disabled)])
1427 if test "${enable_shout}" = "yes"; then
1428   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1429     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1430      VLC_ADD_PLUGINS([access_output_shout])
1431      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1432      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1433     [AC_MSG_WARN(libshout library not found)])
1434 fi
1435
1436 dnl
1437 dnl HTTP daemon
1438 dnl
1439 AC_ARG_ENABLE(httpd,
1440   [  --enable-httpd          HTTP daemon (default enabled)])
1441 if test "${enable_httpd}" != "no"
1442 then
1443   VLC_ADD_PLUGINS([http])
1444   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1445 fi
1446
1447 dnl
1448 dnl VideoLAN manager
1449 dnl
1450 AC_ARG_ENABLE(vlm,
1451   [  --enable-vlm            VideoLAN manager (default enabled)])
1452 if test "${enable_vlm}" != "no"
1453 then
1454   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1455 fi
1456
1457 dnl
1458 dnl Growl notification plugin
1459 dnl
1460 AC_ARG_ENABLE(growl,
1461   [  --enable-growl         growl notification plugin (default enabled)])
1462 AS_IF([test "${enable_growl}" != "no"], [
1463     VLC_ADD_PLUGINS([growl])
1464   ]
1465 )
1466
1467
1468 dnl
1469 dnl TLS/SSL
1470 dnl
1471 AC_ARG_ENABLE(gnutls,
1472   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
1473 AS_IF([test "${enable_gnutls}" != "no"], [
1474
1475   gcrypt_LIBS="-lgpg-error"
1476   AS_IF([test "${SYS}" = "mingw32"],
1477     [gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
1478      VLC_ADD_LDFLAGS([gnutls],[-lws2_32])]
1479   )
1480
1481   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
1482
1483   AC_CHECK_HEADER(gcrypt.h,
1484     [AC_CHECK_LIB(gcrypt, gcry_control,
1485       [AC_CHECK_HEADER(gnutls/gnutls.h,
1486         [AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
1487           [have_gnutls="yes"],[old_gnutls="yes"], ${gnutls_LIBS})])],,
1488      ${gcrypt_LIBS})])
1489
1490   AS_IF([test "${have_gnutls}" = "yes"], [
1491     VLC_ADD_PLUGINS([gnutls])
1492     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
1493   ], [
1494     AS_IF([test "${enable_gnutls}" = "yes"], [
1495       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])]
1496     )]
1497   )]
1498 )
1499
1500
1501 dnl
1502 dnl  Input plugins
1503 dnl
1504
1505 AC_ARG_WITH(,[Input plugins:])
1506
1507 dnl  live.com input
1508 dnl
1509 AC_ARG_ENABLE(livedotcom,
1510 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1511 if test "${enable_livedotcom}" = "yes"; then
1512   AC_ARG_WITH(livedotcom-tree,
1513     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1514
1515   dnl
1516   dnl test for --with-livedotcom-tree
1517   dnl
1518   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1519     AC_LANG_PUSH(C++)
1520     CPPFLAGS_save="${CPPFLAGS}"
1521     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1522     if test "${SYS}" = "solaris"; then
1523       CPPFLAGS_livedotcom="${CPPFLAGS_livedotcom} -DSOLARIS"
1524     fi
1525     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1526     AC_CHECK_HEADERS(liveMedia.hh, [
1527       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1528       AC_CHECK_LIB(liveMedia_pic, main, [
1529         # We have -lliveMedia_pic, build plugins
1530         VLC_ADD_PLUGINS([livedotcom])
1531         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1532       ], [
1533         AC_CHECK_LIB(liveMedia, main, [
1534           # We only have -lliveMedia, do builtins
1535           VLC_ADD_BUILTINS([livedotcom])
1536           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1537         ])
1538       ])
1539       if test "${SYS}" = "mingw32"; then
1540         # add ws2_32 for closesocket, select, recv
1541         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1542       fi
1543     ])
1544     CPPFLAGS="${CPPFLAGS_save}"
1545     AC_LANG_POP(C++)
1546   else
1547     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1548     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1549     if test -z "${real_livedotcom_tree}"; then
1550       dnl  The given directory can't be found
1551       AC_MSG_RESULT(no)
1552       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1553     fi
1554     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1555       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1556
1557       VLC_ADD_BUILTINS([livedotcom])
1558
1559       if test "${SYS}" = "mingw32"; then
1560         # add ws2_32 for closesocket, select, recv
1561         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1562       fi
1563
1564       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1565       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1566       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1567       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1568
1569       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1570       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1571       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1572       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1573       if test "${SYS}" = "solaris"; then
1574         VLC_ADD_CXXFLAGS([livedotcom],[-DSOLARIS])
1575       fi
1576     else
1577       dnl  The given live.com wasn't built
1578       AC_MSG_RESULT(no)
1579       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1580     fi
1581   fi
1582 fi
1583
1584 dnl
1585 dnl dv module: digital video module check for libraw1394
1586 dnl
1587 AC_ARG_ENABLE(dv,
1588 [  --enable-dv             dv input module (default disabled)])
1589 if test "${enable_dv}" = "yes"
1590 then
1591   AC_ARG_WITH(dv-raw1394,
1592   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1593   AC_ARG_WITH(dv-raw1394-tree,
1594   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1595
1596   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1597   then
1598     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1599     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1600     then
1601       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1602       AC_MSG_RESULT(yes)
1603       VLC_ADD_PLUGINS([access_dv])
1604       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1605       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1606     else
1607       dnl  No libraw1394 could be found, sorry
1608       AC_MSG_RESULT(no)
1609       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1610     fi
1611   else
1612     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1613     [ VLC_ADD_PLUGINS([access_dv])
1614         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1615     ],[
1616         if test -n "${enable_dv}"
1617         then
1618           AC_MSG_ERROR([cannot find libraw1394 headers])
1619         fi
1620     ])
1621   fi
1622
1623   dnl Check for static linking of libraw1394
1624   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1625   then
1626     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1627     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1628     if test -z "${real_dv_raw1394_tree}"
1629     then
1630       dnl  The given directory can't be found
1631       AC_MSG_RESULT(no)
1632       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1633     fi
1634     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1635     then
1636       dnl  Use a custom libraw1394
1637       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1638       VLC_ADD_BUILTINS([access_dv])
1639       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1640       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1641     else
1642       dnl  The given libraw1394 wasn't built
1643       AC_MSG_RESULT(no)
1644       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1645     fi
1646   fi
1647
1648   dnl
1649   dnl Check for libavc1394
1650   dnl
1651
1652   AC_ARG_WITH(dv-avc1394,
1653   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1654   AC_ARG_WITH(dv-avc1394-tree,
1655   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1656
1657   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1658   then
1659     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1660     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1661     then
1662       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1663       AC_MSG_RESULT(yes)
1664       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1665       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1666     else
1667       dnl  No libavc1394 could be found, sorry
1668       AC_MSG_RESULT(no)
1669       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1670     fi
1671   else
1672     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1673     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1674     ],[
1675         if test -n "${enable_dv}"
1676         then
1677           AC_MSG_ERROR([cannot find libavc1394 headers])
1678         fi
1679     ])
1680   fi
1681
1682   dnl Check for static linking of libavc1394
1683   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1684   then
1685     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1686     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1687     if test -z "${real_dv_avc1394_tree}"
1688     then
1689       dnl  The given directory can't be found
1690       AC_MSG_RESULT(no)
1691       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1692     fi
1693     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1694     then
1695       dnl  Use a custom libavc1394
1696       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1697       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1698       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1699     else
1700       dnl  The given libavc1394 wasn't built
1701       AC_MSG_RESULT(no)
1702       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1703     fi
1704   fi
1705 fi
1706
1707 dnl
1708 dnl dvdread module: check for libdvdread
1709 dnl
1710 AC_ARG_ENABLE(dvdread,
1711 [  --enable-dvdread        dvdread input module (default disabled)])
1712 if test "${enable_dvdread}" != "no"
1713 then
1714   AC_ARG_WITH(dvdread,
1715   [    --with-dvdread=PATH   libdvdread headers and libraries])
1716   AC_ARG_WITH(dvdread-tree,
1717   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1718
1719   dnl Temporary hack (yeah, sure ;)
1720   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1721       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1722   fi
1723
1724   if test -z "${with_dvdread}"
1725   then
1726     if test -z "${with_dvdread_tree}"
1727     then
1728       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1729         [ VLC_ADD_PLUGINS([dvdread])
1730           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1731         ],[
1732           if test -n "${enable_dvdread}"
1733           then
1734             AC_MSG_ERROR([cannot find libdvdread headers])
1735           fi
1736         ])
1737     else
1738       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1739       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1740       if test -z "${real_dvdread_tree}"
1741       then
1742         dnl  The given directory can't be found
1743         AC_MSG_RESULT(no)
1744         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1745       fi
1746       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1747       then
1748         dnl  Use a custom libdvdread
1749         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1750         VLC_ADD_BUILTINS([dvdread])
1751         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1752         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1753       else
1754         dnl  The given libdvdread wasn't built
1755         AC_MSG_RESULT(no)
1756         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1757       fi
1758     fi
1759   else
1760     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1761     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1762     then
1763       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1764       AC_MSG_RESULT(yes)
1765       VLC_ADD_PLUGINS([dvdread])
1766       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1767       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1768     else
1769       dnl  No libdvdread could be found, sorry
1770       AC_MSG_RESULT(no)
1771       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1772     fi
1773   fi
1774 fi
1775
1776 dnl
1777 dnl  libdvdnav plugin
1778 dnl
1779 AC_ARG_ENABLE(dvdnav,
1780   [  --enable-dvdnav         dvdnav input module (default enabled)])
1781 if test "${enable_dvdnav}" != "no"
1782 then
1783   dnl Same hack than dvdread
1784   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1785       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1786   fi
1787
1788   DVDNAV_PATH="${PATH}"
1789   AC_ARG_WITH(dvdnav-config-path,
1790     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1791     [ if test "${with_dvdnav_config_path}" != "no"
1792       then
1793         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1794       fi ])
1795   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1796   if test "${DVDNAV_CONFIG}" != "no"
1797   then
1798     VLC_ADD_PLUGINS([dvdnav])
1799     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1800     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1801   fi
1802 fi
1803
1804 dnl
1805 dnl  Windows DirectShow access module
1806 dnl
1807 AC_ARG_ENABLE(dshow,
1808   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1809 if test "${enable_dshow}" != "no"
1810 then
1811   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1812   then
1813     AC_LANG_PUSH(C++)
1814       AC_CHECK_HEADERS(dshow.h,
1815       [ VLC_ADD_PLUGINS([dshow])
1816         VLC_ADD_CXXFLAGS([dshow],[])
1817         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1818     AC_LANG_POP(C++)
1819   fi
1820 fi
1821
1822 dnl
1823 dnl  libsmbclient plugin
1824 dnl
1825 AC_ARG_ENABLE(smb,
1826   [  --enable-smb            smb input module (default enabled)])
1827 if test "${enable_smb}" != "no"; then
1828   AC_CHECK_HEADERS(libsmbclient.h,
1829     [ VLC_ADD_PLUGINS([access_smb])
1830       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1831     [ if test -n "${enable_smb}"; then
1832         AC_MSG_ERROR([cannot find libsmbclient headers])
1833      fi ])
1834   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1835     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1836     [#include <libsmbclient.h>])
1837 fi
1838
1839 dnl
1840 dnl  libdvbpsi ts demux/mux
1841 dnl
1842 AC_ARG_ENABLE(dvbpsi,
1843   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1844 if test "${enable_dvbpsi}" != "no"
1845 then
1846   AC_ARG_WITH(dvbpsi,
1847   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1848   AC_ARG_WITH(dvbpsi,
1849   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1850   case "${with_dvbpsi}" in
1851   ""|yes)
1852     if test -z "${with_dvbpsi_tree}"
1853     then
1854       AC_CHECK_HEADERS(dvbpsi/dr.h,
1855         [ VLC_ADD_PLUGINS([ts])
1856           if test "${enable_sout}" != "no"; then
1857             VLC_ADD_BUILTINS([mux_ts])
1858           fi
1859           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1860         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1861         [#if defined( HAVE_STDINT_H )
1862 #   include <stdint.h>
1863 #elif defined( HAVE_INTTYPES_H )
1864 #   include <inttypes.h>
1865 #endif
1866 #include <dvbpsi/dvbpsi.h>
1867 #include <dvbpsi/descriptor.h>
1868 #include <dvbpsi/pat.h>
1869 #include <dvbpsi/pmt.h>])
1870     else
1871       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1872       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1873       if test -z "${real_dvbpsi_tree}"
1874       then
1875         dnl  The given directory can't be found
1876         AC_MSG_RESULT(no)
1877         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1878       fi
1879       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1880       then
1881         dnl  Use a custom libdvbpsi
1882         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1883         VLC_ADD_BUILTINS([ts])
1884         if test "${enable_sout}" != "no"; then
1885           VLC_ADD_BUILTINS([mux_ts])
1886         fi
1887         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1888         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1889       else
1890         dnl  The given libdvbpsi wasn't built
1891         AC_MSG_RESULT(no)
1892         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1893       fi
1894     fi
1895   ;;
1896   no)
1897     dnl  Compile without dvbpsi
1898   ;;
1899   *)
1900     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1901     if test -z "${with_dvbpsi}"
1902     then
1903       LDFLAGS_test=""
1904       CPPFLAGS_test=""
1905     else
1906       LDFLAGS_test="-L${with_dvbpsi}/lib"
1907       CPPFLAGS_test="-I${with_dvbpsi}/include"
1908     fi
1909     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1910     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1911       VLC_ADD_PLUGINS([ts])
1912       if test "${enable_sout}" != "no"; then
1913         VLC_ADD_PLUGINS([mux_ts])
1914       fi
1915       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1916       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1917
1918     ],[
1919       if test -n "${enable_dvbpsi}"
1920       then
1921         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])
1922       fi
1923     ])
1924     CPPFLAGS="${CPPFLAGS_save}"
1925   ;;
1926   esac
1927   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1928     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1929   ], [], [${LDFLAGS_ts}])
1930
1931 fi
1932
1933 dnl
1934 dnl  Video4Linux plugin
1935 dnl
1936 AC_ARG_ENABLE(v4l,
1937   [  --enable-v4l            Video4Linux input support (default disabled)])
1938 if test "${enable_v4l}" = "yes"
1939 then
1940   AC_ARG_WITH(v4l,
1941     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1942   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1943   then
1944     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1945   fi
1946
1947   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1948   AC_CHECK_HEADERS(linux/videodev.h, [
1949     VLC_ADD_PLUGINS([v4l])
1950   ],[])
1951   CPPFLAGS="${CPPFLAGS_save}"
1952 fi
1953
1954 dnl
1955 dnl  special access module for Hauppauge PVR cards
1956 dnl
1957 AC_ARG_ENABLE(pvr,
1958   [  --enable-pvr            PVR cards access module (default disabled)])
1959 if test "${enable_pvr}" = "yes"
1960 then
1961   VLC_ADD_PLUGINS([pvr])
1962 fi
1963
1964 dnl
1965 dnl  gnomeVFS access module
1966 dnl
1967 AC_ARG_ENABLE(gnomevfs,
1968   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1969 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1970 then
1971   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1972     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1973     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1974     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1975     VLC_ADD_PLUGINS([access_gnomevfs]),
1976     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1977 fi
1978
1979 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1980 AC_ARG_ENABLE(libcdio,
1981   [  --enable-libcdio        CD input and control library support (default enabled)])
1982
1983
1984 have_libcdio=no
1985 have_libvcdinfo=no
1986 if test "${enable_libcdio}" != "no"
1987 then
1988   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1989      have_libcdio=yes
1990      AC_DEFINE(HAVE_LIBCDIO, [], 
1991      [Define if you have libcdio 0.72 or greater installed]),
1992      [AC_MSG_WARN(CD Reading and information library not found)])
1993
1994   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1995      [have_libvcdinfo=yes
1996      AC_DEFINE(HAVE_VCDINFO, [], 
1997      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1998      [AC_MSG_WARN(VCD information library not found)])
1999 fi
2000
2001 dnl
2002 dnl  VCDX and CDDAX modules
2003 dnl
2004 AC_ARG_ENABLE(cddax,
2005   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2006  
2007 AC_ARG_ENABLE(libcddb,
2008   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2009  
2010 if test "${enable_cddax}" = "yes"
2011 then
2012   if test "$have_libcdio" = "yes"
2013   then
2014     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2015     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2016     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2017     VLC_ADD_PLUGINS([cddax])
2018     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2019     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2020     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2021   else 
2022     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2023     HAVE_CDDAX=no
2024   fi
2025
2026   if test "$enable_libcddb" != "no"; then
2027     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2028       HAVE_LIBCDDB=yes 
2029       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2030       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2031       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2032       ],
2033       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2034       HAVE_LIBCDDB=no])
2035   fi
2036  
2037 fi
2038
2039 AC_ARG_ENABLE(vcdx,
2040   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2041  
2042 if test "${enable_vcdx}" = "yes"
2043 then
2044   if test "${have_libvcdinfo}" = "yes"
2045   then
2046     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2047     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2048   else 
2049     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2050     HAVE_VCDX=no
2051   fi
2052
2053   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2054    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2055     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2056     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2057     HAVE_VCDX=no])
2058
2059   if test "$have_libvcdinfo" = "yes"
2060   then
2061     AC_DEFINE(HAVE_VCDX, [], 
2062     [Define for the VCD plugin using libcdio/libvcdinfo])
2063     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2064     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2065     VLC_ADD_PLUGINS([vcdx])
2066   else 
2067     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2068     HAVE_VCDX=no
2069   fi
2070 fi
2071
2072 dnl
2073 dnl  Built-in CD-DA and VCD module
2074 dnl
2075 AC_ARG_ENABLE(cdda,           
2076   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2077  
2078 AC_ARG_ENABLE(vcd,
2079   [  --enable-vcd            built-in VCD (default enabled)])
2080
2081 if test "${enable_vcd}" != "no"
2082 then
2083   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2084   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2085     AC_MSG_RESULT(yes)
2086     VLC_ADD_PLUGINS([vcd cdda])
2087   ],[
2088     AC_MSG_RESULT(no)
2089   ])
2090
2091   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2092   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2093     AC_MSG_RESULT(yes)
2094     VLC_ADD_PLUGINS([vcd cdda])
2095     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2096   ],[
2097     AC_MSG_RESULT(no)
2098   ])
2099
2100   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2101   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2102     AC_MSG_RESULT(yes)
2103     VLC_ADD_PLUGINS([vcd cdda])
2104     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2105   ],[
2106     AC_MSG_RESULT(no)
2107   ])
2108
2109   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2110   then
2111     VLC_ADD_PLUGINS([vcd cdda])
2112   fi
2113
2114   if test "${SYS}" = "darwin"
2115   then
2116     VLC_ADD_PLUGINS([vcd cdda])
2117     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2118     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2119   fi
2120
2121   if test "$enable_libcddb" != "no"; then
2122     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2123       HAVE_LIBCDDB=yes 
2124       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2125       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2126       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2127       ],:
2128       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2129       HAVE_LIBCDDB=no])
2130   fi
2131 fi
2132
2133 dnl
2134 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2135 dnl
2136 AC_ARG_ENABLE(dvb,
2137   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2138
2139 if test "${enable_dvb}" = "yes"
2140 then
2141   AC_ARG_WITH(dvb,
2142   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2143   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2144   then
2145     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2146   fi
2147   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2148   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2149     if test -z "${with_dvbpsi_tree}"
2150     then
2151       VLC_ADD_PLUGINS([dvb])
2152     else
2153       VLC_ADD_BUILTINS([dvb])
2154     fi
2155   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2156   CPPFLAGS="${CPPFLAGS_save}"
2157 fi
2158
2159 dnl
2160 dnl  Screen capture module
2161 dnl
2162 AC_ARG_ENABLE(screen,
2163   [  --enable-screen         Screen capture support (default enabled)])
2164 if test "${enable_screen}" != "no"; then
2165   if test "${SYS}" = "darwin"; then
2166     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2167       VLC_ADD_PLUGINS([screen])
2168       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2169     ])
2170   elif test "${SYS}" = "mingw32"; then
2171     VLC_ADD_PLUGINS([screen])
2172     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2173   elif test "${SYS}" = "mingwce"; then
2174     CPPFLAGS="${CPPFLAGS_save}"
2175   elif test "${SYS}" = "beos"; then
2176     VLC_ADD_PLUGINS([screen])
2177     VLC_ADD_CXXFLAGS([screen],[])
2178     VLC_ADD_LDFLAGS([screen],[-lbe])
2179   else
2180     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2181     AC_CHECK_HEADERS(X11/Xlib.h, [
2182       VLC_ADD_PLUGINS([screen])
2183       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2184       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2185     ])
2186     CPPFLAGS="${CPPFLAGS_save}"
2187   fi
2188 fi
2189
2190 dnl
2191 dnl  ipv6 plugin - not for QNX yet
2192 dnl
2193 have_ipv6=no
2194 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2195   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2196 ])
2197
2198 AS_IF([test "${have_ipv6}" = "yes"], [
2199   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2200
2201 if test "${SYS}" != "nto" &&
2202    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2203 then
2204   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2205   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2206     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2207   AS_IF([test "${have_ipv6}" != "no"], [
2208     VLC_ADD_PLUGINS([ipv6])])
2209 fi
2210 if test "${SYS}" = "mingw32"
2211 then
2212   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2213   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2214     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2215 fi
2216
2217 dnl
2218 dnl  ogg demux plugin
2219 dnl
2220 AC_ARG_ENABLE(ogg,
2221   [  --enable-ogg            Ogg demux support (default enabled)])
2222 if test "${enable_ogg}" != "no"
2223 then
2224   AC_ARG_WITH(ogg-tree,
2225   [    --with-ogg-tree=PATH  ogg tree for static linking])
2226   if test -n "${with_ogg_tree}"
2227   then
2228     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2229     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2230     if test -z "${real_ogg_tree}"
2231     then
2232       dnl  The given directory can't be found
2233       AC_MSG_RESULT(no)
2234       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2235     fi
2236     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2237     then
2238       dnl  Use a custom ogg
2239       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2240       VLC_ADD_PLUGINS([ogg])
2241       if test "${enable_sout}" != "no"; then
2242         VLC_ADD_PLUGINS([mux_ogg])
2243       fi
2244       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2245       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2246     else
2247       dnl  The given ogg wasn't built
2248       AC_MSG_RESULT(no)
2249       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2250     fi
2251   else
2252     AC_CHECK_HEADERS(ogg/ogg.h, [
2253       AC_CHECK_LIB( ogg, oggpack_read, [
2254         VLC_ADD_PLUGINS([ogg])
2255         if test "${enable_sout}" != "no"; then
2256           VLC_ADD_PLUGINS([mux_ogg])
2257         fi
2258         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2259      ],[])
2260   fi
2261 fi
2262
2263 dnl
2264 dnl  matroska demux plugin
2265 dnl
2266 AC_ARG_ENABLE(mkv,
2267   [  --enable-mkv            Matroska demux support (default enabled)])
2268 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2269   AC_LANG_PUSH(C++)
2270   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2271     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2272     AC_EGREP_CPP(yes,
2273       [#include <ebml/EbmlVersion.h>
2274        #ifdef LIBEBML_VERSION
2275        #if LIBEBML_VERSION >= 0x000706
2276        yes
2277        #endif
2278        #endif],
2279       [AC_MSG_RESULT([yes])
2280         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2281           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2282           AC_EGREP_CPP(yes,
2283             [#include <matroska/KaxVersion.h>
2284              #ifdef LIBMATROSKA_VERSION
2285              #if LIBMATROSKA_VERSION >= 0x000705
2286              yes
2287              #endif
2288              #endif],
2289             [AC_MSG_RESULT([yes])
2290               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2291               VLC_ADD_CXXFLAGS([mkv],[])
2292               if test "${SYS}" = "darwin"; then
2293                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2294               fi
2295               AC_CHECK_LIB(ebml_pic, main, [
2296                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2297                 VLC_ADD_PLUGINS([mkv])
2298                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2299               ], [
2300                 AC_CHECK_LIB(ebml, main, [
2301                   # We only have libebml, make mkv.a a builtin
2302                   VLC_ADD_BUILTINS([mkv])
2303                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2304                 ])
2305               ])
2306             ],
2307             [AC_MSG_RESULT([no])
2308               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.])
2309           ])
2310         ])
2311       ],
2312       [AC_MSG_RESULT([no])
2313         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.])
2314     ])
2315   ])
2316   AC_LANG_POP(C++)
2317 fi
2318
2319 dnl
2320 dnl  modplug demux plugin
2321 dnl
2322 AC_ARG_ENABLE(mod,
2323   [  --enable-mod            Mod demux support (default enabled)])
2324 if test "${enable_mod}" != "no"
2325 then
2326   AC_ARG_WITH(mod-tree,
2327   [    --with-mod-tree=PATH mod tree for static linking])
2328   if test -n "${with_mod_tree}"
2329   then
2330     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2331     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2332     if test -z "${real_mod_tree}"
2333     then
2334       dnl  The given directory can't be found
2335       AC_MSG_RESULT(no)
2336       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2337     fi
2338     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2339     then
2340       dnl  Use a custom mod
2341       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2342       VLC_ADD_PLUGINS([mod])
2343       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2344       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2345     else
2346       dnl  The given mod wasn't built
2347       AC_MSG_RESULT(no)
2348       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2349     fi
2350   else
2351     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2352       VLC_ADD_PLUGINS([mod])
2353       VLC_ADD_CXXFLAGS([mod],[])
2354       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2355   fi
2356 fi
2357
2358 dnl
2359 dnl  mpc demux plugin
2360 dnl
2361 AC_ARG_ENABLE(mpc,
2362   [  --enable-mpc            Mpc demux support (default enabled)])
2363 if test "${enable_mpc}" != "no"
2364 then
2365   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2366     VLC_ADD_PLUGINS([mpc])
2367     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2368 fi
2369
2370
2371 dnl
2372 dnl  Codec plugins
2373 dnl
2374
2375 AC_ARG_WITH(,[Codec plugins:])
2376
2377 dnl
2378 dnl  mad plugin
2379 dnl
2380 AC_ARG_ENABLE(mad,
2381   [  --enable-mad            libmad module (default enabled)])
2382 if test "${enable_mad}" != "no"
2383 then
2384   AC_ARG_WITH(mad,
2385     [    --with-mad=PATH       path to libmad],[],[])
2386   if test "${with_mad}" != "no" -a -n "${with_mad}"
2387   then
2388     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2389     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2390   fi
2391
2392   AC_ARG_WITH(mad-tree,
2393     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2394   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2395   then
2396     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2397     if test -z "${real_mad_tree}"
2398     then
2399       dnl  The given directory can't be found
2400       AC_MSG_RESULT(no)
2401       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2402     fi
2403     dnl  Use a custom libmad
2404     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2405     if test -f ${real_mad_tree}/mad.h
2406     then
2407       AC_MSG_RESULT(yes)
2408       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2409       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2410       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2411       AC_CHECK_LIB(mad, mad_bit_init, [
2412         VLC_ADD_BUILTINS([mpgatofixed32])
2413         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2414         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2415       ],[])
2416       LDFLAGS="${LDFLAGS_save}"
2417     else
2418       AC_MSG_RESULT(no)
2419       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2420     fi
2421   else
2422     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2423     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2424     AC_CHECK_HEADERS(mad.h, ,
2425       [ 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.]) ])
2426     AC_CHECK_LIB(mad, mad_bit_init, [
2427       VLC_ADD_PLUGINS([mpgatofixed32])
2428       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2429       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2430     CPPFLAGS="${CPPFLAGS_save}"
2431     LDFLAGS="${LDFLAGS_save}"
2432   fi
2433 fi
2434
2435 dnl
2436 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2437 dnl
2438 AC_CHECK_HEADERS(id3tag.h, [
2439   AC_CHECK_HEADERS(zlib.h, [
2440     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2441     VLC_ADD_PLUGINS([id3tag])]) ])
2442
2443 dnl
2444 dnl  ffmpeg decoder/demuxer plugin
2445 dnl
2446 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2447 dnl                             4- default place, 
2448
2449 AC_ARG_ENABLE(ffmpeg,
2450 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2451 if test "${enable_ffmpeg}" != "no"
2452 then
2453
2454 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2455
2456  AC_ARG_WITH(ffmpeg-mp3lame,
2457    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2458    [
2459      if test "$with_ffmpeg_mp3lame" = "yes";    then
2460         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2461      fi])
2462
2463  AC_ARG_WITH(ffmpeg-faac,
2464    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2465    [
2466      if test "$with_ffmpeg_faac" = "yes"; then
2467         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2468      fi])
2469
2470  AC_ARG_WITH(ffmpeg-dts,
2471    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2472    [
2473      if test "$with_ffmpeg_dts" = "yes"; then
2474              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2475              AC_CHECK_LIB(dts_pic, dts_free, 
2476                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2477                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2478              LDFLAGS="${LDFLAGS_save}"
2479      fi])
2480
2481  AC_ARG_WITH(ffmpeg-vorbis,
2482    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2483    [
2484      if test "$with_ffmpeg_vorbis" = "yes"; then
2485         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2486      fi])
2487
2488  AC_ARG_WITH(ffmpeg-theora,
2489    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2490    [
2491      if test "$with_ffmpeg_theora" = "yes"; then
2492         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2493      fi])
2494
2495  AC_ARG_WITH(ffmpeg-ogg,
2496    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2497    [
2498      if test "$with_ffmpeg_ogg" = "yes"; then
2499         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2500      fi])
2501
2502  AC_ARG_WITH(ffmpeg-zlib,
2503    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2504    [
2505      if test "$with_ffmpeg_zlib" = "yes"; then
2506                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2507      fi])
2508
2509  dnl
2510  dnl test for --with-ffmpeg-tree
2511  dnl
2512  AC_ARG_WITH(ffmpeg-tree,
2513    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2514
2515  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2516    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2517    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2518    if test -z "${real_ffmpeg_tree}"; then
2519      dnl  The given directory can't be found
2520      AC_MSG_RESULT(no)
2521      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2522    fi
2523    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2524      dnl  The given libavcodec wasn't built
2525      AC_MSG_RESULT(no)
2526      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2527    fi
2528    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2529      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2530        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2531      else
2532        dnl  The given libavcodec wasn't built with --enable-pp
2533        AC_MSG_RESULT(no)
2534        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2535      fi
2536    fi
2537    dnl  Use a custom libffmpeg
2538    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2539
2540    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2541      if test "${with_ffmpeg_zlib}" != "yes"; then
2542        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2543      fi
2544    fi
2545    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2546      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2547        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2548      fi
2549    fi
2550    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2551      if test "${with_ffmpeg_faac}" != "yes"; then
2552        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2553      fi
2554    fi
2555    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2556      if test "${with_ffmpeg_dts}" != "yes"; then
2557        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2558        AC_CHECK_LIB(dts_pic, dts_free, 
2559          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2560          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2561        LDFLAGS="${LDFLAGS_save}"
2562      fi
2563    fi
2564    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2565      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2566    fi
2567    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2568      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2569    fi
2570    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2571      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2572    fi
2573
2574    VLC_ADD_BUILTINS([ffmpeg])
2575    if test "${enable_sout}" != "no"; then
2576      VLC_ADD_BUILTINS([stream_out_switcher])
2577    fi
2578
2579    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2580      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2581      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2582    fi
2583
2584    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2585    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2586
2587    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2588      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2589      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2590      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2591    fi
2592 else    
2593     
2594 dnl Look for a ffmpeg-config (we are on debian )
2595  
2596   FFMPEG_PATH="${PATH}"
2597   AC_ARG_WITH(ffmpeg-config-path,
2598     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2599     [ if test "${with_ffmpeg_config_path}" != "no"
2600       then
2601         FFMPEG_PATH="${with_ffmpeg_config_path}"
2602       fi ])
2603   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2604   if test "${FFMPEG_CONFIG}" != "no"
2605   then
2606     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2607     AC_CHECK_HEADERS(postproc/postprocess.h)
2608     VLC_ADD_PLUGINS([ffmpeg])
2609     if test "${enable_sout}" != "no"; then
2610         VLC_ADD_PLUGINS([stream_out_switcher])
2611     fi
2612     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2613     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2614  
2615  else
2616
2617 dnl Trying with pkg-config
2618    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2619     [
2620      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2621      AC_CHECK_HEADERS(postproc/postprocess.h)
2622      VLC_ADD_BUILTINS([ffmpeg])
2623      if test "${enable_sout}" != "no"; then
2624          VLC_ADD_BUILTINS([stream_out_switcher])
2625      fi
2626      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2627      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2628      dnl newer ffmpeg have a separate libpostproc
2629      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2630        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2631        ],[ true ])
2632     ],[
2633      
2634     dnl
2635     dnl last chance: at the default place
2636     dnl
2637       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2638       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2639       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2640       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2641
2642       AC_CHECK_LIB(avutil, av_add_i, [
2643         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2644         LDAVUTIL="-lavutil"])
2645
2646       AC_CHECK_LIB(postproc, pp_postprocess, [
2647         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2648
2649       AC_CHECK_LIB(avcodec, avcodec_init, [
2650         VLC_ADD_BUILTINS([ffmpeg])
2651         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2652         if test "${enable_sout}" != "no"; then
2653             VLC_ADD_BUILTINS([stream_out_switcher])
2654         fi],
2655          [ 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])
2656       AC_CHECK_LIB(avformat, av_open_input_stream, [
2657         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2658         [Define if you have ffmpeg's libavformat.])
2659         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2660       LDFLAGS="${LDFLAGS_save}"
2661       CPPFLAGS="${CPPFLAGS_save}"
2662     ])
2663   fi
2664  fi 
2665 fi
2666
2667 dnl
2668 dnl  ffmpegaltivec plugin
2669 dnl
2670 AC_ARG_ENABLE(ffmpegaltivec,
2671 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2672 if test "${enable_ffmpegaltivec}" = "yes"
2673 then
2674   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2675     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2676     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2677     if test -z "${real_ffmpeg_tree}"; then
2678       dnl  The given directory can't be found
2679       AC_MSG_RESULT(no)
2680       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2681     fi
2682     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2683       dnl  The given libavcodecaltivec wasn't built
2684       AC_MSG_RESULT(no)
2685       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2686     fi
2687     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2688       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2689       AC_MSG_RESULT(no)
2690       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2691     fi
2692     dnl  Use a custom libffmpeg
2693     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2694     VLC_ADD_BUILTINS([ffmpegaltivec])
2695     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2696     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2697     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2698
2699     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2700       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2701       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2702       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2703     fi
2704     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2705     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2706   fi
2707 fi
2708
2709 dnl
2710 dnl  faad decoder plugin
2711 dnl
2712 AC_ARG_ENABLE(faad,
2713 [  --enable-faad           faad codec (default disabled)])
2714 if test "${enable_faad}" = "yes"
2715 then
2716   AC_ARG_WITH(faad-tree,
2717   [    --with-faad-tree=PATH faad tree for static linking])
2718   if test -n "${with_faad_tree}"
2719   then
2720     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2721     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2722     if test -z "${real_faad_tree}"
2723     then
2724       dnl  The given directory can't be found
2725       AC_MSG_RESULT(no)
2726       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2727     fi
2728     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2729     then
2730       dnl  Use a custom faad
2731       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2732       VLC_ADD_BUILTINS([faad])
2733       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2734       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2735     else
2736       dnl  The given libfaad wasn't built
2737       AC_MSG_RESULT(no)
2738       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2739     fi
2740   else
2741     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2742     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2743     AC_CHECK_HEADERS(faad.h, ,
2744       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2745     AC_CHECK_LIB(faad, faacDecOpen, [
2746       VLC_ADD_PLUGINS([faad])
2747       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2748       AC_CHECK_LIB(faad, NeAACDecOpen, [
2749         VLC_ADD_PLUGINS([faad])
2750         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2751         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2752     LDFLAGS="${LDFLAGS_save}"
2753     CPPFLAGS="${CPPFLAGS_save}"
2754   fi
2755 fi
2756
2757 dnl
2758 dnl twolame encoder plugin
2759 dnl
2760 AC_ARG_ENABLE(twolame,
2761 [  --enable-twolame        twolame codec (default disabled)])
2762 if test "${enable_twolame}" = "yes"
2763 then
2764   AC_ARG_WITH(twolame-tree,
2765   [    --with-twolame-tree=PATH twolame tree for static linking])
2766   if test -n "${with_twolame_tree}"
2767   then
2768     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2769     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2770     if test -z "${real_twolame_tree}"
2771     then
2772       dnl  The given directory can't be found
2773       AC_MSG_RESULT(no)
2774       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2775     fi
2776     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2777     then
2778       dnl  Use a custom twolame
2779       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2780       VLC_ADD_BUILTINS([twolame])
2781       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2782       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2783     else
2784       dnl  The given libtwolame wasn't built
2785       AC_MSG_RESULT(no)
2786       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2787     fi
2788   else
2789     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2790     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2791     AC_CHECK_HEADERS(twolame.h, ,
2792       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2793     AC_CHECK_LIB(twolame, twolame_init, [
2794       VLC_ADD_PLUGINS([twolame])
2795       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2796         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2797     LDFLAGS="${LDFLAGS_save}"  
2798     CPPFLAGS="${CPPFLAGS_save}"
2799   fi
2800 fi
2801
2802 dnl
2803 dnl  QuickTime plugin
2804 dnl
2805 AC_ARG_ENABLE(quicktime,
2806   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2807 if test "${enable_quicktime}" != "no" &&
2808   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2809 then
2810   if test "${SYS}" = "mingw32"; then
2811     VLC_ADD_BUILTINS([quicktime])
2812   else
2813   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2814     [ VLC_ADD_BUILTINS([quicktime])
2815       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2816     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2817   fi
2818 fi
2819
2820 dnl
2821 dnl  Real plugin
2822 dnl
2823 AC_ARG_ENABLE(real,
2824   [  --enable-real           Real audio module (default disabled)])
2825 if test "${enable_real}" = "yes"; then
2826   VLC_ADD_PLUGINS([realaudio])
2827 fi
2828
2829 dnl
2830 dnl  Real RTSP plugin
2831 dnl
2832 AC_ARG_ENABLE(realrtsp,
2833   [  --enable-realrtsp       Real RTSP module (default disabled)])
2834 if test "${enable_realrtsp}" = "yes"; then
2835   VLC_ADD_PLUGINS([access_realrtsp])
2836 fi
2837
2838 dnl
2839 dnl MP4 module
2840 dnl
2841 AC_CHECK_HEADERS(zlib.h, [
2842   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2843 ] )
2844
2845 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2846   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2847 ] )
2848
2849 dnl
2850 dnl skins2 module
2851 dnl
2852 AC_CHECK_HEADERS(libtar.h, [
2853   VLC_ADD_LDFLAGS([skins2],[-ltar])
2854 ] )
2855
2856
2857
2858 dnl
2859 dnl A52/AC3 decoder plugin
2860 dnl
2861 AC_ARG_ENABLE(a52,
2862   [  --enable-a52            A/52 support with liba52 (default enabled)])
2863 if test "${enable_a52}" != "no"
2864 then
2865   AC_ARG_WITH(a52,
2866     [    --with-a52=PATH       a52 headers and libraries])
2867   AC_ARG_WITH(a52-tree,
2868     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2869   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2870   then
2871     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2872     if test -z "${real_a52_tree}"
2873     then
2874       dnl  The given directory can't be found
2875       AC_MSG_RESULT(no)
2876       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2877     fi
2878     dnl  Use a custom a52dec
2879     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2880     if test -f ${real_a52_tree}/include/a52.h
2881     then
2882       AC_MSG_RESULT(yes)
2883       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2884       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2885       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2886       AC_CHECK_LIB(a52, a52_free, [
2887         VLC_ADD_BUILTINS([a52tofloat32])
2888         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2889         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2890         ],[
2891         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2892         then
2893           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2894         else
2895           AC_MSG_ERROR([the specified tree hasn't been compiled])
2896         fi
2897       ])
2898       LDFLAGS="${LDFLAGS_save}"
2899     else
2900       AC_MSG_RESULT(no)
2901       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2902     fi
2903   else
2904     if test -z "${with_a52}"
2905     then
2906       LDFLAGS_test=""
2907       CPPFLAGS_test=""
2908     else
2909       LDFLAGS_test="-L${with_a52}/lib"
2910       CPPFLAGS_test="-I${with_a52}/include"
2911     fi
2912     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2913     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2914     AC_CHECK_HEADERS(a52dec/a52.h, [
2915       AC_CHECK_LIB(a52, a52_free, [
2916         VLC_ADD_PLUGINS([a52tofloat32])
2917         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2918         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2919       ],[
2920         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.])
2921       ])
2922     ])
2923     CPPFLAGS="${CPPFLAGS_save}"
2924     LDFLAGS="${LDFLAGS_save}"
2925   fi
2926 fi
2927
2928 AC_ARG_WITH(a52-fixed,
2929       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2930       [
2931         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2932
2933 dnl
2934 dnl DTS Coherent Acoustics decoder plugin
2935 dnl
2936 AC_ARG_ENABLE(dts,
2937   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2938 if test "${enable_dts}" != "no"; then
2939   AC_ARG_WITH(dts-tree,
2940     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2941   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2942   then
2943     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2944     if test -z "${real_dts_tree}"
2945     then
2946       dnl  The given directory can't be found
2947       AC_MSG_RESULT(no)
2948       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2949     fi
2950     dnl  Use a custom libdts
2951     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2952     if test -f ${real_dts_tree}/include/dts.h
2953     then
2954       AC_MSG_RESULT(yes)
2955       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2956       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2957       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2958       AC_CHECK_LIB(dts_pic, dts_free, [
2959         VLC_ADD_PLUGINS([dtstofloat32])
2960         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2961         ],[
2962         AC_CHECK_LIB(dts, dts_free, [
2963           VLC_ADD_BUILTINS([dtstofloat32])
2964           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2965           ],[
2966           if test -f ${real_dts_tree}/libdts/libdts.a
2967           then
2968             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2969           else
2970             AC_MSG_ERROR([the specified tree hasn't been compiled])
2971           fi
2972         ])
2973       ])
2974       LDFLAGS="${LDFLAGS_save}"
2975     else
2976       AC_MSG_RESULT(no)
2977       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2978     fi
2979   else
2980     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2981     AC_CHECK_HEADERS(dts.h, [
2982       AC_CHECK_LIB(dts_pic, dts_free, [
2983         VLC_ADD_PLUGINS([dtstofloat32])
2984         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2985       ],[
2986         AC_CHECK_LIB(dts, dts_free, [
2987           VLC_ADD_BUILTINS([dtstofloat32])
2988           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2989         ],[
2990           if test "${enable_dts}" = "yes"; then
2991             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2992           fi
2993         ])
2994       ])
2995     ])
2996     LDFLAGS="${LDFLAGS_save}"
2997   fi
2998 fi
2999
3000 dnl
3001 dnl  Flac plugin
3002 dnl
3003 AC_ARG_ENABLE(flac,
3004   [  --enable-flac           flac decoder support (default disabled)])
3005 if test "${enable_flac}" = "yes"
3006 then
3007   AC_ARG_WITH(flac-tree,
3008   [    --with-flac-tree=PATH flac tree for static linking])
3009   if test -n "${with_flac_tree}"
3010   then
3011     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3012     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3013     if test -z "${real_flac_tree}"
3014     then
3015       dnl  The given directory can't be found
3016       AC_MSG_RESULT(no)
3017       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3018     fi
3019     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3020     then
3021       dnl  Use a custom flac
3022       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3023       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3024       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
3025       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3026     else
3027       dnl  The given flac wasn't built
3028       AC_MSG_RESULT(no)
3029       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3030     fi
3031   else
3032     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3033       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3034      ],[])
3035   fi
3036 fi
3037
3038 dnl
3039 dnl  Libmpeg2 plugin
3040 dnl
3041 AC_ARG_ENABLE(libmpeg2,
3042   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3043 if test "${enable_libmpeg2}" != "no"
3044 then
3045   AC_ARG_WITH(libmpeg2-tree,
3046   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3047   if test -n "${with_libmpeg2_tree}"
3048   then
3049     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3050     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3051     if test -z "${real_libmpeg2_tree}"
3052     then
3053       dnl  The given directory can't be found
3054       AC_MSG_RESULT(no)
3055       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3056     fi
3057     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3058     then
3059       dnl  Use a custom libmpeg2
3060       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3061       VLC_ADD_BUILTINS([libmpeg2])
3062       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3063       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3064       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3065     else
3066       dnl  The given libmpeg2 wasn't built
3067       AC_MSG_RESULT(no)
3068       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3069     fi
3070   else
3071     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3072       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3073       AC_EGREP_CPP(yes,
3074         [#include <mpeg2dec/mpeg2.h>
3075          #ifdef MPEG2_RELEASE
3076          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3077          yes
3078          #endif
3079          #endif],
3080         [AC_MSG_RESULT([yes])
3081           VLC_ADD_PLUGINS([libmpeg2])
3082           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3083         [AC_MSG_RESULT([no])
3084           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.])])],
3085
3086       [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.])]
3087     )
3088   fi
3089 fi
3090
3091 dnl
3092 dnl  Vorbis plugin
3093 dnl
3094 AC_ARG_ENABLE(vorbis,
3095   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3096 if test "${enable_vorbis}" != "no"
3097 then
3098   AC_ARG_WITH(vorbis-tree,
3099   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3100   if test -n "${with_vorbis_tree}"
3101   then
3102     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3103     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3104     if test -z "${real_vorbis_tree}"
3105     then
3106       dnl  The given directory can't be found
3107       AC_MSG_RESULT(no)
3108       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3109     fi
3110     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3111     then
3112       dnl  Use a custom vorbis 
3113       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3114       VLC_ADD_PLUGINS([vorbis])
3115       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3116       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3117     else
3118       dnl  The given vorbis wasn't built
3119       AC_MSG_RESULT(no)
3120       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3121     fi
3122   else
3123     AC_CHECK_HEADERS(vorbis/codec.h, [
3124       VLC_ADD_PLUGINS([vorbis])
3125       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3126
3127     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3128       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3129   fi
3130 fi
3131
3132 dnl
3133 dnl  Tremor plugin
3134 dnl
3135 AC_ARG_ENABLE(tremor,
3136   [  --enable-tremor         Tremor decoder support (default disabled)])
3137 if test "${enable_tremor}" = "yes"
3138 then
3139   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3140     VLC_ADD_PLUGINS([tremor])
3141     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3142    ],[])
3143 fi
3144
3145 dnl
3146 dnl  Speex plugin
3147 dnl
3148 AC_ARG_ENABLE(speex,
3149   [  --enable-speex          Speex decoder support (default enabled)])
3150 if test "${enable_speex}" != "no"
3151 then
3152   AC_ARG_WITH(speex-tree,
3153   [    --with-speex-tree=PATH speex tree for static linking])
3154   if test -n "${with_speex_tree}"
3155   then
3156     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3157     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3158     if test -z "${real_speex_tree}"
3159     then
3160       dnl  The given directory can't be found
3161       AC_MSG_RESULT(no)
3162       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3163     fi
3164     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3165     then
3166       dnl  Use a custom speex
3167       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3168       VLC_ADD_PLUGINS([speex])
3169       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3170       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3171     else
3172       dnl  The given speex wasn't built
3173       AC_MSG_RESULT(no)
3174       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3175     fi
3176   else
3177     AC_CHECK_HEADERS(speex/speex.h, [
3178       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3179       AC_CHECK_LIB(speex, speex_decode_int, [
3180         VLC_ADD_PLUGINS([speex])
3181         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3182         [ AC_MSG_RESULT([no])
3183           AC_MSG_WARN([Your libspeex is too old, please get the development
3184                        version.]) ],[])
3185       LDFLAGS="${LDFLAGS_save}"
3186       ],[])
3187   fi
3188 fi
3189
3190 dnl
3191 dnl  tarkin decoder plugin
3192 dnl
3193 AC_ARG_ENABLE(tarkin,
3194 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3195 if test "${enable_tarkin}" = "yes"
3196 then
3197   AC_ARG_WITH(tarkin-tree,
3198   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3199   if test -n "${with_tarkin_tree}"
3200   then
3201     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3202     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3203     if test -f "${real_tarkin_tree}/tarkin.o"
3204     then
3205       VLC_ADD_BUILTINS([tarkin])
3206       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3207       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])
3208       AC_MSG_RESULT(yes)
3209     else
3210       dnl  The given tarkin tree wasn't built
3211       AC_MSG_RESULT(no)
3212       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3213                     make sure you compiled tarkin in ${with_tarkin_tree}])
3214     fi
3215   fi
3216 fi
3217
3218 dnl
3219 dnl  theora decoder plugin
3220 dnl
3221 AC_ARG_ENABLE(theora,
3222 [  --enable-theora         experimental theora codec (default disabled)])
3223 if test "${enable_theora}" = "yes"
3224 then
3225   AC_CHECK_HEADERS(theora/theora.h, [
3226     AC_CHECK_LIB(theora, theora_granule_time, [
3227       if test "${SYS}" = "mingw32"; then
3228         VLC_ADD_PLUGINS([theora])
3229       else
3230         VLC_ADD_BUILTINS([theora])
3231       fi
3232       theora_libs="-ltheora -logg"
3233       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3234       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3235 You also need to check that you have a libogg posterior to the 1.0 release.])],
3236       [-logg])
3237   ])
3238 fi
3239
3240 dnl
3241 dnl  dirac decoder plugin
3242 dnl
3243 AC_ARG_ENABLE(dirac,
3244 [  --enable-dirac          experimental dirac codec (default disabled)])
3245 if test "${enable_dirac}" = "yes"; then
3246   PKG_CHECK_MODULES(DIRAC,dirac, [
3247       VLC_ADD_PLUGINS([dirac])
3248       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3249       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3250       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3251   ])
3252 fi
3253
3254 dnl  libvc1 decoder plugin
3255 dnl
3256 AC_ARG_ENABLE(libvc1,
3257 [  --enable-libvc1         VC-1 codec (default disabled)])
3258 if test "${enable_libvc1}" = "yes"
3259 then
3260   AC_ARG_WITH(libvc1-tree,
3261   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3262   if test -n "${with_libvc1_tree}"
3263   then
3264     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3265     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3266     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3267     then
3268       VLC_ADD_BUILTINS([libvc1])
3269       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3270       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3271       AC_MSG_RESULT(yes)
3272     else
3273       dnl  The given libvc1 tree wasn't built
3274       AC_MSG_RESULT(no)
3275       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3276                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3277     fi
3278   fi
3279 fi
3280
3281 dnl
3282 dnl  PNG decoder module
3283 dnl
3284 AC_ARG_ENABLE(png,
3285   [  --enable-png            PNG support (default enabled)])
3286 if test "${enable_png}" != "no"; then
3287 AC_CHECK_HEADERS(png.h, [
3288   LDFLAGS="${LDFLAGS_save} -lz"
3289   AC_CHECK_LIB(png, png_set_rows, [
3290     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3291     VLC_ADD_PLUGINS([png])
3292     VLC_ADD_PLUGINS([osdmenu])
3293     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3294     [],[-lz])
3295   LDFLAGS="${LDFLAGS_save}"
3296   ])
3297 fi
3298
3299 dnl
3300 dnl H264 encoder plugin (using libx264)
3301 dnl
3302 AC_ARG_ENABLE(x264,
3303   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3304 if test "${enable_x264}" != "no"; then
3305   AC_ARG_WITH(x264-tree,
3306     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3307   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3308   then
3309     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3310     if test -z "${real_x264_tree}"
3311     then
3312       dnl  The given directory can't be found
3313       AC_MSG_RESULT(no)
3314       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3315     fi
3316     dnl  Use a custom libx264
3317     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3318     if test -f ${real_x264_tree}/x264.h
3319     then
3320       AC_MSG_RESULT(yes)
3321       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3322       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3323       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3324       AC_CHECK_LIB(x264, x264_encoder_open, [
3325         VLC_ADD_BUILTINS([x264])
3326         VLC_ADD_LDFLAGS([x264],[-lx264])
3327       ],[
3328         AC_MSG_ERROR([the specified tree hasn't been compiled])
3329       ])
3330       LDFLAGS="${LDFLAGS_save}"
3331     else
3332       AC_MSG_RESULT(no)
3333       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3334     fi
3335   else
3336     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3337     AC_CHECK_HEADERS(x264.h, [
3338       AC_CHECK_LIB(x264, x264_encoder_open, [
3339         VLC_ADD_PLUGINS([x264])
3340         VLC_ADD_LDFLAGS([x264],[-lx264])
3341       ],[
3342         if test "${enable_x264}" = "yes"; then
3343             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3344           fi
3345       ])
3346     ])
3347     LDFLAGS="${LDFLAGS_save}"
3348   fi
3349 fi
3350
3351 dnl
3352 dnl  CMML plugin
3353 dnl
3354 AC_ARG_ENABLE(cmml,
3355   [  --enable-cmml           CMML support (default enabled)])
3356 if test "${enable_cmml}" != "no"
3357 then
3358   VLC_ADD_PLUGINS([cmml])
3359 fi
3360
3361
3362 dnl
3363 dnl  Video plugins
3364 dnl
3365
3366 AC_ARG_WITH(,[Video plugins:])
3367
3368 dnl Check for DPMS
3369 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3370   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3371   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3372     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3373     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3374       AC_MSG_RESULT(yes)
3375       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3376                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3377     ],[
3378       AC_MSG_RESULT(no)
3379     ])
3380   ],,[
3381     #include <X11/Xlib.h>
3382   ])
3383   CPPFLAGS="${CPPFLAGS_save}"
3384 fi
3385
3386 dnl
3387 dnl  X11 module
3388 dnl  (enabled by default except on win32)
3389 dnl
3390 AC_ARG_ENABLE(x11,
3391   [  --enable-x11            X11 support (default enabled)])
3392 if test "${enable_x11}" != "no" &&
3393   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3394    test "${enable_x11}" = "yes"); then
3395   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3396   AC_CHECK_HEADERS(X11/Xlib.h, [
3397     VLC_ADD_PLUGINS([x11])
3398     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3399     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3400   ])
3401   CPPFLAGS="${CPPFLAGS_save}"
3402 fi
3403
3404 dnl
3405 dnl  XVideo module
3406 dnl  (enabled by default except on win32)
3407 dnl
3408 AC_ARG_ENABLE(xvideo,
3409   [  --enable-xvideo         XVideo support (default enabled)])
3410 if test "${enable_xvideo}" != "no" &&
3411   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3412    test "${enable_xvideo}" = "yes"); then
3413   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3414   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3415     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3416     AC_CHECK_LIB(Xv,XvPutImage,[
3417       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3418       # test for libXv_pic.
3419       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3420         VLC_ADD_PLUGINS([xvideo])
3421         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3422         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3423       else
3424         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3425           VLC_ADD_PLUGINS([xvideo])
3426           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3427           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3428         ],[
3429           VLC_ADD_BUILTINS([xvideo])
3430           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3431           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3432         ])
3433       fi
3434     ])
3435     CFLAGS="${CFLAGS_save}"
3436   ]
3437   CPPFLAGS="${CPPFLAGS_save}")
3438 fi
3439
3440 dnl
3441 dnl  GLX module
3442 dnl  (enabled by default except on win32)
3443 dnl
3444 AC_ARG_ENABLE(glx,
3445   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3446 if test "${enable_glx}" != "no" &&
3447   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3448    test "${enable_glx}" = "yes"); then
3449   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3450   AC_CHECK_HEADERS(X11/Xlib.h, [
3451     AC_CHECK_HEADERS(GL/glx.h, [
3452       VLC_ADD_PLUGINS([glx])
3453       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3454       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3455   ]) ])
3456   CPPFLAGS="${CPPFLAGS_save}"
3457 fi
3458
3459 dnl
3460 dnl  Check for the Xinerama extension
3461 dnl
3462 AC_ARG_ENABLE(xinerama,
3463   [  --enable-xinerama       Xinerama support (default enabled)])
3464 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3465   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3466    test "${enable_xvideo}" = "yes"); then
3467   ac_cv_have_xinerama="no"
3468   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3469   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3470   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3471     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3472       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3473       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3474       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3475       ac_cv_have_xinerama="yes"
3476     ],[
3477       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3478         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3479         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3480         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3481         ac_cv_have_xinerama="yes"
3482       ])
3483     ])
3484   ])
3485   if test "${ac_cv_have_xinerama}" = "yes"; then
3486     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3487   fi
3488   CFLAGS="${CFLAGS_save}"
3489   CPPFLAGS="${CPPFLAGS_save}"
3490
3491 dnl
3492 dnl  Check for XF86VidMode extension
3493 dnl
3494   ac_cv_have_xf86vidmode="no"
3495   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3496   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3497   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3498     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3499       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3500       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3501       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3502       ac_cv_have_xf86vidmode="yes"
3503     ],[
3504       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3505         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3506         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3507         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3508         ac_cv_have_xf86vidmode="yes"
3509       ])
3510     ])
3511   ],[true],
3512 [#ifdef HAVE_X11_XLIB_H
3513 # include <X11/Xlib.h>
3514 #endif]
3515    )
3516   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3517     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3518   ])
3519   CFLAGS="${CFLAGS_save}"
3520   CPPFLAGS="${CPPFLAGS_save}"
3521
3522 fi
3523
3524 dnl
3525 dnl  OpenGL module
3526 dnl  (enabled by default except on beos)
3527 dnl
3528 AC_ARG_ENABLE(opengl,
3529   [  --enable-opengl         OpenGL support (default enabled)])
3530 if test "${enable_opengl}" != "no" &&
3531    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3532   if test "${SYS}" != "darwin"; then
3533     AC_CHECK_HEADERS(GL/gl.h, [
3534       VLC_ADD_PLUGINS([opengl])
3535       if test "${SYS}" != "mingw32"; then
3536         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3537       else
3538         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3539       fi
3540     ])
3541   else
3542     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3543     VLC_ADD_PLUGINS([opengl])
3544     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3545   fi
3546 fi
3547
3548 dnl
3549 dnl  SDL module
3550 dnl
3551 AC_ARG_ENABLE(sdl,
3552   [  --enable-sdl            SDL support (default enabled)])
3553 if test "${enable_sdl}" != "no"
3554 then
3555   SDL_PATH="${PATH}"
3556   AC_ARG_WITH(sdl-config-path,
3557     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3558     [ if test "${with_sdl_config_path}" != "no"
3559       then
3560         SDL_PATH="${with_sdl_config_path}:${PATH}"
3561       fi ])
3562   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3563   SDL_CONFIG="${SDL12_CONFIG}"
3564   SDL_HEADER="SDL12/SDL.h"
3565   SDL_IMAGE="SDL12/SDL_image.h"
3566   if test "${SDL_CONFIG}" = "no"
3567   then
3568     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3569     SDL_CONFIG=${SDL11_CONFIG}
3570     SDL_HEADER="SDL11/SDL.h"
3571     SDL_IMAGE="SDL11/SDL_image.h"
3572   fi
3573   if test "${SDL_CONFIG}" = "no"
3574   then
3575     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3576     SDL_HEADER="SDL/SDL.h"
3577     SDL_IMAGE="SDL/SDL_image.h"
3578   fi
3579   # check for cross-compiling
3580   SDL_PREFIX=
3581   AC_ARG_WITH(sdl-prefix,
3582     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3583                                e.g use as:
3584                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3585   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3586   then
3587     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3588   fi
3589   if test "${SDL_CONFIG}" != "no"
3590   then
3591     # SDL on Darwin is heavily patched and can only run SDL_image
3592     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3593       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3594     fi
3595     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3596     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3597     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3598     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3599       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3600       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3601           As a last resort we also test for SDL.h presence),
3602       [ AC_MSG_ERROR([The development package for SDL is not installed.
3603 Please install it and try again. Alternatively you can also configure with
3604 --disable-sdl.])
3605       ])])
3606     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3607       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3608       VLC_ADD_PLUGINS([sdl_image])
3609       AC_CHECK_LIB(png, png_set_rows,
3610         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3611       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3612         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3613       AC_CHECK_LIB(tiff, TIFFClientOpen,
3614         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3615       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3616       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3617           As a last resort we also test for SDL_image.h presence),
3618       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3619 You should install it alongside your SDL package.])
3620       ])])
3621     CPPFLAGS="${CPPFLAGS_save}"
3622     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3623     then
3624       AC_MSG_ERROR([The development package for SDL is not installed.
3625 Please install it and try again. Alternatively you can also configure with
3626 --disable-sdl.])
3627     fi
3628
3629   elif test "${enable_sdl}" =  "yes"
3630   then
3631     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3632 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3633     ])
3634   fi
3635 fi
3636
3637 dnl
3638 dnl  freetype module
3639 dnl
3640 AC_ARG_ENABLE(freetype,
3641   [  --enable-freetype       freetype support (default enabled)])
3642 AC_ARG_ENABLE(fribidi,
3643   [  --enable-fribidi        fribidi support (default enabled)])
3644 if test "${enable_freetype}" != "no"
3645 then
3646   FREETYPE_PATH="${PATH}"
3647   AC_ARG_WITH(freetype-config-path,
3648     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3649     [ if test "${with_freetype_config_path}" != "no"
3650       then
3651         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3652       fi ])
3653   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3654
3655   if test "${FREETYPE_CONFIG}" != "no"
3656   then
3657     VLC_ADD_PLUGINS([freetype])
3658     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3659     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3660     AC_CHECK_HEADERS(Carbon/Carbon.h,
3661       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3662   elif test "${enable_freetype}" =  "yes"
3663   then
3664     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3665 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3666     ])
3667   fi
3668
3669   dnl fribidi support
3670   if test "${enable_fribidi}" != "no"
3671   then
3672     FRIBIDI_PATH="${PATH}"
3673     AC_ARG_WITH(fribidi-config-path,
3674       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3675       [ if test "${with_fribidi_config_path}" != "no"
3676         then
3677           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3678         fi ])
3679     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3680
3681     if test "${FRIBIDI_CONFIG}" != "no"
3682     then
3683       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3684       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3685       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3686       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3687     fi
3688   fi
3689 fi
3690
3691 dnl
3692 dnl  libxml2 module
3693 dnl
3694 AC_ARG_ENABLE(libxml2,
3695   [  --enable-libxml2        libxml2 support (default enabled)])
3696 if test "${enable_libxml2}" != "no"
3697 then
3698   XML2_PATH="${PATH}"
3699   AC_ARG_WITH(xml2-config-path,
3700     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3701     [ if test "${with_xml2_config_path}" != "no"; then
3702         XML2_PATH="${with_xml2_config_path}:${PATH}"
3703       fi ])
3704   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3705   if test "${XML2_CONFIG}" != "no"; then
3706     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3707     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3708     dnl depends on the xmlTextReader extension
3709     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3710     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3711     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3712       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3713         VLC_ADD_PLUGINS([xml]) ],[
3714           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3715           if test "${enable_xml2}" = "yes"; then
3716             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3717           fi])
3718        ],[
3719       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3720       if test "${enable_xml2}" = "yes"; then
3721         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3722       fi])
3723     LDFLAGS="${LDFLAGS_save}"
3724     CPPFLAGS="${CPPFLAGS_save}"
3725   else
3726     if test "${enable_xml2}" = "yes"; then
3727       AC_MSG_ERROR([Could not find libxml2])
3728     fi
3729   fi
3730 fi
3731
3732 dnl
3733 dnl  SVG module
3734 dnl
3735 AC_ARG_ENABLE(svg,
3736   [  --enable-svg            SVG support (default disabled)])
3737 if test "${enable_svg}" = "yes"
3738 then
3739   PKG_CHECK_MODULES(SVG, 
3740         librsvg-2.0 >= 2.5.0,
3741         [
3742           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3743           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3744           VLC_ADD_PLUGINS([svg]) ],
3745         [AC_MSG_WARN(SVG library not found)])
3746 fi
3747
3748 dnl
3749 dnl Snapshot vout module (with cache)
3750 dnl
3751 AC_ARG_ENABLE(snapshot,
3752   [  --enable-snapshot       snapshot module (default disabled)])
3753 if test "${enable_snapshot}" = "yes"