63ca0ed51ec86081251f7388e3a6685d798fc2ba
[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  Input plugins
1470 dnl
1471
1472 AC_ARG_WITH(,[Input plugins:])
1473
1474 dnl  live.com input
1475 dnl
1476 AC_ARG_ENABLE(livedotcom,
1477 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1478 if test "${enable_livedotcom}" = "yes"; then
1479   AC_ARG_WITH(livedotcom-tree,
1480     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1481
1482   dnl
1483   dnl test for --with-livedotcom-tree
1484   dnl
1485   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1486     AC_LANG_PUSH(C++)
1487     CPPFLAGS_save="${CPPFLAGS}"
1488     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1489     if test "${SYS}" = "solaris"; then
1490       CPPFLAGS_livedotcom="${CPPFLAGS_livedotcom} -DSOLARIS"
1491     fi
1492     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1493     AC_CHECK_HEADERS(liveMedia.hh, [
1494       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1495       AC_CHECK_LIB(liveMedia_pic, main, [
1496         # We have -lliveMedia_pic, build plugins
1497         VLC_ADD_PLUGINS([livedotcom])
1498         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1499       ], [
1500         AC_CHECK_LIB(liveMedia, main, [
1501           # We only have -lliveMedia, do builtins
1502           VLC_ADD_BUILTINS([livedotcom])
1503           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1504         ])
1505       ])
1506       if test "${SYS}" = "mingw32"; then
1507         # add ws2_32 for closesocket, select, recv
1508         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1509       fi
1510     ])
1511     CPPFLAGS="${CPPFLAGS_save}"
1512     AC_LANG_POP(C++)
1513   else
1514     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1515     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1516     if test -z "${real_livedotcom_tree}"; then
1517       dnl  The given directory can't be found
1518       AC_MSG_RESULT(no)
1519       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1520     fi
1521     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1522       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1523
1524       VLC_ADD_BUILTINS([livedotcom])
1525
1526       if test "${SYS}" = "mingw32"; then
1527         # add ws2_32 for closesocket, select, recv
1528         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1529       fi
1530
1531       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1532       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1533       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1534       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1535
1536       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1537       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1538       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1539       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1540       if test "${SYS}" = "solaris"; then
1541         VLC_ADD_CXXFLAGS([livedotcom],[-DSOLARIS])
1542       fi
1543     else
1544       dnl  The given live.com wasn't built
1545       AC_MSG_RESULT(no)
1546       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1547     fi
1548   fi
1549 fi
1550
1551 dnl
1552 dnl dv module: digital video module check for libraw1394
1553 dnl
1554 AC_ARG_ENABLE(dv,
1555 [  --enable-dv             dv input module (default disabled)])
1556 if test "${enable_dv}" = "yes"
1557 then
1558   AC_ARG_WITH(dv-raw1394,
1559   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1560   AC_ARG_WITH(dv-raw1394-tree,
1561   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1562
1563   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1564   then
1565     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1566     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1567     then
1568       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1569       AC_MSG_RESULT(yes)
1570       VLC_ADD_PLUGINS([access_dv])
1571       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1572       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1573     else
1574       dnl  No libraw1394 could be found, sorry
1575       AC_MSG_RESULT(no)
1576       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1577     fi
1578   else
1579     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1580     [ VLC_ADD_PLUGINS([access_dv])
1581         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1582     ],[
1583         if test -n "${enable_dv}"
1584         then
1585           AC_MSG_ERROR([cannot find libraw1394 headers])
1586         fi
1587     ])
1588   fi
1589
1590   dnl Check for static linking of libraw1394
1591   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1592   then
1593     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1594     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1595     if test -z "${real_dv_raw1394_tree}"
1596     then
1597       dnl  The given directory can't be found
1598       AC_MSG_RESULT(no)
1599       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1600     fi
1601     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1602     then
1603       dnl  Use a custom libraw1394
1604       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1605       VLC_ADD_BUILTINS([access_dv])
1606       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1607       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1608     else
1609       dnl  The given libraw1394 wasn't built
1610       AC_MSG_RESULT(no)
1611       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1612     fi
1613   fi
1614
1615   dnl
1616   dnl Check for libavc1394
1617   dnl
1618
1619   AC_ARG_WITH(dv-avc1394,
1620   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1621   AC_ARG_WITH(dv-avc1394-tree,
1622   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1623
1624   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1625   then
1626     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1627     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1628     then
1629       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1630       AC_MSG_RESULT(yes)
1631       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1632       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1633     else
1634       dnl  No libavc1394 could be found, sorry
1635       AC_MSG_RESULT(no)
1636       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1637     fi
1638   else
1639     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1640     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1641     ],[
1642         if test -n "${enable_dv}"
1643         then
1644           AC_MSG_ERROR([cannot find libavc1394 headers])
1645         fi
1646     ])
1647   fi
1648
1649   dnl Check for static linking of libavc1394
1650   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1651   then
1652     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1653     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1654     if test -z "${real_dv_avc1394_tree}"
1655     then
1656       dnl  The given directory can't be found
1657       AC_MSG_RESULT(no)
1658       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1659     fi
1660     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1661     then
1662       dnl  Use a custom libavc1394
1663       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1664       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1665       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1666     else
1667       dnl  The given libavc1394 wasn't built
1668       AC_MSG_RESULT(no)
1669       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1670     fi
1671   fi
1672 fi
1673
1674 dnl
1675 dnl dvdread module: check for libdvdread
1676 dnl
1677 AC_ARG_ENABLE(dvdread,
1678 [  --enable-dvdread        dvdread input module (default disabled)])
1679 if test "${enable_dvdread}" != "no"
1680 then
1681   AC_ARG_WITH(dvdread,
1682   [    --with-dvdread=PATH   libdvdread headers and libraries])
1683   AC_ARG_WITH(dvdread-tree,
1684   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1685
1686   dnl Temporary hack (yeah, sure ;)
1687   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1688       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1689   fi
1690
1691   if test -z "${with_dvdread}"
1692   then
1693     if test -z "${with_dvdread_tree}"
1694     then
1695       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1696         [ VLC_ADD_PLUGINS([dvdread])
1697           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1698         ],[
1699           if test -n "${enable_dvdread}"
1700           then
1701             AC_MSG_ERROR([cannot find libdvdread headers])
1702           fi
1703         ])
1704     else
1705       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1706       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1707       if test -z "${real_dvdread_tree}"
1708       then
1709         dnl  The given directory can't be found
1710         AC_MSG_RESULT(no)
1711         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1712       fi
1713       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1714       then
1715         dnl  Use a custom libdvdread
1716         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1717         VLC_ADD_BUILTINS([dvdread])
1718         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1719         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1720       else
1721         dnl  The given libdvdread wasn't built
1722         AC_MSG_RESULT(no)
1723         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1724       fi
1725     fi
1726   else
1727     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1728     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1729     then
1730       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1731       AC_MSG_RESULT(yes)
1732       VLC_ADD_PLUGINS([dvdread])
1733       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1734       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1735     else
1736       dnl  No libdvdread could be found, sorry
1737       AC_MSG_RESULT(no)
1738       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1739     fi
1740   fi
1741 fi
1742
1743 dnl
1744 dnl  libdvdnav plugin
1745 dnl
1746 AC_ARG_ENABLE(dvdnav,
1747   [  --enable-dvdnav         dvdnav input module (default enabled)])
1748 if test "${enable_dvdnav}" != "no"
1749 then
1750   dnl Same hack than dvdread
1751   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1752       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1753   fi
1754
1755   DVDNAV_PATH="${PATH}"
1756   AC_ARG_WITH(dvdnav-config-path,
1757     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1758     [ if test "${with_dvdnav_config_path}" != "no"
1759       then
1760         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1761       fi ])
1762   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1763   if test "${DVDNAV_CONFIG}" != "no"
1764   then
1765     VLC_ADD_PLUGINS([dvdnav])
1766     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1767     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1768   fi
1769 fi
1770
1771 dnl
1772 dnl  Windows DirectShow access module
1773 dnl
1774 AC_ARG_ENABLE(dshow,
1775   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1776 if test "${enable_dshow}" != "no"
1777 then
1778   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1779   then
1780     AC_LANG_PUSH(C++)
1781       AC_CHECK_HEADERS(dshow.h,
1782       [ VLC_ADD_PLUGINS([dshow])
1783         VLC_ADD_CXXFLAGS([dshow],[])
1784         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1785     AC_LANG_POP(C++)
1786   fi
1787 fi
1788
1789 dnl
1790 dnl  libsmbclient plugin
1791 dnl
1792 AC_ARG_ENABLE(smb,
1793   [  --enable-smb            smb input module (default enabled)])
1794 if test "${enable_smb}" != "no"; then
1795   AC_CHECK_HEADERS(libsmbclient.h,
1796     [ VLC_ADD_PLUGINS([access_smb])
1797       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1798     [ if test -n "${enable_smb}"; then
1799         AC_MSG_ERROR([cannot find libsmbclient headers])
1800      fi ])
1801   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1802     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1803     [#include <libsmbclient.h>])
1804 fi
1805
1806 dnl
1807 dnl  libdvbpsi ts demux/mux
1808 dnl
1809 AC_ARG_ENABLE(dvbpsi,
1810   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1811 if test "${enable_dvbpsi}" != "no"
1812 then
1813   AC_ARG_WITH(dvbpsi,
1814   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1815   AC_ARG_WITH(dvbpsi,
1816   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1817   case "${with_dvbpsi}" in
1818   ""|yes)
1819     if test -z "${with_dvbpsi_tree}"
1820     then
1821       AC_CHECK_HEADERS(dvbpsi/dr.h,
1822         [ VLC_ADD_PLUGINS([ts])
1823           if test "${enable_sout}" != "no"; then
1824             VLC_ADD_BUILTINS([mux_ts])
1825           fi
1826           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1827         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1828         [#if defined( HAVE_STDINT_H )
1829 #   include <stdint.h>
1830 #elif defined( HAVE_INTTYPES_H )
1831 #   include <inttypes.h>
1832 #endif
1833 #include <dvbpsi/dvbpsi.h>
1834 #include <dvbpsi/descriptor.h>
1835 #include <dvbpsi/pat.h>
1836 #include <dvbpsi/pmt.h>])
1837     else
1838       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1839       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1840       if test -z "${real_dvbpsi_tree}"
1841       then
1842         dnl  The given directory can't be found
1843         AC_MSG_RESULT(no)
1844         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1845       fi
1846       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1847       then
1848         dnl  Use a custom libdvbpsi
1849         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1850         VLC_ADD_BUILTINS([ts])
1851         if test "${enable_sout}" != "no"; then
1852           VLC_ADD_BUILTINS([mux_ts])
1853         fi
1854         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1855         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1856       else
1857         dnl  The given libdvbpsi wasn't built
1858         AC_MSG_RESULT(no)
1859         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1860       fi
1861     fi
1862   ;;
1863   no)
1864     dnl  Compile without dvbpsi
1865   ;;
1866   *)
1867     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1868     if test -z "${with_dvbpsi}"
1869     then
1870       LDFLAGS_test=""
1871       CPPFLAGS_test=""
1872     else
1873       LDFLAGS_test="-L${with_dvbpsi}/lib"
1874       CPPFLAGS_test="-I${with_dvbpsi}/include"
1875     fi
1876     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1877     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1878       VLC_ADD_PLUGINS([ts])
1879       if test "${enable_sout}" != "no"; then
1880         VLC_ADD_PLUGINS([mux_ts])
1881       fi
1882       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1883       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1884
1885     ],[
1886       if test -n "${enable_dvbpsi}"
1887       then
1888         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])
1889       fi
1890     ])
1891     CPPFLAGS="${CPPFLAGS_save}"
1892   ;;
1893   esac
1894   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1895     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1896   ], [], [${LDFLAGS_ts}])
1897
1898 fi
1899
1900 dnl
1901 dnl  Video4Linux plugin
1902 dnl
1903 AC_ARG_ENABLE(v4l,
1904   [  --enable-v4l            Video4Linux input support (default disabled)])
1905 if test "${enable_v4l}" = "yes"
1906 then
1907   AC_ARG_WITH(v4l,
1908     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1909   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1910   then
1911     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1912   fi
1913
1914   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1915   AC_CHECK_HEADERS(linux/videodev.h, [
1916     VLC_ADD_PLUGINS([v4l])
1917   ],[])
1918   CPPFLAGS="${CPPFLAGS_save}"
1919 fi
1920
1921 dnl
1922 dnl  special access module for Hauppauge PVR cards
1923 dnl
1924 AC_ARG_ENABLE(pvr,
1925   [  --enable-pvr            PVR cards access module (default disabled)])
1926 if test "${enable_pvr}" = "yes"
1927 then
1928   VLC_ADD_PLUGINS([pvr])
1929 fi
1930
1931 dnl
1932 dnl  gnomeVFS access module
1933 dnl
1934 AC_ARG_ENABLE(gnomevfs,
1935   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1936 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1937 then
1938   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1939     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1940     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1941     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1942     VLC_ADD_PLUGINS([access_gnomevfs]),
1943     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1944 fi
1945
1946 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1947 AC_ARG_ENABLE(libcdio,
1948   [  --enable-libcdio        CD input and control library support (default enabled)])
1949
1950
1951 have_libcdio=no
1952 have_libvcdinfo=no
1953 if test "${enable_libcdio}" != "no"
1954 then
1955   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1956      have_libcdio=yes
1957      AC_DEFINE(HAVE_LIBCDIO, [], 
1958      [Define if you have libcdio 0.72 or greater installed]),
1959      [AC_MSG_WARN(CD Reading and information library not found)])
1960
1961   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1962      [have_libvcdinfo=yes
1963      AC_DEFINE(HAVE_VCDINFO, [], 
1964      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1965      [AC_MSG_WARN(VCD information library not found)])
1966 fi
1967
1968 dnl
1969 dnl  VCDX and CDDAX modules
1970 dnl
1971 AC_ARG_ENABLE(cddax,
1972   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1973  
1974 AC_ARG_ENABLE(libcddb,
1975   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1976  
1977 if test "${enable_cddax}" = "yes"
1978 then
1979   if test "$have_libcdio" = "yes"
1980   then
1981     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1982     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1983     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1984     VLC_ADD_PLUGINS([cddax])
1985     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1986     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1987     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1988   else 
1989     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1990     HAVE_CDDAX=no
1991   fi
1992
1993   if test "$enable_libcddb" != "no"; then
1994     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1995       HAVE_LIBCDDB=yes 
1996       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1997       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1998       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1999       ],
2000       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2001       HAVE_LIBCDDB=no])
2002   fi
2003  
2004 fi
2005
2006 AC_ARG_ENABLE(vcdx,
2007   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2008  
2009 if test "${enable_vcdx}" = "yes"
2010 then
2011   if test "${have_libvcdinfo}" = "yes"
2012   then
2013     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2014     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2015   else 
2016     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2017     HAVE_VCDX=no
2018   fi
2019
2020   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2021    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2022     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2023     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2024     HAVE_VCDX=no])
2025
2026   if test "$have_libvcdinfo" = "yes"
2027   then
2028     AC_DEFINE(HAVE_VCDX, [], 
2029     [Define for the VCD plugin using libcdio/libvcdinfo])
2030     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2031     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2032     VLC_ADD_PLUGINS([vcdx])
2033   else 
2034     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2035     HAVE_VCDX=no
2036   fi
2037 fi
2038
2039 dnl
2040 dnl  Built-in CD-DA and VCD module
2041 dnl
2042 AC_ARG_ENABLE(cdda,           
2043   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2044  
2045 AC_ARG_ENABLE(vcd,
2046   [  --enable-vcd            built-in VCD (default enabled)])
2047
2048 if test "${enable_vcd}" != "no"
2049 then
2050   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2051   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2052     AC_MSG_RESULT(yes)
2053     VLC_ADD_PLUGINS([vcd cdda])
2054   ],[
2055     AC_MSG_RESULT(no)
2056   ])
2057
2058   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2059   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2060     AC_MSG_RESULT(yes)
2061     VLC_ADD_PLUGINS([vcd cdda])
2062     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2063   ],[
2064     AC_MSG_RESULT(no)
2065   ])
2066
2067   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2068   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2069     AC_MSG_RESULT(yes)
2070     VLC_ADD_PLUGINS([vcd cdda])
2071     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2072   ],[
2073     AC_MSG_RESULT(no)
2074   ])
2075
2076   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2077   then
2078     VLC_ADD_PLUGINS([vcd cdda])
2079   fi
2080
2081   if test "${SYS}" = "darwin"
2082   then
2083     VLC_ADD_PLUGINS([vcd cdda])
2084     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2085     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2086   fi
2087
2088   if test "$enable_libcddb" != "no"; then
2089     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2090       HAVE_LIBCDDB=yes 
2091       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2092       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2093       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2094       ],:
2095       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2096       HAVE_LIBCDDB=no])
2097   fi
2098 fi
2099
2100 dnl
2101 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2102 dnl
2103 AC_ARG_ENABLE(dvb,
2104   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2105
2106 if test "${enable_dvb}" = "yes"
2107 then
2108   AC_ARG_WITH(dvb,
2109   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2110   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2111   then
2112     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2113   fi
2114   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2115   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2116     if test -z "${with_dvbpsi_tree}"
2117     then
2118       VLC_ADD_PLUGINS([dvb])
2119     else
2120       VLC_ADD_BUILTINS([dvb])
2121     fi
2122   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2123   CPPFLAGS="${CPPFLAGS_save}"
2124 fi
2125
2126 dnl
2127 dnl  Screen capture module
2128 dnl
2129 AC_ARG_ENABLE(screen,
2130   [  --enable-screen         Screen capture support (default enabled)])
2131 if test "${enable_screen}" != "no"; then
2132   if test "${SYS}" = "darwin"; then
2133     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2134       VLC_ADD_PLUGINS([screen])
2135       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2136     ])
2137   elif test "${SYS}" = "mingw32"; then
2138     VLC_ADD_PLUGINS([screen])
2139     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2140   elif test "${SYS}" = "mingwce"; then
2141     CPPFLAGS="${CPPFLAGS_save}"
2142   elif test "${SYS}" = "beos"; then
2143     VLC_ADD_PLUGINS([screen])
2144     VLC_ADD_CXXFLAGS([screen],[])
2145     VLC_ADD_LDFLAGS([screen],[-lbe])
2146   else
2147     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2148     AC_CHECK_HEADERS(X11/Xlib.h, [
2149       VLC_ADD_PLUGINS([screen])
2150       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2151       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2152     ])
2153     CPPFLAGS="${CPPFLAGS_save}"
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  ipv6 plugin - not for QNX yet
2159 dnl
2160 have_ipv6=no
2161 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2162   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2163 ])
2164
2165 AS_IF([test "${have_ipv6}" = "yes"], [
2166   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2167
2168 if test "${SYS}" != "nto" &&
2169    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2170 then
2171   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2172   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2173     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2174   AS_IF([test "${have_ipv6}" != "no"], [
2175     VLC_ADD_PLUGINS([ipv6])])
2176 fi
2177 if test "${SYS}" = "mingw32"
2178 then
2179   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2180   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2181     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2182 fi
2183
2184 dnl
2185 dnl  ogg demux plugin
2186 dnl
2187 AC_ARG_ENABLE(ogg,
2188   [  --enable-ogg            Ogg demux support (default enabled)])
2189 if test "${enable_ogg}" != "no"
2190 then
2191   AC_ARG_WITH(ogg-tree,
2192   [    --with-ogg-tree=PATH  ogg tree for static linking])
2193   if test -n "${with_ogg_tree}"
2194   then
2195     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2196     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2197     if test -z "${real_ogg_tree}"
2198     then
2199       dnl  The given directory can't be found
2200       AC_MSG_RESULT(no)
2201       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2202     fi
2203     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2204     then
2205       dnl  Use a custom ogg
2206       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2207       VLC_ADD_PLUGINS([ogg])
2208       if test "${enable_sout}" != "no"; then
2209         VLC_ADD_PLUGINS([mux_ogg])
2210       fi
2211       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2212       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2213     else
2214       dnl  The given ogg wasn't built
2215       AC_MSG_RESULT(no)
2216       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2217     fi
2218   else
2219     AC_CHECK_HEADERS(ogg/ogg.h, [
2220       AC_CHECK_LIB( ogg, oggpack_read, [
2221         VLC_ADD_PLUGINS([ogg])
2222         if test "${enable_sout}" != "no"; then
2223           VLC_ADD_PLUGINS([mux_ogg])
2224         fi
2225         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2226      ],[])
2227   fi
2228 fi
2229
2230 dnl
2231 dnl  matroska demux plugin
2232 dnl
2233 AC_ARG_ENABLE(mkv,
2234   [  --enable-mkv            Matroska demux support (default enabled)])
2235 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2236   AC_LANG_PUSH(C++)
2237   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2238     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2239     AC_EGREP_CPP(yes,
2240       [#include <ebml/EbmlVersion.h>
2241        #ifdef LIBEBML_VERSION
2242        #if LIBEBML_VERSION >= 0x000706
2243        yes
2244        #endif
2245        #endif],
2246       [AC_MSG_RESULT([yes])
2247         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2248           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2249           AC_EGREP_CPP(yes,
2250             [#include <matroska/KaxVersion.h>
2251              #ifdef LIBMATROSKA_VERSION
2252              #if LIBMATROSKA_VERSION >= 0x000705
2253              yes
2254              #endif
2255              #endif],
2256             [AC_MSG_RESULT([yes])
2257               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2258               VLC_ADD_CXXFLAGS([mkv],[])
2259               if test "${SYS}" = "darwin"; then
2260                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2261               fi
2262               AC_CHECK_LIB(ebml_pic, main, [
2263                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2264                 VLC_ADD_PLUGINS([mkv])
2265                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2266               ], [
2267                 AC_CHECK_LIB(ebml, main, [
2268                   # We only have libebml, make mkv.a a builtin
2269                   VLC_ADD_BUILTINS([mkv])
2270                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2271                 ])
2272               ])
2273             ],
2274             [AC_MSG_RESULT([no])
2275               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.])
2276           ])
2277         ])
2278       ],
2279       [AC_MSG_RESULT([no])
2280         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.])
2281     ])
2282   ])
2283   AC_LANG_POP(C++)
2284 fi
2285
2286 dnl
2287 dnl  modplug demux plugin
2288 dnl
2289 AC_ARG_ENABLE(mod,
2290   [  --enable-mod            Mod demux support (default enabled)])
2291 if test "${enable_mod}" != "no"
2292 then
2293   AC_ARG_WITH(mod-tree,
2294   [    --with-mod-tree=PATH mod tree for static linking])
2295   if test -n "${with_mod_tree}"
2296   then
2297     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2298     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2299     if test -z "${real_mod_tree}"
2300     then
2301       dnl  The given directory can't be found
2302       AC_MSG_RESULT(no)
2303       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2304     fi
2305     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2306     then
2307       dnl  Use a custom mod
2308       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2309       VLC_ADD_PLUGINS([mod])
2310       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2311       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2312     else
2313       dnl  The given mod wasn't built
2314       AC_MSG_RESULT(no)
2315       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2316     fi
2317   else
2318     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2319       VLC_ADD_PLUGINS([mod])
2320       VLC_ADD_CXXFLAGS([mod],[])
2321       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2322   fi
2323 fi
2324
2325 dnl
2326 dnl  mpc demux plugin
2327 dnl
2328 AC_ARG_ENABLE(mpc,
2329   [  --enable-mpc            Mpc demux support (default enabled)])
2330 if test "${enable_mpc}" != "no"
2331 then
2332   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2333     VLC_ADD_PLUGINS([mpc])
2334     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2335 fi
2336
2337
2338 dnl
2339 dnl  Codec plugins
2340 dnl
2341
2342 AC_ARG_WITH(,[Codec plugins:])
2343
2344 dnl
2345 dnl  mad plugin
2346 dnl
2347 AC_ARG_ENABLE(mad,
2348   [  --enable-mad            libmad module (default enabled)])
2349 if test "${enable_mad}" != "no"
2350 then
2351   AC_ARG_WITH(mad,
2352     [    --with-mad=PATH       path to libmad],[],[])
2353   if test "${with_mad}" != "no" -a -n "${with_mad}"
2354   then
2355     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2356     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2357   fi
2358
2359   AC_ARG_WITH(mad-tree,
2360     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2361   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2362   then
2363     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2364     if test -z "${real_mad_tree}"
2365     then
2366       dnl  The given directory can't be found
2367       AC_MSG_RESULT(no)
2368       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2369     fi
2370     dnl  Use a custom libmad
2371     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2372     if test -f ${real_mad_tree}/mad.h
2373     then
2374       AC_MSG_RESULT(yes)
2375       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2376       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2377       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2378       AC_CHECK_LIB(mad, mad_bit_init, [
2379         VLC_ADD_BUILTINS([mpgatofixed32])
2380         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2381         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2382       ],[])
2383       LDFLAGS="${LDFLAGS_save}"
2384     else
2385       AC_MSG_RESULT(no)
2386       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2387     fi
2388   else
2389     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2390     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2391     AC_CHECK_HEADERS(mad.h, ,
2392       [ 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.]) ])
2393     AC_CHECK_LIB(mad, mad_bit_init, [
2394       VLC_ADD_PLUGINS([mpgatofixed32])
2395       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2396       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2397     CPPFLAGS="${CPPFLAGS_save}"
2398     LDFLAGS="${LDFLAGS_save}"
2399   fi
2400 fi
2401
2402 dnl
2403 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2404 dnl
2405 AC_CHECK_HEADERS(id3tag.h, [
2406   AC_CHECK_HEADERS(zlib.h, [
2407     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2408     VLC_ADD_PLUGINS([id3tag])]) ])
2409
2410 dnl
2411 dnl  ffmpeg decoder/demuxer plugin
2412 dnl
2413 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2414 dnl                             4- default place, 
2415
2416 AC_ARG_ENABLE(ffmpeg,
2417 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2418 if test "${enable_ffmpeg}" != "no"
2419 then
2420
2421 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2422
2423  AC_ARG_WITH(ffmpeg-mp3lame,
2424    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2425    [
2426      if test "$with_ffmpeg_mp3lame" = "yes";    then
2427         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2428      fi])
2429
2430  AC_ARG_WITH(ffmpeg-faac,
2431    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2432    [
2433      if test "$with_ffmpeg_faac" = "yes"; then
2434         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2435      fi])
2436
2437  AC_ARG_WITH(ffmpeg-dts,
2438    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2439    [
2440      if test "$with_ffmpeg_dts" = "yes"; then
2441              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2442              AC_CHECK_LIB(dts_pic, dts_free, 
2443                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2444                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2445              LDFLAGS="${LDFLAGS_save}"
2446      fi])
2447
2448  AC_ARG_WITH(ffmpeg-vorbis,
2449    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2450    [
2451      if test "$with_ffmpeg_vorbis" = "yes"; then
2452         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2453      fi])
2454
2455  AC_ARG_WITH(ffmpeg-theora,
2456    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2457    [
2458      if test "$with_ffmpeg_theora" = "yes"; then
2459         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2460      fi])
2461
2462  AC_ARG_WITH(ffmpeg-ogg,
2463    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2464    [
2465      if test "$with_ffmpeg_ogg" = "yes"; then
2466         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2467      fi])
2468
2469  AC_ARG_WITH(ffmpeg-zlib,
2470    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2471    [
2472      if test "$with_ffmpeg_zlib" = "yes"; then
2473                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2474      fi])
2475
2476  dnl
2477  dnl test for --with-ffmpeg-tree
2478  dnl
2479  AC_ARG_WITH(ffmpeg-tree,
2480    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2481
2482  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2483    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2484    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2485    if test -z "${real_ffmpeg_tree}"; then
2486      dnl  The given directory can't be found
2487      AC_MSG_RESULT(no)
2488      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2489    fi
2490    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2491      dnl  The given libavcodec wasn't built
2492      AC_MSG_RESULT(no)
2493      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2494    fi
2495    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2496      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2497        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2498      else
2499        dnl  The given libavcodec wasn't built with --enable-pp
2500        AC_MSG_RESULT(no)
2501        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2502      fi
2503    fi
2504    dnl  Use a custom libffmpeg
2505    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2506
2507    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2508      if test "${with_ffmpeg_zlib}" != "yes"; then
2509        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2510      fi
2511    fi
2512    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2513      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2514        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2515      fi
2516    fi
2517    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2518      if test "${with_ffmpeg_faac}" != "yes"; then
2519        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2520      fi
2521    fi
2522    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2523      if test "${with_ffmpeg_dts}" != "yes"; then
2524        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2525        AC_CHECK_LIB(dts_pic, dts_free, 
2526          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2527          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2528        LDFLAGS="${LDFLAGS_save}"
2529      fi
2530    fi
2531    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2532      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2533    fi
2534    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2535      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2536    fi
2537    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2538      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2539    fi
2540
2541    VLC_ADD_BUILTINS([ffmpeg])
2542    if test "${enable_sout}" != "no"; then
2543      VLC_ADD_BUILTINS([stream_out_switcher])
2544    fi
2545
2546    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2547      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2548      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2549    fi
2550
2551    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2552    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2553
2554    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2555      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2556      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2557      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2558    fi
2559 else    
2560     
2561 dnl Look for a ffmpeg-config (we are on debian )
2562  
2563   FFMPEG_PATH="${PATH}"
2564   AC_ARG_WITH(ffmpeg-config-path,
2565     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2566     [ if test "${with_ffmpeg_config_path}" != "no"
2567       then
2568         FFMPEG_PATH="${with_ffmpeg_config_path}"
2569       fi ])
2570   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2571   if test "${FFMPEG_CONFIG}" != "no"
2572   then
2573     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2574     AC_CHECK_HEADERS(postproc/postprocess.h)
2575     VLC_ADD_PLUGINS([ffmpeg])
2576     if test "${enable_sout}" != "no"; then
2577         VLC_ADD_PLUGINS([stream_out_switcher])
2578     fi
2579     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2580     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2581  
2582  else
2583
2584 dnl Trying with pkg-config
2585    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2586     [
2587      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2588      AC_CHECK_HEADERS(postproc/postprocess.h)
2589      VLC_ADD_BUILTINS([ffmpeg])
2590      if test "${enable_sout}" != "no"; then
2591          VLC_ADD_BUILTINS([stream_out_switcher])
2592      fi
2593      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2594      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2595      dnl newer ffmpeg have a separate libpostproc
2596      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2597        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2598        ],[ true ])
2599     ],[
2600      
2601     dnl
2602     dnl last chance: at the default place
2603     dnl
2604       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2605       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2606       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2607       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2608
2609       AC_CHECK_LIB(avutil, av_add_i, [
2610         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2611         LDAVUTIL="-lavutil"])
2612
2613       AC_CHECK_LIB(postproc, pp_postprocess, [
2614         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2615
2616       AC_CHECK_LIB(avcodec, avcodec_init, [
2617         VLC_ADD_BUILTINS([ffmpeg])
2618         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2619         if test "${enable_sout}" != "no"; then
2620             VLC_ADD_BUILTINS([stream_out_switcher])
2621         fi],
2622          [ 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])
2623       AC_CHECK_LIB(avformat, av_open_input_stream, [
2624         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2625         [Define if you have ffmpeg's libavformat.])
2626         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2627       LDFLAGS="${LDFLAGS_save}"
2628       CPPFLAGS="${CPPFLAGS_save}"
2629     ])
2630   fi
2631  fi 
2632 fi
2633
2634 dnl
2635 dnl  ffmpegaltivec plugin
2636 dnl
2637 AC_ARG_ENABLE(ffmpegaltivec,
2638 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2639 if test "${enable_ffmpegaltivec}" = "yes"
2640 then
2641   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2642     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2643     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2644     if test -z "${real_ffmpeg_tree}"; then
2645       dnl  The given directory can't be found
2646       AC_MSG_RESULT(no)
2647       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2648     fi
2649     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2650       dnl  The given libavcodecaltivec wasn't built
2651       AC_MSG_RESULT(no)
2652       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2653     fi
2654     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2655       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2656       AC_MSG_RESULT(no)
2657       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2658     fi
2659     dnl  Use a custom libffmpeg
2660     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2661     VLC_ADD_BUILTINS([ffmpegaltivec])
2662     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2663     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2664     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2665
2666     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2667       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2668       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2669       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2670     fi
2671     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2672     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2673   fi
2674 fi
2675
2676 dnl
2677 dnl  faad decoder plugin
2678 dnl
2679 AC_ARG_ENABLE(faad,
2680 [  --enable-faad           faad codec (default disabled)])
2681 if test "${enable_faad}" = "yes"
2682 then
2683   AC_ARG_WITH(faad-tree,
2684   [    --with-faad-tree=PATH faad tree for static linking])
2685   if test -n "${with_faad_tree}"
2686   then
2687     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2688     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2689     if test -z "${real_faad_tree}"
2690     then
2691       dnl  The given directory can't be found
2692       AC_MSG_RESULT(no)
2693       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2694     fi
2695     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2696     then
2697       dnl  Use a custom faad
2698       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2699       VLC_ADD_BUILTINS([faad])
2700       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2701       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2702     else
2703       dnl  The given libfaad wasn't built
2704       AC_MSG_RESULT(no)
2705       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2706     fi
2707   else
2708     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2709     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2710     AC_CHECK_HEADERS(faad.h, ,
2711       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2712     AC_CHECK_LIB(faad, faacDecOpen, [
2713       VLC_ADD_PLUGINS([faad])
2714       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2715       AC_CHECK_LIB(faad, NeAACDecOpen, [
2716         VLC_ADD_PLUGINS([faad])
2717         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2718         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2719     LDFLAGS="${LDFLAGS_save}"
2720     CPPFLAGS="${CPPFLAGS_save}"
2721   fi
2722 fi
2723
2724 dnl
2725 dnl twolame encoder plugin
2726 dnl
2727 AC_ARG_ENABLE(twolame,
2728 [  --enable-twolame        twolame codec (default disabled)])
2729 if test "${enable_twolame}" = "yes"
2730 then
2731   AC_ARG_WITH(twolame-tree,
2732   [    --with-twolame-tree=PATH twolame tree for static linking])
2733   if test -n "${with_twolame_tree}"
2734   then
2735     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2736     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2737     if test -z "${real_twolame_tree}"
2738     then
2739       dnl  The given directory can't be found
2740       AC_MSG_RESULT(no)
2741       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2742     fi
2743     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2744     then
2745       dnl  Use a custom twolame
2746       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2747       VLC_ADD_BUILTINS([twolame])
2748       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2749       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2750     else
2751       dnl  The given libtwolame wasn't built
2752       AC_MSG_RESULT(no)
2753       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2754     fi
2755   else
2756     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2757     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2758     AC_CHECK_HEADERS(twolame.h, ,
2759       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2760     AC_CHECK_LIB(twolame, twolame_init, [
2761       VLC_ADD_PLUGINS([twolame])
2762       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2763         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2764     LDFLAGS="${LDFLAGS_save}"  
2765     CPPFLAGS="${CPPFLAGS_save}"
2766   fi
2767 fi
2768
2769 dnl
2770 dnl  QuickTime plugin
2771 dnl
2772 AC_ARG_ENABLE(quicktime,
2773   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2774 if test "${enable_quicktime}" != "no" &&
2775   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2776 then
2777   if test "${SYS}" = "mingw32"; then
2778     VLC_ADD_BUILTINS([quicktime])
2779   else
2780   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2781     [ VLC_ADD_BUILTINS([quicktime])
2782       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2783     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2784   fi
2785 fi
2786
2787 dnl
2788 dnl  Real plugin
2789 dnl
2790 AC_ARG_ENABLE(real,
2791   [  --enable-real           Real audio module (default disabled)])
2792 if test "${enable_real}" = "yes"; then
2793   VLC_ADD_PLUGINS([realaudio])
2794 fi
2795
2796 dnl
2797 dnl  Real RTSP plugin
2798 dnl
2799 AC_ARG_ENABLE(realrtsp,
2800   [  --enable-realrtsp       Real RTSP module (default disabled)])
2801 if test "${enable_realrtsp}" = "yes"; then
2802   VLC_ADD_PLUGINS([access_realrtsp])
2803 fi
2804
2805 dnl
2806 dnl MP4 module
2807 dnl
2808 AC_CHECK_HEADERS(zlib.h, [
2809   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2810 ] )
2811
2812 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2813   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2814 ] )
2815
2816 dnl
2817 dnl skins2 module
2818 dnl
2819 AC_CHECK_HEADERS(libtar.h, [
2820   VLC_ADD_LDFLAGS([skins2],[-ltar])
2821 ] )
2822
2823
2824
2825 dnl
2826 dnl A52/AC3 decoder plugin
2827 dnl
2828 AC_ARG_ENABLE(a52,
2829   [  --enable-a52            A/52 support with liba52 (default enabled)])
2830 if test "${enable_a52}" != "no"
2831 then
2832   AC_ARG_WITH(a52,
2833     [    --with-a52=PATH       a52 headers and libraries])
2834   AC_ARG_WITH(a52-tree,
2835     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2836   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2837   then
2838     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2839     if test -z "${real_a52_tree}"
2840     then
2841       dnl  The given directory can't be found
2842       AC_MSG_RESULT(no)
2843       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2844     fi
2845     dnl  Use a custom a52dec
2846     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2847     if test -f ${real_a52_tree}/include/a52.h
2848     then
2849       AC_MSG_RESULT(yes)
2850       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2851       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2852       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2853       AC_CHECK_LIB(a52, a52_free, [
2854         VLC_ADD_BUILTINS([a52tofloat32])
2855         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2856         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2857         ],[
2858         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2859         then
2860           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2861         else
2862           AC_MSG_ERROR([the specified tree hasn't been compiled])
2863         fi
2864       ])
2865       LDFLAGS="${LDFLAGS_save}"
2866     else
2867       AC_MSG_RESULT(no)
2868       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2869     fi
2870   else
2871     if test -z "${with_a52}"
2872     then
2873       LDFLAGS_test=""
2874       CPPFLAGS_test=""
2875     else
2876       LDFLAGS_test="-L${with_a52}/lib"
2877       CPPFLAGS_test="-I${with_a52}/include"
2878     fi
2879     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2880     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2881     AC_CHECK_HEADERS(a52dec/a52.h, [
2882       AC_CHECK_LIB(a52, a52_free, [
2883         VLC_ADD_PLUGINS([a52tofloat32])
2884         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2885         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2886       ],[
2887         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.])
2888       ])
2889     ])
2890     CPPFLAGS="${CPPFLAGS_save}"
2891     LDFLAGS="${LDFLAGS_save}"
2892   fi
2893 fi
2894
2895 AC_ARG_WITH(a52-fixed,
2896       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2897       [
2898         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2899
2900 dnl
2901 dnl DTS Coherent Acoustics decoder plugin
2902 dnl
2903 AC_ARG_ENABLE(dts,
2904   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2905 if test "${enable_dts}" != "no"; then
2906   AC_ARG_WITH(dts-tree,
2907     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2908   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2909   then
2910     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2911     if test -z "${real_dts_tree}"
2912     then
2913       dnl  The given directory can't be found
2914       AC_MSG_RESULT(no)
2915       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2916     fi
2917     dnl  Use a custom libdts
2918     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2919     if test -f ${real_dts_tree}/include/dts.h
2920     then
2921       AC_MSG_RESULT(yes)
2922       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2923       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2924       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2925       AC_CHECK_LIB(dts_pic, dts_free, [
2926         VLC_ADD_PLUGINS([dtstofloat32])
2927         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2928         ],[
2929         AC_CHECK_LIB(dts, dts_free, [
2930           VLC_ADD_BUILTINS([dtstofloat32])
2931           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2932           ],[
2933           if test -f ${real_dts_tree}/libdts/libdts.a
2934           then
2935             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2936           else
2937             AC_MSG_ERROR([the specified tree hasn't been compiled])
2938           fi
2939         ])
2940       ])
2941       LDFLAGS="${LDFLAGS_save}"
2942     else
2943       AC_MSG_RESULT(no)
2944       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2945     fi
2946   else
2947     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2948     AC_CHECK_HEADERS(dts.h, [
2949       AC_CHECK_LIB(dts_pic, dts_free, [
2950         VLC_ADD_PLUGINS([dtstofloat32])
2951         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2952       ],[
2953         AC_CHECK_LIB(dts, dts_free, [
2954           VLC_ADD_BUILTINS([dtstofloat32])
2955           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2956         ],[
2957           if test "${enable_dts}" = "yes"; then
2958             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2959           fi
2960         ])
2961       ])
2962     ])
2963     LDFLAGS="${LDFLAGS_save}"
2964   fi
2965 fi
2966
2967 dnl
2968 dnl  Flac plugin
2969 dnl
2970 AC_ARG_ENABLE(flac,
2971   [  --enable-flac           flac decoder support (default disabled)])
2972 if test "${enable_flac}" = "yes"
2973 then
2974   AC_ARG_WITH(flac-tree,
2975   [    --with-flac-tree=PATH flac tree for static linking])
2976   if test -n "${with_flac_tree}"
2977   then
2978     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2979     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2980     if test -z "${real_flac_tree}"
2981     then
2982       dnl  The given directory can't be found
2983       AC_MSG_RESULT(no)
2984       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2985     fi
2986     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2987     then
2988       dnl  Use a custom flac
2989       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2990       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2991       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2992       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2993     else
2994       dnl  The given flac wasn't built
2995       AC_MSG_RESULT(no)
2996       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2997     fi
2998   else
2999     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3000       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3001      ],[])
3002   fi
3003 fi
3004
3005 dnl
3006 dnl  Libmpeg2 plugin
3007 dnl
3008 AC_ARG_ENABLE(libmpeg2,
3009   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3010 if test "${enable_libmpeg2}" != "no"
3011 then
3012   AC_ARG_WITH(libmpeg2-tree,
3013   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3014   if test -n "${with_libmpeg2_tree}"
3015   then
3016     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3017     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3018     if test -z "${real_libmpeg2_tree}"
3019     then
3020       dnl  The given directory can't be found
3021       AC_MSG_RESULT(no)
3022       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3023     fi
3024     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3025     then
3026       dnl  Use a custom libmpeg2
3027       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3028       VLC_ADD_BUILTINS([libmpeg2])
3029       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3030       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3031       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3032     else
3033       dnl  The given libmpeg2 wasn't built
3034       AC_MSG_RESULT(no)
3035       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3036     fi
3037   else
3038     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3039       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3040       AC_EGREP_CPP(yes,
3041         [#include <mpeg2dec/mpeg2.h>
3042          #ifdef MPEG2_RELEASE
3043          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3044          yes
3045          #endif
3046          #endif],
3047         [AC_MSG_RESULT([yes])
3048           VLC_ADD_PLUGINS([libmpeg2])
3049           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3050         [AC_MSG_RESULT([no])
3051           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.])])],
3052
3053       [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.])]
3054     )
3055   fi
3056 fi
3057
3058 dnl
3059 dnl  Vorbis plugin
3060 dnl
3061 AC_ARG_ENABLE(vorbis,
3062   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3063 if test "${enable_vorbis}" != "no"
3064 then
3065   AC_ARG_WITH(vorbis-tree,
3066   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3067   if test -n "${with_vorbis_tree}"
3068   then
3069     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3070     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3071     if test -z "${real_vorbis_tree}"
3072     then
3073       dnl  The given directory can't be found
3074       AC_MSG_RESULT(no)
3075       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3076     fi
3077     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3078     then
3079       dnl  Use a custom vorbis 
3080       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3081       VLC_ADD_PLUGINS([vorbis])
3082       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3083       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3084     else
3085       dnl  The given vorbis wasn't built
3086       AC_MSG_RESULT(no)
3087       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3088     fi
3089   else
3090     AC_CHECK_HEADERS(vorbis/codec.h, [
3091       VLC_ADD_PLUGINS([vorbis])
3092       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3093
3094     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3095       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3096   fi
3097 fi
3098
3099 dnl
3100 dnl  Tremor plugin
3101 dnl
3102 AC_ARG_ENABLE(tremor,
3103   [  --enable-tremor         Tremor decoder support (default disabled)])
3104 if test "${enable_tremor}" = "yes"
3105 then
3106   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3107     VLC_ADD_PLUGINS([tremor])
3108     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3109    ],[])
3110 fi
3111
3112 dnl
3113 dnl  Speex plugin
3114 dnl
3115 AC_ARG_ENABLE(speex,
3116   [  --enable-speex          Speex decoder support (default enabled)])
3117 if test "${enable_speex}" != "no"
3118 then
3119   AC_ARG_WITH(speex-tree,
3120   [    --with-speex-tree=PATH speex tree for static linking])
3121   if test -n "${with_speex_tree}"
3122   then
3123     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3124     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3125     if test -z "${real_speex_tree}"
3126     then
3127       dnl  The given directory can't be found
3128       AC_MSG_RESULT(no)
3129       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3130     fi
3131     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3132     then
3133       dnl  Use a custom speex
3134       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3135       VLC_ADD_PLUGINS([speex])
3136       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3137       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3138     else
3139       dnl  The given speex wasn't built
3140       AC_MSG_RESULT(no)
3141       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3142     fi
3143   else
3144     AC_CHECK_HEADERS(speex/speex.h, [
3145       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3146       AC_CHECK_LIB(speex, speex_decode_int, [
3147         VLC_ADD_PLUGINS([speex])
3148         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3149         [ AC_MSG_RESULT([no])
3150           AC_MSG_WARN([Your libspeex is too old, please get the development
3151                        version.]) ],[])
3152       LDFLAGS="${LDFLAGS_save}"
3153       ],[])
3154   fi
3155 fi
3156
3157 dnl
3158 dnl  tarkin decoder plugin
3159 dnl
3160 AC_ARG_ENABLE(tarkin,
3161 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3162 if test "${enable_tarkin}" = "yes"
3163 then
3164   AC_ARG_WITH(tarkin-tree,
3165   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3166   if test -n "${with_tarkin_tree}"
3167   then
3168     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3169     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3170     if test -f "${real_tarkin_tree}/tarkin.o"
3171     then
3172       VLC_ADD_BUILTINS([tarkin])
3173       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3174       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])
3175       AC_MSG_RESULT(yes)
3176     else
3177       dnl  The given tarkin tree wasn't built
3178       AC_MSG_RESULT(no)
3179       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3180                     make sure you compiled tarkin in ${with_tarkin_tree}])
3181     fi
3182   fi
3183 fi
3184
3185 dnl
3186 dnl  theora decoder plugin
3187 dnl
3188 AC_ARG_ENABLE(theora,
3189 [  --enable-theora         experimental theora codec (default disabled)])
3190 if test "${enable_theora}" = "yes"
3191 then
3192   AC_CHECK_HEADERS(theora/theora.h, [
3193     AC_CHECK_LIB(theora, theora_granule_time, [
3194       if test "${SYS}" = "mingw32"; then
3195         VLC_ADD_PLUGINS([theora])
3196       else
3197         VLC_ADD_BUILTINS([theora])
3198       fi
3199       theora_libs="-ltheora -logg"
3200       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3201       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3202 You also need to check that you have a libogg posterior to the 1.0 release.])],
3203       [-logg])
3204   ])
3205 fi
3206
3207 dnl
3208 dnl  dirac decoder plugin
3209 dnl
3210 AC_ARG_ENABLE(dirac,
3211 [  --enable-dirac          experimental dirac codec (default disabled)])
3212 if test "${enable_dirac}" = "yes"; then
3213   PKG_CHECK_MODULES(DIRAC,dirac, [
3214       VLC_ADD_PLUGINS([dirac])
3215       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3216       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3217       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3218   ])
3219 fi
3220
3221 dnl  libvc1 decoder plugin
3222 dnl
3223 AC_ARG_ENABLE(libvc1,
3224 [  --enable-libvc1         VC-1 codec (default disabled)])
3225 if test "${enable_libvc1}" = "yes"
3226 then
3227   AC_ARG_WITH(libvc1-tree,
3228   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3229   if test -n "${with_libvc1_tree}"
3230   then
3231     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3232     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3233     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3234     then
3235       VLC_ADD_BUILTINS([libvc1])
3236       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3237       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3238       AC_MSG_RESULT(yes)
3239     else
3240       dnl  The given libvc1 tree wasn't built
3241       AC_MSG_RESULT(no)
3242       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3243                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3244     fi
3245   fi
3246 fi
3247
3248 dnl
3249 dnl  PNG decoder module
3250 dnl
3251 AC_ARG_ENABLE(png,
3252   [  --enable-png            PNG support (default enabled)])
3253 if test "${enable_png}" != "no"; then
3254 AC_CHECK_HEADERS(png.h, [
3255   LDFLAGS="${LDFLAGS_save} -lz"
3256   AC_CHECK_LIB(png, png_set_rows, [
3257     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3258     VLC_ADD_PLUGINS([png])
3259     VLC_ADD_PLUGINS([osdmenu])
3260     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3261     [],[-lz])
3262   LDFLAGS="${LDFLAGS_save}"
3263   ])
3264 fi
3265
3266 dnl
3267 dnl H264 encoder plugin (using libx264)
3268 dnl
3269 AC_ARG_ENABLE(x264,
3270   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3271 if test "${enable_x264}" != "no"; then
3272   AC_ARG_WITH(x264-tree,
3273     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3274   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3275   then
3276     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3277     if test -z "${real_x264_tree}"
3278     then
3279       dnl  The given directory can't be found
3280       AC_MSG_RESULT(no)
3281       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3282     fi
3283     dnl  Use a custom libx264
3284     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3285     if test -f ${real_x264_tree}/x264.h
3286     then
3287       AC_MSG_RESULT(yes)
3288       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3289       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3290       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3291       AC_CHECK_LIB(x264, x264_encoder_open, [
3292         VLC_ADD_BUILTINS([x264])
3293         VLC_ADD_LDFLAGS([x264],[-lx264])
3294       ],[
3295         AC_MSG_ERROR([the specified tree hasn't been compiled])
3296       ])
3297       LDFLAGS="${LDFLAGS_save}"
3298     else
3299       AC_MSG_RESULT(no)
3300       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3301     fi
3302   else
3303     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3304     AC_CHECK_HEADERS(x264.h, [
3305       AC_CHECK_LIB(x264, x264_encoder_open, [
3306         VLC_ADD_PLUGINS([x264])
3307         VLC_ADD_LDFLAGS([x264],[-lx264])
3308       ],[
3309         if test "${enable_x264}" = "yes"; then
3310             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3311           fi
3312       ])
3313     ])
3314     LDFLAGS="${LDFLAGS_save}"
3315   fi
3316 fi
3317
3318 dnl
3319 dnl  CMML plugin
3320 dnl
3321 AC_ARG_ENABLE(cmml,
3322   [  --enable-cmml           CMML support (default enabled)])
3323 if test "${enable_cmml}" != "no"
3324 then
3325   VLC_ADD_PLUGINS([cmml])
3326 fi
3327
3328
3329 dnl
3330 dnl  Video plugins
3331 dnl
3332
3333 AC_ARG_WITH(,[Video plugins:])
3334
3335 dnl Check for DPMS
3336 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3337   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3338   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3339     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3340     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3341       AC_MSG_RESULT(yes)
3342       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3343                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3344     ],[
3345       AC_MSG_RESULT(no)
3346     ])
3347   ],,[
3348     #include <X11/Xlib.h>
3349   ])
3350   CPPFLAGS="${CPPFLAGS_save}"
3351 fi
3352
3353 dnl
3354 dnl  X11 module
3355 dnl  (enabled by default except on win32)
3356 dnl
3357 AC_ARG_ENABLE(x11,
3358   [  --enable-x11            X11 support (default enabled)])
3359 if test "${enable_x11}" != "no" &&
3360   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3361    test "${enable_x11}" = "yes"); then
3362   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3363   AC_CHECK_HEADERS(X11/Xlib.h, [
3364     VLC_ADD_PLUGINS([x11])
3365     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3366     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3367   ])
3368   CPPFLAGS="${CPPFLAGS_save}"
3369 fi
3370
3371 dnl
3372 dnl  XVideo module
3373 dnl  (enabled by default except on win32)
3374 dnl
3375 AC_ARG_ENABLE(xvideo,
3376   [  --enable-xvideo         XVideo support (default enabled)])
3377 if test "${enable_xvideo}" != "no" &&
3378   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3379    test "${enable_xvideo}" = "yes"); then
3380   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3381   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3382     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3383     AC_CHECK_LIB(Xv,XvPutImage,[
3384       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3385       # test for libXv_pic.
3386       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3387         VLC_ADD_PLUGINS([xvideo])
3388         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3389         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3390       else
3391         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3392           VLC_ADD_PLUGINS([xvideo])
3393           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3394           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3395         ],[
3396           VLC_ADD_BUILTINS([xvideo])
3397           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3398           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3399         ])
3400       fi
3401     ])
3402     CFLAGS="${CFLAGS_save}"
3403   ]
3404   CPPFLAGS="${CPPFLAGS_save}")
3405 fi
3406
3407 dnl
3408 dnl  GLX module
3409 dnl  (enabled by default except on win32)
3410 dnl
3411 AC_ARG_ENABLE(glx,
3412   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3413 if test "${enable_glx}" != "no" &&
3414   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3415    test "${enable_glx}" = "yes"); then
3416   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3417   AC_CHECK_HEADERS(X11/Xlib.h, [
3418     AC_CHECK_HEADERS(GL/glx.h, [
3419       VLC_ADD_PLUGINS([glx])
3420       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3421       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3422   ]) ])
3423   CPPFLAGS="${CPPFLAGS_save}"
3424 fi
3425
3426 dnl
3427 dnl  Check for the Xinerama extension
3428 dnl
3429 AC_ARG_ENABLE(xinerama,
3430   [  --enable-xinerama       Xinerama support (default enabled)])
3431 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3432   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3433    test "${enable_xvideo}" = "yes"); then
3434   ac_cv_have_xinerama="no"
3435   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3436   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3437   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3438     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3439       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3440       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3441       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3442       ac_cv_have_xinerama="yes"
3443     ],[
3444       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3445         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3446         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3447         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3448         ac_cv_have_xinerama="yes"
3449       ])
3450     ])
3451   ])
3452   if test "${ac_cv_have_xinerama}" = "yes"; then
3453     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3454   fi
3455   CFLAGS="${CFLAGS_save}"
3456   CPPFLAGS="${CPPFLAGS_save}"
3457
3458 dnl
3459 dnl  Check for XF86VidMode extension
3460 dnl
3461   ac_cv_have_xf86vidmode="no"
3462   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3463   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3464   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3465     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3466       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3467       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3468       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3469       ac_cv_have_xf86vidmode="yes"
3470     ],[
3471       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3472         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3473         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3474         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3475         ac_cv_have_xf86vidmode="yes"
3476       ])
3477     ])
3478   ],[true],
3479 [#ifdef HAVE_X11_XLIB_H
3480 # include <X11/Xlib.h>
3481 #endif]
3482    )
3483   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3484     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3485   ])
3486   CFLAGS="${CFLAGS_save}"
3487   CPPFLAGS="${CPPFLAGS_save}"
3488
3489 fi
3490
3491 dnl
3492 dnl  OpenGL module
3493 dnl  (enabled by default except on beos)
3494 dnl
3495 AC_ARG_ENABLE(opengl,
3496   [  --enable-opengl         OpenGL support (default enabled)])
3497 if test "${enable_opengl}" != "no" &&
3498    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3499   if test "${SYS}" != "darwin"; then
3500     AC_CHECK_HEADERS(GL/gl.h, [
3501       VLC_ADD_PLUGINS([opengl])
3502       if test "${SYS}" != "mingw32"; then
3503         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3504       else
3505         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3506       fi
3507     ])
3508   else
3509     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3510     VLC_ADD_PLUGINS([opengl])
3511     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3512   fi
3513 fi
3514
3515 dnl
3516 dnl  SDL module
3517 dnl
3518 AC_ARG_ENABLE(sdl,
3519   [  --enable-sdl            SDL support (default enabled)])
3520 if test "${enable_sdl}" != "no"
3521 then
3522   SDL_PATH="${PATH}"
3523   AC_ARG_WITH(sdl-config-path,
3524     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3525     [ if test "${with_sdl_config_path}" != "no"
3526       then
3527         SDL_PATH="${with_sdl_config_path}:${PATH}"
3528       fi ])
3529   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3530   SDL_CONFIG="${SDL12_CONFIG}"
3531   SDL_HEADER="SDL12/SDL.h"
3532   SDL_IMAGE="SDL12/SDL_image.h"
3533   if test "${SDL_CONFIG}" = "no"
3534   then
3535     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3536     SDL_CONFIG=${SDL11_CONFIG}
3537     SDL_HEADER="SDL11/SDL.h"
3538     SDL_IMAGE="SDL11/SDL_image.h"
3539   fi
3540   if test "${SDL_CONFIG}" = "no"
3541   then
3542     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3543     SDL_HEADER="SDL/SDL.h"
3544     SDL_IMAGE="SDL/SDL_image.h"
3545   fi
3546   # check for cross-compiling
3547   SDL_PREFIX=
3548   AC_ARG_WITH(sdl-prefix,
3549     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3550                                e.g use as:
3551                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3552   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3553   then
3554     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3555   fi
3556   if test "${SDL_CONFIG}" != "no"
3557   then
3558     # SDL on Darwin is heavily patched and can only run SDL_image
3559     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3560       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3561     fi
3562     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3563     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3564     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3565     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3566       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3567       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3568           As a last resort we also test for SDL.h presence),
3569       [ AC_MSG_ERROR([The development package for SDL is not installed.
3570 Please install it and try again. Alternatively you can also configure with
3571 --disable-sdl.])
3572       ])])
3573     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3574       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3575       VLC_ADD_PLUGINS([sdl_image])
3576       AC_CHECK_LIB(png, png_set_rows,
3577         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3578       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3579         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3580       AC_CHECK_LIB(tiff, TIFFClientOpen,
3581         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3582       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3583       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3584           As a last resort we also test for SDL_image.h presence),
3585       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3586 You should install it alongside your SDL package.])
3587       ])])
3588     CPPFLAGS="${CPPFLAGS_save}"
3589     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3590     then
3591       AC_MSG_ERROR([The development package for SDL is not installed.
3592 Please install it and try again. Alternatively you can also configure with
3593 --disable-sdl.])
3594     fi
3595
3596   elif test "${enable_sdl}" =  "yes"
3597   then
3598     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3599 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3600     ])
3601   fi
3602 fi
3603
3604 dnl
3605 dnl  freetype module
3606 dnl
3607 AC_ARG_ENABLE(freetype,
3608   [  --enable-freetype       freetype support (default enabled)])
3609 AC_ARG_ENABLE(fribidi,
3610   [  --enable-fribidi        fribidi support (default enabled)])
3611 if test "${enable_freetype}" != "no"
3612 then
3613   FREETYPE_PATH="${PATH}"
3614   AC_ARG_WITH(freetype-config-path,
3615     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3616     [ if test "${with_freetype_config_path}" != "no"
3617       then
3618         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3619       fi ])
3620   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3621
3622   if test "${FREETYPE_CONFIG}" != "no"
3623   then
3624     VLC_ADD_PLUGINS([freetype])
3625     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3626     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3627     AC_CHECK_HEADERS(Carbon/Carbon.h,
3628       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3629   elif test "${enable_freetype}" =  "yes"
3630   then
3631     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3632 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3633     ])
3634   fi
3635
3636   dnl fribidi support
3637   if test "${enable_fribidi}" != "no"
3638   then
3639     FRIBIDI_PATH="${PATH}"
3640     AC_ARG_WITH(fribidi-config-path,
3641       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3642       [ if test "${with_fribidi_config_path}" != "no"
3643         then
3644           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3645         fi ])
3646     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3647
3648     if test "${FRIBIDI_CONFIG}" != "no"
3649     then
3650       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3651       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3652       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3653       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3654     fi
3655   fi
3656 fi
3657
3658 dnl
3659 dnl  libxml2 module
3660 dnl
3661 AC_ARG_ENABLE(libxml2,
3662   [  --enable-libxml2        libxml2 support (default enabled)])
3663 if test "${enable_libxml2}" != "no"
3664 then
3665   XML2_PATH="${PATH}"
3666   AC_ARG_WITH(xml2-config-path,
3667     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3668     [ if test "${with_xml2_config_path}" != "no"; then
3669         XML2_PATH="${with_xml2_config_path}:${PATH}"
3670       fi ])
3671   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3672   if test "${XML2_CONFIG}" != "no"; then
3673     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3674     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3675     dnl depends on the xmlTextReader extension
3676     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3677     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3678     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3679       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3680         VLC_ADD_PLUGINS([xml]) ],[
3681           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3682           if test "${enable_xml2}" = "yes"; then
3683             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3684           fi])
3685        ],[
3686       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3687       if test "${enable_xml2}" = "yes"; then
3688         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3689       fi])
3690     LDFLAGS="${LDFLAGS_save}"
3691     CPPFLAGS="${CPPFLAGS_save}"
3692   else
3693     if test "${enable_xml2}" = "yes"; then
3694       AC_MSG_ERROR([Could not find libxml2])
3695     fi
3696   fi
3697 fi
3698
3699 dnl
3700 dnl  SVG module
3701 dnl
3702 AC_ARG_ENABLE(svg,
3703   [  --enable-svg            SVG support (default disabled)])
3704 if test "${enable_svg}" = "yes"
3705 then
3706   PKG_CHECK_MODULES(SVG, 
3707         librsvg-2.0 >= 2.5.0,
3708         [
3709           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3710           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3711           VLC_ADD_PLUGINS([svg]) ],
3712         [AC_MSG_WARN(SVG library not found)])
3713 fi
3714
3715 dnl
3716 dnl Snapshot vout module (with cache)
3717 dnl
3718 AC_ARG_ENABLE(snapshot,
3719   [  --enable-snapshot       snapshot module (default disabled)])
3720 if test "${enable_snapshot}" = "yes"
3721 then
3722   VLC_ADD_PLUGINS([snapshot])
3723 fi
3724
3725 dnl
3726 dnl  Qt Embedded module
3727 dnl  (disabled by default)
3728 dnl
3729 AC_ARG_ENABLE(qte,
3730   [  --enable-qte            QT Embedded support (default disabled)])
3731 if test "${enable_qte}" = "yes"
3732 then
3733   AC_ARG_WITH(qte,
3734   [    --with-qte=PATH       Qt Embedded headers and libraries])
3735   if test "${with_qte}" != "no" -a -n "${with_qte}"
3736   then
3737     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3738     VLC_ADD_CXXFLAGS([qte],[-I${with_qte}/include `echo -I${with_qte}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3739   else
3740     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3741     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3742   fi
3743   VLC_ADD_PLUGINS([qte])
3744   NEED_QTE_MAIN=yes
3745   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3746   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3747     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3748   ] )
3749   CPPFLAGS="${CPPFLAGS_save}"
3750 fi
3751
3752 dnl
<