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