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