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