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