acb5e0b4c2ddbfa7e4eb0bc50fbc079a633030b6
[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 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])
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])
4036
4037 dnl
4038 dnl  ALSA module
4039 dnl
4040 AC_ARG_ENABLE(alsa,
4041   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4042 if test "${enable_alsa}" != "no"
4043 then
4044   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4045   if test "${have_alsa}" = "true"
4046   then
4047     CFLAGS="${CFLAGS_save}"
4048     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4049                     #define ALSA_PCM_NEW_SW_PARAMS_API
4050                     #include <alsa/asoundlib.h>],
4051        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
4052         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4053     VLC_ADD_PLUGINS([alsa])
4054     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4055   else
4056     if test "${enable_alsa}" = "yes"; then
4057       AC_MSG_ERROR([Could not find ALSA development headers])
4058     fi
4059   fi
4060 fi
4061
4062 dnl
4063 dnl  win32 waveOut plugin
4064 dnl
4065 AC_ARG_ENABLE(waveout,
4066   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4067 if test "${enable_waveout}" != "no"; then
4068   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4069     VLC_ADD_PLUGINS([waveout])
4070     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4071   fi
4072   if test "${SYS}" = "mingwce"; then
4073     VLC_ADD_PLUGINS([waveout])
4074   fi
4075 fi
4076
4077 dnl
4078 dnl  CoreAudio plugin
4079 dnl
4080 AC_ARG_ENABLE(macosx-audio,
4081   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4082 if test "${enable_macosx-audio}" != "no" &&
4083   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4084 then
4085   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4086     [ VLC_ADD_BUILTINS([auhal])
4087       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4088     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4089 fi
4090
4091 dnl
4092 dnl  Roku HD1000 audio
4093 dnl
4094 AC_ARG_ENABLE(hd1000a,
4095   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4096 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4097   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4098    test "${enable_hd1000a}" = "yes")
4099 then
4100   AC_LANG_PUSH([C++])
4101   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4102     VLC_ADD_PLUGINS([hd1000a])
4103     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4104   AC_LANG_POP([C++])
4105 fi
4106
4107 dnl
4108 dnl  JACK module
4109 dnl
4110 AC_ARG_ENABLE(jack,
4111  [  --enable-jack           JACK audio module (default disabled)],
4112  [if test "${enable_jack}" = "yes"
4113   then
4114     AC_CHECK_HEADERS(jack/jack.h, [
4115       VLC_ADD_PLUGINS([jack])
4116       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4117   fi])
4118
4119 dnl
4120 dnl  CyberLink for C++ UPnP stack
4121 dnl
4122 AC_ARG_ENABLE(cyberlink,
4123   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4124 AS_IF([test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no")], [
4125   AC_ARG_WITH(cyberlink-tree,
4126     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4127
4128   dnl
4129   dnl test for --with-cyberlink-tree
4130   dnl
4131   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4132     AC_LANG_PUSH(C++)
4133     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4134     AS_IF([test -z "${real_cyberlink_tree}"], [
4135       dnl  The given directory can't be found
4136       AC_MSG_RESULT(no)
4137       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4138     ])
4139     CPPFLAGS_save="${CPPFLAGS}"
4140     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4141     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4142     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4143       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4144         VLC_ADD_PLUGINS([upnp_cc]) 
4145       ],[
4146         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4147       ])
4148     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4149     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4150       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4151       dnl The mere fact that we have to make such an ugly check sucks
4152       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4153       LIBS_save="$LIBS"
4154       LIBS_cclink="no"
4155       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4156         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4157         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4158 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4159 using namespace CyberLink;
4160
4161 class testclass : public SearchResponseListener, public MediaPlayer
4162 {
4163     virtual void deviceSearchResponseReceived( SSDPPacket *)
4164     {
4165     }
4166
4167     public:
4168       testclass (void)
4169       {
4170         addSearchResponseListener (this);
4171         start ();
4172       }
4173 };
4174 ],[testclass l;])],[LIBS_cclink="$l"])
4175       done
4176       LIBS="${LIBS_save}"
4177       dnl should not happen - otherwise this needs fixing - hence FAILURE
4178       AS_IF([test "${LIBS_cclink}" == "no"],
4179         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4180       AC_MSG_RESULT([${LIBS_cclink}])
4181       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4182     ], [
4183       AC_MSG_RESULT(no)
4184       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4185     ])
4186     CPPFLAGS="${CPPFLAGS_save}"
4187     AC_LANG_POP([C++])
4188   ])
4189 ])
4190
4191 dnl
4192 dnl UPnP Plugin (Intel SDK)
4193 dnl
4194 AC_ARG_ENABLE(upnp,
4195   [  --enable-upnp           Intel UPnP SDK (default auto)])
4196
4197 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4198 AS_IF([test "x${enable_upnp}" != "xno"], [
4199   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4200   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" == "no"], [
4201     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4202   ])
4203   AS_IF([test "${has_upnp}" == "yes"], [
4204     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp])
4205   ])
4206 ], [
4207   has_upnp="no"
4208 ])
4209
4210 AS_IF([test "${has_upnp}" == "yes"], [
4211   VLC_ADD_PLUGINS([upnp_intel])
4212 ])
4213
4214
4215 dnl
4216 dnl  Interface plugins
4217 dnl
4218
4219 AC_ARG_WITH(,[Interface plugins:])
4220
4221 dnl special case for BeOS
4222 if test "${SYS}" = "beos"
4223 then
4224     VLC_ADD_BUILTINS([beos])
4225 fi
4226
4227 dnl
4228 dnl Skins2 module
4229 dnl
4230 AC_ARG_ENABLE(skins2,
4231   [  --enable-skins2         Skins2 interface module (experimental)])
4232 if test "${enable_skins2}" = "yes" ||
4233   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4234    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4235
4236   dnl test for the required libraries
4237   skins2_missing_lib="no"
4238
4239   dnl freetype
4240   if test "${FREETYPE_CONFIG}" != "no"; then
4241     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4242     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4243   else
4244     skins2_missing_lib="yes"
4245     if test "${enable_skins2}" = "yes"; then
4246       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4247     fi
4248   fi
4249
4250   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4251     VLC_ADD_PLUGINS([skins2])
4252     ALIASES="${ALIASES} svlc"
4253     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4254     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4255     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4256
4257   else if test "${skins2_missing_lib}" = "no"; then
4258     VLC_ADD_PLUGINS([skins2])
4259     ALIASES="${ALIASES} svlc"
4260     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4261     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4262     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4263   fi fi
4264 fi
4265
4266
4267 dnl dnl
4268 dnl dnl  Gtk+ module
4269 dnl dnl
4270 dnl AC_ARG_ENABLE(gtk,
4271 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4272 dnl if test "${enable_gtk}" != "no"
4273 dnl then
4274 dnl   GTK_PATH="${PATH}"
4275 dnl   AC_ARG_WITH(gtk-config-path,
4276 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4277 dnl     [ if test "${with_gtk_config_path}" != "no"
4278 dnl       then
4279 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4280 dnl       fi ])
4281 dnl   # look for gtk-config
4282 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4283 dnl   GTK_CONFIG=${GTK12_CONFIG}
4284 dnl   if test "${GTK_CONFIG}" = "no"
4285 dnl   then
4286 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4287 dnl   fi
4288 dnl   if test "${GTK_CONFIG}" != "no"
4289 dnl   then
4290 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4291 dnl     then
4292 dnl       AC_MSG_ERROR([Your development package for Gtk+ is too old, you need at least version 1.2.0. Please upgrade and try again. Alternatively you can also configure with --disable-gtk.])
4293 dnl     fi
4294 dnl     if test "${SYS}" != "mingw32"; then
4295 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4296 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4297 dnl     else
4298 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4299 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4300 dnl     fi
4301 dnl     # now look for the gtk.h header
4302 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4303 dnl     ac_cv_gtk_headers=yes
4304 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4305 dnl       ac_cv_gtk_headers=no
4306 dnl       echo "Cannot find gtk development headers."
4307 dnl     ])
4308 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4309 dnl     then
4310 dnl       VLC_ADD_PLUGINS([gtk])
4311 dnl       if test "${SYS}" != "mingw32"; then
4312 dnl         NEED_GTK_MAIN=yes
4313 dnl       fi
4314 dnl       ALIASES="${ALIASES} gvlc"
4315 dnl     fi
4316 dnl     CPPFLAGS="${CPPFLAGS_save}"
4317 dnl   fi
4318 dnl fi
4319 dnl 
4320 dnl
4321 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4322 dnl
4323 dnl AC_ARG_ENABLE(gtk2,
4324 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4325 dnl if test "${enable_gtk2}" = "yes"
4326 dnl then
4327 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4328 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4329 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4330 dnl   VLC_ADD_PLUGINS([gtk2])
4331 dnl   if test "${SYS}" != "mingw32"; then
4332 dnl     NEED_GTK2_MAIN=yes
4333 dnl   fi
4334 dnl fi
4335
4336 dnl
4337 dnl  PDA Gtk+2 module
4338 dnl
4339 AC_ARG_ENABLE(pda,
4340   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4341 if test "${enable_pda}" = "yes"
4342 then
4343   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4344   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4345   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4346   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4347   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4348   VLC_ADD_PLUGINS([pda])
4349   if test "${SYS}" != "mingw32"; then
4350     NEED_GTK2_MAIN=yes
4351   fi
4352 fi
4353
4354 dnl dnl
4355 dnl dnl  Gnome module
4356 dnl dnl
4357 dnl AC_ARG_ENABLE(gnome,
4358 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4359 dnl   [if test "${enable_gnome}" = "yes"; then
4360 dnl     # look for gnome-config
4361 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4362 dnl     if test -x ${GNOME_CONFIG}
4363 dnl     then
4364 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4365 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4366 dnl     fi
4367 dnl     # now look for the gnome.h header
4368 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4369 dnl     AC_CHECK_HEADERS(gnome.h, [
4370 dnl       VLC_ADD_PLUGINS([gnome])
4371 dnl       NEED_GTK_MAIN=yes
4372 dnl       NEED_GNOME_MAIN=yes
4373 dnl       ALIASES="${ALIASES} gnome-vlc"
4374 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4375 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4376 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4377 dnl         AC_MSG_RESULT(yes)
4378 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4379 dnl                   Define if <gnome.h> defines strndup.)],[
4380 dnl         AC_MSG_RESULT(no)])
4381 dnl      ],[
4382 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4383 dnl developement tools or remove the --enable-gnome option])
4384 dnl      ])
4385 dnl     CPPFLAGS="${CPPFLAGS_save}"
4386 dnl   fi])
4387
4388 dnl
4389 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4390 dnl
4391 dnl AC_ARG_ENABLE(gnome2,
4392 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4393 dnl if test "${enable_gnome2}" = "yes"
4394 dnl then
4395 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4396 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4397 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4398 dnl   VLC_ADD_PLUGINS([gnome2])
4399 dnl   if test "${SYS}" != "mingw32"; then
4400 dnl     NEED_GNOME2_MAIN=yes
4401 dnl   fi
4402 dnl fi
4403
4404 dnl
4405 dnl  wxWidgets module
4406 dnl
4407 AC_ARG_ENABLE(wxwidgets,
4408   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4409 if test "${enable_wxwindows}" 
4410 then
4411   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4412 fi
4413
4414 if test "${enable_wxwindows}" = "no"
4415 then
4416   enable_wxwidgets="no"
4417 fi
4418 if test "${enable_wxwidgets}" != "no"
4419 then
4420   WXWIDGETS_PATH="${PATH}"
4421   AC_ARG_WITH(wx-config-path,
4422     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4423     [ if test "${with_wx_config_path}" != "no"
4424       then
4425         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4426       fi ])
4427   WXWIDGETS_NAME="wx-config"
4428   AC_ARG_WITH(wx-config,
4429     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4430     [ if test "${with_wx_config}" != "no"
4431       then
4432         WXWIDGETS_NAME="${with_wx_config}"
4433       fi ])
4434   # look for wx-config
4435   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4436   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4437   then
4438     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
4439     then
4440       AC_MSG_ERROR([Your development package for wxWidgets is too old, you need at least version 2.3.0. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.])
4441     fi
4442     AC_LANG_PUSH(C++)
4443     # Turn this error:
4444     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4445     # into a warning. However better would be to fix playlist.cpp
4446     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4447         [ac_cv_cxx_fpermissive],
4448         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4449          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4450                         ac_cv_cxx_fpermissive=no)])
4451     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4452       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4453     fi
4454     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4455     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4456     if ${WX_CONFIG} --unicode
4457     then 
4458       # wxwidgets should provide the following flags but does not
4459       # the following is required to compile for win32
4460       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4461     fi
4462     if test "$have_libcdio" = "yes"
4463     then 
4464       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4465       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4466     else 
4467       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4468     fi
4469
4470     if test "$have_libvcdinfo" = "yes"
4471     then 
4472       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4473       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4474     else 
4475       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4476     fi
4477
4478     # now look for the wxprec.h header
4479     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4480     ac_cv_wx_headers=yes
4481     AC_CHECK_HEADERS(wx/wxprec.h, , [
4482       ac_cv_wx_headers=no
4483       echo "Cannot find wxWidgets development headers."
4484     ])
4485     if test "${ac_cv_wx_headers}" = "yes"
4486     then
4487       VLC_ADD_PLUGINS([wxwidgets])
4488       ALIASES="${ALIASES} wxvlc"
4489     fi
4490     CPPFLAGS="${CPPFLAGS_save}"
4491     AC_LANG_POP(C++)
4492   fi
4493 fi
4494
4495 dnl
4496 dnl  WinCE GUI module
4497 dnl
4498 if test "${SYS}" = "mingwce"; then
4499   VLC_ADD_BUILTINS([wince])
4500   VLC_ADD_CXXFLAGS([wince],[])
4501   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4502   dnl Gross hack
4503   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4504 elif test "${SYS}" = "mingw32"; then
4505   VLC_ADD_CXXFLAGS([wince],[])
4506   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4507   dnl Gross hack
4508   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4509 fi
4510
4511 dnl
4512 dnl Simple test for skins2 dependency
4513 dnl
4514 if test "${enable_skins2}" != "no"
4515 then
4516   if test "${WX_CONFIG}" = "no"
4517   then
4518     AC_MSG_ERROR([The skins2 module depends on the wxWidgets development package. Without it you won't be able to open any dialog box from the interface, which makes the skins2 interface rather useless. Install the wxWidgets development package or alternatively you can also configure with: --disable-wxwidgets --disable-skins2.])
4519   fi
4520 fi
4521
4522 dnl dnl
4523 dnl dnl  Qt module
4524 dnl dnl
4525 dnl AC_ARG_ENABLE(qt,
4526 dnl   [  --enable-qt             Qt interface support (default disabled)],
4527 dnl   [if test "${enable_qt}" = "yes"; then
4528 dnl      VLC_ADD_PLUGINS([qt])
4529 dnl      ALIASES="${ALIASES} qvlc"
4530 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4531 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4532 dnl      AC_CHECK_LIB(qt-mt,main,[
4533 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4534 dnl      ],[
4535 dnl        AC_CHECK_LIB(qt,main,[
4536 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4537 dnl        ])
4538 dnl      ])
4539 dnl      LDFLAGS="${LDFLAGS_save}"
4540 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4541 dnl      if test -x ${QTDIR}/bin/moc
4542 dnl      then
4543 dnl        MOC=${QTDIR}/bin/moc
4544 dnl      else
4545 dnl        MOC=moc
4546 dnl      fi
4547 dnl    fi])
4548 dnl 
4549 dnl dnl
4550 dnl dnl  KDE module
4551 dnl dnl
4552 dnl AC_ARG_ENABLE(kde,
4553 dnl   [  --enable-kde            KDE interface support (default disabled)],
4554 dnl   [if test "${enable_kde}" = "yes"; then
4555 dnl      VLC_ADD_PLUGINS([kde])
4556 dnl      ALIASES="${ALIASES} kvlc"
4557 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4558 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4559 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4560 dnl      AC_CHECK_LIB(kfile,main,[
4561 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4562 dnl      ])
4563 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4564 dnl      AC_CHECK_LIB(kdeui,main,[
4565 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4566 dnl      ])
4567 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4568 dnl      AC_CHECK_LIB(kio,main,[
4569 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4570 dnl      ])
4571 dnl      LDFLAGS="${LDFLAGS_save}"
4572 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4573 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4574 dnl      if test -x ${QTDIR}/bin/moc
4575 dnl      then
4576 dnl        MOC=${QTDIR}/bin/moc
4577 dnl      else
4578 dnl        MOC=moc
4579 dnl      fi
4580 dnl    fi])
4581
4582 dnl
4583 dnl  Opie QT embedded module
4584 dnl
4585 AC_ARG_ENABLE(opie,
4586   [  --enable-opie           Qt embedded interface support (default disabled)],
4587   [if test "${enable_opie}" = "yes"; then
4588      AC_ARG_WITH(qte,
4589      [    --with-qte=PATH       Qt Embedded headers and libraries])
4590      if test "${with_qte}" != "no" -a -n "${with_qte}"
4591      then
4592        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4593        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])
4594      else
4595        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4596        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4597      fi
4598      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4599      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4600        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4601      ] )
4602      CPPFLAGS="${CPPFLAGS_save}"
4603
4604      VLC_ADD_PLUGINS([opie])
4605      NEED_QTE_MAIN=yes
4606      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4607      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4608      if test "${with_qte}" != "no" -a -n "${with_qte}"
4609      then
4610        MOC=${with_qte}/bin/moc
4611      else
4612        MOC=${QTDIR}/bin/moc
4613      fi
4614    fi])
4615
4616 dnl
4617 dnl  MacOS X module
4618 dnl
4619 AC_ARG_ENABLE(macosx,
4620   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4621   [if test "${enable_macosx}" = "yes"
4622    then
4623      VLC_ADD_BUILTINS([macosx])
4624      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4625    fi],
4626   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4627      VLC_ADD_BUILTINS([macosx])
4628      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4629    )])
4630
4631 dnl
4632 dnl  QNX RTOS module
4633 dnl
4634 AC_ARG_ENABLE(qnx,
4635   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4636     if test "${enable_qnx}" != "no"
4637     then
4638       AC_CHECK_HEADERS(Ph.h, [
4639         VLC_ADD_PLUGINS([qnx])
4640         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4641       ])
4642     fi
4643
4644 dnl
4645 dnl  ncurses module
4646 dnl
4647 AC_ARG_ENABLE(ncurses,
4648   [  --enable-ncurses        ncurses interface support (default disabled)],
4649   [if test "${enable_ncurses}" = "yes"; then
4650      VLC_ADD_PLUGINS([ncurses])
4651      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4652    fi])
4653
4654 dnl
4655 dnl  XOSD plugin
4656 dnl
4657 AC_ARG_ENABLE(xosd,
4658   [  --enable-xosd           xosd interface support (default disabled)])
4659 if test "${enable_xosd}" = "yes"
4660 then
4661   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4662   AC_CHECK_LIB(xosd,xosd_set_offset,
4663       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4664     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4665         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4666       AC_TRY_COMPILE([#include <xosd.h>],
4667          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
4668           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4669   if test "${have_xosd}" = "true"
4670   then
4671     VLC_ADD_PLUGINS([xosd])
4672     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4673   fi
4674 fi
4675
4676 dnl
4677 dnl Visualisation plugin
4678 dnl
4679 AC_ARG_ENABLE(visual,
4680   [  --enable-visual         visualisation plugin (default enabled)])
4681 if test "${enable_visual}" != "no"
4682 then
4683     VLC_ADD_PLUGINS([visual])
4684 fi
4685
4686 dnl
4687 dnl OpenGL visualisation plugin
4688 dnl
4689 AC_ARG_ENABLE(galaktos,
4690   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4691 if test "${enable_galaktos}" = "yes"
4692 then
4693   AC_CHECK_HEADERS(GL/gl.h, [
4694     VLC_ADD_PLUGINS([galaktos])
4695     if test "${SYS}" != "mingw32"; then
4696       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
4697     else
4698       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4699     fi
4700   ])
4701 fi
4702
4703 dnl
4704 dnl  goom visualization plugin
4705 dnl
4706 AC_ARG_ENABLE(goom,
4707 [  --enable-goom           goom visualisation plugin (default disabled)])
4708 if test "${enable_goom}" = "yes"
4709 then
4710   AC_ARG_WITH(goom-tree,
4711     [    --with-goom-tree=PATH goom tree for static linking (required)])
4712
4713   dnl
4714   dnl test for --with-goom-tree
4715   dnl
4716   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4717     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4718     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4719     if test -z "${real_goom_tree}"; then
4720       dnl  The given directory can't be found
4721       AC_MSG_RESULT(no)
4722       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4723     fi
4724     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4725       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4726       VLC_ADD_BUILTINS([goom])
4727       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4728       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4729     else
4730       dnl  The given libgoom2 wasn't built, try to look for the old goom
4731       AC_MSG_RESULT(no)
4732       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4733       if test -f "${real_goom_tree}/libgoom.a"; then
4734         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4735         VLC_ADD_BUILTINS([goom])
4736         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
4737         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4738       else
4739         dnl  The given libgoom wasn't built
4740         AC_MSG_RESULT(no)
4741         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4742       fi
4743     fi
4744   else
4745     AC_CHECK_HEADERS(goom/goom.h, [
4746       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
4747       AC_CHECK_LIB(goom2, goom_init, [
4748         VLC_ADD_PLUGINS([goom])
4749         VLC_ADD_LDFLAGS([goom],[-lgoom2])
4750       ],[
4751         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4752       ])
4753       LDFLAGS="${LDFLAGS_save}"
4754     ])
4755   fi
4756 fi
4757
4758 dnl
4759 dnl DAAP access plugin and services discovery 
4760 dnl
4761 AC_ARG_ENABLE(daap,
4762   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4763 if test "$enable_daap" != "no"
4764 then
4765    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4766       [ VLC_ADD_PLUGINS([daap])
4767        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4768        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4769       [AC_MSG_WARN(DAAP library not found)])
4770 fi
4771
4772 dnl
4773 dnl  Bonjour services discovery
4774 dnl
4775 AC_ARG_ENABLE(bonjour,
4776   [  --enable-bonjour        Bonjour services discovery (default enabled)])
4777 if test "${enable_bonjour}" != "no"
4778 then
4779   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
4780     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
4781        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
4782       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
4783       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
4784       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
4785       VLC_ADD_PLUGINS([bonjour]) ],
4786     [AC_MSG_WARN(avahi-client library not found)])
4787 fi
4788
4789 dnl
4790 dnl  Lirc plugin
4791 dnl
4792 AC_ARG_ENABLE(lirc,
4793   [  --enable-lirc           lirc support (default disabled)])
4794 if test "${enable_lirc}" = "yes"
4795 then
4796   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4797   if test "${have_lirc}" = "true"
4798   then
4799     VLC_ADD_PLUGINS([lirc])
4800     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4801   fi
4802 fi
4803
4804
4805 dnl
4806 dnl corba (ORBit) plugin
4807 dnl
4808 dnl Default: do not enable corba
4809 enablecorba=false
4810 AC_ARG_ENABLE(corba,
4811   [  --enable-corba          corba interface support (default disabled)])
4812 if test "${enable_corba}" = "yes"; then
4813       GLIB_VERSION=2.3.2
4814       PKG_CHECK_MODULES(CORBA, 
4815         ORBit-2.0 >= 2.8.0 \
4816         glib-2.0 >= $GLIB_VERSION \
4817         gobject-2.0 >= $GLIB_VERSION \
4818         gthread-2.0 >= $GLIB_VERSION,
4819         [
4820           enablecorba=true
4821           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4822           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4823           VLC_ADD_PLUGINS([corba snapshot]) ],
4824         [ enablecorba=false
4825           AC_MSG_WARN(corba library not found) ])
4826 fi
4827 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4828
4829 AC_ARG_WITH(,[Misc options:])
4830
4831 dnl
4832 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4833 dnl
4834 dnl  We give the user the opportunity to specify
4835 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4836 dnl
4837 AC_ARG_WITH(words,
4838   [    --with-words=endianness set endianness (big or little)])
4839   case "${with_words}" in
4840     big)
4841       ac_cv_c_bigendian=yes
4842       ;;
4843     little)
4844       ac_cv_c_bigendian=no
4845       ;;
4846     *)
4847       dnl  Try to guess endianness by matching patterns on a compiled
4848       dnl  binary, by looking for an ASCII or EBCDIC string
4849       AC_CACHE_CHECK([whether the byte order is big-endian],
4850         [ac_cv_c_bigendian],
4851         [ac_cv_c_bigendian="unknown"
4852         [cat >conftest.c <<EOF
4853         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4854         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4855         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4856         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4857         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4858         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4859         int main(void) { _a(); _e(); return 0; }
4860 EOF
4861  &nbs