691b42f41145e1db5f1c35c87797d2f72cd171b1
[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="$0 $ac_configure_args"
10 CODENAME="Grishenko"
11
12 AC_PREREQ(2.59)
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_BUILD
16 AC_CANONICAL_HOST
17
18 AM_INIT_AUTOMAKE([1.7 check-news dist-bzip2])
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
30 dnl HA! HA!
31 AM_MAINTAINER_MODE
32
33 dnl
34 dnl  Save *FLAGS
35 dnl
36 VLC_SAVE_FLAGS
37
38 dnl
39 dnl Check for tools
40 dnl
41 AC_PROG_CC_C99
42 AC_USE_SYSTEM_EXTENSIONS
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
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="${LDLFAGS_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"; OBJCFLAGS="${OBJCFLAGS_save}"
173     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
174     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
175     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
176     VLC_ADD_CFLAGS([vlc],[-x objective-c])
177     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
178     ;;
179   darwin*)
180     SYS=darwin
181     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
182     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
183     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
184     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
185     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
186     VLC_ADD_CFLAGS([vlc],[-x objective-c])
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([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
214         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
215         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync growl],[-lws2_32])
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([vlc],[-Dmain(a,b)=maince(a,b)])
221         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
222         VLC_ADD_LDFLAGS([ipv4 ipv6 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 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="${CFLAGS_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 ipv4 vlc growl],[-lbind -lsocket])
251     else
252         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc 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 disabled)])
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="ca cs da de en_GB es fr gl he hi hu it ja ka ko ms nl oc pt_BR ro ru sk sl sv 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([vlc], [${LTLIBINTL}])
317   ], [
318     VLC_ADD_LDFLAGS([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([vlc],[${INCICONV}])
332 AS_IF([test "${enable_libtool}" != "no"], [
333   VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
334 ],[
335   VLC_ADD_LDFLAGS([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([vlc],[]),
343             [VLC_ADD_LDFLAGS([vlc 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([vlc ipv4 ipv6 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 ipv4 ipv6 vlc],[-lnsl])
459   ],[
460     AC_CHECK_LIB(bind,gethostbyname,[
461       VLC_ADD_LDFLAGS([ipv4 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([ipv4 vlc],[-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([vlc],[-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 vlc 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],[-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([vlc],[-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([vlc],[-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([vlc],[-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([vlc],[-ldl]),
650       AC_CHECK_LIB(svld, dlopen,
651         ac_cv_my_have_dlopen=yes
652         VLC_ADD_LDFLAGS([vlc],[-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([vlc 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([vlc],[-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([vlc],[-lrt])])
727   ])
728
729   have_nanosleep=false
730   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
731     AC_CHECK_LIB(rt,nanosleep,
732       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
733       [AC_CHECK_LIB(posix4,nanosleep,
734           [VLC_ADD_LDFLAGS([vlc],[-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)
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([vlc hal probe_hal],[$HAL_LIBS])
831       VLC_ADD_CFLAGS([vlc 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([vlc hal],[$HAL_LIBS])
837         VLC_ADD_CFLAGS([vlc 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  
847 if test "${enable_dbus}" != "no"
848 then
849   PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
850     [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
851       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
852       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
853       VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
854       VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
855     dnl older dbus
856     [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
857       [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
858         AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
859         VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
860         VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
861       dnl much older dbus
862       [ PKG_CHECK_MODULES( DBUS, dbus-1, 
863          [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
864           VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
865           VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
866          [AC_MSG_WARN(DBUS library not found)])
867       ]
868    )]
869   )
870 fi
871
872 dnl Build the gtk_main plugins?
873 NEED_GTK_MAIN=no
874 NEED_GNOME_MAIN=no
875 NEED_GTK2_MAIN=no
876 NEED_GNOME2_MAIN=no
877
878 dnl build the qte plugin ?
879 NEED_QTE_MAIN=no
880
881 dnl Check for ntohl, etc.
882 AC_CACHE_CHECK([for ntohl in sys/param.h],
883     [ac_cv_c_ntohl_sys_param_h],
884     [CFLAGS="${CFLAGS_save} -Wall -Werror"
885      AC_TRY_COMPILE([#include <sys/param.h>],
886         [int meuh; ntohl(meuh);],
887         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
888 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
889     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
890 fi
891 CFLAGS="${CFLAGS_save}"
892
893 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 packed volatile-register-var])
894 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
895
896 dnl This helps detect broken plugins with undefined symbols
897 dnl Better fail loudly at build-time than silenty at run-time.
898 RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs], [
899   VLC_ADD_LDFLAGS([plugin],[-Wl,-z,defs])
900 ])
901
902 dnl Check for various optimization flags
903 AC_CACHE_CHECK([if \$CC accepts -Os],
904     [ac_cv_c_os],
905     [CFLAGS="${CFLAGS_save} -Os"
906      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
907 if test "${ac_cv_c_os}" != "no" -a "${host_cpu}" = "mipsel"; then
908     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
909 fi
910
911 AC_CACHE_CHECK([if \$CC accepts -O3],
912     [ac_cv_c_o3],
913     [CFLAGS="${CFLAGS_save} -O3"
914      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
915 if test "${ac_cv_c_o3}" != "no" -a "${host_cpu}" != "mipsel"; then
916     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
917 fi
918
919 AC_CACHE_CHECK([if \$CC accepts -O2],
920     [ac_cv_c_o2],
921     [CFLAGS="${CFLAGS_save} -O2"
922      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
923 if test "${ac_cv_c_o2}" != "no" -a "${host_cpu}" != "mipsel"; then
924     if test "${ac_cv_c_o3}" = "no"; then
925         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
926     fi
927     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
928 else 
929     AC_CACHE_CHECK([if \$CC accepts -O],
930         [ac_cv_c_o],
931         [CFLAGS="${CFLAGS_save} -O"
932          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
933     if test "${ac_cv_c_o}" != "no" -a "${host_cpu}" != "mipsel"; then
934         if test "${ac_cv_c_o3}" = "no"; then
935             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
936         fi
937         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
938     fi
939 fi
940
941 dnl Check for -ffast-math
942 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
943     [ac_cv_c_fast_math],
944     [CFLAGS="${CFLAGS_save} -ffast-math"
945      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
946 if test "${ac_cv_c_fast_math}" != "no"; then
947     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
948 fi
949
950 dnl Check for -funroll-loops
951 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
952 if test "${SYS}" != "beos"
953 then
954   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
955       [ac_cv_c_unroll_loops],
956       [CFLAGS="${CFLAGS_save} -funroll-loops"
957        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
958   if test "${ac_cv_c_unroll_loops}" != "no"; then
959       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
960   fi
961 fi
962
963 dnl Check for -fomit-frame-pointer
964 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
965     [ac_cv_c_omit_frame_pointer],
966     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
967      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
968 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
969     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
970     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
971     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
972 fi
973
974 dnl Check for -mdynamic-no-pic
975 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
976     [ac_cv_c_dynamic_no_pic],
977     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
978      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
979 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
980     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
981     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
982 ])
983
984 dnl Check for Darwin plugin linking flags
985 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
986     [ac_cv_ld_darwin],
987     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
988      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
989 if test "${ac_cv_ld_darwin}" != "no"; then
990     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
991 fi
992
993 dnl Check for standard plugin linking flags
994 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
995 if test "${SYS}" = "beos"; then
996   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
997 else
998   AC_CACHE_CHECK([if \$CC accepts -shared],
999       [ac_cv_ld_plugins],
1000       [CFLAGS="${CFLAGS_save} -shared"
1001        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1002   if test "${ac_cv_ld_plugins}" != "no"; then
1003     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1004   fi
1005 fi
1006
1007 dnl Check for variadic macros
1008 AC_CACHE_CHECK([for variadic cpp macros],
1009     [ac_cv_cpp_variadic_macros],
1010     [CFLAGS="${CFLAGS_save}"
1011      AC_TRY_COMPILE(
1012          [#include <stdio.h>
1013           #define a(b,c...) printf(b,##c)],
1014          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1015          ac_cv_cpp_variadic_macros=yes,
1016          ac_cv_cpp_variadic_macros=no)])
1017 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1018     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1019 fi
1020
1021 dnl Checks for __attribute__(aligned()) directive
1022 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1023     [ac_cv_c_attribute_aligned],
1024     [ac_cv_c_attribute_aligned=0
1025         CFLAGS="${CFLAGS_save} -Werror"
1026     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1027         AC_TRY_COMPILE([],
1028         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1029         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1030     done
1031         CFLAGS="${CFLAGS_save}"])
1032 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1033     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1034         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1035 fi
1036
1037 dnl Checks for __attribute__(format()) directive
1038 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1039     [ac_cv_c_attribute_format],
1040     [ac_cv_c_attribute_format=no
1041         CFLAGS="${CFLAGS_save} -Werror"
1042         AC_TRY_COMPILE([],
1043         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1044         [ac_cv_c_attribute_format=yes])
1045         CFLAGS="${CFLAGS_save}"])
1046 if test "${ac_cv_c_attribute_format}" != "no"; then
1047     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1048 fi
1049
1050 dnl Check for __attribute__(())
1051 AC_CACHE_CHECK([for __attribute__((packed))],
1052   [ac_cv_c_attribute_packed],
1053   [ac_cv_c_attribute_packed=no
1054    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1055                     [ac_cv_c_attribute_packed=yes])])
1056 if test "${ac_cv_c_attribute_packed}" != "no"; then
1057   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1058 fi
1059
1060 dnl
1061 dnl  Check the CPU
1062 dnl
1063 case "${host_cpu}" in
1064   "")
1065     ARCH=unknown
1066     ;;
1067   *)
1068     ARCH="${host_cpu}"
1069     ;;
1070 esac
1071
1072 dnl
1073 dnl  Enable profiling
1074 dnl
1075 AC_ARG_ENABLE(gprof,
1076 [  --enable-gprof          gprof profiling (default disabled)])
1077 AC_ARG_ENABLE(cprof,
1078 [  --enable-cprof          cprof profiling (default disabled)])
1079 test "${enable_gprof}" != "yes" && enable_gprof="no"
1080 test "${enable_cprof}" != "yes" && enable_cprof="no"
1081
1082 dnl
1083 dnl  default modules
1084 dnl
1085 VLC_ADD_PLUGINS([dummy logger memcpy])
1086 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac tta])
1087 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1088 VLC_ADD_PLUGINS([deinterlace invert adjust transform wave ripple psychedelic gradient motionblur rv32 rotate noise])
1089 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32 mono])
1090 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1091 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1092 VLC_ADD_PLUGINS([playlist export sgimb nsc xtag])
1093 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1094 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1095 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1096 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1097 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1098 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1099
1100
1101 if test "${SYS}" != "mingwce"; then
1102 dnl  VLC_ADD_PLUGINS([externrun])
1103   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1104   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf marq podcast shout sap fake folder])
1105   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1106   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1107   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1108   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1109   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1110   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1111 fi
1112
1113 dnl
1114 dnl  Switch to enable a version of VLC where most modules will be builtin
1115 dnl
1116 AC_ARG_ENABLE(mostly-builtin,
1117 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1118 if test "${enable_mostly_builtin}" = "yes"; then
1119   VLC_ADD_BUILTINS([${PLUGINS}])
1120   PLUGINS=""
1121 fi
1122
1123 dnl
1124 dnl Some plugins aren't useful on some platforms
1125 dnl
1126 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1127     VLC_ADD_PLUGINS([screensaver motion])
1128 elif test "${SYS}" != "mingwce"; then
1129     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1130     VLC_ADD_LDFLAGS([dmo],[-lole32])
1131 else
1132     VLC_ADD_PLUGINS([win32text])
1133 fi
1134
1135 dnl
1136 dnl  Accelerated modules
1137 dnl
1138 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1139 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1140 MMXEXT_MODULES="memcpymmxext"
1141 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1142 THREEDNOW_MODULES="memcpy3dn"
1143 SSE_MODULES=""
1144 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1145 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1146
1147 if test "${enable_gprof}" != "yes"
1148 then
1149   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1150 fi
1151
1152 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1153     [ac_cv_mmx_inline],
1154     [CFLAGS="${CFLAGS_save}"
1155      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1156                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1157 if test "${ac_cv_mmx_inline}" != "no"; then
1158   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1159   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1160 fi
1161
1162 dnl  Check for fully workin MMX intrinsics
1163 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1164 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1165 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1166     [ac_cv_c_mmx_intrinsics],
1167     [CFLAGS="${CFLAGS_save} -O -mmmx"
1168      AC_TRY_COMPILE([#include <mmintrin.h>
1169                      #include <stdint.h>
1170                      uint64_t frobzor;],
1171                     [__m64 a, b, c;
1172                      a = b = c = (__m64)frobzor;
1173                      a = _mm_slli_pi16(a, 3);
1174                      a = _mm_adds_pi16(a, b);
1175                      c = _mm_srli_pi16(c, 8);
1176                      c = _mm_slli_pi16(c, 3);
1177                      b = _mm_adds_pi16(b, c);
1178                      a = _mm_unpacklo_pi8(a, b);
1179                      frobzor = (uint64_t)a;],
1180                     [ac_cv_c_mmx_intrinsics=yes],
1181                     [ac_cv_c_mmx_intrinsics=no])])
1182 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1183   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1184   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1185 fi
1186
1187 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1188     [ac_cv_mmxext_inline],
1189     [CFLAGS="${CFLAGS_save}"
1190      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1191                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1192 if test "${ac_cv_mmxext_inline}" != "no"; then
1193   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1194   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1195 fi
1196
1197 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1198     [ac_cv_3dnow_inline],
1199     [CFLAGS="${CFLAGS_save}"
1200      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1201                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1202 if test "${ac_cv_3dnow_inline}" != "no"; then
1203   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1204   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1205 fi
1206
1207 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1208     [ac_cv_sse_inline],
1209     [CFLAGS="${CFLAGS_save}"
1210      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1211                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1212 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1213   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1214   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1215 fi
1216
1217 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1218 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1219     [ac_cv_altivec_inline],
1220     [CFLAGS="${CFLAGS_save}"
1221      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1222          ac_cv_altivec_inline=yes,
1223          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1224           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1225             [ac_cv_altivec_inline="-Wa,-m7400"],
1226             ac_cv_altivec_inline=no)
1227          ])])
1228 if test "${ac_cv_altivec_inline}" != "no"; then
1229   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1230   if test "${ac_cv_altivec_inline}" != "yes"; then
1231     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1232     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1233     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1234     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1235     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1236   fi
1237   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1238 fi
1239
1240 dnl The AltiVec C extensions
1241 dnl
1242 dnl There are several possible cases:
1243 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1244 dnl                      need <altivec.h>
1245 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1246 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1247 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1248 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1249 dnl - Others: test should fail
1250 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1251   [ac_cv_c_altivec],
1252   [# OS X/PPC test (gcc 4.x)
1253    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1254    AC_TRY_COMPILE([vector unsigned char foo;],
1255      [vec_ld(0, (unsigned char *)0);],
1256      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1257      [# OS X/PPC test (gcc 3.x)
1258       CFLAGS="${CFLAGS_save} -faltivec"
1259       AC_TRY_COMPILE([vector unsigned char foo;],
1260         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1261         [ac_cv_c_altivec="-faltivec"],
1262         dnl Below this are the Linux tests
1263         [# Linux/PPC test (gcc 4.x)
1264          CFLAGS="${CFLAGS_save} -maltivec"
1265          AC_TRY_COMPILE([#include <altivec.h>],
1266            [vec_ld(0, (unsigned char *)0);],
1267            [ac_cv_c_altivec="-maltivec"],
1268            [# Linux/PPC test (gcc 3.3)
1269             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1270             AC_TRY_COMPILE([#include <altivec.h>],
1271               [vec_ld(0, (unsigned char *)0);],
1272               [ac_cv_c_altivec=""
1273                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1274               [# Linux/PPC test (gcc 3.3)
1275                CFLAGS="${CFLAGS_save} -fvec"
1276                AC_TRY_COMPILE([#include <altivec.h>],
1277                  [vec_ld(0, (unsigned char *)0);],
1278                  [ac_cv_c_altivec="-fvec"],
1279                  [ac_cv_c_altivec=no])
1280               ])
1281            ])
1282         ])
1283      ])
1284    CFLAGS="${CFLAGS_save}"
1285   ])
1286
1287 if test "${ac_cv_c_altivec}" != "no"; then
1288   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1289 fi
1290 AC_CHECK_HEADERS(altivec.h)
1291 CPPFLAGS="${CPPFLAGS_save}"
1292
1293 if test "${ac_cv_c_altivec}" != "no"; then
1294   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1295   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1296   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1297   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1298   if test "${ac_cv_altivec_inline}" = "no"; then
1299     ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1300   fi
1301 fi
1302
1303 AC_CACHE_CHECK([if linker needs -framework vecLib],
1304     [ac_cv_ld_altivec],
1305     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1306      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1307      LDFLAGS="${LDFLAGS_save}"
1308     ])
1309 if test "${ac_cv_ld_altivec}" != "no"; then
1310   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1311 fi
1312 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1313
1314 AC_ARG_WITH(,[])
1315 AC_ARG_WITH(,[Optimization options:])
1316
1317 dnl
1318 dnl  Special arch tuning
1319 dnl
1320 AC_ARG_WITH(tuning,
1321 [  --with-tuning=ARCH      enable special tuning for an architecture
1322                           (default Pentium 2 on IA-32 and G4 on PPC)])
1323 if test -n "${with_tuning}"; then
1324     if test "${with_tuning}" != "no"; then
1325         CFLAGS_TUNING="-mtune=${with_tuning}"
1326     fi
1327 else
1328     if test "${SYS}" = "darwin" -a "${host_cpu}" = "i686"; then
1329         CFLAGS_TUNING="-march=pentium-m -mtune=prescott"
1330     elif test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "i486" -o "${host_cpu}" = "i386"; then
1331         CFLAGS_TUNING="-mtune=pentium2"
1332     elif test "${host_cpu}" = "x86_64"; then
1333         CFLAGS_TUNING="-mtune=athlon64"
1334     elif test "${host_cpu}" = "powerpc"; then
1335         CFLAGS_TUNING="-mtune=G4";
1336     fi
1337 fi
1338
1339 dnl NOTE: this can't be cached cleanly
1340 AS_IF([test "${CFLAGS_TUNING}"],
1341    [CFLAGS_save="${CFLAGS}"
1342     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1343
1344     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1345     AC_COMPILE_IFELSE([ ],
1346                       [tuning="yes"],
1347                       [CFLAGS_TUNING=""; tuning="no"
1348                        AS_IF([test "${with_tuning}"],
1349                              [AC_MSG_ERROR([requested tuning not supported])])])
1350
1351     AC_MSG_RESULT([$tuning])
1352     CFLAGS="${CFLAGS_save}"
1353 ])
1354
1355 dnl
1356 dnl  x86 accelerations
1357 dnl
1358 if test "${host_cpu}" = "i686" -o "${host_cpu}" = "i586" -o "${host_cpu}" = "x86" -o "${host_cpu}" = "i386" -o "${host_cpu}" = "x86_64"
1359 then
1360     ARCH="${ARCH} mmx"
1361     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1362 fi
1363
1364 dnl
1365 dnl  Memory usage
1366 dnl
1367 AC_ARG_ENABLE(optimize-memory,
1368 [  --enable-optimize-memory      optimize memory usage over performance])
1369 if test "${enable_optimize_memory}" = "yes"; then
1370   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1371 fi
1372
1373 dnl
1374 dnl  Enable/disable optimizations
1375 dnl
1376 AC_ARG_ENABLE(optimizations,
1377 [  --disable-optimizations disable compiler optimizations (default enabled)])
1378 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1379
1380 dnl
1381 dnl  AltiVec acceleration
1382 dnl
1383 AC_ARG_ENABLE(altivec,
1384 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1385 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1386     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1387 [ if test "${host_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1388     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1389
1390 dnl
1391 dnl  Debugging mode
1392 dnl
1393 AC_ARG_ENABLE(debug,
1394 [  --enable-debug          debug mode (default disabled)])
1395 test "${enable_debug}" != "yes" && enable_debug="no"
1396 AH_TEMPLATE(NDEBUG,
1397             [Define to 1 if debug code should NOT be compiled])
1398 AS_IF([test "x${enable_debug}" = "xno"], [AC_DEFINE(NDEBUG)])
1399
1400 dnl
1401 dnl  Enable release-specific flags
1402 dnl
1403 AC_ARG_ENABLE(release,
1404 [  --enable-release        activate extra optimizations (default disabled)])
1405 test "${enable_release}" != "yes" && enable_release="no"
1406
1407 dnl
1408 dnl  Is the shared libvlc forced ?
1409 dnl
1410 AC_ARG_ENABLE(shared-libvlc,
1411   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1412 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1413   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1414 ])
1415
1416 dnl
1417 dnl Stream output
1418 dnl
1419 AC_ARG_ENABLE(sout,
1420   [  --enable-sout           Stream output modules (default enabled)])
1421 if test "${enable_sout}" != "no"
1422 then
1423   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1424   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1425   VLC_ADD_PLUGINS([packetizer_copy])
1426
1427   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1428   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1429 #  VLC_ADD_PLUGINS([stream_out_transrate])
1430   VLC_ADD_PLUGINS([profile_parser])
1431
1432   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1433 fi
1434
1435 AC_ARG_ENABLE(switcher,
1436   [  --enable-switcher       Stream-out switcher plugin (default disabled)])    
1437
1438 dnl Check for libshout
1439 AC_ARG_ENABLE(shout,
1440   [  --enable-shout          libshout output plugin (default disabled)])
1441 if test "${enable_shout}" = "yes"; then
1442   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1443     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1444      VLC_ADD_PLUGINS([access_output_shout])
1445      VLC_ADD_LDFLAGS([access_output_shout],[$SHOUT_LIBS])
1446      VLC_ADD_CFLAGS([access_output_shout],[$SHOUT_CFLAGS])],
1447     [AC_MSG_WARN(libshout library not found)])
1448 fi
1449
1450 dnl
1451 dnl HTTP daemon
1452 dnl
1453 AC_ARG_ENABLE(httpd,
1454   [  --enable-httpd          HTTP daemon (default enabled)])
1455 if test "${enable_httpd}" != "no"
1456 then
1457   VLC_ADD_PLUGINS([http])
1458   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1459 fi
1460
1461 dnl
1462 dnl VideoLAN manager
1463 dnl
1464 AC_ARG_ENABLE(vlm,
1465   [  --enable-vlm            VideoLAN manager (default enabled)])
1466 if test "${enable_vlm}" != "no"
1467 then
1468   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1469 fi
1470
1471 dnl
1472 dnl Growl notification plugin
1473 dnl
1474 AC_ARG_ENABLE(growl,
1475   [  --enable-growl          growl notification plugin (default enabled)])
1476 AS_IF([test "${enable_growl}" != "no"], [
1477     VLC_ADD_PLUGINS([growl])
1478   ]
1479 )
1480
1481 dnl
1482 dnl Libnotify notification plugin
1483 dnl
1484
1485 AC_ARG_ENABLE(notify,
1486   [  --enable-notify         libnotify notification plugin (default enabled)])
1487 AS_IF([test "${enable_notify}" != "no"], [
1488     PKG_CHECK_MODULES(NOTIFY, libnotify,
1489       [
1490         VLC_ADD_PLUGINS([notify])
1491         VLC_ADD_CFLAGS(notify, [$NOTIFY_CFLAGS])
1492         VLC_ADD_LDFLAGS(notify, [$NOTIFY_LIBS])
1493       ],[
1494         AS_IF([test "${enable_notify}" = "yes"],[
1495                AC_MSG_WARN( libnotify not found) ])
1496       ])
1497   ])
1498
1499 dnl
1500 dnl Audioscrobbler plugin
1501 dnl
1502
1503 AC_ARG_ENABLE(audioscrobbler,
1504   [  --enable-audioscrobbler Last.fm submission plugin (default enabled)])
1505 AS_IF([test "${enable_audioscrobbler}" != "no"], [
1506         VLC_ADD_PLUGINS([audioscrobbler])
1507   ])
1508
1509 dnl
1510 dnl Musicbrainz plugin
1511 dnl
1512 AC_ARG_ENABLE(musicbrainz,
1513   [  --enable-musicbrainz    MusicBrainz support (default disabled) ])
1514   AS_IF([test "${enable_musicbrainz}" = "yes"],[
1515       PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz,
1516         [ VLC_ADD_PLUGINS([musicbrainz])
1517           VLC_ADD_LDFLAGS([musicbrainz],[$MUSICBRAINZ_LIBS]) 
1518           VLC_ADD_CFLAGS([musicbrainz],[$MUSICBRAINZ_CFLAGS])  ],
1519        [AC_MSG_WARN(MusicBrainz library not found)])
1520    ])
1521
1522
1523 dnl
1524 dnl Taglibplugin
1525 dnl
1526 AC_ARG_ENABLE(taglib,
1527   [  --enable-taglib Taglib support (default disabled) ])
1528   AS_IF([test "${enable_taglib}" = "yes"],[
1529     PKG_CHECK_MODULES(TAGLIB, taglib,
1530       [ VLC_ADD_PLUGINS([taglib])
1531         VLC_ADD_LDFLAGS([taglib],[$TAGLIB_LIBS])
1532        VLC_ADD_CXXFLAGS([taglib],[$TAGLIB_CFLAGS]) ],
1533       [AC_MSG_WARN(TagLib library not found)])
1534   ])
1535
1536
1537 dnl
1538 dnl  Input plugins
1539 dnl
1540
1541 AC_ARG_WITH(,[Input plugins:])
1542
1543 dnl  live555 input
1544 dnl
1545 if test "${enable_livedotcom}" 
1546 then
1547   AC_MSG_WARN(--{en|dis}able-livedotcom is deprecated. Use --{en|dis}able-live555 instead.)
1548 fi
1549
1550 if test "${enable_livedotcom}" = "no"
1551 then
1552   enable_live555="no"
1553 fi
1554 AC_ARG_ENABLE(live555,
1555 [  --enable-live555        live555 RTSP input plugin (default enabled)])
1556 if test "${enable_live555}" != "no"; then
1557   AC_ARG_WITH(live555-tree,
1558     [    --with-live555-tree=PATH live.com tree for static linking])
1559
1560   dnl
1561   dnl test for --with-live555-tree
1562   dnl
1563   if test "${with_livedotcom_tree}" 
1564   then
1565     AC_MSG_WARN(--with-livedotcom-tree is deprecated. Use --with-live555-tree instead.)
1566   with_live555_tree="${with_livedotcom_tree}"
1567   fi
1568   
1569   if test -z "${with_live555_tree}" -a "${CXX}" != ""; then
1570     AC_LANG_PUSH(C++)
1571     CPPFLAGS_save="${CPPFLAGS}"
1572     CPPFLAGS_live555="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1573     if test "${SYS}" = "solaris"; then
1574       CPPFLAGS_live555="${CPPFLAGS_live555} -DSOLARIS"
1575     fi
1576     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_live555}"
1577     AC_CHECK_HEADERS(liveMedia.hh, [
1578       VLC_ADD_CXXFLAGS([live555], [${CPPFLAGS_live555}])
1579       AC_CHECK_LIB(liveMedia_pic, main, [
1580         # We have -lliveMedia_pic, build plugins
1581         VLC_ADD_PLUGINS([live555])
1582         VLC_ADD_LDFLAGS([live555], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1583       ], [
1584         AC_CHECK_LIB(liveMedia, main, [
1585           # We only have -lliveMedia, do builtins
1586           VLC_ADD_BUILTINS([live555])
1587           VLC_ADD_LDFLAGS([live555], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1588         ])
1589       ])
1590       if test "${SYS}" = "mingw32"; then
1591         # add ws2_32 for closesocket, select, recv
1592         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1593       fi
1594     ])
1595     CPPFLAGS="${CPPFLAGS_save}"
1596     AC_LANG_POP(C++)
1597   else
1598     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_live555_tree})
1599     real_live555_tree="`cd ${with_live555_tree} 2>/dev/null && pwd`"
1600     if test -z "${real_live555_tree}"; then
1601       dnl  The given directory can't be found
1602       AC_MSG_RESULT(no)
1603       AC_MSG_ERROR([cannot cd to ${with_live555_tree}])
1604     fi
1605     if test -f "${real_live555_tree}/liveMedia/libliveMedia.a"; then
1606       AC_MSG_RESULT(${real_live555_tree}/liveMedia/libliveMedia.a)
1607
1608       VLC_ADD_BUILTINS([live555])
1609
1610       if test "${SYS}" = "mingw32"; then
1611         # add ws2_32 for closesocket, select, recv
1612         VLC_ADD_LDFLAGS([live555],[-lws2_32])
1613       fi
1614
1615       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/liveMedia -lliveMedia])
1616       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1617       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/groupsock -lgroupsock])
1618       VLC_ADD_LDFLAGS([live555],[-L${real_live555_tree}/UsageEnvironment -lUsageEnvironment])
1619
1620       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/BasicUsageEnvironment/include])
1621       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/groupsock/include])
1622       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/liveMedia/include])
1623       VLC_ADD_CXXFLAGS([live555],[-I${real_live555_tree}/UsageEnvironment/include ])
1624       if test "${SYS}" = "solaris"; then
1625         VLC_ADD_CXXFLAGS([live555],[-DSOLARIS])
1626       fi
1627     else
1628       dnl  The given live555 wasn't built
1629         AC_MSG_RESULT(no)
1630       if test "${enable_live555}" = "yes"; then
1631         AC_MSG_ERROR([cannot find ${real_live555_tree}/liveMedia/libliveMedia.a, make sure you compiled live555 in ${with_live555_tree}])
1632       fi        
1633     fi
1634   fi
1635 fi
1636
1637 dnl
1638 dnl dv module: digital video module check for libraw1394
1639 dnl
1640 AC_ARG_ENABLE(dv,
1641 [  --enable-dv             dv input module (default disabled)])
1642 if test "${enable_dv}" = "yes"
1643 then
1644   AC_ARG_WITH(dv-raw1394,
1645   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1646   AC_ARG_WITH(dv-raw1394-tree,
1647   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1648
1649   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1650   then
1651     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1652     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1653     then
1654       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1655       AC_MSG_RESULT(yes)
1656       VLC_ADD_PLUGINS([access_dv])
1657       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1658       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1659     else
1660       dnl  No libraw1394 could be found, sorry
1661       AC_MSG_RESULT(no)
1662       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1663     fi
1664   else
1665     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1666     [ VLC_ADD_PLUGINS([access_dv])
1667         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1668     ],[
1669         if test -n "${enable_dv}"
1670         then
1671           AC_MSG_ERROR([cannot find libraw1394 headers])
1672         fi
1673     ])
1674   fi
1675
1676   dnl Check for static linking of libraw1394
1677   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1678   then
1679     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1680     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1681     if test -z "${real_dv_raw1394_tree}"
1682     then
1683       dnl  The given directory can't be found
1684       AC_MSG_RESULT(no)
1685       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1686     fi
1687     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1688     then
1689       dnl  Use a custom libraw1394
1690       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1691       VLC_ADD_BUILTINS([access_dv])
1692       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1693       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1694     else
1695       dnl  The given libraw1394 wasn't built
1696       AC_MSG_RESULT(no)
1697       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1698     fi
1699   fi
1700
1701   dnl
1702   dnl Check for libavc1394
1703   dnl
1704
1705   AC_ARG_WITH(dv-avc1394,
1706   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1707   AC_ARG_WITH(dv-avc1394-tree,
1708   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1709
1710   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1711   then
1712     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1713     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1714     then
1715       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1716       AC_MSG_RESULT(yes)
1717       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1718       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1719     else
1720       dnl  No libavc1394 could be found, sorry
1721       AC_MSG_RESULT(no)
1722       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1723     fi
1724   else
1725     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1726     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1727     ],[
1728         if test -n "${enable_dv}"
1729         then
1730           AC_MSG_ERROR([cannot find libavc1394 headers])
1731         fi
1732     ])
1733   fi
1734
1735   dnl Check for static linking of libavc1394
1736   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1737   then
1738     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1739     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1740     if test -z "${real_dv_avc1394_tree}"
1741     then
1742       dnl  The given directory can't be found
1743       AC_MSG_RESULT(no)
1744       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1745     fi
1746     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1747     then
1748       dnl  Use a custom libavc1394
1749       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1750       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1751       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1752     else
1753       dnl  The given libavc1394 wasn't built
1754       AC_MSG_RESULT(no)
1755       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1756     fi
1757   fi
1758 fi
1759
1760 dnl
1761 dnl dvdread module: check for libdvdread
1762 dnl
1763 AC_ARG_ENABLE(dvdread,
1764 [  --enable-dvdread        dvdread input module (default disabled)])
1765 if test "${enable_dvdread}" != "no"
1766 then
1767   AC_ARG_WITH(dvdread,
1768   [    --with-dvdread=PATH   libdvdread headers and libraries])
1769   AC_ARG_WITH(dvdread-tree,
1770   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1771
1772   dnl Temporary hack (yeah, sure ;)
1773   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1774       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1775   fi
1776
1777   if test -z "${with_dvdread}"
1778   then
1779     if test -z "${with_dvdread_tree}"
1780     then
1781       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1782         [ VLC_ADD_PLUGINS([dvdread])
1783           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1784         ],[
1785           if test -n "${enable_dvdread}"
1786           then
1787             AC_MSG_ERROR([cannot find libdvdread headers])
1788           fi
1789         ])
1790     else
1791       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1792       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1793       if test -z "${real_dvdread_tree}"
1794       then
1795         dnl  The given directory can't be found
1796         AC_MSG_RESULT(no)
1797         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1798       fi
1799       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1800       then
1801         dnl  Use a custom libdvdread
1802         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1803         VLC_ADD_BUILTINS([dvdread])
1804         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1805         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1806       else
1807         dnl  The given libdvdread wasn't built
1808         AC_MSG_RESULT(no)
1809         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1810       fi
1811     fi
1812   else
1813     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1814     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1815     then
1816       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1817       AC_MSG_RESULT(yes)
1818       VLC_ADD_PLUGINS([dvdread])
1819       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1820       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1821     else
1822       dnl  No libdvdread could be found, sorry
1823       AC_MSG_RESULT(no)
1824       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1825     fi
1826   fi
1827 fi
1828
1829 dnl
1830 dnl  libdvdnav plugin
1831 dnl
1832 AC_ARG_ENABLE(dvdnav,
1833   [  --enable-dvdnav         dvdnav input module (default enabled)])
1834 if test "${enable_dvdnav}" != "no"
1835 then
1836   dnl Same hack than dvdread
1837   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1838       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1839   fi
1840
1841   DVDNAV_PATH="${PATH}"
1842   AC_ARG_WITH(dvdnav-config-path,
1843     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1844     [ if test "${with_dvdnav_config_path}" != "no"
1845       then
1846         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1847       fi ])
1848   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1849   if test "${DVDNAV_CONFIG}" != "no"
1850   then
1851     VLC_ADD_PLUGINS([dvdnav])
1852     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1853     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1854   fi
1855 fi
1856
1857 dnl
1858 dnl  Windows DirectShow access module
1859 dnl
1860 AC_ARG_ENABLE(dshow,
1861   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1862 if test "${enable_dshow}" != "no"
1863 then
1864   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1865   then
1866     AC_LANG_PUSH(C++)
1867       AC_CHECK_HEADERS(dshow.h,
1868       [ VLC_ADD_PLUGINS([dshow])
1869         VLC_ADD_CXXFLAGS([dshow],[])
1870         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1871     AC_LANG_POP(C++)
1872   fi
1873 fi
1874
1875
1876 dnl
1877 dnl  OpenCV wrapper and example filters
1878 dnl
1879 AC_ARG_ENABLE(opencv,
1880   [  --enable-opencv            OpenCV (computer vision) filter (default disabled)])
1881 if test "${enable_opencv}" = "yes" -a "${CXX}" != "";
1882 then
1883   AC_ARG_WITH(opencv-tree,
1884   [    --with-opencv-tree=PATH opencv tree for linking])
1885   if test -n "${with_opencv_tree}"
1886   then
1887     if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1888     then
1889           AC_MSG_CHECKING(for opencv in ${with_opencv_tree})
1890           if test -f ${with_opencv_tree}/cv/include/cv.h -a -f ${with_opencv_tree}/cxcore/include/cxcore.h \
1891             -a -f ${with_opencv_tree}/cvaux/include/cvaux.h -a -f ${with_opencv_tree}/otherlibs/highgui/highgui.h
1892       then
1893         AC_MSG_RESULT(yes)
1894         VLC_ADD_PLUGINS([opencv_wrapper])
1895         VLC_ADD_LDFLAGS([opencv_wrapper],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1896         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])
1897         AC_LANG_PUSH(C++)
1898         VLC_ADD_PLUGINS([opencv_example])
1899         VLC_ADD_LDFLAGS([opencv_example],[-L${with_opencv_tree}/lib -lcv -lcxcore -lcvaux -lhighgui])
1900         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])
1901         AC_LANG_POP(C++)        
1902           else
1903         dnl  No opencv could be found, sorry
1904         AC_MSG_RESULT(no)
1905         AC_MSG_ERROR([cannot find opencv in ${with_opencv_tree}])
1906           fi
1907     else
1908           AC_MSG_WARN([--enable-opencv currently only works on windows])
1909     fi
1910   fi  
1911 fi
1912
1913
1914 dnl
1915 dnl  libsmbclient plugin
1916 dnl
1917 AC_ARG_ENABLE(smb,
1918   [  --enable-smb            smb input module (default enabled)])
1919 if test "${enable_smb}" != "no"; then
1920   AC_CHECK_HEADERS(libsmbclient.h,
1921     [ VLC_ADD_PLUGINS([access_smb])
1922       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1923     [ if test -n "${enable_smb}"; then
1924         AC_MSG_ERROR([cannot find libsmbclient headers])
1925      fi ])
1926   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1927     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1928     [#include <libsmbclient.h>])
1929 fi
1930
1931 dnl
1932 dnl  libdvbpsi ts demux/mux
1933 dnl
1934 AC_ARG_ENABLE(dvbpsi,
1935   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1936 if test "${enable_dvbpsi}" != "no"
1937 then
1938   AC_ARG_WITH(dvbpsi,
1939   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1940   AC_ARG_WITH(dvbpsi,
1941   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1942   case "${with_dvbpsi}" in
1943   ""|yes)
1944     if test -z "${with_dvbpsi_tree}"
1945     then
1946       AC_CHECK_HEADERS(dvbpsi/dr.h,
1947         [ VLC_ADD_PLUGINS([ts])
1948           if test "${enable_sout}" != "no"; then
1949             VLC_ADD_PLUGINS([mux_ts])
1950           fi
1951           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1952         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1953         [#if defined( HAVE_STDINT_H )
1954 #   include <stdint.h>
1955 #elif defined( HAVE_INTTYPES_H )
1956 #   include <inttypes.h>
1957 #endif
1958 #include <dvbpsi/dvbpsi.h>
1959 #include <dvbpsi/descriptor.h>
1960 #include <dvbpsi/pat.h>
1961 #include <dvbpsi/pmt.h>])
1962     else
1963       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1964       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1965       if test -z "${real_dvbpsi_tree}"
1966       then
1967         dnl  The given directory can't be found
1968         AC_MSG_RESULT(no)
1969         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1970       fi
1971       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1972       then
1973         dnl  Use a custom libdvbpsi
1974         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1975         VLC_ADD_BUILTINS([ts])
1976         if test "${enable_sout}" != "no"; then
1977           VLC_ADD_BUILTINS([mux_ts])
1978         fi
1979         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1980         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1981       else
1982         dnl  The given libdvbpsi wasn't built
1983         AC_MSG_RESULT(no)
1984         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1985       fi
1986     fi
1987   ;;
1988   no)
1989     dnl  Compile without dvbpsi
1990   ;;
1991   *)
1992     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1993     if test -z "${with_dvbpsi}"
1994     then
1995       LDFLAGS_test=""
1996       CPPFLAGS_test=""
1997     else
1998       LDFLAGS_test="-L${with_dvbpsi}/lib"
1999       CPPFLAGS_test="-I${with_dvbpsi}/include"
2000     fi
2001     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
2002     AC_CHECK_HEADERS([dvbpsi/dr.h],[
2003       VLC_ADD_PLUGINS([ts])
2004       if test "${enable_sout}" != "no"; then
2005         VLC_ADD_PLUGINS([mux_ts])
2006       fi
2007       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
2008       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
2009
2010     ],[
2011       if test -n "${enable_dvbpsi}"
2012       then
2013         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])
2014       fi
2015     ])
2016     CPPFLAGS="${CPPFLAGS_save}"
2017   ;;
2018   esac
2019   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
2020     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
2021   ], [], [${LDFLAGS_ts}])
2022
2023 fi
2024
2025 dnl
2026 dnl  Video4Linux plugin
2027 dnl
2028 AC_ARG_ENABLE(v4l,
2029   [  --enable-v4l            Video4Linux input support (default disabled)])
2030 if test "${enable_v4l}" = "yes"
2031 then
2032   AC_ARG_WITH(v4l,
2033     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
2034   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
2035   then
2036     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
2037   fi
2038
2039   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
2040   AC_CHECK_HEADERS(linux/videodev.h, [
2041     VLC_ADD_PLUGINS([v4l])
2042   ],[])
2043   CPPFLAGS="${CPPFLAGS_save}"
2044 fi
2045
2046 dnl
2047 dnl  Video4Linux plugin
2048 dnl
2049 AC_ARG_ENABLE(v4l2,
2050   [  --enable-v4l2            Video4Linux2 input support (default disabled)])
2051 if test "${enable_v4l2}" = "yes"
2052 then
2053   AC_ARG_WITH(v4l2,
2054     [    --with-v4l2=PATH       path to a v4l2-enabled kernel tree],[],[])
2055   if test "${with_v4l2}" != "no" -a -n "${with_v4l2}"
2056   then
2057     VLC_ADD_CPPFLAGS([v4l2],[-I${with_v4l2}/include])
2058   fi
2059
2060   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l2}"
2061   AC_CHECK_HEADERS(linux/videodev2.h, [
2062     VLC_ADD_PLUGINS([v4l2])
2063   ],[])
2064   CPPFLAGS="${CPPFLAGS_save}"
2065 fi
2066
2067
2068 dnl
2069 dnl  special access module for Hauppauge PVR cards
2070 dnl
2071 AC_ARG_ENABLE(pvr,
2072   [  --enable-pvr            PVR cards access module (default disabled)])
2073 if test "${enable_pvr}" = "yes"
2074 then
2075   VLC_ADD_PLUGINS([pvr])
2076 fi
2077
2078 dnl
2079 dnl  gnomeVFS access module
2080 dnl
2081 AC_ARG_ENABLE(gnomevfs,
2082   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
2083 if test "${enable_gnomevfs}" != "no" 
2084 then
2085   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
2086     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
2087     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
2088     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
2089     VLC_ADD_PLUGINS([access_gnomevfs]),
2090     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
2091 fi
2092
2093 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
2094 AC_ARG_ENABLE(libcdio,
2095   [  --enable-libcdio        CD input and control library support (default enabled)])
2096
2097
2098 have_libcdio=no
2099 have_libvcdinfo=no
2100 if test "${enable_libcdio}" != "no"
2101 then
2102   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
2103      have_libcdio=yes
2104      AC_DEFINE(HAVE_LIBCDIO, [], 
2105      [Define if you have libcdio 0.72 or greater installed]),
2106      [AC_MSG_WARN(CD Reading and information library not found)])
2107
2108   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
2109      [have_libvcdinfo=yes
2110      AC_DEFINE(HAVE_VCDINFO, [], 
2111      [Define if you have libvcdinfo 0.7.21 or greater installed])],
2112      [AC_MSG_WARN(VCD information library not found)])
2113 fi
2114
2115 dnl
2116 dnl  VCDX and CDDAX modules
2117 dnl
2118 AC_ARG_ENABLE(cddax,
2119   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
2120  
2121 AC_ARG_ENABLE(libcddb,
2122   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
2123  
2124 if test "${enable_cddax}" = "yes"
2125 then
2126   if test "$have_libcdio" = "yes"
2127   then
2128     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
2129     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
2130     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
2131     VLC_ADD_PLUGINS([cddax])
2132     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
2133     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
2134     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
2135   else 
2136     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
2137     HAVE_CDDAX=no
2138   fi
2139
2140   if test "$enable_libcddb" != "no"; then
2141     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2142       HAVE_LIBCDDB=yes 
2143       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2144       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2145       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2146       ],
2147       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2148       HAVE_LIBCDDB=no])
2149   fi
2150  
2151 fi
2152
2153 AC_ARG_ENABLE(vcdx,
2154   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2155  
2156 if test "${enable_vcdx}" = "yes"
2157 then
2158   if test "${have_libvcdinfo}" = "yes"
2159   then
2160     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2161     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2162   else 
2163     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2164     HAVE_VCDX=no
2165   fi
2166
2167   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2168    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2169     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2170     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2171     HAVE_VCDX=no])
2172
2173   if test "$have_libvcdinfo" = "yes"
2174   then
2175     AC_DEFINE(HAVE_VCDX, [], 
2176     [Define for the VCD plugin using libcdio/libvcdinfo])
2177     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2178     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2179     VLC_ADD_PLUGINS([vcdx])
2180   else 
2181     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2182     HAVE_VCDX=no
2183   fi
2184 fi
2185
2186 dnl
2187 dnl  Built-in CD-DA and VCD module
2188 dnl
2189 AC_ARG_ENABLE(cdda,           
2190   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2191  
2192 AC_ARG_ENABLE(vcd,
2193   [  --enable-vcd            built-in VCD (default enabled)])
2194
2195 if test "${enable_vcd}" != "no"
2196 then
2197   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2198   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2199     AC_MSG_RESULT(yes)
2200     VLC_ADD_PLUGINS([vcd cdda])
2201   ],[
2202     AC_MSG_RESULT(no)
2203   ])
2204
2205   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2206   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2207     AC_MSG_RESULT(yes)
2208     VLC_ADD_PLUGINS([vcd cdda])
2209     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2210   ],[
2211     AC_MSG_RESULT(no)
2212   ])
2213
2214   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2215   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2216     AC_MSG_RESULT(yes)
2217     VLC_ADD_PLUGINS([vcd cdda])
2218     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2219   ],[
2220     AC_MSG_RESULT(no)
2221   ])
2222
2223   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2224   then
2225     VLC_ADD_PLUGINS([vcd cdda])
2226   fi
2227
2228   if test "${SYS}" = "darwin"
2229   then
2230     VLC_ADD_PLUGINS([vcd cdda])
2231     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2232     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2233   fi
2234
2235   if test "$enable_libcddb" != "no"; then
2236     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2237       HAVE_LIBCDDB=yes 
2238       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2239       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2240       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2241       ],:
2242       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2243       HAVE_LIBCDDB=no])
2244   fi
2245 fi
2246
2247 dnl
2248 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2249 dnl
2250 AC_ARG_ENABLE(dvb,
2251   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2252
2253 if test "${enable_dvb}" = "yes"
2254 then
2255   AC_ARG_WITH(dvb,
2256   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2257   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2258   then
2259     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2260   fi
2261   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2262   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2263     if test -z "${with_dvbpsi_tree}"
2264     then
2265       VLC_ADD_PLUGINS([dvb])
2266     else
2267       VLC_ADD_BUILTINS([dvb])
2268     fi
2269   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2270   CPPFLAGS="${CPPFLAGS_save}"
2271 fi
2272
2273 dnl
2274 dnl  Screen capture module
2275 dnl
2276 AC_ARG_ENABLE(screen,
2277   [  --enable-screen         Screen capture support (default enabled)])
2278 if test "${enable_screen}" != "no"; then
2279   if test "${SYS}" = "darwin"; then
2280     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2281       VLC_ADD_PLUGINS([screen])
2282       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2283     ])
2284   elif test "${SYS}" = "mingw32"; then
2285     VLC_ADD_PLUGINS([screen])
2286     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2287   elif test "${SYS}" = "mingwce"; then
2288     CPPFLAGS="${CPPFLAGS_save}"
2289   elif test "${SYS}" = "beos"; then
2290     VLC_ADD_PLUGINS([screen])
2291     VLC_ADD_CXXFLAGS([screen],[])
2292     VLC_ADD_LDFLAGS([screen],[-lbe])
2293   else
2294     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2295     AC_CHECK_HEADERS(X11/Xlib.h, [
2296       VLC_ADD_PLUGINS([screen])
2297       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2298       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2299     ])
2300     CPPFLAGS="${CPPFLAGS_save}"
2301   fi
2302 fi
2303
2304 dnl
2305 dnl  ipv6 plugin - not for QNX yet
2306 dnl
2307 have_ipv6=no
2308 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2309   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2310 ])
2311
2312 AS_IF([test "${have_ipv6}" = "yes"], [
2313   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2314
2315 if test "${SYS}" != "nto" &&
2316    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2317 then
2318   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2319   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2320     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2321   AS_IF([test "${have_ipv6}" != "no"], [
2322     VLC_ADD_PLUGINS([ipv6])])
2323 fi
2324 if test "${SYS}" = "mingw32"
2325 then
2326   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2327   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2328     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2329 fi
2330
2331 dnl
2332 dnl  ogg demux plugin
2333 dnl
2334 AC_ARG_ENABLE(ogg,
2335   [  --enable-ogg            Ogg demux support (default enabled)])
2336 if test "${enable_ogg}" != "no"
2337 then
2338   AC_ARG_WITH(ogg-tree,
2339   [    --with-ogg-tree=PATH  ogg tree for static linking])
2340   if test -n "${with_ogg_tree}"
2341   then
2342     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2343     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2344     if test -z "${real_ogg_tree}"
2345     then
2346       dnl  The given directory can't be found
2347       AC_MSG_RESULT(no)
2348       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2349     fi
2350     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2351     then
2352       dnl  Use a custom ogg
2353       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2354       VLC_ADD_PLUGINS([ogg])
2355       if test "${enable_sout}" != "no"; then
2356         VLC_ADD_PLUGINS([mux_ogg])
2357       fi
2358       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2359       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2360     else
2361       dnl  The given ogg wasn't built
2362       AC_MSG_RESULT(no)
2363       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2364     fi
2365   else
2366     AC_CHECK_HEADERS(ogg/ogg.h, [
2367       AC_CHECK_LIB( ogg, oggpack_read, [
2368         VLC_ADD_PLUGINS([ogg])
2369         if test "${enable_sout}" != "no"; then
2370           VLC_ADD_PLUGINS([mux_ogg])
2371         fi
2372         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2373      ],[])
2374   fi
2375 fi
2376
2377 dnl
2378 dnl  matroska demux plugin
2379 dnl
2380 AC_ARG_ENABLE(mkv,
2381   [  --enable-mkv            Matroska demux support (default enabled)])
2382 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2383   AC_LANG_PUSH(C++)
2384   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2385     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2386     AC_EGREP_CPP(yes,
2387       [#include <ebml/EbmlVersion.h>
2388        #ifdef LIBEBML_VERSION
2389        #if LIBEBML_VERSION >= 0x000706
2390        yes
2391        #endif
2392        #endif],
2393       [AC_MSG_RESULT([yes])
2394         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2395           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2396           AC_EGREP_CPP(yes,
2397             [#include <matroska/KaxVersion.h>
2398              #ifdef LIBMATROSKA_VERSION
2399              #if LIBMATROSKA_VERSION >= 0x000705
2400              yes
2401              #endif
2402              #endif],
2403             [AC_MSG_RESULT([yes])
2404               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2405               VLC_ADD_CXXFLAGS([mkv],[])
2406               if test "${SYS}" = "darwin"; then
2407                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2408               fi
2409               AC_CHECK_LIB(ebml_pic, main, [
2410                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2411                 VLC_ADD_PLUGINS([mkv])
2412                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2413               ], [
2414                 AC_CHECK_LIB(ebml, main, [
2415                   # We only have libebml, make mkv.a a builtin
2416                   VLC_ADD_BUILTINS([mkv])
2417                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2418                 ])
2419               ])
2420             ],
2421             [AC_MSG_RESULT([no])
2422               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.])
2423           ])
2424         ])
2425       ],
2426       [AC_MSG_RESULT([no])
2427         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.])
2428     ])
2429   ])
2430   AC_LANG_POP(C++)
2431 fi
2432
2433 dnl
2434 dnl  modplug demux plugin
2435 dnl
2436 AC_ARG_ENABLE(mod,
2437   [  --enable-mod            Mod demux support (default enabled)])
2438 if test "${enable_mod}" != "no"
2439 then
2440   AC_ARG_WITH(mod-tree,
2441   [    --with-mod-tree=PATH mod tree for static linking])
2442   if test -n "${with_mod_tree}"
2443   then
2444     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2445     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2446     if test -z "${real_mod_tree}"
2447     then
2448       dnl  The given directory can't be found
2449       AC_MSG_RESULT(no)
2450       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2451     fi
2452     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2453     then
2454       dnl  Use a custom mod
2455       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2456       VLC_ADD_PLUGINS([mod])
2457       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a -lstdc++])
2458       VLC_ADD_CXXFLAGS([mod],[-I${real_mod_tree}/include])
2459     else
2460       dnl  The given mod wasn't built
2461       AC_MSG_RESULT(no)
2462       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2463     fi
2464   else
2465     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2466       VLC_ADD_PLUGINS([mod])
2467       VLC_ADD_CXXFLAGS([mod],[])
2468       VLC_ADD_LDFLAGS([mod],[-lmodplug -lstdc++])])
2469   fi
2470 fi
2471
2472 dnl
2473 dnl  mpc demux plugin
2474 dnl
2475 AC_ARG_ENABLE(mpc,
2476   [  --enable-mpc            Mpc demux support (default enabled)])
2477 if test "${enable_mpc}" != "no"
2478 then
2479   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2480     VLC_ADD_PLUGINS([mpc])
2481     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2482 fi
2483
2484 dnl
2485 dnl  game music emu demux plugin
2486 dnl
2487 AC_ARG_ENABLE(gme,
2488   [  --enable-gme            Game Music Emu demux support (default enabled)])
2489 if test "${enable_gme}" != "no" -a "${CXX}" != "";
2490 then
2491   AC_LANG_PUSH(C++)
2492   AC_ARG_WITH(gme-tree,
2493   [    --with-gme-tree=PATH gme tree for static linking])
2494   if test -n "${with_gme_tree}"
2495   then
2496     AC_MSG_CHECKING(for libgme.a in ${with_mod_tree})
2497     real_gme_tree="`cd ${with_gme_tree} 2>/dev/null && pwd`"
2498     if test -z "${real_gme_tree}"
2499     then
2500       dnl  The given directory can't be found
2501       AC_MSG_RESULT(no)
2502       AC_MSG_ERROR([cannot cd to ${with_gme_tree}])
2503     fi
2504     if test -f "${real_gme_tree}/gme/libgme.a"
2505     then
2506       dnl  Use a custom gme
2507       AC_MSG_RESULT(${real_gme_tree}/gme/libgme.a)
2508       VLC_ADD_PLUGINS([gme])
2509       VLC_ADD_LDFLAGS([gme],[${real_gme_tree}/gme/libgme.a])
2510       VLC_ADD_CXXFLAGS([gme],[-I${real_gme_tree}/gme])
2511     else
2512       dnl  The given gme wasn't built
2513       AC_MSG_RESULT(no)
2514       AC_MSG_ERROR([cannot find ${real_mod_tree}/gme/libgme.a, make sure you compiled gme in ${with_gme_tree}])
2515     fi
2516   else
2517       AC_MSG_WARN([only static linking is available, you must provide a gme-tree])
2518   fi
2519   AC_LANG_POP(C++)
2520 fi
2521
2522 dnl
2523 dnl  Codec plugins
2524 dnl
2525
2526 AC_ARG_WITH(,[Codec plugins:])
2527
2528 dnl
2529 dnl  mad plugin
2530 dnl
2531 AC_ARG_ENABLE(mad,
2532   [  --enable-mad            libmad module (default enabled)])
2533 if test "${enable_mad}" != "no"
2534 then
2535   AC_ARG_WITH(mad,
2536     [    --with-mad=PATH       path to libmad],[],[])
2537   if test "${with_mad}" != "no" -a -n "${with_mad}"
2538   then
2539     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2540     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2541   fi
2542
2543   AC_ARG_WITH(mad-tree,
2544     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2545   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2546   then
2547     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2548     if test -z "${real_mad_tree}"
2549     then
2550       dnl  The given directory can't be found
2551       AC_MSG_RESULT(no)
2552       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2553     fi
2554     dnl  Use a custom libmad
2555     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2556     if test -f ${real_mad_tree}/mad.h
2557     then
2558       AC_MSG_RESULT(yes)
2559       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2560       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2561       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2562       AC_CHECK_LIB(mad, mad_bit_init, [
2563         VLC_ADD_BUILTINS([mpgatofixed32])
2564         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2565         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2566       ],[])
2567       LDFLAGS="${LDFLAGS_save}"
2568     else
2569       AC_MSG_RESULT(no)
2570       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2571     fi
2572   else
2573     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2574     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2575     AC_CHECK_HEADERS(mad.h, ,
2576       [ 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.]) ])
2577     AC_CHECK_LIB(mad, mad_bit_init, [
2578       VLC_ADD_PLUGINS([mpgatofixed32])
2579       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2580       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2581     CPPFLAGS="${CPPFLAGS_save}"
2582     LDFLAGS="${LDFLAGS_save}"
2583   fi
2584 fi
2585
2586 dnl
2587 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2588 dnl
2589 AC_CHECK_HEADERS(id3tag.h, [
2590   AC_CHECK_HEADERS(zlib.h, [
2591     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2592     VLC_ADD_PLUGINS([id3tag])]) ])
2593
2594 dnl
2595 dnl  ffmpeg decoder/demuxer plugin
2596 dnl
2597 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2598 dnl                             4- default place, 
2599
2600 AC_ARG_ENABLE(ffmpeg,
2601 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2602 if test "${enable_ffmpeg}" != "no"
2603 then
2604
2605 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2606
2607  AC_ARG_WITH(ffmpeg-mp3lame,
2608    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2609    [
2610      if test "$with_ffmpeg_mp3lame" = "yes";    then
2611         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2612      fi])
2613
2614  AC_ARG_WITH(ffmpeg-faac,
2615    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2616    [
2617      if test "$with_ffmpeg_faac" = "yes"; then
2618         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2619      fi])
2620
2621  AC_ARG_WITH(ffmpeg-dts,
2622    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2623    [
2624      if test "$with_ffmpeg_dts" = "yes"; then
2625              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2626              AC_CHECK_LIB(dts_pic, dts_free, 
2627                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2628                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2629              LDFLAGS="${LDFLAGS_save}"
2630      fi])
2631
2632  AC_ARG_WITH(ffmpeg-vorbis,
2633    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2634    [
2635      if test "$with_ffmpeg_vorbis" = "yes"; then
2636         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2637      fi])
2638
2639  AC_ARG_WITH(ffmpeg-theora,
2640    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2641    [
2642      if test "$with_ffmpeg_theora" = "yes"; then
2643         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2644      fi])
2645
2646  AC_ARG_WITH(ffmpeg-ogg,
2647    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2648    [
2649      if test "$with_ffmpeg_ogg" = "yes"; then
2650         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2651      fi])
2652
2653  AC_ARG_WITH(ffmpeg-zlib,
2654    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2655    [
2656      if test "$with_ffmpeg_zlib" = "yes"; then
2657                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2658      fi])
2659
2660  dnl
2661  dnl test for --with-ffmpeg-tree
2662  dnl
2663  AC_ARG_WITH(ffmpeg-tree,
2664    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2665
2666  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2667    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2668    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2669    if test -z "${real_ffmpeg_tree}"; then
2670      dnl  The given directory can't be found
2671      AC_MSG_RESULT(no)
2672      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2673    fi
2674    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2675      dnl  The given libavcodec wasn't built
2676      AC_MSG_RESULT(no)
2677      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2678    fi
2679    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2680      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2681        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2682      elif test -f "${real_ffmpeg_tree}/libpostproc/libpostproc.a"; then 
2683         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libpostproc ${real_ffmpeg_tree}/libpostproc/libpostproc.a])
2684         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}])
2685      else
2686        dnl  The given libavcodec wasn't built with --enable-pp
2687        AC_MSG_RESULT(no)
2688        AC_MSG_ERROR([cannot find libpostproc.a in ${real_ffmpeg_tree}/[libavcodec/]libpostproc/. Make sure you configured ffmpeg with --enable-pp])
2689      fi
2690    fi
2691    dnl  Use a custom libffmpeg
2692    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2693
2694    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2695      if test "${with_ffmpeg_zlib}" != "yes"; then
2696        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2697      fi
2698    fi
2699    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2700      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2701        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2702      fi
2703    fi
2704    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2705      if test "${with_ffmpeg_faac}" != "yes"; then
2706        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2707      fi
2708    fi
2709    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2710      if test "${with_ffmpeg_dts}" != "yes"; then
2711        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2712        AC_CHECK_LIB(dts_pic, dts_free, 
2713          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2714          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2715        LDFLAGS="${LDFLAGS_save}"
2716      fi
2717    fi
2718    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2719      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2720    fi
2721    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2722      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2723    fi
2724    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2725      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2726    fi
2727
2728    VLC_ADD_BUILTINS([ffmpeg])
2729    if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes" ; then
2730      VLC_ADD_BUILTINS([stream_out_switcher])
2731    fi
2732
2733    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2734      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2735      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2736    fi
2737
2738    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2739    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2740
2741    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2742      AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2743      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2744      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2745    fi
2746 else    
2747     
2748 dnl Look for a ffmpeg-config (we are on debian )
2749  
2750   FFMPEG_PATH="${PATH}"
2751   AC_ARG_WITH(ffmpeg-config-path,
2752     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2753     [ if test "${with_ffmpeg_config_path}" != "no"
2754       then
2755         FFMPEG_PATH="${with_ffmpeg_config_path}"
2756       fi ])
2757   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2758   if test "${FFMPEG_CONFIG}" != "no"
2759   then
2760     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2761     AC_CHECK_HEADERS(ffmpeg/avformat.h)
2762     AC_CHECK_HEADERS(ffmpeg/avutil.h)
2763     AC_CHECK_HEADERS(postproc/postprocess.h)
2764     VLC_ADD_PLUGINS([ffmpeg])
2765     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2766         VLC_ADD_PLUGINS([stream_out_switcher])
2767     fi
2768     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2769     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2770  
2771  else
2772
2773 dnl Trying with pkg-config
2774    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2775     [
2776      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2777      AC_CHECK_HEADERS(ffmpeg/avformat.h)
2778      AC_CHECK_HEADERS(ffmpeg/avutil.h)
2779      AC_CHECK_HEADERS(postproc/postprocess.h)
2780      if test "${SYS}" = "darwin"; then
2781         VLC_ADD_BUILTINS([ffmpeg])
2782      else
2783         VLC_ADD_PLUGINS([ffmpeg])
2784      fi
2785      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2786         if test "${SYS}" = "darwin"; then
2787             VLC_ADD_BUILTINS([stream_out_switcher])
2788         else
2789             VLC_ADD_PLUGINS([stream_out_switcher])
2790         fi
2791      fi
2792      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2793      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
2794      dnl newer ffmpeg have a separate libpostproc
2795      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2796        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2797        ],[ true ])
2798     ],[
2799      
2800     dnl
2801     dnl last chance: at the default place
2802     dnl
2803       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2804       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2805       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2806       AC_CHECK_HEADERS(ffmpeg/avformat.h)
2807       AC_CHECK_HEADERS(ffmpeg/avutil.h)
2808       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2809
2810       AC_CHECK_LIB(avutil, av_crc_init, [
2811         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2812         LDAVUTIL="-lavutil"])
2813
2814       AC_CHECK_LIB(avcodec, avcodec_init, [
2815         VLC_ADD_BUILTINS([ffmpeg])
2816         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2817         if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
2818             VLC_ADD_BUILTINS([stream_out_switcher])
2819         fi],
2820          [ 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])
2821
2822       
2823       AC_CHECK_LIB(postproc, pp_postprocess, [
2824         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])],
2825         AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
2826         [$LDAVUTIL])
2827
2828       AC_CHECK_LIB(avformat, av_open_input_stream, [
2829         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2830       LDFLAGS="${LDFLAGS_save}"
2831       CPPFLAGS="${CPPFLAGS_save}"
2832     ])
2833   fi
2834  fi 
2835 fi
2836
2837 dnl
2838 dnl  ffmpegaltivec plugin
2839 dnl
2840 AC_ARG_ENABLE(ffmpegaltivec,
2841 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2842 if test "${enable_ffmpegaltivec}" = "yes"
2843 then
2844   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2845     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2846     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2847     if test -z "${real_ffmpeg_tree}"; then
2848       dnl  The given directory can't be found
2849       AC_MSG_RESULT(no)
2850       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2851     fi
2852     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2853       dnl  The given libavcodecaltivec wasn't built
2854       AC_MSG_RESULT(no)
2855       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2856     fi
2857     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2858       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2859       AC_MSG_RESULT(no)
2860       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2861     fi
2862     dnl  Use a custom libffmpeg
2863     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2864     VLC_ADD_BUILTINS([ffmpegaltivec])
2865     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2866     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2867     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2868
2869     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2870       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
2871       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2872       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2873     fi
2874     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2875     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2876   fi
2877 fi
2878
2879 dnl
2880 dnl  faad decoder plugin
2881 dnl
2882 AC_ARG_ENABLE(faad,
2883 [  --enable-faad           faad codec (default disabled)])
2884 if test "${enable_faad}" = "yes"
2885 then
2886   AC_ARG_WITH(faad-tree,
2887   [    --with-faad-tree=PATH faad tree for static linking])
2888   if test -n "${with_faad_tree}"
2889   then
2890     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2891     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2892     if test -z "${real_faad_tree}"
2893     then
2894       dnl  The given directory can't be found
2895       AC_MSG_RESULT(no)
2896       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2897     fi
2898     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2899     then
2900       dnl  Use a custom faad
2901       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2902       VLC_ADD_BUILTINS([faad])
2903       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2904       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2905     else
2906       dnl  The given libfaad wasn't built
2907       AC_MSG_RESULT(no)
2908       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2909     fi
2910   else
2911     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2912     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2913     AC_CHECK_HEADERS(faad.h, ,
2914       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2915     AC_CHECK_LIB(faad, faacDecOpen, [
2916       VLC_ADD_PLUGINS([faad])
2917       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2918       AC_CHECK_LIB(faad, NeAACDecOpen, [
2919         VLC_ADD_PLUGINS([faad])
2920         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2921         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2922     LDFLAGS="${LDFLAGS_save}"
2923     CPPFLAGS="${CPPFLAGS_save}"
2924   fi
2925 fi
2926
2927 dnl
2928 dnl twolame encoder plugin
2929 dnl
2930 AC_ARG_ENABLE(twolame,
2931 [  --enable-twolame        twolame codec (default disabled)])
2932 if test "${enable_twolame}" = "yes"
2933 then
2934   AC_ARG_WITH(twolame-tree,
2935   [    --with-twolame-tree=PATH twolame tree for static linking])
2936   if test -n "${with_twolame_tree}"
2937   then
2938     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2939     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2940     if test -z "${real_twolame_tree}"
2941     then
2942       dnl  The given directory can't be found
2943       AC_MSG_RESULT(no)
2944       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2945     fi
2946     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2947     then
2948       dnl  Use a custom twolame
2949       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2950       VLC_ADD_BUILTINS([twolame])
2951       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2952       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2953     else
2954       dnl  The given libtwolame wasn't built
2955       AC_MSG_RESULT(no)
2956       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2957     fi
2958   else
2959     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2960     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2961     AC_CHECK_HEADERS(twolame.h, ,
2962       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2963     AC_CHECK_LIB(twolame, twolame_init, [
2964       VLC_ADD_PLUGINS([twolame])
2965       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2966         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2967     LDFLAGS="${LDFLAGS_save}"  
2968     CPPFLAGS="${CPPFLAGS_save}"
2969   fi
2970 fi
2971
2972 dnl
2973 dnl  QuickTime plugin
2974 dnl
2975 AC_ARG_ENABLE(quicktime,
2976   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2977 if test "${enable_quicktime}" != "no" &&
2978   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2979 then
2980   if test "${SYS}" = "mingw32"; then
2981     VLC_ADD_BUILTINS([quicktime])
2982   else
2983   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2984     [ VLC_ADD_BUILTINS([quicktime])
2985       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2986     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2987   fi
2988 fi
2989
2990 dnl
2991 dnl  Real plugin
2992 dnl
2993 AC_ARG_ENABLE(real,
2994   [  --enable-real           Real audio module (default disabled)])
2995 if test "${enable_real}" = "yes"; then
2996   VLC_ADD_PLUGINS([realaudio])
2997 fi
2998
2999 dnl
3000 dnl  Real RTSP plugin
3001 dnl
3002 AC_ARG_ENABLE(realrtsp,
3003   [  --enable-realrtsp       Real RTSP module (default disabled)])
3004 if test "${enable_realrtsp}" = "yes"; then
3005   VLC_ADD_PLUGINS([access_realrtsp])
3006 fi
3007
3008 dnl
3009 dnl MP4 module
3010 dnl
3011 AC_CHECK_HEADERS(zlib.h, [
3012   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv gme],[-lz])
3013 ] )
3014
3015 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3016   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
3017 ] )
3018
3019 dnl
3020 dnl skins2 module
3021 dnl
3022 AC_CHECK_HEADERS(libtar.h, [
3023   VLC_ADD_LDFLAGS([skins2],[-ltar])
3024 ] )
3025
3026
3027
3028 dnl
3029 dnl A52/AC3 decoder plugin
3030 dnl
3031 AC_ARG_ENABLE(a52,
3032   [  --enable-a52            A/52 support with liba52 (default enabled)])
3033 if test "${enable_a52}" != "no"
3034 then
3035   AC_ARG_WITH(a52,
3036     [    --with-a52=PATH       a52 headers and libraries])
3037   AC_ARG_WITH(a52-tree,
3038     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3039   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3040   then
3041     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3042     if test -z "${real_a52_tree}"
3043     then
3044       dnl  The given directory can't be found
3045       AC_MSG_RESULT(no)
3046       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3047     fi
3048     dnl  Use a custom a52dec
3049     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3050     if test -f ${real_a52_tree}/include/a52.h
3051     then
3052       AC_MSG_RESULT(yes)
3053       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3054       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3055       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
3056       AC_CHECK_LIB(a52, a52_free, [
3057         VLC_ADD_BUILTINS([a52tofloat32])
3058         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3059         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
3060         ],[
3061         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3062         then
3063           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
3064         else
3065           AC_MSG_ERROR([the specified tree hasn't been compiled])
3066         fi
3067       ])
3068       LDFLAGS="${LDFLAGS_save}"
3069     else
3070       AC_MSG_RESULT(no)
3071       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3072     fi
3073   else
3074     if test -z "${with_a52}"
3075     then
3076       LDFLAGS_test=""
3077       CPPFLAGS_test=""
3078     else
3079       LDFLAGS_test="-L${with_a52}/lib"
3080       CPPFLAGS_test="-I${with_a52}/include"
3081     fi
3082     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3083     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3084     AC_CHECK_HEADERS(a52dec/a52.h, [
3085       AC_CHECK_LIB(a52, a52_free, [
3086         VLC_ADD_PLUGINS([a52tofloat32])
3087         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
3088         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3089       ],[
3090         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.])
3091       ])
3092     ])
3093     CPPFLAGS="${CPPFLAGS_save}"
3094     LDFLAGS="${LDFLAGS_save}"
3095   fi
3096 fi
3097
3098 AC_ARG_WITH(a52-fixed,
3099       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3100       [
3101         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3102
3103 dnl
3104 dnl DTS Coherent Acoustics decoder plugin
3105 dnl
3106 AC_ARG_ENABLE(dts,
3107   [  --enable-dts            DTS Coherent Acoustics support with libdca (default enabled)])
3108 if test "${enable_dts}" != "no"; then
3109   AC_ARG_WITH(dts-tree,
3110     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
3111   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
3112   then
3113     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
3114     if test -z "${real_dts_tree}"
3115     then
3116       dnl  The given directory can't be found
3117       AC_MSG_RESULT(no)
3118       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
3119     fi
3120     dnl  Use a custom libdts
3121     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
3122     if test -f ${real_dts_tree}/include/dts.h
3123     then
3124       AC_MSG_RESULT(yes)
3125       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
3126       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
3127       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3128       AC_CHECK_LIB(dts_pic, dts_free, [
3129         VLC_ADD_PLUGINS([dtstofloat32])
3130         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3131         ],[
3132         AC_CHECK_LIB(dts, dts_free, [
3133           VLC_ADD_BUILTINS([dtstofloat32])
3134           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3135           ],[
3136           if test -f ${real_dts_tree}/libdts/libdts.a
3137           then
3138             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
3139           else
3140             AC_MSG_ERROR([the specified tree hasn't been compiled])
3141           fi
3142         ])
3143       ], [-lm])
3144       LDFLAGS="${LDFLAGS_save}"
3145     else
3146       AC_MSG_RESULT(no)
3147       AC_MSG_ERROR([the specified tree doesn't have dts.h])
3148     fi
3149   else
3150     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
3151     AC_CHECK_HEADERS(dts.h, [
3152       AC_CHECK_LIB(dts_pic, dts_free, [
3153         VLC_ADD_PLUGINS([dtstofloat32])
3154         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic -lm])
3155       ],[
3156         AC_CHECK_LIB(dts, dts_free, [
3157           VLC_ADD_BUILTINS([dtstofloat32])
3158           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
3159         ],[
3160           if test "${enable_dts}" = "yes"; then
3161             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
3162           fi
3163         ])
3164       ], [-lm])
3165     ])
3166     LDFLAGS="${LDFLAGS_save}"
3167   fi
3168 fi
3169
3170 dnl
3171 dnl  Flac plugin
3172 dnl
3173 AC_ARG_ENABLE(flac,
3174   [  --enable-flac           flac decoder support (default disabled)])
3175 if test "${enable_flac}" = "yes"
3176 then
3177   AC_ARG_WITH(flac-tree,
3178   [    --with-flac-tree=PATH flac tree for static linking])
3179   if test -n "${with_flac_tree}"
3180   then
3181     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3182     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3183     if test -z "${real_flac_tree}"
3184     then
3185       dnl  The given directory can't be found
3186       AC_MSG_RESULT(no)
3187       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3188     fi
3189     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3190     then
3191       dnl  Use a custom flac
3192       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3193       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3194       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
3195       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3196     else
3197       dnl  The given flac wasn't built
3198       AC_MSG_RESULT(no)
3199       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3200     fi
3201   else
3202     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3203       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3204      ],[])
3205   fi
3206 fi
3207
3208 dnl
3209 dnl  Libmpeg2 plugin
3210 dnl
3211 AC_ARG_ENABLE(libmpeg2,
3212   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3213 if test "${enable_libmpeg2}" != "no"
3214 then
3215   AC_ARG_WITH(libmpeg2-tree,
3216   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3217   if test -n "${with_libmpeg2_tree}"
3218   then
3219     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3220     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3221     if test -z "${real_libmpeg2_tree}"
3222     then
3223       dnl  The given directory can't be found
3224       AC_MSG_RESULT(no)
3225       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3226     fi
3227     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3228     then
3229       dnl  Use a custom libmpeg2
3230       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3231       VLC_ADD_BUILTINS([libmpeg2])
3232       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3233       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3234       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3235     else
3236       dnl  The given libmpeg2 wasn't built
3237       AC_MSG_RESULT(no)
3238       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3239     fi
3240   else
3241     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3242       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3243       AC_EGREP_CPP(yes,
3244         [#include <mpeg2dec/mpeg2.h>
3245          #ifdef MPEG2_RELEASE
3246          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3247          yes
3248          #endif
3249          #endif],
3250         [AC_MSG_RESULT([yes])
3251           VLC_ADD_PLUGINS([libmpeg2])
3252           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3253         [AC_MSG_RESULT([no])
3254           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.])])],
3255
3256       [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.])]
3257     )
3258   fi
3259 fi
3260
3261 dnl
3262 dnl  Vorbis plugin
3263 dnl
3264 AC_ARG_ENABLE(vorbis,
3265   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3266 if test "${enable_vorbis}" != "no"
3267 then
3268   AC_ARG_WITH(vorbis-tree,
3269   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3270   if test -n "${with_vorbis_tree}"
3271   then
3272     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3273     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3274     if test -z "${real_vorbis_tree}"
3275     then
3276       dnl  The given directory can't be found
3277       AC_MSG_RESULT(no)
3278       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3279     fi
3280     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3281     then
3282       dnl  Use a custom vorbis 
3283       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3284       VLC_ADD_PLUGINS([vorbis])
3285       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3286       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3287     else
3288       dnl  The given vorbis wasn't built
3289       AC_MSG_RESULT(no)
3290       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3291     fi
3292   else
3293     AC_CHECK_HEADERS(vorbis/codec.h, [
3294       VLC_ADD_PLUGINS([vorbis])
3295       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg -lm]) ],[])
3296
3297     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3298       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc -lm]) ],[])
3299   fi
3300 fi
3301
3302 dnl
3303 dnl  Tremor plugin
3304 dnl
3305 AC_ARG_ENABLE(tremor,
3306   [  --enable-tremor         Tremor decoder support (default disabled)])
3307 if test "${enable_tremor}" = "yes"
3308 then
3309   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3310     VLC_ADD_PLUGINS([tremor])
3311     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3312    ],[])
3313 fi
3314
3315 dnl
3316 dnl  Speex plugin
3317 dnl
3318 AC_ARG_ENABLE(speex,
3319   [  --enable-speex          Speex decoder support (default enabled)])
3320 if test "${enable_speex}" != "no"
3321 then
3322   AC_ARG_WITH(speex-tree,
3323   [    --with-speex-tree=PATH speex tree for static linking])
3324   if test -n "${with_speex_tree}"
3325   then
3326     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3327     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3328     if test -z "${real_speex_tree}"
3329     then
3330       dnl  The given directory can't be found
3331       AC_MSG_RESULT(no)
3332       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3333     fi
3334     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3335     then
3336       dnl  Use a custom speex
3337       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3338       VLC_ADD_PLUGINS([speex])
3339       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3340       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3341     else
3342       dnl  The given speex wasn't built
3343       AC_MSG_RESULT(no)
3344       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3345     fi
3346   else
3347     AC_CHECK_HEADERS(speex/speex.h, [
3348       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3349       AC_CHECK_LIB(speex, speex_decode_int, [
3350         VLC_ADD_PLUGINS([speex])
3351         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3352         [ AC_MSG_RESULT([no])
3353           AC_MSG_WARN([Your libspeex is too old, please get the development
3354                        version.]) ],[])
3355       LDFLAGS="${LDFLAGS_save}"
3356       ],[])
3357   fi
3358 fi
3359
3360 dnl
3361 dnl  tarkin decoder plugin
3362 dnl
3363 AC_ARG_ENABLE(tarkin,
3364 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3365 if test "${enable_tarkin}" = "yes"
3366 then
3367   AC_ARG_WITH(tarkin-tree,
3368   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3369   if test -n "${with_tarkin_tree}"
3370   then
3371     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3372     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3373     if test -f "${real_tarkin_tree}/tarkin.o"
3374     then
3375       VLC_ADD_BUILTINS([tarkin])
3376       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3377       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])
3378       AC_MSG_RESULT(yes)
3379     else
3380       dnl  The given tarkin tree wasn't built
3381       AC_MSG_RESULT(no)
3382       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3383                     make sure you compiled tarkin in ${with_tarkin_tree}])
3384     fi
3385   fi
3386 fi
3387
3388 dnl
3389 dnl  theora decoder plugin
3390 dnl
3391 AC_ARG_ENABLE(theora,
3392 [  --enable-theora         experimental theora codec (default disabled)])
3393 if test "${enable_theora}" = "yes"
3394 then
3395   AC_CHECK_HEADERS(theora/theora.h, [
3396     AC_CHECK_LIB(theora, theora_granule_time, [
3397       VLC_ADD_PLUGINS([theora])
3398       theora_libs="-ltheora -logg"
3399       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3400       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3401 You also need to check that you have a libogg posterior to the 1.0 release.])],
3402       [-logg])
3403   ])
3404 fi
3405
3406 dnl
3407 dnl  dirac decoder plugin
3408 dnl
3409 AC_ARG_ENABLE(dirac,
3410 [  --enable-dirac          experimental dirac codec (default disabled)])
3411 if test "${enable_dirac}" = "yes"; then
3412   PKG_CHECK_MODULES(DIRAC,dirac, [
3413       VLC_ADD_PLUGINS([dirac])
3414       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3415       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3416       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3417   ])
3418 fi
3419
3420 dnl
3421 dnl  PNG decoder module
3422 dnl
3423 AC_ARG_ENABLE(png,
3424   [  --enable-png            PNG support (default enabled)])
3425 if test "${enable_png}" != "no"; then
3426 AC_CHECK_HEADERS(png.h, [
3427   LDFLAGS="${LDFLAGS_save} -lz"
3428   AC_CHECK_LIB(png, png_set_rows, [
3429     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3430     VLC_ADD_PLUGINS([png])
3431     VLC_ADD_PLUGINS([osdmenu])
3432     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3433     [],[-lz])
3434   LDFLAGS="${LDFLAGS_save}"
3435   ])
3436 fi
3437
3438 dnl
3439 dnl H264 encoder plugin (using libx264)
3440 dnl
3441 AC_ARG_ENABLE(x264,
3442   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3443 if test "${enable_x264}" != "no"; then
3444   AC_ARG_WITH(x264-tree,
3445     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3446   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3447   then
3448     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3449     if test -z "${real_x264_tree}"
3450     then
3451       dnl  The given directory can't be found
3452       AC_MSG_RESULT(no)
3453       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3454     fi
3455     dnl  Use a custom libx264
3456     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3457     if test -f ${real_x264_tree}/x264.h
3458     then
3459       AC_MSG_RESULT(yes)
3460       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3461       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3462       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3463       AC_CHECK_LIB(x264, x264_encoder_open, [
3464         VLC_ADD_BUILTINS([x264])
3465         VLC_ADD_LDFLAGS([x264],[-lx264])
3466       ],[
3467         AC_MSG_ERROR([the specified tree hasn't been compiled])
3468       ])
3469       LDFLAGS="${LDFLAGS_save}"
3470     else
3471       AC_MSG_RESULT(no)
3472       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3473     fi
3474   else
3475     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3476     AC_CHECK_HEADERS(x264.h, [
3477       AC_CHECK_LIB(x264, x264_encoder_open, [
3478         VLC_ADD_PLUGINS([x264])
3479         VLC_ADD_LDFLAGS([x264],[-lx264])
3480       ],[
3481         if test "${enable_x264}" = "yes"; then
3482             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3483           fi
3484       ])
3485     ])
3486     LDFLAGS="${LDFLAGS_save}"
3487   fi
3488 fi
3489
3490 dnl
3491 dnl  CMML plugin
3492 dnl
3493 AC_ARG_ENABLE(cmml,
3494   [  --enable-cmml           CMML support (default enabled)])
3495 if test "${enable_cmml}" != "no"
3496 then
3497   VLC_ADD_PLUGINS([cmml])
3498 fi
3499
3500
3501 dnl
3502 dnl  Video plugins
3503 dnl
3504
3505 AC_ARG_WITH(,[Video plugins:])
3506
3507 dnl Check for DPMS
3508 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3509   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3510   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3511     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3512     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3513       AC_MSG_RESULT(yes)
3514       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3515                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3516     ],[
3517       AC_MSG_RESULT(no)
3518     ])
3519   ],,[
3520     #include <X11/Xlib.h>
3521   ])
3522   CPPFLAGS="${CPPFLAGS_save}"
3523 fi
3524
3525 dnl
3526 dnl  X11 module
3527 dnl  (enabled by default except on win32)
3528 dnl
3529 AC_ARG_ENABLE(x11,
3530   [  --enable-x11            X11 support (default enabled)])
3531 if test "${enable_x11}" != "no" &&
3532   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3533    test "${enable_x11}" = "yes"); then
3534   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3535   AC_CHECK_HEADERS(X11/Xlib.h, [
3536     VLC_ADD_PLUGINS([x11 panoramix])
3537     VLC_ADD_LDFLAGS([x11 panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3538     VLC_ADD_CPPFLAGS([x11 panoramix],[${X_CFLAGS}])
3539   ])
3540   CPPFLAGS="${CPPFLAGS_save}"
3541 fi
3542
3543 dnl
3544 dnl  XVideo module
3545 dnl  (enabled by default except on win32)
3546 dnl
3547 AC_ARG_ENABLE(xvideo,
3548   [  --enable-xvideo         XVideo support (default enabled)])
3549 if test "${enable_xvideo}" != "no" &&
3550   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3551    test "${enable_xvideo}" = "yes"); then
3552   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3553   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3554     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3555     AC_CHECK_LIB(Xv,XvPutImage,[
3556       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3557       # test for libXv_pic.
3558       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3559         VLC_ADD_PLUGINS([xvideo])
3560         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3561         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3562       else
3563         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3564           VLC_ADD_PLUGINS([xvideo])
3565           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3566           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3567         ],[
3568           VLC_ADD_BUILTINS([xvideo])
3569           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3570           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3571         ])
3572       fi
3573     ])
3574     CFLAGS="${CFLAGS_save}"
3575   ]
3576   CPPFLAGS="${CPPFLAGS_save}")
3577 fi
3578
3579 dnl
3580 dnl  GLX module
3581 dnl  (enabled by default except on win32)
3582 dnl
3583 AC_ARG_ENABLE(glx,
3584   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3585 if test "${enable_glx}" != "no" &&
3586   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3587    test "${enable_glx}" = "yes"); then
3588   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3589   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h, [
3590       VLC_ADD_PLUGINS([glx])
3591       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3592       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3593    ])
3594   CPPFLAGS="${CPPFLAGS_save}"
3595 fi
3596
3597 dnl
3598 dnl  XVMC module
3599 dnl  (enabled by default except on win32)
3600 dnl
3601 AC_ARG_ENABLE(xvmc,
3602   [  --enable-xvmc            XVMC support (default disabled)])
3603 if test "${enable_xvmc}" = "yes" &&
3604   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3605    test "${enable_xvmc}" = "yes"); then
3606   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3607   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3608     VLC_ADD_PLUGINS([xvmc])
3609     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3610     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3611   ])
3612   CPPFLAGS="${CPPFLAGS_save}"
3613 fi
3614
3615 dnl
3616 dnl  Check for the Xinerama extension
3617 dnl
3618 AC_ARG_ENABLE(xinerama,
3619   [  --enable-xinerama       Xinerama support (default enabled)])
3620 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3621   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3622    test "${enable_xvideo}" = "yes"); then
3623   ac_cv_have_xinerama="no"
3624   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3625   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3626   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3627     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3628       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3629       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3630       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3631       ac_cv_have_xinerama="yes"
3632     ],[
3633       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3634         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3635         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3636         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3637         ac_cv_have_xinerama="yes"
3638       ])
3639     ])
3640   ])
3641   if test "${ac_cv_have_xinerama}" = "yes"; then
3642     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3643   fi
3644   CFLAGS="${CFLAGS_save}"
3645   CPPFLAGS="${CPPFLAGS_save}"
3646
3647 dnl
3648 dnl  Check for XF86VidMode extension
3649 dnl
3650   ac_cv_have_xf86vidmode="no"
3651   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3652   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3653   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3654     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3655       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3656       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3657       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3658       ac_cv_have_xf86vidmode="yes"
3659     ],[
3660       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3661         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3662         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3663         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3664         ac_cv_have_xf86vidmode="yes"
3665       ])
3666     ])
3667   ],[true],
3668 [#ifdef HAVE_X11_XLIB_H
3669 # include <X11/Xlib.h>
3670 #endif]
3671    )
3672   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3673     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3674   ])
3675   CFLAGS="${CFLAGS_save}"
3676   CPPFLAGS="${CPPFLAGS_save}"
3677
3678 fi
3679
3680 dnl
3681 dnl  OpenGL module
3682 dnl  (enabled by default except on beos)
3683 dnl
3684 AC_ARG_ENABLE(opengl,
3685   [  --enable-opengl         OpenGL support (default enabled)])
3686 if test "${enable_opengl}" != "no" &&
3687    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3688   if test "${SYS}" != "darwin"; then
3689     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
3690       VLC_ADD_PLUGINS([opengl])
3691       if test "${SYS}" != "mingw32"; then
3692         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3693       else
3694         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
3695       fi
3696     ])
3697   else
3698     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3699     VLC_ADD_PLUGINS([opengl])
3700     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3701   fi
3702 fi
3703
3704 dnl
3705 dnl  SDL module
3706 dnl
3707 AC_ARG_ENABLE(sdl,
3708   [  --enable-sdl            SDL support (default enabled)])
3709 if test "${enable_sdl}" != "no"
3710 then
3711   SDL_PATH="${PATH}"
3712   AC_ARG_WITH(sdl-config-path,
3713     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3714     [ if test "${with_sdl_config_path}" != "no"
3715       then
3716         SDL_PATH="${with_sdl_config_path}:${PATH}"
3717       fi ])
3718   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3719   SDL_CONFIG="${SDL12_CONFIG}"
3720   SDL_HEADER="SDL12/SDL.h"
3721   SDL_IMAGE="SDL12/SDL_image.h"
3722   if test "${SDL_CONFIG}" = "no"
3723   then
3724     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3725     SDL_CONFIG=${SDL11_CONFIG}
3726     SDL_HEADER="SDL11/SDL.h"
3727     SDL_IMAGE="SDL11/SDL_image.h"
3728   fi
3729   if test "${SDL_CONFIG}" = "no"
3730   then
3731     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3732     SDL_HEADER="SDL/SDL.h"
3733     SDL_IMAGE="SDL/SDL_image.h"
3734   fi
3735   # check for cross-compiling
3736   SDL_PREFIX=
3737   AC_ARG_WITH(sdl-prefix,
3738     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3739                                e.g use as:
3740                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3741   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3742   then
3743     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3744   fi
3745   if test "${SDL_CONFIG}" != "no"
3746   then
3747     # SDL on Darwin is heavily patched and can only run SDL_image
3748     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3749       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3750     fi
3751     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3752     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3753     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3754     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3755       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3756       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3757           As a last resort we also test for SDL.h presence),
3758       [ AC_MSG_ERROR([The development package for SDL is not installed.
3759 Please install it and try again. Alternatively you can also configure with
3760 --disable-sdl.])
3761       ])])
3762     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3763       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3764       VLC_ADD_PLUGINS([sdl_image])
3765       AC_CHECK_LIB(png, png_set_rows,
3766         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3767       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3768         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3769       AC_CHECK_LIB(tiff, TIFFClientOpen,
3770         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3771       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3772       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3773           As a last resort we also test for SDL_image.h presence),
3774       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3775 You should install it alongside your SDL package.])
3776       ])])
3777     CPPFLAGS="${CPPFLAGS_save}"
3778     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3779     then
3780       AC_MSG_ERROR([The development package for SDL is not installed.
3781 Please install it and try again. Alternatively you can also configure with
3782 --disable-sdl.])
3783     fi
3784
3785   elif test "${enable_sdl}" =  "yes"
3786   then
3787     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3788 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3789     ])
3790   fi
3791 fi
3792
3793 dnl
3794 dnl  freetype module
3795 dnl
3796 AC_ARG_ENABLE(freetype,
3797   [  --enable-freetype       freetype support (default enabled)])
3798 AC_ARG_ENABLE(fribidi,
3799   [  --enable-fribidi        fribidi support (default enabled)])
3800 if test "${enable_freetype}" != "no"
3801 then
3802   FREETYPE_PATH="${PATH}"
3803   AC_ARG_WITH(freetype-config-path,
3804     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3805     [ if test "${with_freetype_config_path}" != "no"
3806       then
3807         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3808       fi ])
3809   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3810
3811   if test "${FREETYPE_CONFIG}" != "no"
3812   then
3813     VLC_ADD_PLUGINS([freetype])
3814     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3815     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3816     AC_CHECK_HEADERS(Carbon/Carbon.h,
3817       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3818   elif test "${enable_freetype}" =  "yes"
3819   then
3820     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3821 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3822     ])
3823   fi
3824
3825   dnl fribidi support
3826   if test "${enable_fribidi}" != "no"
3827   then
3828     FRIBIDI_PATH="${PATH}"
3829     AC_ARG_WITH(fribidi-config-path,
3830       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3831       [ if test "${with_fribidi_config_path}" != "no"
3832         then
3833           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3834         fi ])
3835     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3836
3837     if test "${FRIBIDI_CONFIG}" != "no"
3838     then
3839       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3840       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3841       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3842       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3843     fi
3844   fi
3845 fi
3846
3847 dnl
3848 dnl  libxml2 module
3849 dnl
3850 AC_ARG_ENABLE(libxml2,
3851   [  --enable-libxml2        libxml2 support (default enabled)])
3852 if test "${enable_libxml2}" != "no"
3853 then
3854   XML2_PATH="${PATH}"
3855   AC_ARG_WITH(xml2-config-path,
3856     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3857     [ if test "${with_xml2_config_path}" != "no"; then
3858         XML2_PATH="${with_xml2_config_path}:${PATH}"
3859       fi ])
3860   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3861   if test "${XML2_CONFIG}" != "no"; then
3862     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3863     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3864     dnl depends on the xmlTextReader extension
3865     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3866     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3867     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3868       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3869         VLC_ADD_PLUGINS([xml]) ],[
3870           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3871           if test "${enable_xml2}" = "yes"; then
3872             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3873           fi])
3874        ],[
3875       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3876       if test "${enable_xml2}" = "yes"; then
3877         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3878       fi])
3879     LDFLAGS="${LDFLAGS_save}"
3880     CPPFLAGS="${CPPFLAGS_save}"
3881   else
3882     if test "${enable_xml2}" = "yes"; then
3883       AC_MSG_ERROR([Could not find libxml2])
3884     fi
3885   fi
3886 fi
3887
3888 dnl
3889 dnl  SVG module
3890 dnl
3891 AC_ARG_ENABLE(svg,
3892   [  --enable-svg            SVG support (default disabled)])
3893 if test "${enable_svg}" = "yes"
3894 then
3895   PKG_CHECK_MODULES(SVG, 
3896         librsvg-2.0 >= 2.9.0,
3897         [
3898           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3899           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3900           VLC_ADD_PLUGINS([svg]) ],
3901         [AC_MSG_WARN(SVG library not found)])
3902 fi
3903
3904 dnl
3905 dnl Snapshot vout module (with cache)
3906 dnl
3907 AC_ARG_ENABLE(snapshot,
3908   [  --enable-snapshot       snapshot module (default disabled)])
3909 if test "${enable_snapshot}" = "yes"
3910 then
3911   VLC_ADD_PLUGINS([snapshot])
3912 fi
3913
3914 dnl
3915 dnl  Qt Embedded module
3916 dnl  (disabled by default)
3917 dnl
3918 AC_ARG_ENABLE(qte,
3919   [  --enable-qte            QT Embedded support (default disabled)])
3920 if test "${enable_qte}" = "yes"
3921 then
3922   AC_ARG_WITH(qte,
3923   [    --with-qte=PATH       Qt Embedded headers and libraries])
3924   if test "${with_qte}" != "no" -a -n "${with_qte}"
3925   then
3926     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3927     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])
3928   else
3929     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3930     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3931   fi
3932   VLC_ADD_PLUGINS([qte])
3933   NEED_QTE_MAIN=yes
3934   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3935   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3936     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3937   ] )
3938   CPPFLAGS="${CPPFLAGS_save}"
3939 fi
3940
3941 dnl
3942 dnl  Qt Video output module
3943 dnl  (disabled by default)
3944 dnl
3945 dnl AC_ARG_ENABLE(qt_video,
3946 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3947 dnl if test "${enable_qt_video}" = "yes"
3948 dnl then
3949 dnl  VLC_ADD_PLUGINS([qt_video])
3950 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3951 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3952 dnl   AC_CHECK_LIB(qt-mt,main,[
3953 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3954 dnl  ],[
3955 dnl    AC_CHECK_LIB(qt,main,[
3956 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3957 dnl    ])
3958 dnl  ])
3959 dnl  NEED_QTE_MAIN=yes
3960 dnl  LDFLAGS="${LDFLAGS_save}"
3961 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3962 dnl fi
3963
3964 dnl
3965 dnl Roku HD1000 Video output module
3966 dnl
3967 AC_ARG_ENABLE(hd1000v,
3968   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3969 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3970   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3971    test "${enable_hd1000v}" = "yes"); then
3972   AC_LANG_PUSH([C++])
3973   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3974   [
3975     can_build_roku="yes"
3976   ],
3977   [
3978     can_build_roku="no"
3979     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3980   ])
3981   if test "$can_build_roku" = "yes"
3982   then
3983     VLC_ADD_PLUGINS([hd1000v])
3984     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3985   fi
3986   AC_LANG_POP([C++])
3987 fi
3988
3989 dnl
3990 dnl  Windows DirectX module
3991 dnl
3992
3993 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3994 then
3995   VLC_ADD_PLUGINS([panoramix])
3996 fi
3997
3998 AC_ARG_ENABLE(directx,
3999   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4000 if test "${enable_directx}" != "no"
4001 then
4002   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4003   then
4004     AC_ARG_WITH(directx,
4005     [    --with-directx=PATH   Win32 DirectX headers])
4006     if test -z "${with_directx}"
4007     then
4008       AC_CHECK_HEADERS(ddraw.h,
4009       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4010         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4011       ])
4012       AC_CHECK_HEADERS(GL/gl.h,
4013       [ VLC_ADD_PLUGINS([glwin32])
4014         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4015       ])
4016       AC_CHECK_HEADERS(d3d9.h,
4017       [ VLC_ADD_PLUGINS([direct3d])
4018         VLC_ADD_LDFLAGS([direct3d],[-ld3d9 -lgdi32])
4019       ])
4020     else
4021       AC_MSG_CHECKING(for directX headers in ${with_directx})
4022       if test -f ${with_directx}/ddraw.h
4023       then
4024         VLC_ADD_PLUGINS([vout_directx aout_directx])
4025         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4026         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4027         AC_MSG_RESULT(yes)
4028       else
4029         AC_MSG_RESULT(no)
4030         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4031       fi
4032     fi
4033   fi
4034 fi
4035
4036 dnl
4037 dnl  Linux framebuffer module
4038 dnl
4039 AC_ARG_ENABLE(fb,
4040   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4041     if test "${enable_fb}" != "no"
4042     then
4043       AC_CHECK_HEADERS(linux/fb.h, [
4044         VLC_ADD_PLUGINS([fb])
4045       ])
4046     fi
4047
4048 dnl
4049 dnl  Linux MGA module
4050 dnl
4051 AC_ARG_ENABLE(mga,
4052   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4053   [ if test "${enable_mga}" = "yes"
4054     then
4055       VLC_ADD_PLUGINS([mga])
4056     fi ])
4057
4058 dnl
4059 dnl  SVGAlib module
4060 dnl
4061 AC_ARG_ENABLE(svgalib,
4062   [  --enable-svgalib        SVGAlib support (default disabled)])
4063 if test "${enable_svgalib}" = "yes"
4064 then
4065   VLC_ADD_PLUGINS([svgalib])
4066   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4067 fi
4068
4069 dnl
4070 dnl  DirectFB module
4071 dnl
4072 AC_ARG_ENABLE(directfb,
4073   [  --enable-directfb       DirectFB support (default disabled)])
4074 if test "${enable_directfb}" = "yes"
4075 then
4076   if test "${with_directfb}" = "no"
4077   then
4078     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4079     if test "${have_directfb}"= "true"
4080     then
4081         VLC_ADD_PLUGINS([directfb])
4082         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4083         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
4084     else
4085         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
4086     fi
4087   else
4088     CPPFLAGS_save="${CPPFLAGS}"
4089     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
4090     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
4091     CPPFLAGS="${CPPFLAGS_save}"
4092     AC_ARG_WITH(directfb,
4093         [    --with-directfb=PATH  path to directfb],
4094         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
4095         then
4096             VLC_ADD_PLUGINS([directfb])
4097             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
4098             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
4099         fi ],
4100         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
4101   fi
4102 fi
4103
4104 dnl
4105 dnl  GGI module
4106 dnl
4107 AC_ARG_ENABLE(ggi,
4108   [  --enable-ggi            GGI support (default disabled)])
4109 if test "${enable_ggi}" = "yes"
4110 then
4111   VLC_ADD_PLUGINS([ggi])
4112   VLC_ADD_LDFLAGS([ggi],[-lggi])
4113   AC_ARG_WITH(ggi,
4114     [    --with-ggi=PATH       path to libggi],
4115     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4116       then
4117         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4118         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4119       fi ])
4120 fi
4121
4122 dnl
4123 dnl  Glide module
4124 dnl
4125 AC_ARG_ENABLE(glide,
4126   [  --enable-glide          Glide (3dfx) support (default disabled)])
4127 if test "${enable_glide}" = "yes"
4128 then
4129   CFLAGS_save="${CFLAGS}"
4130   AC_ARG_WITH(glide,
4131     [    --with-glide=PATH     path to libglide],
4132     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4133       then
4134         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4135         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4136         CFLAGS="$CFLAGS -I${with_glide}/include"
4137     fi ])
4138    CFLAGS="$CFLAGS -I/usr/include/glide"
4139    AC_CHECK_HEADER(glide.h,[   
4140       VLC_ADD_PLUGINS([glide])
4141       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4142       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4143     ],[
4144       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4145      ])
4146    CFAGS="${CFLAGS_save}"
4147 fi
4148
4149 dnl
4150 dnl  AA plugin
4151 dnl
4152 AC_ARG_ENABLE(aa,
4153   [  --enable-aa             aalib output (default disabled)])
4154 if test "${enable_aa}" = "yes"
4155 then
4156   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4157   if test "${have_aa}" = "true"
4158   then
4159     VLC_ADD_PLUGINS([aa])
4160     VLC_ADD_LDFLAGS([aa],[-laa])
4161   fi
4162 fi
4163
4164 dnl
4165 dnl  libcaca plugin
4166 dnl
4167 AC_ARG_ENABLE(caca,
4168   [  --enable-caca           libcaca output (default disabled)])
4169 if test "${enable_caca}" = "yes"
4170 then
4171   CACA_PATH="${PATH}"
4172   AC_ARG_WITH(caca-config-path,
4173     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4174     [ if test "${with_caca_config_path}" != "no"
4175       then
4176         CACA_PATH="${with_caca_config_path}:${PATH}"
4177       fi ])
4178   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4179   if test "${CACA_CONFIG}" != "no"
4180   then
4181     VLC_ADD_PLUGINS([caca])
4182     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4183     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4184   fi
4185 fi
4186
4187 dnl
4188 dnl  win32 GDI plugin
4189 dnl
4190 AC_ARG_ENABLE(wingdi,
4191   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4192 if test "${enable_wingdi}" != "no"; then
4193   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4194     VLC_ADD_PLUGINS([wingdi])
4195     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4196   fi
4197   if test "${SYS}" = "mingwce"; then
4198     VLC_ADD_PLUGINS([wingdi wingapi])
4199   fi
4200 fi
4201
4202 dnl
4203 dnl  Audio plugins
4204 dnl
4205
4206 AC_ARG_WITH(,[Audio plugins:])
4207
4208 dnl
4209 dnl  OSS /dev/dsp module (enabled by default except on win32)
4210 dnl
4211 AC_ARG_ENABLE(oss,
4212   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4213
4214 if test "${enable_oss}" != "no" &&
4215   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4216    test "${enable_oss}" = "yes")
4217 then
4218   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4219     VLC_ADD_PLUGINS([oss])
4220     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4221   ])
4222 fi
4223
4224 dnl
4225 dnl  Esound module
4226 dnl
4227 AC_ARG_ENABLE(esd,
4228   [  --enable-esd            Esound library support (default disabled)],
4229   [if test "${enable_esd}" = "yes"
4230    then
4231      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4232      if test "${ESD_CONFIG}" != "no"
4233      then
4234        VLC_ADD_PLUGINS([esd])
4235        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4236        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4237      fi
4238    fi])
4239
4240 dnl
4241 dnl  Portaudio module
4242 dnl
4243 AC_ARG_ENABLE(portaudio,
4244   [  --enable-portaudio      Portaudio library support (default disabled)],
4245   [if test "${enable_portaudio}" = "yes"
4246    then
4247      VLC_ADD_PLUGINS([portaudio])
4248      VLC_ADD_CXXFLAGS([portaudio],[])
4249      if test "${SYS}" = "mingw32"; then
4250         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4251      else
4252         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4253      fi
4254    fi])
4255
4256 dnl
4257 dnl  aRts module -- broken (freeze wxWidgets)
4258 dnl
4259 AC_ARG_ENABLE(arts,
4260  [  --enable-arts           aRts sound server (default disabled)],
4261  [if test "${enable_arts}" = "yes"
4262   then
4263     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4264     if test "${ARTS_CONFIG}" != "no"
4265     then
4266       VLC_ADD_PLUGINS([arts])
4267       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4268       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4269     fi
4270   fi])
4271
4272 dnl
4273 dnl  ALSA module
4274 dnl
4275 AC_ARG_ENABLE(alsa,
4276   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4277 if test "${enable_alsa}" != "no"
4278 then
4279   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4280   if test "${have_alsa}" = "true"
4281   then
4282     CFLAGS="${CFLAGS_save}"
4283     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4284                     #define ALSA_PCM_NEW_SW_PARAMS_API
4285                     #include <alsa/asoundlib.h>],
4286        [snd_pcm_hw_params_get_period_time(0,0,0);],
4287         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4288     VLC_ADD_PLUGINS([alsa])
4289     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4290   else
4291     if test "${enable_alsa}" = "yes"; then
4292       AC_MSG_ERROR([Could not find ALSA development headers])
4293     fi
4294   fi
4295 fi
4296
4297 dnl
4298 dnl  win32 waveOut plugin
4299 dnl
4300 AC_ARG_ENABLE(waveout,
4301   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4302 if test "${enable_waveout}" != "no"; then
4303   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4304     VLC_ADD_PLUGINS([waveout])
4305     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4306   fi
4307   if test "${SYS}" = "mingwce"; then
4308     VLC_ADD_PLUGINS([waveout])
4309   fi
4310 fi
4311
4312 dnl
4313 dnl  CoreAudio plugin
4314 dnl
4315 AC_ARG_ENABLE(macosx-audio,
4316   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4317 if test "${enable_macosx-audio}" != "no" &&
4318   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4319 then
4320   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4321     [ VLC_ADD_BUILTINS([auhal])
4322       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4323     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4324 fi
4325
4326 dnl
4327 dnl  Roku HD1000 audio
4328 dnl
4329 AC_ARG_ENABLE(hd1000a,
4330   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4331 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4332   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4333    test "${enable_hd1000a}" = "yes")
4334 then
4335   AC_LANG_PUSH([C++])
4336   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4337     VLC_ADD_PLUGINS([hd1000a])
4338     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4339   AC_LANG_POP([C++])
4340 fi
4341
4342 dnl
4343 dnl  JACK module
4344 dnl
4345 AC_ARG_ENABLE(jack,
4346  [  --enable-jack           JACK audio module (default disabled)],
4347  [if test "${enable_jack}" = "yes"
4348   then
4349     AC_CHECK_HEADERS(jack/jack.h, [
4350       VLC_ADD_PLUGINS([jack])
4351       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4352   fi])
4353
4354 dnl
4355 dnl  CyberLink for C++ UPnP stack
4356 dnl
4357 AC_ARG_ENABLE(cyberlink,
4358   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4359   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4360   AC_ARG_WITH(cyberlink-tree,
4361     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4362
4363   dnl
4364   dnl test for --with-cyberlink-tree
4365   dnl
4366   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4367     AC_LANG_PUSH(C++)
4368     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4369     AS_IF([test -z "${real_cyberlink_tree}"], [
4370       dnl  The given directory can't be found
4371       AC_MSG_RESULT(no)
4372       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4373     ])
4374     CPPFLAGS_save="${CPPFLAGS}"
4375     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4376     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4377     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4378       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4379         VLC_ADD_PLUGINS([upnp_cc]) 
4380       ],[
4381         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4382       ])
4383     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4384     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4385       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4386       dnl The mere fact that we have to make such an ugly check sucks
4387       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4388       LIBS_save="$LIBS"
4389       LIBS_cclink="no"
4390       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4391         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4392         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4393 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4394 using namespace CyberLink;
4395
4396 class testclass : public SearchResponseListener, public MediaPlayer
4397 {
4398     virtual void deviceSearchResponseReceived( SSDPPacket *)
4399     {
4400     }
4401
4402     public:
4403       testclass (void)
4404       {
4405         addSearchResponseListener (this);
4406         start ();
4407       }
4408 };
4409 ],[testclass l;])],[LIBS_cclink="$l"])
4410       done
4411       LIBS="${LIBS_save}"
4412       dnl should not happen - otherwise this needs fixing - hence FAILURE
4413       AS_IF([test "${LIBS_cclink}" = "no"],
4414         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4415       AC_MSG_RESULT([${LIBS_cclink}])
4416       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4417     ], [
4418       AC_MSG_RESULT(no)
4419       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4420     ])
4421     CPPFLAGS="${CPPFLAGS_save}"
4422     AC_LANG_POP([C++])
4423   ])
4424 ])
4425
4426 dnl
4427 dnl UPnP Plugin (Intel SDK)
4428 dnl
4429 AC_ARG_ENABLE(upnp,
4430   [  --enable-upnp           Intel UPnP SDK (default auto)])
4431
4432 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4433 AS_IF([test "x${enable_upnp}" != "xno"], [
4434   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4435   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4436     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4437   ])
4438   AS_IF([test "${has_upnp}" = "yes"], [
4439     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4440   ])
4441 ], [
4442   has_upnp="no"
4443 ])
4444
4445 AS_IF([test "${has_upnp}" = "yes"], [
4446   VLC_ADD_PLUGINS([upnp_intel])
4447 ])
4448
4449
4450 dnl
4451 dnl  Interface plugins
4452 dnl
4453
4454 AC_ARG_WITH(,[Interface plugins:])
4455
4456 dnl special case for BeOS
4457 if test "${SYS}" = "beos"
4458 then
4459     VLC_ADD_BUILTINS([beos])
4460 fi
4461
4462 dnl
4463 dnl Skins2 module
4464 dnl
4465 AC_ARG_ENABLE(skins2,
4466   [  --enable-skins2         Skins2 interface module (experimental)])
4467 if test "${enable_skins2}" = "yes" ||
4468   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4469    test "${SYS}" != "