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