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