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