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