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