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