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