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