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