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