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