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