]> git.sesse.net Git - vlc/blob - configure.ac
* configure.ac: when checking for Wextra support, don't check for Werror instead.
[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 sk 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 panoramix],[-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="-Wextra ${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 marq podcast shout sap fake folder])
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 AC_ARG_ENABLE(musicbrainz,
1576   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1577   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1578       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1579         [ VLC_ADD_PLUGINS([musicbrainz])
1580           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1581           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1582        [AC_MSG_WARN(MusicBrainz library not found)])
1583    ])
1584
1585
1586 dnl
1587 dnl Taglibplugin
1588 dnl
1589 AC_ARG_ENABLE(taglib,
1590   [  --enable-taglib Taglib support (default disabled) ])
1591   AS_IF([test "${enable_taglib}" = "yes"],[
1592     PKG_CHECK_MODULES(TAGLIB, taglib,
1593       [ VLC_ADD_PLUGINS([taglib])
1594         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS])
1595        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1596       [AC_MSG_WARN(TagLib library not found)])
1597   ])
1598
1599
1600 dnl
1601 dnl  Input plugins
1602 dnl
1603
1604 AC_ARG_WITH(,[Input plugins:])
1605
1606 dnl  live555 input
1607 dnl
1608 if test "${enable_livedotcom}" 
1609 then
1610   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1611 fi
1612
1613 if test "${enable_livedotcom}" = "no"
1614 then
1615   enable_live555="no"
1616 fi
1617 AC_ARG_ENABLE(live555,
1618 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1619 if test "${enable_live555}" != "no"; then
1620   AC_ARG_WITH(live555-tree,
1621     [    --with-live555-tree=PATH live.com tree for static linking])
1622
1623   dnl
1624   dnl test for --with-live555-tree
1625   dnl
1626   if test "${with_livedotcom_tree}" 
1627   then
1628     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1629   with_live555_tree="${with_livedotcom_tree}"
1630   fi
1631   
1632   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1633     AC_LANG_PUSH(C++)
1634     CPPFLAGS_save="${CPPFLAGS}"
1635     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1636     if test "${SYS}" = "solaris"; then
1637       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1638     fi
1639     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1640     AC_CHECK_HEADERS(liveMedia.hh, [
1641       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1642       AC_CHECK_LIB(liveMedia_pic, main, [
1643         # We have -lliveMedia_pic, build plugins
1644         VLC_ADD_PLUGINS([live555])
1645         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1646       ], [
1647         AC_CHECK_LIB(liveMedia, main, [
1648           # We only have -lliveMedia, do builtins
1649           VLC_ADD_BUILTINS([live555])
1650           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1651         ])
1652       ])
1653       if test "${SYS}" = "mingw32"; then
1654         # add ws2_32 for closesocket, select, recv
1655         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1656       fi
1657     ])
1658     CPPFLAGS="${CPPFLAGS_save}"
1659     AC_LANG_POP(C++)
1660   else
1661     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1662     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1663     if test -z "${real_live555_tree}"; then
1664       dnl  The given directory can't be found
1665       AC_MSG_RESULT(no)
1666       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1667     fi
1668     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1669       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1670
1671       VLC_ADD_BUILTINS([live555])
1672
1673       if test "${SYS}" = "mingw32"; then
1674         # add ws2_32 for closesocket, select, recv
1675         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1676       fi
1677
1678       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1679       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1680       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1681       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1682
1683       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1684       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1685       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1686       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1687       if test "${SYS}" = "solaris"; then
1688         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1689       fi
1690     else
1691       dnl  The given live555 wasn't built
1692         AC_MSG_RESULT(no)
1693       if test "${enable_live555}" = "yes"; then
1694         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1695       fi        
1696     fi
1697   fi
1698 fi
1699
1700 dnl
1701 dnl dv module: digital video module check for libraw1394
1702 dnl
1703 AC_ARG_ENABLE(dv,
1704 [  --enable-dv             dv input module (default disabled)])
1705 if test "${enable_dv}" = "yes"
1706 then
1707   AC_ARG_WITH(dv-raw1394,
1708   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1709   AC_ARG_WITH(dv-raw1394-tree,
1710   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1711
1712   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1713   then
1714     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1715     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1716     then
1717       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1718       AC_MSG_RESULT(yes)
1719       VLC_ADD_PLUGINS([access_dv])
1720       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1721       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1722     else
1723       dnl  No libraw1394 could be found, sorry
1724       AC_MSG_RESULT(no)
1725       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1726     fi
1727   else
1728     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1729     [ VLC_ADD_PLUGINS([access_dv])
1730         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1731     ],[
1732         if test -n "${enable_dv}"
1733         then
1734           AC_MSG_ERROR([cannot find libraw1394 headers])
1735         fi
1736     ])
1737   fi
1738
1739   dnl Check for static linking of libraw1394
1740   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1741   then
1742     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1743     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1744     if test -z "${real_dv_raw1394_tree}"
1745     then
1746       dnl  The given directory can't be found
1747       AC_MSG_RESULT(no)
1748       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1749     fi
1750     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1751     then
1752       dnl  Use a custom libraw1394
1753       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1754       VLC_ADD_BUILTINS([access_dv])
1755       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1756       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1757     else
1758       dnl  The given libraw1394 wasn't built
1759       AC_MSG_RESULT(no)
1760       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1761     fi
1762   fi
1763
1764   dnl
1765   dnl Check for libavc1394
1766   dnl
1767
1768   AC_ARG_WITH(dv-avc1394,
1769   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1770   AC_ARG_WITH(dv-avc1394-tree,
1771   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1772
1773   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1774   then
1775     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1776     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1777     then
1778       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1779       AC_MSG_RESULT(yes)
1780       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1781       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1782     else
1783       dnl  No libavc1394 could be found, sorry
1784       AC_MSG_RESULT(no)
1785       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1786     fi
1787   else
1788     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1789     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1790     ],[
1791         if test -n "${enable_dv}"
1792         then
1793           AC_MSG_ERROR([cannot find libavc1394 headers])
1794         fi
1795     ])
1796   fi
1797
1798   dnl Check for static linking of libavc1394
1799   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1800   then
1801     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1802     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1803     if test -z "${real_dv_avc1394_tree}"
1804     then
1805       dnl  The given directory can't be found
1806       AC_MSG_RESULT(no)
1807       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1808     fi
1809     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1810     then
1811       dnl  Use a custom libavc1394
1812       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1813       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1814       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1815     else
1816       dnl  The given libavc1394 wasn't built
1817       AC_MSG_RESULT(no)
1818       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1819     fi
1820   fi
1821 fi
1822
1823 dnl
1824 dnl dvdread module: check for libdvdread
1825 dnl
1826 AC_ARG_ENABLE(dvdread,
1827 [  --enable-dvdread        dvdread input module (default disabled)])
1828 if test "${enable_dvdread}" != "no"
1829 then
1830   AC_ARG_WITH(dvdread,
1831   [    --with-dvdread=PATH   libdvdread headers and libraries])
1832   AC_ARG_WITH(dvdread-tree,
1833   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1834
1835   dnl Temporary hack (yeah, sure ;)
1836   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1837       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1838   fi
1839
1840   if test -z "${with_dvdread}"
1841   then
1842     if test -z "${with_dvdread_tree}"
1843     then
1844       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1845         [ VLC_ADD_PLUGINS([dvdread])
1846           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1847         ],[
1848           if test -n "${enable_dvdread}"
1849           then
1850             AC_MSG_ERROR([cannot find libdvdread headers])
1851           fi
1852         ])
1853     else
1854       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1855       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1856       if test -z "${real_dvdread_tree}"
1857       then
1858         dnl  The given directory can't be found
1859         AC_MSG_RESULT(no)
1860         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1861       fi
1862       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1863       then
1864         dnl  Use a custom libdvdread
1865         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1866         VLC_ADD_BUILTINS([dvdread])
1867         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1868         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1869       else
1870         dnl  The given libdvdread wasn't built
1871         AC_MSG_RESULT(no)
1872         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1873       fi
1874     fi
1875   else
1876     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1877     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1878     then
1879       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1880       AC_MSG_RESULT(yes)
1881       VLC_ADD_PLUGINS([dvdread])
1882       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1883       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1884     else
1885       dnl  No libdvdread could be found, sorry
1886       AC_MSG_RESULT(no)
1887       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1888     fi
1889   fi
1890 fi
1891
1892 dnl
1893 dnl  libdvdnav plugin
1894 dnl
1895 AC_ARG_ENABLE(dvdnav,
1896   [  --enable-dvdnav         dvdnav input module (default enabled)])
1897 if test "${enable_dvdnav}" != "no"
1898 then
1899   dnl Same hack than dvdread
1900   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1901       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1902   fi
1903
1904   DVDNAV_PATH="${PATH}"
1905   AC_ARG_WITH(dvdnav-config-path,
1906     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1907     [ if test "${with_dvdnav_config_path}" != "no"
1908       then
1909         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1910       fi ])
1911   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1912   if test "${DVDNAV_CONFIG}" != "no"
1913   then
1914     VLC_ADD_PLUGINS([dvdnav])
1915     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1916     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1917   fi
1918 fi
1919
1920 dnl
1921 dnl  Windows DirectShow access module
1922 dnl
1923 AC_ARG_ENABLE(dshow,
1924   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1925 if test "${enable_dshow}" != "no"
1926 then
1927   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1928   then
1929     AC_LANG_PUSH(C++)
1930       AC_CHECK_HEADERS(dshow.h,
1931       [ VLC_ADD_PLUGINS([dshow])
1932         VLC_ADD_CXXFLAGS([dshow],[])
1933         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1934     AC_LANG_POP(C++)
1935   fi
1936 fi
1937
1938
1939 dnl
1940 dnl  OpenCV wrapper and example filters
1941 dnl
1942 AC_ARG_ENABLE(opencv,
1943   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
1944 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
1945 then
1946   AC_ARG_WITH(opencv-tree,
1947   [    --with-opencv-tree=PATH opencv tree for linking])
1948   if test -n "${with_opencv_tree}"
1949   then
1950     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1951     then
1952           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
1953           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
1954             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
1955       then
1956         AC_MSG_RESULT(yes)
1957         VLC_ADD_PLUGINS([opencv_wrapper])
1958         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1959         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])
1960         AC_LANG_PUSH(C++)
1961         VLC_ADD_PLUGINS([opencv_example])
1962         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1963         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])
1964         AC_LANG_POP(C++)        
1965           else
1966         dnl  No opencv could be found, sorry
1967         AC_MSG_RESULT(no)
1968         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
1969           fi
1970     else
1971           AC_MSG_WARN([--enable-opencv currently only works on windows])
1972     fi
1973   fi  
1974 fi
1975
1976
1977 dnl
1978 dnl  libsmbclient plugin
1979 dnl
1980 AC_ARG_ENABLE(smb,
1981   [  --enable-smb            smb input module (default enabled)])
1982 if test "${enable_smb}" != "no"; then
1983   AC_CHECK_HEADERS(libsmbclient.h,
1984     [ VLC_ADD_PLUGINS([access_smb])
1985       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1986     [ if test -n "${enable_smb}"; then
1987         AC_MSG_ERROR([cannot find libsmbclient headers])
1988      fi ])
1989   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1990     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1991     [#include <libsmbclient.h>])
1992 fi
1993
1994 dnl
1995 dnl  libdvbpsi ts demux/mux
1996 dnl
1997 AC_ARG_ENABLE(dvbpsi,
1998   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1999 if test "${enable_dvbpsi}" != "no"
2000 then
2001   AC_ARG_WITH(dvbpsi,
2002   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
2003   AC_ARG_WITH(dvbpsi,
2004   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
2005   case "${with_dvbpsi}" in
2006   ""|yes)
2007     if test -z "${with_dvbpsi_tree}"
2008     then
2009       AC_CHECK_HEADERS(dvbpsi/dr.h,
2010         [ VLC_ADD_PLUGINS([ts])
2011           if test "${enable_sout}" != "no"; then
2012             VLC_ADD_PLUGINS([mux_ts])
2013           fi
2014           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
2015         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
2016         [#if defined( HAVE_STDINT_H )
2017 #   include <stdint.h>
2018 #elif defined( HAVE_INTTYPES_H )
2019 #   include <inttypes.h>
2020 #endif
2021 #include <dvbpsi/dvbpsi.h>
2022 #include <dvbpsi/descriptor.h>
2023 #include <dvbpsi/pat.h>
2024 #include <dvbpsi/pmt.h>])
2025     else
2026       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
2027       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
2028       if test -z "${real_dvbpsi_tree}"
2029       then
2030         dnl  The given directory can't be found
2031         AC_MSG_RESULT(no)
2032         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
2033       fi
2034       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
2035       then
2036         dnl  Use a custom libdvbpsi
2037         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
2038         VLC_ADD_BUILTINS([ts])
2039         if test "${enable_sout}" != "no"; then
2040           VLC_ADD_BUILTINS([mux_ts])
2041         fi
2042         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
2043         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
2044       else
2045         dnl  The given libdvbpsi wasn't built
2046         AC_MSG_RESULT(no)
2047         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
2048       fi
2049     fi
2050   ;;
2051   no)
2052     dnl  Compile without dvbpsi
2053   ;;
2054   *)
2055     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
2056     if test -z "${with_dvbpsi}"
2057     then
2058       LDFLAGS_test=""
2059       CPPFLAGS_test=""
2060     else
2061       LDFLAGS_test="-L${with_dvbpsi}/lib"
2062       CPPFLAGS_test="-I${with_dvbpsi}/include"
2063     fi
2064     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2065     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2066       VLC_ADD_PLUGINS([ts])
2067       if test "${enable_sout}" != "no"; then
2068         VLC_ADD_PLUGINS([mux_ts])
2069       fi
2070       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2071       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2072
2073     ],[
2074       if test -n "${enable_dvbpsi}"
2075       then
2076         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])
2077       fi
2078     ])
2079     CPPFLAGS="${CPPFLAGS_save}"
2080   ;;
2081   esac
2082   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2083     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2084   ], [], [${LDFLAGS_ts}])
2085
2086 fi
2087
2088 dnl
2089 dnl  Video4Linux plugin
2090 dnl
2091 AC_ARG_ENABLE(v4l,
2092   [  --enable-v4l            Video4Linux input support (default disabled)])
2093 if test "${enable_v4l}" = "yes"
2094 then
2095   AC_ARG_WITH(v4l,
2096     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2097   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2098   then
2099     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2100   fi
2101
2102   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2103   AC_CHECK_HEADERS(linux/videodev.h, [
2104     VLC_ADD_PLUGINS([v4l])
2105   ],[])
2106   CPPFLAGS="${CPPFLAGS_save}"
2107 fi
2108
2109 dnl
2110 dnl  Video4Linux plugin
2111 dnl
2112 AC_ARG_ENABLE(v4l2,
2113   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2114 if test "${enable_v4l2}" = "yes"
2115 then
2116   AC_ARG_WITH(v4l2,
2117     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2118   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2119   then
2120     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2121   fi
2122
2123   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2124   AC_CHECK_HEADERS(linux/videodev2.h, [
2125     VLC_ADD_PLUGINS([v4l2])
2126   ],[])
2127   CPPFLAGS="${CPPFLAGS_save}"
2128 fi
2129
2130
2131 dnl
2132 dnl  special access module for Hauppauge PVR cards
2133 dnl
2134 AC_ARG_ENABLE(pvr,
2135   [  --enable-pvr            PVR cards access module (default disabled)])
2136 if test "${enable_pvr}" = "yes"
2137 then
2138   VLC_ADD_PLUGINS([pvr])
2139 fi
2140
2141 dnl
2142 dnl  gnomeVFS access module
2143 dnl
2144 AC_ARG_ENABLE(gnomevfs,
2145   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
2146 if test "${enable_gnomevfs}" != "no" 
2147 then
2148   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2149     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2150     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2151     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2152     VLC_ADD_PLUGINS([access_gnomevfs]),
2153     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2154 fi
2155
2156 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2157 AC_ARG_ENABLE(libcdio,
2158   [  --enable-libcdio        CD input and control library support (default enabled)])
2159
2160
2161 have_libcdio=no
2162 have_libvcdinfo=no
2163 if test "${enable_libcdio}" != "no"
2164 then
2165   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
2166      have_libcdio=yes
2167      AC_DEFINE(HAVE_LIBCDIO, [], 
2168      [Define if you have libcdio 0.72 or greater installed]),
2169      [AC_MSG_WARN(CD Reading and information library not found)])
2170
2171   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
2172      [have_libvcdinfo=yes
2173      AC_DEFINE(HAVE_VCDINFO, [], 
2174      [Define if you have libvcdinfo 0.7.21 or greater installed])],
2175      [AC_MSG_WARN(VCD information library not found)])
2176 fi
2177
2178 dnl
2179 dnl  VCDX and CDDAX modules
2180 dnl
2181 AC_ARG_ENABLE(cddax,
2182   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2183  
2184 AC_ARG_ENABLE(libcddb,
2185   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2186  
2187 if test "${enable_cddax}" = "yes"
2188 then
2189   if test "$have_libcdio" = "yes"
2190   then
2191     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2192     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2193     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2194     VLC_ADD_PLUGINS([cddax])
2195     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2196     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2197     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2198   else 
2199     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2200     HAVE_CDDAX=no
2201   fi
2202
2203   if test "$enable_libcddb" != "no"; then
2204     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2205       HAVE_LIBCDDB=yes 
2206       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2207       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2208       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2209       ],
2210       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2211       HAVE_LIBCDDB=no])
2212   fi
2213  
2214 fi
2215
2216 AC_ARG_ENABLE(vcdx,
2217   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2218  
2219 if test "${enable_vcdx}" = "yes"
2220 then
2221   if test "${have_libvcdinfo}" = "yes"
2222   then
2223     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2224     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2225   else 
2226     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2227     HAVE_VCDX=no
2228   fi
2229
2230   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2231    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2232     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2233     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2234     HAVE_VCDX=no])
2235
2236   if test "$have_libvcdinfo" = "yes"
2237   then
2238     AC_DEFINE(HAVE_VCDX, [], 
2239     [Define for the VCD plugin using libcdio/libvcdinfo])
2240     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2241     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2242     VLC_ADD_PLUGINS([vcdx])
2243   else 
2244     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2245     HAVE_VCDX=no
2246   fi
2247 fi
2248
2249 dnl
2250 dnl  Built-in CD-DA and VCD module
2251 dnl
2252 AC_ARG_ENABLE(cdda,           
2253   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2254  
2255 AC_ARG_ENABLE(vcd,
2256   [  --enable-vcd            built-in VCD (default enabled)])
2257
2258 if test "${enable_vcd}" != "no"
2259 then
2260   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2261   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2262     AC_MSG_RESULT(yes)
2263     VLC_ADD_PLUGINS([vcd cdda])
2264   ],[
2265     AC_MSG_RESULT(no)
2266   ])
2267
2268   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2269   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2270     AC_MSG_RESULT(yes)
2271     VLC_ADD_PLUGINS([vcd cdda])
2272     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2273   ],[
2274     AC_MSG_RESULT(no)
2275   ])
2276
2277   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2278   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2279     AC_MSG_RESULT(yes)
2280     VLC_ADD_PLUGINS([vcd cdda])
2281     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2282   ],[
2283     AC_MSG_RESULT(no)
2284   ])
2285
2286   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2287   then
2288     VLC_ADD_PLUGINS([vcd cdda])
2289   fi
2290
2291   if test "${SYS}" = "darwin"
2292   then
2293     VLC_ADD_PLUGINS([vcd cdda])
2294     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2295     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2296   fi
2297
2298   if test "$enable_libcddb" != "no"; then
2299     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2300       HAVE_LIBCDDB=yes 
2301       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2302       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2303       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2304       ],:
2305       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2306       HAVE_LIBCDDB=no])
2307   fi
2308 fi
2309
2310 dnl
2311 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2312 dnl
2313 AC_ARG_ENABLE(dvb,
2314   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2315
2316 if test "${enable_dvb}" = "yes"
2317 then
2318   AC_ARG_WITH(dvb,
2319   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2320   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2321   then
2322     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2323   fi
2324   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2325   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2326     if test -z "${with_dvbpsi_tree}"
2327     then
2328       VLC_ADD_PLUGINS([dvb])
2329     else
2330       VLC_ADD_BUILTINS([dvb])
2331     fi
2332   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2333   CPPFLAGS="${CPPFLAGS_save}"
2334 fi
2335
2336 dnl
2337 dnl  Screen capture module
2338 dnl
2339 AC_ARG_ENABLE(screen,
2340   [  --enable-screen         Screen capture support (default enabled)])
2341 if test "${enable_screen}" != "no"; then
2342   if test "${SYS}" = "darwin"; then
2343     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2344       VLC_ADD_PLUGINS([screen])
2345       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2346     ])
2347   elif test "${SYS}" = "mingw32"; then
2348     VLC_ADD_PLUGINS([screen])
2349     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2350   elif test "${SYS}" = "mingwce"; then
2351     CPPFLAGS="${CPPFLAGS_save}"
2352   elif test "${SYS}" = "beos"; then
2353     VLC_ADD_PLUGINS([screen])
2354     VLC_ADD_CXXFLAGS([screen],[])
2355     VLC_ADD_LDFLAGS([screen],[-lbe])
2356   else
2357     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2358     AC_CHECK_HEADERS(X11/Xlib.h, [
2359       VLC_ADD_PLUGINS([screen])
2360       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2361       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2362     ])
2363     CPPFLAGS="${CPPFLAGS_save}"
2364   fi
2365 fi
2366
2367 dnl
2368 dnl  ipv6 plugin - not for QNX yet
2369 dnl
2370 have_ipv6=no
2371 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2372   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2373 ])
2374
2375 AS_IF([test "${have_ipv6}" = "yes"], [
2376   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2377
2378 if test "${SYS}" != "nto" &&
2379    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2380 then
2381   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2382   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2383     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2384   AS_IF([test "${have_ipv6}" != "no"], [
2385     VLC_ADD_PLUGINS([ipv6])])
2386 fi
2387 if test "${SYS}" = "mingw32"
2388 then
2389   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2390   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2391     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2392 fi
2393
2394 dnl
2395 dnl  ogg demux plugin
2396 dnl
2397 AC_ARG_ENABLE(ogg,
2398   [  --enable-ogg            Ogg demux support (default enabled)])
2399 if test "${enable_ogg}" != "no"
2400 then
2401   AC_ARG_WITH(ogg-tree,
2402   [    --with-ogg-tree=PATH  ogg tree for static linking])
2403   if test -n "${with_ogg_tree}"
2404   then
2405     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2406     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2407     if test -z "${real_ogg_tree}"
2408     then
2409       dnl  The given directory can't be found
2410       AC_MSG_RESULT(no)
2411       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2412     fi
2413     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2414     then
2415       dnl  Use a custom ogg
2416       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
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 speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2422       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2423     else
2424       dnl  The given ogg wasn't built
2425       AC_MSG_RESULT(no)
2426       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2427     fi
2428   else
2429     AC_CHECK_HEADERS(ogg/ogg.h, [
2430       AC_CHECK_LIB( ogg, oggpack_read, [
2431         VLC_ADD_PLUGINS([ogg])
2432         if test "${enable_sout}" != "no"; then
2433           VLC_ADD_PLUGINS([mux_ogg])
2434         fi
2435         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2436      ],[])
2437   fi
2438 fi
2439
2440 dnl
2441 dnl  matroska demux plugin
2442 dnl
2443 AC_ARG_ENABLE(mkv,
2444   [  --enable-mkv            Matroska demux support (default enabled)])
2445 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2446   AC_LANG_PUSH(C++)
2447   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2448     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2449     AC_EGREP_CPP(yes,
2450       [#include <ebml/EbmlVersion.h>
2451        #ifdef LIBEBML_VERSION
2452        #if LIBEBML_VERSION >= 0x000706
2453        yes
2454        #endif
2455        #endif],
2456       [AC_MSG_RESULT([yes])
2457         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2458           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2459           AC_EGREP_CPP(yes,
2460             [#include <matroska/KaxVersion.h>
2461              #ifdef LIBMATROSKA_VERSION
2462              #if LIBMATROSKA_VERSION >= 0x000705
2463              yes
2464              #endif
2465              #endif],
2466             [AC_MSG_RESULT([yes])
2467               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2468               VLC_ADD_CXXFLAGS([mkv],[])
2469               if test "${SYS}" = "darwin"; then
2470                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2471               fi
2472               AC_CHECK_LIB(ebml_pic, main, [
2473                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2474                 VLC_ADD_PLUGINS([mkv])
2475                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2476               ], [
2477                 AC_CHECK_LIB(ebml, main, [
2478                   # We only have libebml, make mkv.a a builtin
2479                   VLC_ADD_BUILTINS([mkv])
2480                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2481                 ])
2482               ])
2483             ],
2484             [AC_MSG_RESULT([no])
2485               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.])
2486           ])
2487         ])
2488       ],
2489       [AC_MSG_RESULT([no])
2490         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.])
2491     ])
2492   ])
2493   AC_LANG_POP(C++)
2494 fi
2495
2496 dnl
2497 dnl  modplug demux plugin
2498 dnl
2499 AC_ARG_ENABLE(mod,
2500   [  --enable-mod            Mod demux support (default enabled)])
2501 if test "${enable_mod}" != "no"
2502 then
2503   AC_ARG_WITH(mod-tree,
2504   [    --with-mod-tree=PATH mod tree for static linking])
2505   if test -n "${with_mod_tree}"
2506   then
2507     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2508     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2509     if test -z "${real_mod_tree}"
2510     then
2511       dnl  The given directory can't be found
2512       AC_MSG_RESULT(no)
2513       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2514     fi
2515     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2516     then
2517       dnl  Use a custom mod
2518       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2519       VLC_ADD_PLUGINS([mod])
2520       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2521       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2522     else
2523       dnl  The given mod wasn't built
2524       AC_MSG_RESULT(no)
2525       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2526     fi
2527   else
2528     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2529       VLC_ADD_PLUGINS([mod])
2530       VLC_ADD_CXXFLAGS([mod],[])
2531       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2532   fi
2533 fi
2534
2535 dnl
2536 dnl  mpc demux plugin
2537 dnl
2538 AC_ARG_ENABLE(mpc,
2539   [  --enable-mpc            Mpc demux support (default enabled)])
2540 if test "${enable_mpc}" != "no"
2541 then
2542   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2543     VLC_ADD_PLUGINS([mpc])
2544     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2545 fi
2546
2547 dnl
2548 dnl  game music emu demux plugin
2549 dnl
2550 AC_ARG_ENABLE(gme,
2551   [  --enable-gme            Game Music Emu demux support (default enabled)])
2552 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2553 then
2554   AC_LANG_PUSH(C++)
2555   AC_ARG_WITH(gme-tree,
2556   [    --with-gme-tree=PATH gme tree for static linking])
2557   if test -n "${with_gme_tree}"
2558   then
2559     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2560     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2561     if test -z "${real_gme_tree}"
2562     then
2563       dnl  The given directory can't be found
2564       AC_MSG_RESULT(no)
2565       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2566     fi
2567     if test -f "${real_gme_tree}/gme/libgme.a"
2568     then
2569       dnl  Use a custom gme
2570       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2571       VLC_ADD_PLUGINS([gme])
2572       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2573       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2574     else
2575       dnl  The given gme wasn't built
2576       AC_MSG_RESULT(no)
2577       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2578     fi
2579   else
2580       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2581   fi
2582   AC_LANG_POP(C++)
2583 fi
2584
2585 dnl
2586 dnl  Codec plugins
2587 dnl
2588
2589 AC_ARG_WITH(,[Codec plugins:])
2590
2591 dnl
2592 dnl  mad plugin
2593 dnl
2594 AC_ARG_ENABLE(mad,
2595   [  --enable-mad            libmad module (default enabled)])
2596 if test "${enable_mad}" != "no"
2597 then
2598   AC_ARG_WITH(mad,
2599     [    --with-mad=PATH       path to libmad],[],[])
2600   if test "${with_mad}" != "no" -a -n "${with_mad}"
2601   then
2602     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2603     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2604   fi
2605
2606   AC_ARG_WITH(mad-tree,
2607     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2608   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2609   then
2610     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2611     if test -z "${real_mad_tree}"
2612     then
2613       dnl  The given directory can't be found
2614       AC_MSG_RESULT(no)
2615       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2616     fi
2617     dnl  Use a custom libmad
2618     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2619     if test -f ${real_mad_tree}/mad.h
2620     then
2621       AC_MSG_RESULT(yes)
2622       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2623       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2624       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2625       AC_CHECK_LIB(mad, mad_bit_init, [
2626         VLC_ADD_BUILTINS([mpgatofixed32])
2627         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2628         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2629       ],[])
2630       LDFLAGS="${LDFLAGS_save}"
2631     else
2632       AC_MSG_RESULT(no)
2633       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2634     fi
2635   else
2636     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2637     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2638     AC_CHECK_HEADERS(mad.h, ,
2639       [ 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.]) ])
2640     AC_CHECK_LIB(mad, mad_bit_init, [
2641       VLC_ADD_PLUGINS([mpgatofixed32])
2642       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2643       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2644     CPPFLAGS="${CPPFLAGS_save}"
2645     LDFLAGS="${LDFLAGS_save}"
2646   fi
2647 fi
2648
2649 dnl
2650 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2651 dnl
2652 AC_CHECK_HEADERS(id3tag.h, [
2653   AC_CHECK_HEADERS(zlib.h, [
2654     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2655     VLC_ADD_PLUGINS([id3tag])]) ])
2656
2657 dnl
2658 dnl  ffmpeg decoder/demuxer plugin
2659 dnl
2660 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2661 dnl                             4- default place, 
2662
2663 AC_ARG_ENABLE(ffmpeg,
2664 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2665 if test "${enable_ffmpeg}" != "no"
2666 then
2667
2668 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2669
2670  AC_ARG_WITH(ffmpeg-mp3lame,
2671    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2672    [
2673      if test "$with_ffmpeg_mp3lame" = "yes";    then
2674         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2675      fi])
2676
2677  AC_ARG_WITH(ffmpeg-faac,
2678    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2679    [
2680      if test "$with_ffmpeg_faac" = "yes"; then
2681         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2682      fi])
2683
2684  AC_ARG_WITH(ffmpeg-dts,
2685    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2686    [
2687      if test "$with_ffmpeg_dts" = "yes"; then
2688              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2689              AC_CHECK_LIB(dts_pic, dts_free, 
2690                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2691                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2692              LDFLAGS="${LDFLAGS_save}"
2693      fi])
2694
2695  AC_ARG_WITH(ffmpeg-vorbis,
2696    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2697    [
2698      if test "$with_ffmpeg_vorbis" = "yes"; then
2699         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2700      fi])
2701
2702  AC_ARG_WITH(ffmpeg-theora,
2703    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2704    [
2705      if test "$with_ffmpeg_theora" = "yes"; then
2706         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2707      fi])
2708
2709  AC_ARG_WITH(ffmpeg-ogg,
2710    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2711    [
2712      if test "$with_ffmpeg_ogg" = "yes"; then
2713         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2714      fi])
2715
2716  AC_ARG_WITH(ffmpeg-zlib,
2717    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2718    [
2719      if test "$with_ffmpeg_zlib" = "yes"; then
2720                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2721      fi])
2722
2723  dnl
2724  dnl test for --with-ffmpeg-tree
2725  dnl
2726  AC_ARG_WITH(ffmpeg-tree,
2727    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2728
2729  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2730    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2731    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2732    if test -z "${real_ffmpeg_tree}"; then
2733      dnl  The given directory can't be found
2734      AC_MSG_RESULT(no)
2735      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2736    fi
2737    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2738      dnl  The given libavcodec wasn't built
2739      AC_MSG_RESULT(no)
2740      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2741    fi
2742    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2743      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2744        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2745      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2746         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2747         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2748      else
2749        dnl  The given libavcodec wasn't built with --enable-pp
2750        AC_MSG_RESULT(no)
2751        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2752      fi
2753    fi
2754    dnl  Use a custom libffmpeg
2755    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2756
2757    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2758      if test "${with_ffmpeg_zlib}" != "yes"; then
2759        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2760      fi
2761    fi
2762    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2763      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2764        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2765      fi
2766    fi
2767    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2768      if test "${with_ffmpeg_faac}" != "yes"; then
2769        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2770      fi
2771    fi
2772    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2773      if test "${with_ffmpeg_dts}" != "yes"; then
2774        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2775        AC_CHECK_LIB(dts_pic, dts_free, 
2776          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2777          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2778        LDFLAGS="${LDFLAGS_save}"
2779      fi
2780    fi
2781    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2782      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2783    fi
2784    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2785      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2786    fi
2787    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2788      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2789    fi
2790
2791    VLC_ADD_BUILTINS([ffmpeg])
2792    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
2793      VLC_ADD_BUILTINS([stream_out_switcher])
2794    fi
2795
2796    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2797      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2798      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2799    fi
2800
2801    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2802    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2803
2804    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2805      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2806      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2807      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2808    fi
2809 else    
2810     
2811 dnl Look for a ffmpeg-config (we are on debian )
2812  
2813   FFMPEG_PATH="${PATH}"
2814   AC_ARG_WITH(ffmpeg-config-path,
2815     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2816     [ if test "${with_ffmpeg_config_path}" != "no"
2817       then
2818         FFMPEG_PATH="${with_ffmpeg_config_path}"
2819       fi ])
2820   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2821   if test "${FFMPEG_CONFIG}" != "no"
2822   then
2823     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2824     AC_CHECK_HEADERS(ffmpeg/avformat.h)
2825     AC_CHECK_HEADERS(ffmpeg/avutil.h)
2826     AC_CHECK_HEADERS(postproc/postprocess.h)
2827     VLC_ADD_PLUGINS([ffmpeg])
2828     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2829         VLC_ADD_PLUGINS([stream_out_switcher])
2830     fi
2831     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2832     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2833  
2834  else
2835
2836 dnl Trying with pkg-config
2837    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2838     [
2839      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2840      AC_CHECK_HEADERS(ffmpeg/avformat.h)
2841      AC_CHECK_HEADERS(ffmpeg/avutil.h)
2842      AC_CHECK_HEADERS(postproc/postprocess.h)
2843      if test "${SYS}" = "darwin"; then
2844         VLC_ADD_BUILTINS([ffmpeg])
2845      else
2846         VLC_ADD_PLUGINS([ffmpeg])
2847      fi
2848      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2849         if test "${SYS}" = "darwin"; then
2850             VLC_ADD_BUILTINS([stream_out_switcher])
2851         else
2852             VLC_ADD_PLUGINS([stream_out_switcher])
2853         fi
2854      fi
2855      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2856      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
2857      dnl newer ffmpeg have a separate libpostproc
2858      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2859        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2860        ],[ true ])
2861     ],[
2862      
2863     dnl
2864     dnl last chance: at the default place
2865     dnl
2866       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2867       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2868       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2869       AC_CHECK_HEADERS(ffmpeg/avformat.h)
2870       AC_CHECK_HEADERS(ffmpeg/avutil.h)
2871       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2872
2873       AC_CHECK_LIB(avutil, av_crc_init, [
2874         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2875         LDAVUTIL="-lavutil"])
2876
2877       AC_CHECK_LIB(postproc, pp_postprocess, [
2878         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2879
2880       AC_CHECK_LIB(avcodec, avcodec_init, [
2881         VLC_ADD_BUILTINS([ffmpeg])
2882         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2883         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2884             VLC_ADD_BUILTINS([stream_out_switcher])
2885         fi],
2886          [ 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])
2887
2888       
2889       AC_CHECK_LIB(avformat, av_open_input_stream, [
2890         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2891       LDFLAGS="${LDFLAGS_save}"
2892       CPPFLAGS="${CPPFLAGS_save}"
2893     ])
2894   fi
2895  fi 
2896 fi
2897
2898 dnl
2899 dnl  ffmpegaltivec plugin
2900 dnl
2901 AC_ARG_ENABLE(ffmpegaltivec,
2902 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2903 if test "${enable_ffmpegaltivec}" = "yes"
2904 then
2905   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2906     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2907     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2908     if test -z "${real_ffmpeg_tree}"; then
2909       dnl  The given directory can't be found
2910       AC_MSG_RESULT(no)
2911       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2912     fi
2913     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2914       dnl  The given libavcodecaltivec wasn't built
2915       AC_MSG_RESULT(no)
2916       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2917     fi
2918     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2919       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2920       AC_MSG_RESULT(no)
2921       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2922     fi
2923     dnl  Use a custom libffmpeg
2924     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2925     VLC_ADD_BUILTINS([ffmpegaltivec])
2926     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2927     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2928     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2929
2930     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2931       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2932       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2933       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2934     fi
2935     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2936     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2937   fi
2938 fi
2939
2940 dnl
2941 dnl  faad decoder plugin
2942 dnl
2943 AC_ARG_ENABLE(faad,
2944 [  --enable-faad           faad codec (default disabled)])
2945 if test "${enable_faad}" = "yes"
2946 then
2947   AC_ARG_WITH(faad-tree,
2948   [    --with-faad-tree=PATH faad tree for static linking])
2949   if test -n "${with_faad_tree}"
2950   then
2951     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2952     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2953     if test -z "${real_faad_tree}"
2954     then
2955       dnl  The given directory can't be found
2956       AC_MSG_RESULT(no)
2957       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2958     fi
2959     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2960     then
2961       dnl  Use a custom faad
2962       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2963       VLC_ADD_BUILTINS([faad])
2964       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2965       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2966     else
2967       dnl  The given libfaad wasn't built
2968       AC_MSG_RESULT(no)
2969       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2970     fi
2971   else
2972     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2973     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2974     AC_CHECK_HEADERS(faad.h, ,
2975       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2976     AC_CHECK_LIB(faad, faacDecOpen, [
2977       VLC_ADD_PLUGINS([faad])
2978       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2979       AC_CHECK_LIB(faad, NeAACDecOpen, [
2980         VLC_ADD_PLUGINS([faad])
2981         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2982         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2983     LDFLAGS="${LDFLAGS_save}"
2984     CPPFLAGS="${CPPFLAGS_save}"
2985   fi
2986 fi
2987
2988 dnl
2989 dnl twolame encoder plugin
2990 dnl
2991 AC_ARG_ENABLE(twolame,
2992 [  --enable-twolame        twolame codec (default disabled)])
2993 if test "${enable_twolame}" = "yes"
2994 then
2995   AC_ARG_WITH(twolame-tree,
2996   [    --with-twolame-tree=PATH twolame tree for static linking])
2997   if test -n "${with_twolame_tree}"
2998   then
2999     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3000     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3001     if test -z "${real_twolame_tree}"
3002     then
3003       dnl  The given directory can't be found
3004       AC_MSG_RESULT(no)
3005       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3006     fi
3007     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
3008     then
3009       dnl  Use a custom twolame
3010       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
3011       VLC_ADD_BUILTINS([twolame])
3012       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
3013       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
3014     else
3015       dnl  The given libtwolame wasn't built
3016       AC_MSG_RESULT(no)
3017       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3018     fi
3019   else
3020     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
3021     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3022     AC_CHECK_HEADERS(twolame.h, ,
3023       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3024     AC_CHECK_LIB(twolame, twolame_init, [
3025       VLC_ADD_PLUGINS([twolame])
3026       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
3027         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3028     LDFLAGS="${LDFLAGS_save}"  
3029     CPPFLAGS="${CPPFLAGS_save}"
3030   fi
3031 fi
3032
3033 dnl
3034 dnl  QuickTime plugin
3035 dnl
3036 AC_ARG_ENABLE(quicktime,
3037   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3038 if test "${enable_quicktime}" != "no" &&
3039   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3040 then
3041   if test "${SYS}" = "mingw32"; then
3042     VLC_ADD_BUILTINS([quicktime])
3043   else
3044   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3045     [ VLC_ADD_BUILTINS([quicktime])
3046       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
3047     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3048   fi
3049 fi
3050
3051 dnl
3052 dnl  Real plugin
3053 dnl
3054 AC_ARG_ENABLE(real,
3055   [  --enable-real           Real audio module (default disabled)])
3056 if test "${enable_real}" = "yes"; then
3057   VLC_ADD_PLUGINS([realaudio])
3058 fi
3059
3060 dnl
3061 dnl  Real RTSP plugin
3062 dnl
3063 AC_ARG_ENABLE(realrtsp,
3064   [  --enable-realrtsp       Real RTSP module (default disabled)])
3065 if test "${enable_realrtsp}" = "yes"; then
3066   VLC_ADD_PLUGINS([access_realrtsp])
3067 fi
3068
3069 dnl
3070 dnl MP4 module
3071 dnl
3072 AC_CHECK_HEADERS(zlib.h, [
3073   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3074 ] )
3075
3076 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3077   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3078 ] )
3079
3080 dnl
3081 dnl skins2 module
3082 dnl
3083 AC_CHECK_HEADERS(libtar.h, [
3084   VLC_ADD_LDFLAGS([skins2],[-ltar])
3085 ] )
3086
3087
3088
3089 dnl
3090 dnl A52/AC3 decoder plugin
3091 dnl
3092 AC_ARG_ENABLE(a52,
3093   [  --enable-a52            A/52 support with liba52 (default enabled)])
3094 if test "${enable_a52}" != "no"
3095 then
3096   AC_ARG_WITH(a52,
3097     [    --with-a52=PATH       a52 headers and libraries])
3098   AC_ARG_WITH(a52-tree,
3099     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3100   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3101   then
3102     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3103     if test -z "${real_a52_tree}"
3104     then
3105       dnl  The given directory can't be found
3106       AC_MSG_RESULT(no)
3107       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3108     fi
3109     dnl  Use a custom a52dec
3110     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3111     if test -f ${real_a52_tree}/include/a52.h
3112     then
3113       AC_MSG_RESULT(yes)
3114       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3115       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3116       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3117       AC_CHECK_LIB(a52, a52_free, [
3118         VLC_ADD_BUILTINS([a52tofloat32])
3119         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3120         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3121         ],[
3122         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3123         then
3124           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3125         else
3126           AC_MSG_ERROR([the specified tree hasn't been compiled])
3127         fi
3128       ])
3129       LDFLAGS="${LDFLAGS_save}"
3130     else
3131       AC_MSG_RESULT(no)
3132       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3133     fi
3134   else
3135     if test -z "${with_a52}"
3136     then
3137       LDFLAGS_test=""
3138       CPPFLAGS_test=""
3139     else
3140       LDFLAGS_test="-L${with_a52}/lib"
3141       CPPFLAGS_test="-I${with_a52}/include"
3142     fi
3143     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3144     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3145     AC_CHECK_HEADERS(a52dec/a52.h, [
3146       AC_CHECK_LIB(a52, a52_free, [
3147         VLC_ADD_PLUGINS([a52tofloat32])
3148         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3149         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3150       ],[
3151         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.])
3152       ])
3153     ])
3154     CPPFLAGS="${CPPFLAGS_save}"
3155     LDFLAGS="${LDFLAGS_save}"
3156   fi
3157 fi
3158
3159 AC_ARG_WITH(a52-fixed,
3160       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3161       [
3162         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3163
3164 dnl
3165 dnl DTS Coherent Acoustics decoder plugin
3166 dnl
3167 AC_ARG_ENABLE(dts,
3168   [  --enable-dts            DTS Coherent Acoustics support with libdca (default enabled)])
3169 if test "${enable_dts}" != "no"; then
3170   AC_ARG_WITH(dts-tree,
3171     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
3172   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
3173   then
3174     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
3175     if test -z "${real_dts_tree}"
3176     then
3177       dnl  The given directory can't be found
3178       AC_MSG_RESULT(no)
3179       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
3180     fi
3181     dnl  Use a custom libdts
3182     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
3183     if test -f ${real_dts_tree}/include/dts.h
3184     then
3185       AC_MSG_RESULT(yes)
3186       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
3187       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
3188       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3189       AC_CHECK_LIB(dts_pic, dts_free, [
3190         VLC_ADD_PLUGINS([dtstofloat32])
3191         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
3192         ],[
3193         AC_CHECK_LIB(dts, dts_free, [
3194           VLC_ADD_BUILTINS([dtstofloat32])
3195           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3196           ],[
3197           if test -f ${real_dts_tree}/libdts/libdts.a
3198           then
3199             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
3200           else
3201             AC_MSG_ERROR([the specified tree hasn't been compiled])
3202           fi
3203         ])
3204       ])
3205       LDFLAGS="${LDFLAGS_save}"
3206     else
3207       AC_MSG_RESULT(no)
3208       AC_MSG_ERROR([the specified tree doesn't have dts.h])
3209     fi
3210   else
3211     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3212     AC_CHECK_HEADERS(dts.h, [
3213       AC_CHECK_LIB(dts_pic, dts_free, [
3214         VLC_ADD_PLUGINS([dtstofloat32])
3215         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
3216       ],[
3217         AC_CHECK_LIB(dts, dts_free, [
3218           VLC_ADD_BUILTINS([dtstofloat32])
3219           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3220         ],[
3221           if test "${enable_dts}" = "yes"; then
3222             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
3223           fi
3224         ])
3225       ])
3226     ])
3227     LDFLAGS="${LDFLAGS_save}"
3228   fi
3229 fi
3230
3231 dnl
3232 dnl  Flac plugin
3233 dnl
3234 AC_ARG_ENABLE(flac,
3235   [  --enable-flac           flac decoder support (default disabled)])
3236 if test "${enable_flac}" = "yes"
3237 then
3238   AC_ARG_WITH(flac-tree,
3239   [    --with-flac-tree=PATH flac tree for static linking])
3240   if test -n "${with_flac_tree}"
3241   then
3242     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3243     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3244     if test -z "${real_flac_tree}"
3245     then
3246       dnl  The given directory can't be found
3247       AC_MSG_RESULT(no)
3248       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3249     fi
3250     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3251     then
3252       dnl  Use a custom flac
3253       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3254       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3255       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
3256       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3257     else
3258       dnl  The given flac wasn't built
3259       AC_MSG_RESULT(no)
3260       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3261     fi
3262   else
3263     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3264       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3265      ],[])
3266   fi
3267 fi
3268
3269 dnl
3270 dnl  Libmpeg2 plugin
3271 dnl
3272 AC_ARG_ENABLE(libmpeg2,
3273   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3274 if test "${enable_libmpeg2}" != "no"
3275 then
3276   AC_ARG_WITH(libmpeg2-tree,
3277   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3278   if test -n "${with_libmpeg2_tree}"
3279   then
3280     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3281     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3282     if test -z "${real_libmpeg2_tree}"
3283     then
3284       dnl  The given directory can't be found
3285       AC_MSG_RESULT(no)
3286       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3287     fi
3288     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3289     then
3290       dnl  Use a custom libmpeg2
3291       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3292       VLC_ADD_BUILTINS([libmpeg2])
3293       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3294       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3295       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3296     else
3297       dnl  The given libmpeg2 wasn't built
3298       AC_MSG_RESULT(no)
3299       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3300     fi
3301   else
3302     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3303       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3304       AC_EGREP_CPP(yes,
3305         [#include <mpeg2dec/mpeg2.h>
3306          #ifdef MPEG2_RELEASE
3307          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3308          yes
3309          #endif
3310          #endif],
3311         [AC_MSG_RESULT([yes])
3312           VLC_ADD_PLUGINS([libmpeg2])
3313           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3314         [AC_MSG_RESULT([no])
3315           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.])])],
3316
3317       [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.])]
3318     )
3319   fi
3320 fi
3321
3322 dnl
3323 dnl  Vorbis plugin
3324 dnl
3325 AC_ARG_ENABLE(vorbis,
3326   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3327 if test "${enable_vorbis}" != "no"
3328 then
3329   AC_ARG_WITH(vorbis-tree,
3330   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3331   if test -n "${with_vorbis_tree}"
3332   then
3333     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3334     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3335     if test -z "${real_vorbis_tree}"
3336     then
3337       dnl  The given directory can't be found
3338       AC_MSG_RESULT(no)
3339       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3340     fi
3341     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3342     then
3343       dnl  Use a custom vorbis 
3344       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3345       VLC_ADD_PLUGINS([vorbis])
3346       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3347       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3348     else
3349       dnl  The given vorbis wasn't built
3350       AC_MSG_RESULT(no)
3351       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3352     fi
3353   else
3354     AC_CHECK_HEADERS(vorbis/codec.h, [
3355       VLC_ADD_PLUGINS([vorbis])
3356       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3357
3358     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3359       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3360   fi
3361 fi
3362
3363 dnl
3364 dnl  Tremor plugin
3365 dnl
3366 AC_ARG_ENABLE(tremor,
3367   [  --enable-tremor         Tremor decoder support (default disabled)])
3368 if test "${enable_tremor}" = "yes"
3369 then
3370   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3371     VLC_ADD_PLUGINS([tremor])
3372     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3373    ],[])
3374 fi
3375
3376 dnl
3377 dnl  Speex plugin
3378 dnl
3379 AC_ARG_ENABLE(speex,
3380   [  --enable-speex          Speex decoder support (default enabled)])
3381 if test "${enable_speex}" != "no"
3382 then
3383   AC_ARG_WITH(speex-tree,
3384   [    --with-speex-tree=PATH speex tree for static linking])
3385   if test -n "${with_speex_tree}"
3386   then
3387     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3388     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3389     if test -z "${real_speex_tree}"
3390     then
3391       dnl  The given directory can't be found
3392       AC_MSG_RESULT(no)
3393       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3394     fi
3395     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3396     then
3397       dnl  Use a custom speex
3398       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3399       VLC_ADD_PLUGINS([speex])
3400       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3401       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3402     else
3403       dnl  The given speex wasn't built
3404       AC_MSG_RESULT(no)
3405       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3406     fi
3407   else
3408     AC_CHECK_HEADERS(speex/speex.h, [
3409       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3410       AC_CHECK_LIB(speex, speex_decode_int, [
3411         VLC_ADD_PLUGINS([speex])
3412         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3413         [ AC_MSG_RESULT([no])
3414           AC_MSG_WARN([Your libspeex is too old, please get the development
3415                        version.]) ],[])
3416       LDFLAGS="${LDFLAGS_save}"
3417       ],[])
3418   fi
3419 fi
3420
3421 dnl
3422 dnl  tarkin decoder plugin
3423 dnl
3424 AC_ARG_ENABLE(tarkin,
3425 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3426 if test "${enable_tarkin}" = "yes"
3427 then
3428   AC_ARG_WITH(tarkin-tree,
3429   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3430   if test -n "${with_tarkin_tree}"
3431   then
3432     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3433     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3434     if test -f "${real_tarkin_tree}/tarkin.o"
3435     then
3436       VLC_ADD_BUILTINS([tarkin])
3437       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3438       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])
3439       AC_MSG_RESULT(yes)
3440     else
3441       dnl  The given tarkin tree wasn't built
3442       AC_MSG_RESULT(no)
3443       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3444                     make sure you compiled tarkin in ${with_tarkin_tree}])
3445     fi
3446   fi
3447 fi
3448
3449 dnl
3450 dnl  theora decoder plugin
3451 dnl
3452 AC_ARG_ENABLE(theora,
3453 [  --enable-theora         experimental theora codec (default disabled)])
3454 if test "${enable_theora}" = "yes"
3455 then
3456   AC_CHECK_HEADERS(theora/theora.h, [
3457     AC_CHECK_LIB(theora, theora_granule_time, [
3458       VLC_ADD_PLUGINS([theora])
3459       theora_libs="-ltheora -logg"
3460       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3461       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3462 You also need to check that you have a libogg posterior to the 1.0 release.])],
3463       [-logg])
3464   ])
3465 fi
3466
3467 dnl
3468 dnl  dirac decoder plugin
3469 dnl
3470 AC_ARG_ENABLE(dirac,
3471 [  --enable-dirac          experimental dirac codec (default disabled)])
3472 if test "${enable_dirac}" = "yes"; then
3473   PKG_CHECK_MODULES(DIRAC,dirac, [
3474       VLC_ADD_PLUGINS([dirac])
3475       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3476       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3477       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3478   ])
3479 fi
3480
3481 dnl
3482 dnl  PNG decoder module
3483 dnl
3484 AC_ARG_ENABLE(png,
3485   [  --enable-png            PNG support (default enabled)])
3486 if test "${enable_png}" != "no"; then
3487 AC_CHECK_HEADERS(png.h, [
3488   LDFLAGS="${LDFLAGS_save} -lz"
3489   AC_CHECK_LIB(png, png_set_rows, [
3490     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3491     VLC_ADD_PLUGINS([png])
3492     VLC_ADD_PLUGINS([osdmenu])
3493     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3494     [],[-lz])
3495   LDFLAGS="${LDFLAGS_save}"
3496   ])
3497 fi
3498
3499 dnl
3500 dnl H264 encoder plugin (using libx264)
3501 dnl
3502 AC_ARG_ENABLE(x264,
3503   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3504 if test "${enable_x264}" != "no"; then
3505   AC_ARG_WITH(x264-tree,
3506     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3507   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3508   then
3509     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3510     if test -z "${real_x264_tree}"
3511     then
3512       dnl  The given directory can't be found
3513       AC_MSG_RESULT(no)
3514       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3515     fi
3516     dnl  Use a custom libx264
3517     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3518     if test -f ${real_x264_tree}/x264.h
3519     then
3520       AC_MSG_RESULT(yes)
3521       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3522       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3523       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3524       AC_CHECK_LIB(x264, x264_encoder_open, [
3525         VLC_ADD_BUILTINS([x264])
3526         VLC_ADD_LDFLAGS([x264],[-lx264])
3527       ],[
3528         AC_MSG_ERROR([the specified tree hasn't been compiled])
3529       ])
3530       LDFLAGS="${LDFLAGS_save}"
3531     else
3532       AC_MSG_RESULT(no)
3533       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3534     fi
3535   else
3536     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3537     AC_CHECK_HEADERS(x264.h, [
3538       AC_CHECK_LIB(x264, x264_encoder_open, [
3539         VLC_ADD_PLUGINS([x264])
3540         VLC_ADD_LDFLAGS([x264],[-lx264])
3541       ],[
3542         if test "${enable_x264}" = "yes"; then
3543             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3544           fi
3545       ])
3546     ])
3547     LDFLAGS="${LDFLAGS_save}"
3548   fi
3549 fi
3550
3551 dnl
3552 dnl  CMML plugin
3553 dnl
3554 AC_ARG_ENABLE(cmml,
3555   [  --enable-cmml           CMML support (default enabled)])
3556 if test "${enable_cmml}" != "no"
3557 then
3558   VLC_ADD_PLUGINS([cmml])
3559 fi
3560
3561
3562 dnl
3563 dnl  Video plugins
3564 dnl
3565
3566 AC_ARG_WITH(,[Video plugins:])
3567
3568 dnl Check for DPMS
3569 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3570   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3571   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3572     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3573     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3574       AC_MSG_RESULT(yes)
3575       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3576                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3577     ],[
3578       AC_MSG_RESULT(no)
3579     ])
3580   ],,[
3581     #include <X11/Xlib.h>
3582   ])
3583   CPPFLAGS="${CPPFLAGS_save}"
3584 fi
3585
3586 dnl
3587 dnl  X11 module
3588 dnl  (enabled by default except on win32)
3589 dnl
3590 AC_ARG_ENABLE(x11,
3591   [  --enable-x11            X11 support (default enabled)])
3592 if test "${enable_x11}" != "no" &&
3593   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3594    test "${enable_x11}" = "yes"); then
3595   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3596   AC_CHECK_HEADERS(X11/Xlib.h, [
3597     VLC_ADD_PLUGINS([x11 panoramix])
3598     VLC_ADD_LDFLAGS([x11 panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3599     VLC_ADD_CPPFLAGS([x11 panoramix],[${X_CFLAGS}])
3600   ])
3601   CPPFLAGS="${CPPFLAGS_save}"
3602 fi
3603
3604 dnl
3605 dnl  XVideo module
3606 dnl  (enabled by default except on win32)
3607 dnl
3608 AC_ARG_ENABLE(xvideo,
3609   [  --enable-xvideo         XVideo support (default enabled)])
3610 if test "${enable_xvideo}" != "no" &&
3611   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3612    test "${enable_xvideo}" = "yes"); then
3613   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3614   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3615     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3616     AC_CHECK_LIB(Xv,XvPutImage,[
3617       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3618       # test for libXv_pic.
3619       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3620         VLC_ADD_PLUGINS([xvideo])
3621         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3622         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3623       else
3624         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3625           VLC_ADD_PLUGINS([xvideo])
3626           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3627           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3628         ],[
3629           VLC_ADD_BUILTINS([xvideo])
3630           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3631           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3632         ])
3633       fi
3634     ])
3635     CFLAGS="${CFLAGS_save}"
3636   ]
3637   CPPFLAGS="${CPPFLAGS_save}")
3638 fi
3639
3640 dnl
3641 dnl  GLX module
3642 dnl  (enabled by default except on win32)
3643 dnl
3644 AC_ARG_ENABLE(glx,
3645   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3646 if test "${enable_glx}" != "no" &&
3647   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3648    test "${enable_glx}" = "yes"); then
3649   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3650   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h, [
3651       VLC_ADD_PLUGINS([glx])
3652       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3653       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3654    ])
3655   CPPFLAGS="${CPPFLAGS_save}"
3656 fi
3657
3658 dnl
3659 dnl  Check for the Xinerama extension
3660 dnl
3661 AC_ARG_ENABLE(xinerama,
3662   [  --enable-xinerama       Xinerama support (default enabled)])
3663 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3664   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3665    test "${enable_xvideo}" = "yes"); then
3666   ac_cv_have_xinerama="no"
3667   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3668   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3669   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3670     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3671       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3672       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3673       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3674       ac_cv_have_xinerama="yes"
3675     ],[
3676       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3677         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3678         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3679         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3680         ac_cv_have_xinerama="yes"
3681       ])
3682     ])
3683   ])
3684   if test "${ac_cv_have_xinerama}" = "yes"; then
3685     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3686   fi
3687   CFLAGS="${CFLAGS_save}"
3688   CPPFLAGS="${CPPFLAGS_save}"
3689
3690 dnl
3691 dnl  Check for XF86VidMode extension
3692 dnl
3693   ac_cv_have_xf86vidmode="no"
3694   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3695   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3696   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3697     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3698       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3699       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3700       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3701       ac_cv_have_xf86vidmode="yes"
3702     ],[
3703       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3704         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3705         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3706         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3707         ac_cv_have_xf86vidmode="yes"
3708       ])
3709     ])
3710   ],[true],
3711 [#ifdef HAVE_X11_XLIB_H
3712 # include <X11/Xlib.h>
3713 #endif]
3714    )
3715   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3716     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3717   ])
3718   CFLAGS="${CFLAGS_save}"
3719   CPPFLAGS="${CPPFLAGS_save}"
3720
3721 fi
3722
3723 dnl
3724 dnl  OpenGL module
3725 dnl  (enabled by default except on beos)
3726 dnl
3727 AC_ARG_ENABLE(opengl,
3728   [  --enable-opengl         OpenGL support (default enabled)])
3729 if test "${enable_opengl}" != "no" &&
3730    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3731   if test "${SYS}" != "darwin"; then
3732     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3733       VLC_ADD_PLUGINS([opengl])
3734       if test "${SYS}" != "mingw32"; then
3735         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3736       else
3737         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
3738       fi
3739     ])
3740   else
3741     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3742     VLC_ADD_PLUGINS([opengl])
3743     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3744   fi
3745 fi
3746
3747 dnl
3748 dnl  SDL module
3749 dnl
3750 AC_ARG_ENABLE(sdl,
3751   [  --enable-sdl            SDL support (default enabled)])
3752 if test "${enable_sdl}" != "no"
3753 then
3754   SDL_PATH="${PATH}"
3755   AC_ARG_WITH(sdl-config-path,
3756     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3757     [ if test "${with_sdl_config_path}" != "no"
3758       then
3759         SDL_PATH="${with_sdl_config_path}:${PATH}"
3760       fi ])
3761   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3762   SDL_CONFIG="${SDL12_CONFIG}"
3763   SDL_HEADER="SDL12/SDL.h"
3764   SDL_IMAGE="SDL12/SDL_image.h"
3765   if test "${SDL_CONFIG}" = "no"
3766   then
3767     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3768     SDL_CONFIG=${SDL11_CONFIG}
3769     SDL_HEADER="SDL11/SDL.h"
3770     SDL_IMAGE="SDL11/SDL_image.h"
3771   fi
3772   if test "${SDL_CONFIG}" = "no"
3773   then
3774     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3775     SDL_HEADER="SDL/SDL.h"
3776     SDL_IMAGE="SDL/SDL_image.h"
3777   fi
3778   # check for cross-compiling
3779   SDL_PREFIX=
3780   AC_ARG_WITH(sdl-prefix,
3781     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3782                                e.g use as:
3783                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3784   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3785   then
3786     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3787   fi
3788   if test "${SDL_CONFIG}" != "no"
3789   then
3790     # SDL on Darwin is heavily patched and can only run SDL_image
3791     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3792       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3793     fi
3794     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3795     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3796     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3797     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3798       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3799       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3800           As a last resort we also test for SDL.h presence),
3801       [ AC_MSG_ERROR([The development package for SDL is not installed.
3802 Please install it and try again. Alternatively you can also configure with
3803 --disable-sdl.])
3804       ])])
3805     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3806       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3807       VLC_ADD_PLUGINS([sdl_image])
3808       AC_CHECK_LIB(png, png_set_rows,
3809         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3810       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3811         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3812       AC_CHECK_LIB(tiff, TIFFClientOpen,
3813         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3814       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3815       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3816           As a last resort we also test for SDL_image.h presence),
3817       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3818 You should install it alongside your SDL package.])
3819       ])])
3820     CPPFLAGS="${CPPFLAGS_save}"
3821     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3822     then
3823       AC_MSG_ERROR([The development package for SDL is not installed.
3824 Please install it and try again. Alternatively you can also configure with
3825 --disable-sdl.])
3826     fi
3827
3828   elif test "${enable_sdl}" =  "yes"
3829   then
3830     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3831 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3832     ])
3833   fi
3834 fi
3835
3836 dnl
3837 dnl  freetype module
3838 dnl
3839 AC_ARG_ENABLE(freetype,
3840   [  --enable-freetype       freetype support (default enabled)])
3841 AC_ARG_ENABLE(fribidi,
3842   [  --enable-fribidi        fribidi support (default enabled)])
3843 if test "${enable_freetype}" != "no"
3844 then
3845   FREETYPE_PATH="${PATH}"
3846   AC_ARG_WITH(freetype-config-path,
3847     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3848     [ if test "${with_freetype_config_path}" != "no"
3849       then
3850         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3851       fi ])
3852   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3853
3854   if test "${FREETYPE_CONFIG}" != "no"
3855   then
3856     VLC_ADD_PLUGINS([freetype])
3857     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3858     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3859     AC_CHECK_HEADERS(Carbon/Carbon.h,
3860       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3861   elif test "${enable_freetype}" =  "yes"
3862   then
3863     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3864 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3865     ])
3866   fi
3867
3868   dnl fribidi support
3869   if test "${enable_fribidi}" != "no"
3870   then
3871     FRIBIDI_PATH="${PATH}"
3872     AC_ARG_WITH(fribidi-config-path,
3873       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3874       [ if test "${with_fribidi_config_path}" != "no"
3875         then
3876           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3877         fi ])
3878     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3879
3880     if test "${FRIBIDI_CONFIG}" != "no"
3881     then
3882       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3883       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3884       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3885       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3886     fi
3887   fi
3888 fi
3889
3890 dnl
3891 dnl  libxml2 module
3892 dnl
3893 AC_ARG_ENABLE(libxml2,
3894   [  --enable-libxml2        libxml2 support (default enabled)])
3895 if test "${enable_libxml2}" != "no"
3896 then
3897   XML2_PATH="${PATH}"
3898   AC_ARG_WITH(xml2-config-path,
3899     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3900     [ if test "${with_xml2_config_path}" != "no"; then
3901         XML2_PATH="${with_xml2_config_path}:${PATH}"
3902       fi ])
3903   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3904   if test "${XML2_CONFIG}" != "no"; then
3905     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3906     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3907     dnl depends on the xmlTextReader extension
3908     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3909     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3910     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3911       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3912         VLC_ADD_PLUGINS([xml]) ],[
3913           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3914           if test "${enable_xml2}" = "yes"; then
3915             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3916           fi])
3917        ],[
3918       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3919       if test "${enable_xml2}" = "yes"; then
3920         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3921       fi])
3922     LDFLAGS="${LDFLAGS_save}"
3923     CPPFLAGS="${CPPFLAGS_save}"
3924   else
3925     if test "${enable_xml2}" = "yes"; then
3926       AC_MSG_ERROR([Could not find libxml2])
3927     fi
3928   fi
3929 fi
3930
3931 dnl
3932 dnl  SVG module
3933 dnl
3934 AC_ARG_ENABLE(svg,
3935   [  --enable-svg            SVG support (default disabled)])
3936 if test "${enable_svg}" = "yes"
3937 then
3938   PKG_CHECK_MODULES(SVG, 
3939         librsvg-2.0 >= 2.9.0,
3940         [
3941           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3942           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3943           VLC_ADD_PLUGINS([svg]) ],
3944         [AC_MSG_WARN(SVG library not found)])
3945 fi
3946
3947 dnl
3948 dnl Snapshot vout module (with cache)
3949 dnl
3950 AC_ARG_ENABLE(snapshot,
3951   [  --enable-snapshot       snapshot module (default disabled)])
3952 if test "${enable_snapshot}" = "yes"
3953 then
3954   VLC_ADD_PLUGINS([snapshot])
3955 fi
3956
3957 dnl
3958 dnl  Qt Embedded module
3959 dnl  (disabled by default)
3960 dnl
3961 AC_ARG_ENABLE(qte,
3962   [  --enable-qte            QT Embedded support (default disabled)])
3963 if test "${enable_qte}" = "yes"
3964 then
3965   AC_ARG_WITH(qte,
3966   [    --with-qte=PATH       Qt Embedded headers and libraries])
3967   if test "${with_qte}" != "no" -a -n "${with_qte}"
3968   then
3969     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3970     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])
3971   else
3972     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3973     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3974   fi
3975   VLC_ADD_PLUGINS([qte])
3976   NEED_QTE_MAIN=yes
3977   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3978   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3979     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3980   ] )
3981   CPPFLAGS="${CPPFLAGS_save}"
3982 fi
3983
3984 dnl
3985 dnl  Qt Video output module
3986 dnl  (disabled by default)
3987 dnl
3988 dnl AC_ARG_ENABLE(qt_video,
3989 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3990 dnl if test "${enable_qt_video}" = "yes"
3991 dnl then
3992 dnl  VLC_ADD_PLUGINS([qt_video])
3993 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3994 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3995 dnl   AC_CHECK_LIB(qt-mt,main,[
3996 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3997 dnl  ],[
3998 dnl    AC_CHECK_LIB(qt,main,[
3999 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4000 dnl    ])
4001 dnl  ])
4002 dnl  NEED_QTE_MAIN=yes
4003 dnl  LDFLAGS="${LDFLAGS_save}"
4004 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4005 dnl fi
4006
4007 dnl
4008 dnl Roku HD1000 Video output module
4009 dnl
4010 AC_ARG_ENABLE(hd1000v,
4011   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4012 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4013   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4014    test "${enable_hd1000v}" = "yes"); then
4015   AC_LANG_PUSH([C++])
4016   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4017   [
4018     can_build_roku="yes"
4019   ],
4020   [
4021     can_build_roku="no"
4022     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4023   ])
4024   if test "$can_build_roku" = "yes"
4025   then
4026     VLC_ADD_PLUGINS([hd1000v])
4027     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4028   fi
4029   AC_LANG_POP([C++])
4030 fi
4031
4032 dnl
4033 dnl  Windows DirectX module
4034 dnl
4035
4036 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4037 then
4038   VLC_ADD_PLUGINS([panoramix])
4039 fi
4040
4041 AC_ARG_ENABLE(directx,
4042   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4043 if test "${enable_directx}" != "no"
4044 then
4045   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4046   then
4047     AC_ARG_WITH(directx,
4048     [    --with-directx=PATH   Win32 DirectX headers])
4049     if test -z "${with_directx}"
4050     then
4051       AC_CHECK_HEADERS(ddraw.h,
4052       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4053         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4054       ])
4055       AC_CHECK_HEADERS(GL/gl.h,
4056       [ VLC_ADD_PLUGINS([glwin32])
4057         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4058       ])
4059       AC_CHECK_HEADERS(d3d9.h,
4060       [ VLC_ADD_PLUGINS([direct3d])
4061         VLC_ADD_LDFLAGS([direct3d],[-ld3d9 -lgdi32])
4062       ])
4063     else
4064       AC_MSG_CHECKING(for directX headers in ${with_directx})
4065       if test -f ${with_directx}/ddraw.h
4066       then
4067         VLC_ADD_PLUGINS([vout_directx aout_directx])
4068         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4069         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4070         AC_MSG_RESULT(yes)
4071       else
4072         AC_MSG_RESULT(no)
4073         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4074       fi
4075     fi
4076   fi
4077 fi
4078
4079 dnl
4080 dnl  Linux framebuffer module
4081 dnl
4082 AC_ARG_ENABLE(fb,
4083   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4084     if test "${enable_fb}" != "no"
4085     then
4086       AC_CHECK_HEADERS(linux/fb.h, [
4087         VLC_ADD_PLUGINS([fb])
4088       ])
4089     fi
4090
4091 dnl
4092 dnl  Linux MGA module
4093 dnl
4094 AC_ARG_ENABLE(mga,
4095   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4096   [ if test "${enable_mga}" = "yes"
4097     then
4098       VLC_ADD_PLUGINS([mga])
4099     fi ])
4100
4101 dnl
4102 dnl  SVGAlib module
4103 dnl
4104 AC_ARG_ENABLE(svgalib,
4105   [  --enable-svgalib        SVGAlib support (default disabled)])
4106 if test "${enable_svgalib}" = "yes"
4107 then
4108   VLC_ADD_PLUGINS([svgalib])
4109   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4110 fi
4111
4112 dnl
4113 dnl  DirectFB module
4114 dnl
4115 AC_ARG_ENABLE(directfb,
4116   [  --enable-directfb       DirectFB support (default disabled)])
4117 if test "${enable_directfb}" = "yes"
4118 then
4119   if test "${with_directfb}" = "no"
4120   then
4121     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4122     if test "${have_directfb}"= "true"
4123     then
4124         VLC_ADD_PLUGINS([directfb])
4125         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4126         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4127     else
4128         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4129     fi
4130   else
4131     CPPFLAGS_save="${CPPFLAGS}"
4132     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4133     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4134     CPPFLAGS="${CPPFLAGS_save}"
4135     AC_ARG_WITH(directfb,
4136         [    --with-directfb=PATH  path to directfb],
4137         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4138         then
4139             VLC_ADD_PLUGINS([directfb])
4140             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4141             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4142         fi ],
4143         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4144   fi
4145 fi
4146
4147 dnl
4148 dnl  GGI module
4149 dnl
4150 AC_ARG_ENABLE(ggi,
4151   [  --enable-ggi            GGI support (default disabled)])
4152 if test "${enable_ggi}" = "yes"
4153 then
4154   VLC_ADD_PLUGINS([ggi])
4155   VLC_ADD_LDFLAGS([ggi],[-lggi])
4156   AC_ARG_WITH(ggi,
4157     [    --with-ggi=PATH       path to libggi],
4158     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4159       then
4160         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4161         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4162       fi ])
4163 fi
4164
4165 dnl
4166 dnl  Glide module
4167 dnl
4168 AC_ARG_ENABLE(glide,
4169   [  --enable-glide          Glide (3dfx) support (default disabled)])
4170 if test "${enable_glide}" = "yes"
4171 then
4172   CFLAGS_save="${CFLAGS}"
4173   AC_ARG_WITH(glide,
4174     [    --with-glide=PATH     path to libglide],
4175     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4176       then
4177         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4178         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4179         CFLAGS="$CFLAGS -I${with_glide}/include"
4180     fi ])
4181    CFLAGS="$CFLAGS -I/usr/include/glide"
4182    AC_CHECK_HEADER(glide.h,[   
4183       VLC_ADD_PLUGINS([glide])
4184       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4185       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4186     ],[
4187       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4188      ])
4189    CFAGS="${CFLAGS_save}"
4190 fi
4191
4192 dnl
4193 dnl  AA plugin
4194 dnl
4195 AC_ARG_ENABLE(aa,
4196   [  --enable-aa             aalib output (default disabled)])
4197 if test "${enable_aa}" = "yes"
4198 then
4199   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4200   if test "${have_aa}" = "true"
4201   then
4202     VLC_ADD_PLUGINS([aa])
4203     VLC_ADD_LDFLAGS([aa],[-laa])
4204   fi
4205 fi
4206
4207 dnl
4208 dnl  libcaca plugin
4209 dnl
4210 AC_ARG_ENABLE(caca,
4211   [  --enable-caca           libcaca output (default disabled)])
4212 if test "${enable_caca}" = "yes"
4213 then
4214   CACA_PATH="${PATH}"
4215   AC_ARG_WITH(caca-config-path,
4216     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4217     [ if test "${with_caca_config_path}" != "no"
4218       then
4219         CACA_PATH="${with_caca_config_path}:${PATH}"
4220       fi ])
4221   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4222   if test "${CACA_CONFIG}" != "no"
4223   then
4224     VLC_ADD_PLUGINS([caca])
4225     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4226     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4227   fi
4228 fi
4229
4230 dnl
4231 dnl  win32 GDI plugin
4232 dnl
4233 AC_ARG_ENABLE(wingdi,
4234   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4235 if test "${enable_wingdi}" != "no"; then
4236   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4237     VLC_ADD_PLUGINS([wingdi])
4238     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4239   fi
4240   if test "${SYS}" = "mingwce"; then
4241     VLC_ADD_PLUGINS([wingdi wingapi])
4242   fi
4243 fi
4244
4245 dnl
4246 dnl  Audio plugins
4247 dnl
4248
4249 AC_ARG_WITH(,[Audio plugins:])
4250
4251 dnl
4252 dnl  OSS /dev/dsp module (enabled by default except on win32)
4253 dnl
4254 AC_ARG_ENABLE(oss,
4255   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4256
4257 if test "${enable_oss}" != "no" &&
4258   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4259    test "${enable_oss}" = "yes")
4260 then
4261   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4262     VLC_ADD_PLUGINS([oss])
4263     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4264   ])
4265 fi
4266
4267 dnl
4268 dnl  Esound module
4269 dnl
4270 AC_ARG_ENABLE(esd,
4271   [  --enable-esd            Esound library support (default disabled)],
4272   [if test "${enable_esd}" = "yes"
4273    then
4274      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4275      if test "${ESD_CONFIG}" != "no"
4276      then
4277        VLC_ADD_PLUGINS([esd])
4278        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4279        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4280      fi
4281    fi])
4282
4283 dnl
4284 dnl  Portaudio module
4285 dnl
4286 AC_ARG_ENABLE(portaudio,
4287   [  --enable-portaudio      Portaudio library support (default disabled)],
4288   [if test "${enable_portaudio}" = "yes"
4289    then
4290      VLC_ADD_PLUGINS([portaudio])
4291      VLC_ADD_CXXFLAGS([portaudio],[])
4292      if test "${SYS}" = "mingw32"; then
4293         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4294      else
4295         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4296      fi
4297    fi])
4298
4299 dnl
4300 dnl  aRts module -- broken (freeze wxWidgets)
4301 dnl
4302 AC_ARG_ENABLE(arts,
4303  [  --enable-arts           aRts sound server (default disabled)],
4304  [if test "${enable_arts}" = "yes"
4305   then
4306     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4307     if test "${ARTS_CONFIG}" != "no"
4308     then
4309       VLC_ADD_PLUGINS([arts])
4310       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4311       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4312     fi
4313   fi])
4314
4315 dnl
4316 dnl  ALSA module
4317 dnl
4318 AC_ARG_ENABLE(alsa,
4319   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4320 if test "${enable_alsa}" != "no"
4321 then
4322   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4323   if test "${have_alsa}" = "true"
4324   then
4325     CFLAGS="${CFLAGS_save}"
4326     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4327                     #define ALSA_PCM_NEW_SW_PARAMS_API
4328                     #include <alsa/asoundlib.h>],
4329        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
4330         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4331     VLC_ADD_PLUGINS([alsa])
4332     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4333   else
4334     if test "${enable_alsa}" = "yes"; then
4335       AC_MSG_ERROR([Could not find ALSA development headers])
4336     fi
4337   fi
4338 fi
4339
4340 dnl
4341 dnl  win32 waveOut plugin
4342 dnl
4343 AC_ARG_ENABLE(waveout,
4344   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4345 if test "${enable_waveout}" != "no"; then
4346   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4347     VLC_ADD_PLUGINS([waveout])
4348     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4349   fi
4350   if test "${SYS}" = "mingwce"; then
4351     VLC_ADD_PLUGINS([waveout])
4352   fi
4353 fi
4354
4355 dnl
4356 dnl  CoreAudio plugin
4357 dnl
4358 AC_ARG_ENABLE(macosx-audio,
4359   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4360 if test "${enable_macosx-audio}" != "no" &&
4361   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4362 then
4363   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4364     [ VLC_ADD_BUILTINS([auhal])
4365       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4366     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4367 fi
4368
4369 dnl
4370 dnl  Roku HD1000 audio
4371 dnl
4372 AC_ARG_ENABLE(hd1000a,
4373   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4374 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4375   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4376    test "${enable_hd1000a}" = "yes")
4377 then
4378   AC_LANG_PUSH([C++])
4379   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4380     VLC_ADD_PLUGINS([hd1000a])
4381     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4382   AC_LANG_POP([C++])
4383 fi
4384
4385 dnl
4386 dnl  JACK module
4387 dnl
4388 AC_ARG_ENABLE(jack,
4389  [  --enable-jack           JACK audio module (default disabled)],
4390  [if test "${enable_jack}" = "yes"
4391   then
4392     AC_CHECK_HEADERS(jack/jack.h, [
4393       VLC_ADD_PLUGINS([jack])
4394       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4395   fi])
4396
4397 dnl
4398 dnl  CyberLink for C++ UPnP stack
4399 dnl
4400 AC_ARG_ENABLE(cyberlink,
4401   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4402   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4403   AC_ARG_WITH(cyberlink-tree,
4404     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4405
4406   dnl
4407   dnl test for --with-cyberlink-tree
4408   dnl
4409   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4410     AC_LANG_PUSH(C++)
4411     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4412     AS_IF([test -z "${real_cyberlink_tree}"], [
4413       dnl  The given directory can't be found
4414       AC_MSG_RESULT(no)
4415       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4416     ])
4417     CPPFLAGS_save="${CPPFLAGS}"
4418     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4419     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4420     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4421       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4422         VLC_ADD_PLUGINS([upnp_cc]) 
4423       ],[
4424         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4425       ])
4426     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4427     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4428       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4429       dnl The mere fact that we have to make such an ugly check sucks
4430       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4431       LIBS_save="$LIBS"
4432       LIBS_cclink="no"
4433       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4434         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4435         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4436 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4437 using namespace CyberLink;
4438
4439 class testclass : public SearchResponseListener, public MediaPlayer
4440 {
4441     virtual void deviceSearchResponseReceived( SSDPPacket *)
4442     {
4443     }
4444
4445     public:
4446       testclass (void)
4447       {
4448         addSearchResponseListener (this);
4449         start ();
4450       }
4451 };
4452 ],[testclass l;])],[LIBS_cclink="$l"])
4453       done
4454       LIBS="${LIBS_save}"
4455       dnl should not happen - otherwise this needs fixing - hence FAILURE
4456       AS_IF([test "${LIBS_cclink}" = "no"],
4457         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4458       AC_MSG_RESULT([${LIBS_cclink}])
4459       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4460     ], [
4461       AC_MSG_RESULT(no)
4462       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4463     ])
4464     CPPFLAGS="${CPPFLAGS_save}"
4465     AC_LANG_POP([C++])
4466   ])
4467 ])
4468
4469 dnl
4470 dnl UPnP Plugin (Intel SDK)
4471 dnl
4472 AC_ARG_ENABLE(upnp,
4473   [  --enable-upnp           Intel UPnP SDK (default auto)])
4474
4475 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4476 AS_IF([test "x${enable_upnp}" != "xno"], [
4477   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4478   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4479     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4480   ])
4481   AS_IF([test "${has_upnp}" = "yes"], [
4482     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp])
4483   ])
4484 ], [
4485   has_upnp="no"
4486 ])
4487
4488 AS_IF([test "${has_upnp}" = "yes"], [
4489   VLC_ADD_PLUGINS([upnp_intel])
4490 ])
4491
4492
4493 dnl
4494 dnl  Interface plugins
4495 dnl
4496
4497 AC_ARG_WITH(,[Interface plugins:])
4498
4499 dnl special case for BeOS
4500 if test "${SYS}" = "beos"
4501 then
4502     VLC_ADD_BUILTINS([beos])
4503 fi
4504
4505 dnl
4506 dnl Skins2 module
4507 dnl
4508 AC_ARG_ENABLE(skins2,
4509   [  --enable-skins2         Skins2 interface module (experimental)])
4510 if test "${enable_skins2}" = "yes" ||
4511   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4512    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4513
4514   dnl test for the required libraries
4515   skins2_missing_lib="no"
4516
4517   dnl freetype
4518   if test "${FREETYPE_CONFIG}" != "no"; then
4519     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4520     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4521   else
4522     skins2_missing_lib="yes"
4523     if test "${enable_skins2}" = "yes"; then
4524       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4525     fi
4526   fi
4527
4528   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4529     VLC_ADD_PLUGINS([skins2])
4530     ALIASES="${ALIASES} svlc"
4531     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4532     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4533     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4534
4535   else if test "${skins2_missing_lib}" = "no"; then
4536     VLC_ADD_PLUGINS([skins2])
4537     ALIASES="${ALIASES} svlc"
4538     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4539     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4540     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4541   fi fi
4542 fi
4543
4544
4545 dnl dnl
4546 dnl dnl  Gtk+ module
4547 dnl dnl
4548 dnl AC_ARG_ENABLE(gtk,
4549 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4550 dnl if test "${enable_gtk}" != "no"
4551 dnl then
4552 dnl   GTK_PATH="${PATH}"
4553 dnl   AC_ARG_WITH(gtk-config-path,
4554 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4555 dnl     [ if test "${with_gtk_config_path}" != "no"
4556 dnl       then
4557 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4558 dnl       fi ])
4559 dnl   # look for gtk-config
4560 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4561 dnl   GTK_CONFIG=${GTK12_CONFIG}
4562 dnl   if test "${GTK_CONFIG}" = "no"
4563 dnl   then
4564 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4565 dnl   fi
4566 dnl   if test "${GTK_CONFIG}" != "no"
4567 dnl   then
4568 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4569 dnl     then
4570 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.])
4571 dnl     fi
4572 dnl     if test "${SYS}" != "mingw32"; then
4573 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4574 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4575 dnl     else
4576 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4577 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4578 dnl     fi
4579 dnl     # now look for the gtk.h header
4580 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4581 dnl     ac_cv_gtk_headers=yes
4582 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4583 dnl       ac_cv_gtk_headers=no
4584 dnl       echo "Cannot find gtk development headers."
4585 dnl     ])
4586 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4587 dnl     then
4588 dnl       VLC_ADD_PLUGINS([gtk])
4589 dnl       if test "${SYS}" != "mingw32"; then
4590 dnl         NEED_GTK_MAIN=yes
4591 dnl       fi
4592 dnl       ALIASES="${ALIASES} gvlc"
4593 dnl     fi
4594 dnl     CPPFLAGS="${CPPFLAGS_save}"
4595 dnl   fi
4596 dnl fi
4597 dnl 
4598 dnl
4599 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4600 dnl
4601 dnl AC_ARG_ENABLE(gtk2,
4602 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4603 dnl if test "${enable_gtk2}" = "yes"
4604 dnl then
4605 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4606 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4607 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4608 dnl   VLC_ADD_PLUGINS([gtk2])
4609 dnl   if test "${SYS}" != "mingw32"; then
4610 dnl     NEED_GTK2_MAIN=yes
4611 dnl   fi
4612 dnl fi
4613
4614 dnl
4615 dnl  PDA Gtk+2 module
4616 dnl
4617 AC_ARG_ENABLE(pda,
4618   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4619 if test "${enable_pda}" = "yes"
4620 then
4621   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4622   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4623   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4624   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4625   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4626   VLC_ADD_PLUGINS([pda])
4627   if test "${SYS}" != "mingw32"; then
4628     NEED_GTK2_MAIN=yes
4629   fi
4630 fi
4631
4632 dnl dnl
4633 dnl dnl  Gnome module
4634 dnl dnl
4635 dnl AC_ARG_ENABLE(gnome,
4636 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4637 dnl   [if test "${enable_gnome}" = "yes"; then
4638 dnl     # look for gnome-config
4639 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4640 dnl     if test -x ${GNOME_CONFIG}
4641 dnl     then
4642 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4643 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4644 dnl     fi
4645 dnl     # now look for the gnome.h header
4646 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4647 dnl     AC_CHECK_HEADERS(gnome.h, [
4648 dnl       VLC_ADD_PLUGINS([gnome])
4649 dnl       NEED_GTK_MAIN=yes
4650 dnl       NEED_GNOME_MAIN=yes
4651 dnl       ALIASES="${ALIASES} gnome-vlc"
4652 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4653 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4654 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4655 dnl         AC_MSG_RESULT(yes)
4656 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4657 dnl                   Define if <gnome.h> defines strndup.)],[
4658 dnl         AC_MSG_RESULT(no)])
4659 dnl      ],[
4660 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4661 dnl developement tools or remove the --enable-gnome option])
4662 dnl      ])
4663 dnl     CPPFLAGS="${CPPFLAGS_save}"
4664 dnl   fi])
4665
4666 dnl
4667 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4668 dnl
4669 dnl AC_ARG_ENABLE(gnome2,
4670 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4671 dnl if test "${enable_gnome2}" = "yes"
4672 dnl then
4673 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4674 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4675 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4676 dnl   VLC_ADD_PLUGINS([gnome2])
4677 dnl   if test "${SYS}" != "mingw32"; then
4678 dnl     NEED_GNOME2_MAIN=yes
4679 dnl   fi
4680 dnl fi
4681
4682 dnl
4683 dnl  wxWidgets module
4684 dnl
4685 AC_ARG_ENABLE(wxwidgets,
4686   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4687 if test "${enable_wxwindows}" 
4688 then
4689   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4690 fi
4691
4692 if test "${enable_wxwindows}" = "no"
4693 then
4694   enable_wxwidgets="no"
4695 fi
4696 if test "${enable_wxwidgets}" != "no"
4697 then
4698   WXWIDGETS_PATH="${PATH}"
4699   AC_ARG_WITH(wx-config-path,
4700     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4701     [ if test "${with_wx_config_path}" != "no"
4702       then
4703         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4704       fi ])
4705   WXWIDGETS_NAME="wx-config"
4706   AC_ARG_WITH(wx-config,
4707     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4708     [ if test "${with_wx_config}" != "no"
4709       then
4710         WXWIDGETS_NAME="${with_wx_config}"
4711       fi ])
4712   # look for wx-config
4713   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4714   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4715   then
4716     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null ||  expr 2.7.0 \<= `${WX_CONFIG} --version` >/dev/null
4717     then
4718       AC_MSG_ERROR([You need wxWidgets of the 2.6 branch. Please upgrade and try again. Alternatively you can also configure with --disable-wxwidgets.])
4719     fi
4720     AC_LANG_PUSH(C++)
4721     # Turn this error:
4722     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4723     # into a warning. However better would be to fix playlist.cpp
4724     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4725         [ac_cv_cxx_fpermissive],
4726         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4727          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4728                         ac_cv_cxx_fpermissive=no)])
4729     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4730       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4731     fi
4732     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4733     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4734     if ${WX_CONFIG} --unicode
4735     then 
4736       # wxwidgets should provide the following flags but does not
4737       # the following is required to compile for win32
4738       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4739     fi
4740     if test "$have_libcdio" = "yes"
4741     then 
4742       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4743       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4744     else 
4745       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4746     fi
4747
4748     if test "$have_libvcdinfo" = "yes"
4749     then 
4750       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4751       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4752     else 
4753       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4754     fi
4755
4756     # now look for the wxprec.h header
4757     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4758     ac_cv_wx_headers=yes
4759     AC_CHECK_HEADERS(wx/wxprec.h, , [
4760       ac_cv_wx_headers=no
4761       echo "Cannot find wxWidgets development headers."
4762     ])
4763     if test "${ac_cv_wx_headers}" = "yes"
4764     then
4765       VLC_ADD_PLUGINS([wxwidgets])
4766       ALIASES="${ALIASES} wxvlc"
4767     fi
4768     CPPFLAGS="${CPPFLAGS_save}"
4769     AC_LANG_POP(C++)
4770   fi
4771 fi
4772
4773 dnl
4774 dnl QT 4
4775 dnl
4776 enableqt4=false
4777 AC_ARG_ENABLE(qt4,
4778   [  --enable-qt4            QT 4 support (default disabled) ],
4779   [if test "${enable_qt4}" = "yes"; then
4780       PKG_CHECK_MODULES(QT4, QtCore QtGui,
4781         [ VLC_ADD_PLUGINS([qt4])
4782           ALIASES="${ALIASES} qvlc"
4783           enableqt4=true
4784           VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
4785           VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
4786           MOC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/moc
4787           RCC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/rcc
4788           UIC=`$PKG_CONFIG --variable=exec_prefix QtCore`/bin/uic],
4789        [AC_MSG_WARN(QT4 library not found)])
4790    fi])
4791 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
4792
4793 dnl
4794 dnl  WinCE GUI module
4795 dnl
4796 if test "${SYS}" = "mingwce"; then
4797   VLC_ADD_BUILTINS([wince])
4798   VLC_ADD_CXXFLAGS([wince],[])
4799   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4800   dnl Gross hack
4801   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4802 elif test "${SYS}" = "mingw32"; then
4803   VLC_ADD_CXXFLAGS([wince],[])
4804   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4805   dnl Gross hack
4806   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4807 fi
4808
4809 dnl
4810 dnl Simple test for skins2 dependency
4811 dnl
4812 if test "${enable_skins2}" != "no"
4813 then
4814   if test "${WX_CONFIG}" = "no"
4815   then
4816     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.])
4817   fi
4818 fi
4819
4820 dnl dnl
4821 dnl dnl  Qt module
4822 dnl dnl
4823 dnl AC_ARG_ENABLE(qt,
4824 dnl   [  --enable-qt             Qt interface support (default disabled)],
4825 dnl   [if test "${enable_qt}" = "yes"; then
4826 dnl      VLC_ADD_PLUGINS([qt])
4827 dnl      ALIASES="${ALIASES} qvlc"
4828 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4829 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4830 dnl      AC_CHECK_LIB(qt-mt,main,[
4831 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4832 dnl      ],[
4833 dnl        AC_CHECK_LIB(qt,main,[
4834 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4835 dnl        ])
4836 dnl      ])
4837 dnl      LDFLAGS="${LDFLAGS_save}"
4838 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4839 dnl      if test -x ${QTDIR}/bin/moc
4840 dnl      then
4841 dnl        MOC=${QTDIR}/bin/moc
4842 dnl      else
4843 dnl        MOC=moc
4844 dnl      fi
4845 dnl    fi])
4846 dnl 
4847 dnl dnl
4848 dnl dnl  KDE module
4849 dnl dnl
4850 dnl AC_ARG_ENABLE(kde,
4851 dnl   [  --enable-kde            KDE interface support (default disabled)],
4852 dnl   [if test "${enable_kde}" = "yes"; then
4853 dnl      VLC_ADD_PLUGINS([kde])
4854 dnl      ALIASES="${ALIASES} kvlc"
4855 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4856 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4857 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4858 dnl      AC_CHECK_LIB(kfile,main,[
4859 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4860 dnl      ])
4861 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4862 dnl      AC_CHECK_LIB(kdeui,main,[
4863 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4864 dnl      ])
4865 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4866 dnl      AC_CHECK_LIB(kio,main,[
4867 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4868 dnl      ])
4869 dnl      LDFLAGS="${LDFLAGS_save}"
4870 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4871 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4872 dnl      if test -x ${QTDIR}/bin/moc
4873 dnl      then
4874 dnl        MOC=${QTDIR}/bin/moc
4875 dnl      else
4876 dnl        MOC=moc
4877 dnl      fi
4878 dnl    fi])
4879
4880 dnl
4881 dnl  Opie QT embedded module
4882 dnl
4883 AC_ARG_ENABLE(opie,
4884   [  --enable-opie           Qt embedded interface support (default disabled)],
4885   [if test "${enable_opie}" = "yes"; then
4886      AC_ARG_WITH(qte,
4887      [    --with-qte=PATH       Qt Embedded headers and libraries])
4888      if test "${with_qte}" != "no" -a -n "${with_qte}"
4889      then
4890        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4891        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])
4892      else
4893        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4894        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4895      fi
4896      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4897      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4898        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4899      ] )
4900      CPPFLAGS="${CPPFLAGS_save}"
4901
4902      VLC_ADD_PLUGINS([opie])
4903      NEED_QTE_MAIN=yes
4904      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4905      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4906      if test "${with_qte}" != "no" -a -n "${with_qte}"
4907      then
4908        MOC=${with_qte}/bin/moc
4909      else
4910        MOC=${QTDIR}/bin/moc
4911      fi
4912    fi])
4913
4914 dnl
4915 dnl  MacOS X module
4916 dnl
4917 ORIGCFLAGS=$CFLAGS
4918 CFLAGS="$CFLAGS -x objective-c"
4919 AC_ARG_ENABLE(macosx,
4920   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4921   [if test "${enable_macosx}" = "yes"
4922    then
4923      VLC_ADD_BUILTINS([macosx])
4924      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4925      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4926    fi],
4927   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4928      VLC_ADD_BUILTINS([macosx])
4929      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL -framework AGL])
4930      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
4931    )])
4932 CFLAGS=$ORIGCFLAGS
4933
4934 dnl
4935 dnl  QNX RTOS module
4936 dnl
4937 AC_ARG_ENABLE(qnx,
4938   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4939     if test "${enable_qnx}" != "no"
4940     then
4941       AC_CHECK_HEADERS(Ph.h, [
4942         VLC_ADD_PLUGINS([qnx])
4943         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4944       ])
4945     fi
4946
4947 dnl
4948 dnl  ncurses module
4949 dnl
4950 AC_ARG_ENABLE(ncurses,
4951   [  --enable-ncurses        ncurses interface support (default disabled)],
4952   [if test "${enable_ncurses}" = "yes"; then
4953      VLC_ADD_PLUGINS([ncurses])
4954      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4955    fi])
4956
4957 dnl
4958 dnl  XOSD plugin
4959 dnl
4960 AC_ARG_ENABLE(xosd,
4961   [  --enable-xosd           xosd interface support (default disabled)])
4962 if test "${enable_xosd}" = "yes"
4963 then
4964   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4965   AC_CHECK_LIB(xosd,xosd_set_offset,
4966       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4967     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4968         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4969       AC_TRY_COMPILE([#include <xosd.h>],
4970          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
4971           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4972   if test "${have_xosd}" = "true"
4973   then
4974     VLC_ADD_PLUGINS([xosd])
4975     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4976   fi
4977 fi
4978
4979 dnl
4980 dnl Visualisation plugin
4981 dnl
4982 AC_ARG_ENABLE(visual,
4983   [  --enable-visual         visualisation plugin (default enabled)])
4984 if test "${enable_visual}" != "no"
4985 then
4986     VLC_ADD_PLUGINS([visual])
4987 fi
4988
4989 dnl
4990 dnl OpenGL visualisation plugin
4991 dnl
4992 AC_ARG_ENABLE(galaktos,
4993   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4994 if test "${enable_galaktos}" = "yes"
4995 then
4996   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4997     VLC_ADD_PLUGINS([galaktos])
4998     if test "${SYS}" != "mingw32"; then
4999       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
5000     else
5001       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
5002     fi
5003   ])
5004 fi
5005
5006 dnl
5007 dnl  goom visualization plugin
5008 dnl
5009 AC_ARG_ENABLE(goom,
5010 [  --enable-goom           goom visualisation plugin (default disabled)])
5011 if test "${enable_goom}" = "yes"
5012 then
5013   AC_ARG_WITH(goom-tree,
5014     [    --with-goom-tree=PATH goom tree for static linking (required)])
5015
5016   dnl
5017   dnl test for --with-goom-tree
5018   dnl
5019   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5020     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5021     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5022     if test -z "${real_goom_tree}"; then
5023       dnl  The given directory can't be found
5024       AC_MSG_RESULT(no)
5025       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5026     fi
5027     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5028       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5029       VLC_ADD_BUILTINS([goom])
5030       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5031       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5032     else
5033       dnl  The given libgoom2 wasn't built, try to look for the old goom
5034       AC_MSG_RESULT(no)
5035       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5036       if test -f "${real_goom_tree}/libgoom.a"; then
5037         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5038         VLC_ADD_BUILTINS([goom])
5039         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5040         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5041       else
5042         dnl  The given libgoom wasn't built
5043         AC_MSG_RESULT(no)
5044         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5045       fi
5046     fi
5047   else
5048     AC_CHECK_HEADERS(goom/goom.h, [
5049       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5050       AC_CHECK_LIB(goom2, goom_init, [
5051         VLC_ADD_PLUGINS([goom])
5052         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5053       ],[
5054         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5055       ])
5056       LDFLAGS="${LDFLAGS_save}"
5057     ])
5058   fi
5059 fi
5060
5061 dnl
5062 dnl DAAP access plugin and services discovery 
5063 dnl
5064 AC_ARG_ENABLE(daap,
5065   [  --enable-daap                DAAP shares services discovery support (default enabled)])
5066 if test "$enable_daap" != "no"
5067 then
5068    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
5069       [ VLC_ADD_PLUGINS([daap])
5070        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
5071        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
5072       [AC_MSG_WARN(DAAP library not found)])
5073 fi
5074
5075 dnl
5076 dnl  Bonjour services discovery
5077 dnl
5078 AC_ARG_ENABLE(bonjour,
5079   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5080 if test "${enable_bonjour}" != "no"
5081 then
5082   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5083     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5084        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5085       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5086       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5087       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5088       VLC_ADD_PLUGINS([bonjour]) ],
5089     [AC_MSG_WARN(avahi-client library not found)])
5090 fi
5091
5092 dnl
5093 dnl  Lirc plugin
5094 dnl
5095 AC_ARG_ENABLE(lirc,
5096   [  --enable-lirc           lirc support (default disabled)])
5097 if test "${enable_lirc}" = "yes"
5098 then
5099   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5100   if test "${have_lirc}" = "true"
5101   then
5102     VLC_ADD_PLUGINS([lirc])
5103     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5104   fi
5105 fi
5106
5107
5108 AC_ARG_WITH(,[Misc options:])
5109
5110 dnl
5111 dnl TLS/SSL
5112 dnl
5113 AC_ARG_ENABLE(gnutls,
5114   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5115
5116 AS_IF([test "${enable_gnutls}" != "no"], [
5117   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.2.9], [have_gnutls="yes"], [have_gnutls="no"])
5118
5119   AS_IF([test "${have_gnutls}" = "yes"], [
5120     VLC_ADD_PLUGINS([gnutls])
5121     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5122     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5123   ], [
5124     AS_IF([test "${enable_gnutls}" = "yes"], [
5125       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5126     ])
5127   ])
5128 ])
5129
5130
5131 dnl
5132 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5133 dnl
5134 dnl  We give the user the opportunity to specify
5135 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5136 dnl
5137 AC_ARG_WITH(words,
5138   [    --with-words=endianness set endianness (big or little)])
5139   case "${with_words}" in
5140     big)
5141       ac_cv_c_bigendian=yes
5142       ;;
5143     little)
5144       ac_cv_c_bigendian=no
5145       ;;
5146     *)
5147       dnl  Try to guess endianness by matching patterns on a compiled
5148       dnl  binary, by looking for an ASCII or EBCDIC string
5149       AC_CACHE_CHECK([whether the byte order is big-endian],
5150         [ac_cv_c_bigendian],
5151         [ac_cv_c_bigendian="unknown"
5152         [cat >conftest.c <<EOF
5153         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5154         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5155         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5156         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5157         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5158         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5159         int main(void) { _a(); _e(); return 0; }
5160 EOF
5161         ]
5162         if test -f conftest.c
5163         then
5164           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5165               && test -f conftest.o
5166           then
5167             if test "`strings conftest.o | grep BIGenDianSyS`"
5168             then
5169               ac_cv_c_bigendian="yes"
5170             fi
5171             if test "`strings conftest.o | grep LiTTleEnDian`"
5172             then
5173               ac_cv_c_bigendian="no"
5174             fi
5175           fi
5176         fi
5177       ])
5178       if test "${ac_cv_c_bigendian}" = "unknown"
5179       then
5180         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5181       fi
5182       ;;
5183   esac
5184 dnl  Now we know what to use for endianness, just put it in the header
5185 if test "${ac_cv_c_bigendian}" = "yes"
5186 then
5187   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5188 fi
5189
5190 dnl
5191 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5192 dnl
5193 loader=false
5194 AC_ARG_ENABLE(loader,
5195   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5196 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5197 AS_IF([test "${enable_loader}" = "yes"],
5198   [ VLC_ADD_PLUGINS([dmo quicktime])
5199     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
5200     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.la])
5201     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
5202     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.la])
5203     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
5204     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.la])
5205   ])
5206
5207 dnl
5208 dnl  Microsoft ActiveX support
5209 dnl
5210 activex=false
5211 AC_ARG_ENABLE(activex,
5212   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5213 AC_ARG_WITH(wine-sdk-path,
5214   [    --with-wine-sdk-path=PATH path to wine sdk])
5215 if test "${enable_activex}" != "no"
5216 then
5217   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5218   then
5219     AC_CHECK_PROGS(MIDL, [midl], no)
5220     if test "${with_wine_sdk_path}" != ""
5221     then
5222        WINE_SDK_PATH=${with_wine_sdk_path}
5223        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5224     else
5225        WIDL=no
5226     fi
5227     AC_LANG_PUSH(C++)
5228     AC_CHECK_HEADERS(ole2.h olectl.h,
5229       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5230         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5231         AC_CHECK_HEADERS(objsafe.h,
5232           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5233           [#if HAVE_OLE2_H
5234            #   include <ole2.h>
5235            #endif]
5236         )
5237         activex=:
5238       ],
5239       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5240     )
5241     AC_LANG_POP(C++)
5242   fi
5243 fi
5244 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5245 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5246 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5247 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5248 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5249
5250 dnl
5251 dnl  Mozilla plugin
5252 dnl
5253 mozilla=false
5254 AC_ARG_ENABLE(mozilla,
5255   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
5256 AC_ARG_WITH(mozilla-sdk-path,
5257   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5258
5259 if test "${enable_mozilla}" = "yes" 
5260 then
5261   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5262   need_xpcom_libs=false
5263   if test "${with_mozilla_sdk_path}" = ""
5264   then
5265     AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5266     if test "${MOZILLA_CONFIG}" = "no"
5267     then
5268       AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5269       if test "${SEAMONKEY_CONFIG}" = "no"
5270       then
5271         AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5272         if test "${XULRUNNER_CONFIG}" = "no"
5273         then
5274           AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5275         else
5276           have_xul=true
5277           MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5278         fi
5279       else
5280         MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5281       fi
5282     fi
5283     
5284     if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5285       LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5286       AC_CHECK_LIB(Xt,XtStrings,
5287        [
5288          VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5289          VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5290 ],
5291        [],
5292        [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5293       ])
5294       LDFLAGS="${LDFLAGS_save}"
5295     fi
5296     
5297       mozilla=:
5298       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5299       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5300       if ${need_xpcom_libs}; then
5301          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5302       else
5303          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5304       fi
5305       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5306       AC_CHECK_HEADERS(mozilla-config.h)
5307       CPPFLAGS="${CPPFLAGS_save}"
5308       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5309       XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
5310       `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
5311       if ${have_xul}
5312       then
5313         xpidl_path="`${MOZILLA_CONFIG} --prefix`/lib/xulrunner"
5314       else
5315         xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
5316       fi        
5317     dnl End of moz_sdk = ""
5318   else
5319     dnl special case for mingw32
5320     if test "${SYS}" = "mingw32"
5321     then
5322       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5323       dnl latest gecko sdk does not have an xpcom directory
5324       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5325           mozilla_sdk_xpcom="/xpcom"
5326       fi
5327     fi
5328   
5329     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5330     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5331     AC_CHECK_HEADERS(mozilla-config.h, [
5332       mozilla=:
5333       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])
5334       if ${need_xpcom_libs}; then
5335          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])
5336          if test "${SYS}" = "mingw32"; then
5337            dnl latest gecko sdk does not have embedstring
5338            if test -d "${real_mozilla_sdk}/embedstring/bin"
5339            then
5340              VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5341            fi
5342          fi
5343       fi
5344   
5345       MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5346       XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
5347       xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
5348   
5349       if test -n "${CYGPATH}"; then
5350         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5351         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
5352       fi ])
5353     CPPFLAGS="${CPPFLAGS_save}"
5354   fi
5355   
5356   if test "${enable_mozilla}" != "false"
5357   then
5358     AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path}:/usr/lib/mozilla:/usr/lib64/mozilla:/usr/lib/xulrunner:/usr/lib64/xulrunner)
5359     if test "${XPIDL}" = "no"; then
5360       AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
5361     fi
5362   fi 
5363 fi
5364 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5365
5366 dnl
5367 dnl  Mediacontrol Python bindings
5368 dnl
5369 AC_ARG_ENABLE(python-bindings,
5370   [  --enable-python-bindings    Enable Python bindings (default disabled)])
5371 dnl TODO: look for python dev headers
5372 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5373
5374 dnl
5375 dnl  Java bindings
5376 dnl
5377 AC_ARG_ENABLE(java-bindings,
5378   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5379 if test "${enable_java_bindings}" = "yes"
5380 then
5381   AS_IF([test "x${JAVA_HOME}" == "x"],
5382         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5383   AC_PROG_JAVAC
5384   AC_PROG_JAVA
5385 fi
5386 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5387
5388 dnl
5389 dnl  test plugins
5390 dnl
5391 AC_ARG_ENABLE(testsuite,
5392   [  --enable-testsuite      build test modules (default disabled)])
5393 if test "${enable_testsuite}" = "yes"
5394 then
5395   TESTS="test1 test2 test3 test4"
5396
5397   dnl  we define those so that bootstrap sets the right linker
5398   VLC_ADD_CXXFLAGS([test2],[])
5399   VLC_ADD_OBJCFLAGS([test3],[])
5400   dnl  this one is needed until automake knows what to do
5401   VLC_ADD_LDFLAGS([test3],[-lobjc])
5402
5403   VLC_ADD_PLUGINS([${TESTS}])
5404   #VLC_ADD_BUILTINS([${TESTS}])
5405 fi
5406
5407 dnl
5408 dnl Microsoft Layer for Unicode for WIN9x/ME
5409 dnl
5410 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5411 then
5412     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5413         VLC_ADD_LDFLAGS([vlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5414     ])
5415 fi
5416
5417 dnl
5418 dnl  gtk_main plugin
5419 dnl
5420 if test "${NEED_GTK_MAIN}" != "no"
5421 then
5422     VLC_ADD_PLUGINS([gtk_main])
5423     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5424     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5425 fi
5426
5427 if test "${NEED_GNOME_MAIN}" != "no"
5428 then
5429     VLC_ADD_PLUGINS([gnome_main])
5430     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5431     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5432 fi
5433
5434 if test "${NEED_GTK2_MAIN}" != "no"
5435 then
5436     VLC_ADD_PLUGINS([gtk2_main])
5437     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5438     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5439     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5440     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5441 fi
5442
5443 if test "${NEED_GNOME2_MAIN}" != "no"
5444 then
5445     VLC_ADD_PLUGINS([gnome2_main])
5446     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5447     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5448 fi
5449
5450 dnl
5451 dnl  qte_main plugin
5452 dnl
5453 if test "${NEED_QTE_MAIN}" != "no"
5454 then
5455     VLC_ADD_PLUGINS([qte_main])
5456     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5457     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5458     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5459 fi
5460
5461
5462 dnl
5463 dnl  Plugin and builtin checks
5464 dnl
5465 builtin_support=false
5466 plugin_support=:
5467
5468 dnl Support for plugins - this must be AT THE END
5469 AC_ARG_ENABLE(plugins,
5470   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5471   [if test "${enable_plugins}" = "no"
5472    then
5473      plugin_support=false
5474    fi])
5475
5476 dnl Automagically disable plugins if there is no system support for
5477 dnl dynamically loadable files (.so, .dll, .dylib).
5478 dnl don't forget vlc-win32 still can load .dll as plugins
5479 if test "${ac_cv_have_plugins}" = "no"
5480 then
5481   echo "*** Your system doesn't have plugin support. All plugins will be built"
5482   echo "statically."
5483   plugin_support=false
5484 fi
5485
5486 dnl Export automake variables
5487 if ${plugin_support}
5488 then
5489   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5490   for plugin in `echo ${PLUGINS}`
5491   do
5492     eval "${plugin}_p=yes"
5493   done
5494 else
5495   VLC_ADD_BUILTINS([${PLUGINS}])
5496   PLUGINS=""
5497 fi
5498 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
5499
5500 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
5501 then
5502   builtin_support=:
5503   for builtin in `echo ${BUILTINS}`
5504   do
5505     eval "${builtin}_b=yes"
5506   done
5507 fi]
5508 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
5509
5510 dnl
5511 dnl Pic and shared libvlc stuff
5512 dnl
5513 AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no])
5514 AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"])
5515 AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [
5516   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5517   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"],
5518   FILE_LIBVLC_DLL="" )
5519
5520 dnl Import conditional variables generated by bootstrap
5521 VLC_CONDITIONALS
5522
5523 dnl
5524 dnl  Stuff used by the program
5525 dnl
5526 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5527 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5528 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5529 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5530 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5531 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5532 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5533 AC_SUBST(VERSION_MAJOR)
5534 AC_SUBST(VERSION_MINOR)
5535 AC_SUBST(VERSION_REVISION)
5536 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5537 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5538 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5539 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5540
5541 dnl Old definitions for version-dependant plugins
5542 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5543 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5544 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5545
5546 dnl New definitions with value matching 0.8.6 release
5547 module_symbol="0_8_6c"
5548 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5549 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5550 VLC_ENTRY="vlc_entry__${module_symbol}"
5551 AC_SUBST(VLC_ENTRY)
5552
5553 dnl
5554 dnl  Handle substvars that use $(top_srcdir)
5555 dnl
5556 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5557 AC_SUBST(VLC_CONFIG)
5558 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5559
5560 dnl
5561 dnl  Restore *FLAGS
5562 dnl
5563 VLC_RESTORE_FLAGS
5564
5565 dnl
5566 dnl  Create the vlc-config script
5567 dnl
5568 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
5569 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5570
5571 dnl
5572 dnl  Configuration is finished
5573 dnl
5574 AC_SUBST(SYS)
5575 AC_SUBST(ARCH)
5576 AC_SUBST(ALIASES)
5577 AC_SUBST(ASM)
5578 AC_SUBST(MOC)
5579 AC_SUBST(RCC)
5580 AC_SUBST(UIC)
5581 AC_SUBST(WINDRES)
5582 AC_SUBST(MOZILLA_SDK_PATH)
5583 AC_SUBST(WINE_SDK_PATH)
5584 AC_SUBST(XPIDL)
5585 AC_SUBST(XPIDL_INCL)
5586 AC_SUBST(LIBEXT)
5587 AC_SUBST(AM_CPPFLAGS)
5588 AC_SUBST(ALL_LINGUAS)
5589 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5590 AC_SUBST(FILE_LIBVLC_DLL)
5591
5592 dnl Import substitutions generated by bootstrap
5593 VLC_SUBSTS
5594
5595 dnl Create vlc-config.in
5596 VLC_OUTPUT_VLC_CONFIG_IN
5597
5598 AC_CONFIG_FILES([
5599   vlc.win32.nsi
5600   Makefile
5601   activex/Makefile
5602   activex/axvlc.inf
5603   bindings/Makefile
5604   bindings/java/Makefile
5605   bindings/java/src/Makefile
5606   bindings/python/Makefile
5607   doc/Makefile
5608   intl/Makefile
5609   ipkg/Makefile
5610   loader/Makefile
5611   modules/Makefile
5612   mozilla/Makefile
5613   m4/Makefile
5614   po/Makefile.in
5615   share/Makefile
5616   src/Makefile
5617 ])
5618
5619 AC_CONFIG_FILES([
5620   modules/access/Makefile
5621   modules/access/dshow/Makefile
5622   modules/access/dvb/Makefile
5623   modules/access/mms/Makefile
5624   modules/access/cdda/Makefile
5625   modules/access/rtsp/Makefile
5626   modules/access/vcd/Makefile
5627   modules/access/vcdx/Makefile
5628   modules/access/screen/Makefile
5629   modules/access_filter/Makefile
5630   modules/access_output/Makefile
5631   modules/audio_filter/Makefile
5632   modules/audio_filter/channel_mixer/Makefile
5633   modules/audio_filter/converter/Makefile
5634   modules/audio_filter/resampler/Makefile
5635   modules/audio_mixer/Makefile
5636   modules/audio_output/Makefile
5637   modules/codec/Makefile
5638   modules/codec/cmml/Makefile
5639   modules/codec/dmo/Makefile
5640   modules/codec/ffmpeg/Makefile
5641   modules/codec/spudec/Makefile
5642   modules/control/Makefile
5643   modules/control/http/Makefile
5644   modules/demux/Makefile
5645   modules/demux/asf/Makefile
5646   modules/demux/avi/Makefile
5647   modules/demux/mp4/Makefile
5648   modules/demux/mpeg/Makefile
5649   modules/demux/playlist/Makefile
5650   modules/gui/Makefile
5651   modules/gui/beos/Makefile
5652   modules/gui/pda/Makefile
5653   modules/gui/macosx/Makefile
5654   modules/gui/qnx/Makefile
5655   modules/gui/qt4/Makefile
5656   modules/gui/skins2/Makefile
5657   modules/gui/wxwidgets/Makefile
5658   modules/gui/wince/Makefile
5659   modules/meta_engine/Makefile
5660   modules/misc/Makefile
5661   modules/misc/dummy/Makefile
5662   modules/misc/memcpy/Makefile
5663   modules/misc/network/Makefile
5664   modules/misc/notify/Makefile
5665   modules/misc/testsuite/Makefile
5666   modules/misc/playlist/Makefile
5667   modules/misc/xml/Makefile
5668   modules/misc/probe/Makefile
5669   modules/mux/Makefile
5670   modules/mux/mpeg/Makefile
5671   modules/mux/rtp/Makefile
5672   modules/packetizer/Makefile
5673   modules/services_discovery/Makefile
5674   modules/stream_out/Makefile
5675   modules/stream_out/transrate/Makefile
5676   modules/video_chroma/Makefile
5677   modules/video_filter/Makefile
5678   modules/video_filter/swscale/Makefile
5679   modules/video_output/Makefile
5680   modules/video_output/directx/Makefile
5681   modules/video_output/qte/Makefile
5682   modules/video_output/x11/Makefile
5683   modules/visualization/Makefile
5684   modules/visualization/visual/Makefile
5685   modules/visualization/galaktos/Makefile
5686 ])
5687
5688 dnl Generate makefiles
5689 AC_OUTPUT
5690
5691 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5692 # not provided with the source
5693 ${SHELL} ./config.status --file=vlc-config
5694 chmod 0755 vlc-config
5695
5696 dnl echo "Enabled builtin modules :"
5697 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5698
5699 dnl echo "Enabled plugin modules :"
5700 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5701
5702 dnl Shortcut to nice compile message
5703 rm -f compile
5704 echo '#! /bin/sh' >compile
5705
5706 echo "PATH=$PATH LANG=C make \$* 2>&1| \\" >> compile
5707 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5708 chmod a+x compile
5709
5710 printf "
5711 vlc configuration
5712 --------------------
5713 vlc version           : ${VERSION}
5714 system                : ${SYS}
5715 architecture          : ${ARCH}
5716 build flavour         : "
5717 test "${enable_debug}" = "yes" && printf "debug "
5718 test "${enable_cprof}" = "yes" && printf "cprof "
5719 test "${enable_gprof}" = "yes" && printf "gprof "
5720 test "${enable_optimizations}" = "yes" && printf "optim "
5721 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5722 echo "
5723 vlc aliases           :${ALIASES}
5724
5725 You can tune the compiler flags in vlc-config.
5726 To build vlc and its plugins, type \`./compile' or \`make'.
5727 "
5728