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