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