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