]> git.sesse.net Git - vlc/blob - configure.ac
Fix detection of libswscale. It depends on libavutil.
[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}" != "powerpc"; 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    if test -f "${real_ffmpeg_tree}/libswscale/libswscale.a"; then
3027      AC_DEFINE(HAVE_LIBSWSCALE_TREE, 1, [Define if you have ffmpeg's libswscale.])
3028      VLC_ADD_LIBS([ffmpeg],[-L${real_ffmpeg_tree}/libswscale ${real_ffmpeg_tree}/libswscale/libswscale.a])
3029      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libswscale])
3030    fi
3031 else
3032
3033 dnl Look for a ffmpeg-config (we are on debian )
3034
3035   FFMPEG_PATH="${PATH}"
3036   AC_ARG_WITH(ffmpeg-config-path,
3037     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
3038     [ if test "${with_ffmpeg_config_path}" != "no"
3039       then
3040         FFMPEG_PATH="${with_ffmpeg_config_path}"
3041       fi ])
3042   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
3043   if test "${FFMPEG_CONFIG}" != "no"
3044   then
3045     AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3046     AC_CHECK_HEADERS(ffmpeg/avformat.h)
3047     AC_CHECK_HEADERS(ffmpeg/avutil.h)
3048     AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3049     VLC_ADD_PLUGINS([ffmpeg])
3050     if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3051         VLC_ADD_PLUGINS([stream_out_switcher])
3052     fi
3053     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
3054     VLC_ADD_LIBS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
3055
3056  else
3057
3058 dnl Trying with pkg-config
3059    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
3060     [
3061      VLC_SAVE_FLAGS
3062      CPPFLAGS="${CPPFLAGS} ${FFMPEG_CFLAGS}"
3063      CFLAGS="${CFLAGS} ${FFMPEG_CFLAGS}"
3064      AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
3065      AC_CHECK_HEADERS(ffmpeg/avformat.h)
3066      AC_CHECK_HEADERS(ffmpeg/avutil.h)
3067      dnl newer ffmpeg have a separate libpostproc
3068      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
3069        VLC_ADD_CFLAGS([ffmpeg],[${POSTPROC_CFLAGS}]) 
3070        VLC_ADD_LIBS([ffmpeg],[${POSTPROC_LIBS}]) 
3071        ],[ true ])
3072      CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
3073      CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
3074      AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
3075      if test "${SYS}" = "darwin"; then
3076         VLC_ADD_BUILTINS([ffmpeg])
3077      else
3078         VLC_ADD_PLUGINS([ffmpeg])
3079      fi
3080      if test "${enable_sout}" != "no" -a "${enable_switcher}" = "yes"; then
3081         if test "${SYS}" = "darwin"; then
3082             VLC_ADD_BUILTINS([stream_out_switcher])
3083         else
3084             VLC_ADD_PLUGINS([stream_out_switcher])
3085         fi
3086      fi
3087      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
3088      VLC_ADD_LIBS([ffmpeg stream_out_switcher],[${FFMPEG_LIBS}])
3089
3090      dnl even newer ffmpeg has a libswscale
3091      PKG_CHECK_MODULES(SWSCALE, libavutil, 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       AC_CHECK_LIB(postproc, pp_postprocess, [
3123         VLC_ADD_LIBS([ffmpeg],[-lpostproc])],
3124       AC_MSG_ERROR([Could not find libpostproc inside FFmpeg. You should configure FFmpeg with --enable-gpl --enable-pp.]),
3125         [$LDAVUTIL])
3126
3127       AC_CHECK_LIB(avformat, av_open_input_stream, [
3128         VLC_ADD_LIBS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
3129       LDFLAGS="${LDFLAGS_save}"
3130       CPPFLAGS="${CPPFLAGS_save}"
3131
3132       AC_CHECK_LIB(swscale, sws_getContext, [
3133         AC_CHECK_HEADERS(ffmpeg/swscale.h)
3134         VLC_ADD_LIBS([ffmpeg],[-lswscale]) ], [], [-lavcodec $LDAVUTIL])
3135       LDFLAGS="${LDFLAGS_save}"
3136       CPPFLAGS="${CPPFLAGS_save}"
3137     ])
3138   fi
3139  fi 
3140 fi
3141
3142 dnl
3143 dnl  ffmpegaltivec plugin
3144 dnl
3145 AC_ARG_ENABLE(ffmpegaltivec,
3146 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
3147 if test "${enable_ffmpegaltivec}" = "yes"
3148 then
3149   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
3150     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
3151     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
3152     if test -z "${real_ffmpeg_tree}"; then
3153       dnl  The given directory can't be found
3154       AC_MSG_RESULT(no)
3155       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
3156     fi
3157     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3158       dnl  The given libavcodecaltivec wasn't built
3159       AC_MSG_RESULT(no)
3160       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
3161     fi
3162     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
3163       dnl  The given libavcodecaltivec wasn't built with --enable-pp
3164       AC_MSG_RESULT(no)
3165       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
3166     fi
3167     dnl  Use a custom libffmpeg
3168     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
3169     VLC_ADD_BUILTINS([ffmpegaltivec])
3170     VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
3171     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
3172     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3173
3174     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
3175       AC_DEFINE(HAVE_LIBAVFORMAT_TREE, 1, [Define if you have ffmpeg's libavformat.])
3176       VLC_ADD_LIBS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
3177       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
3178     fi
3179     VLC_ADD_LIBS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
3180     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
3181   fi
3182 fi
3183
3184 dnl
3185 dnl  faad decoder plugin
3186 dnl
3187 AC_ARG_ENABLE(faad,
3188 [  --enable-faad           faad codec (default disabled)])
3189 if test "${enable_faad}" = "yes"
3190 then
3191   AC_ARG_WITH(faad-tree,
3192   [    --with-faad-tree=PATH faad tree for static linking])
3193   if test -n "${with_faad_tree}"
3194   then
3195     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
3196     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
3197     if test -z "${real_faad_tree}"
3198     then
3199       dnl  The given directory can't be found
3200       AC_MSG_RESULT(no)
3201       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
3202     fi
3203     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
3204     then
3205       dnl  Use a custom faad
3206       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
3207       VLC_ADD_BUILTINS([faad])
3208       VLC_ADD_LIBS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
3209       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
3210     else
3211       dnl  The given libfaad wasn't built
3212       AC_MSG_RESULT(no)
3213       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
3214     fi
3215   else
3216     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
3217     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
3218     AC_CHECK_HEADERS(faad.h, ,
3219       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
3220     AC_CHECK_LIB(faad, faacDecOpen, [
3221       VLC_ADD_PLUGINS([faad])
3222       VLC_ADD_LIBS([faad],[-lfaad]) ],
3223       AC_CHECK_LIB(faad, NeAACDecOpen, [
3224         VLC_ADD_PLUGINS([faad])
3225         VLC_ADD_LIBS([faad],[-lfaad]) ],
3226         [ AC_MSG_ERROR([Cannot find libfaad library...]) ],[-lm]))
3227     LDFLAGS="${LDFLAGS_save}"
3228     CPPFLAGS="${CPPFLAGS_save}"
3229   fi
3230 fi
3231
3232 dnl
3233 dnl twolame encoder plugin
3234 dnl
3235 AC_ARG_ENABLE(twolame,
3236 [  --enable-twolame        twolame codec (default disabled)])
3237 if test "${enable_twolame}" = "yes"
3238 then
3239   AC_ARG_WITH(twolame-tree,
3240   [    --with-twolame-tree=PATH twolame tree for static linking])
3241   if test -n "${with_twolame_tree}"
3242   then
3243     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
3244     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
3245     if test -z "${real_twolame_tree}"
3246     then
3247       dnl  The given directory can't be found
3248       AC_MSG_RESULT(no)
3249       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
3250     fi
3251     if test -f "${real_twolame_tree}/libtwolame/.libs/libtwolame.a"
3252     then
3253       dnl  Use a custom twolame
3254       AC_MSG_RESULT(${real_twolame_tree}/libtwolame/.libs/libtwolame.a)
3255       VLC_ADD_BUILTINS([twolame])
3256       VLC_ADD_LIBS([twolame],[${real_twolame_tree}/libtwolame/.libs/libtwolame.a])
3257       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/libtwolame -DLIBTWOLAME_STATIC])
3258     else
3259       dnl  The given libtwolame wasn't built
3260       AC_MSG_RESULT(no)
3261       AC_MSG_ERROR([cannot find ${real_twolame_tree}/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
3262     fi
3263   else
3264     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame} -DLIBTWOLAME_STATIC"
3265     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
3266     AC_CHECK_HEADERS(twolame.h, ,
3267       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
3268     AC_CHECK_LIB(twolame, twolame_init, [
3269       VLC_ADD_PLUGINS([twolame])
3270       VLC_ADD_CPPFLAGS([twolame],[-DLIBTWOLAME_STATIC])
3271       VLC_ADD_LIBS([twolame],[-ltwolame]) ],
3272         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
3273     LDFLAGS="${LDFLAGS_save}"  
3274     CPPFLAGS="${CPPFLAGS_save}"
3275   fi
3276 fi
3277
3278 dnl
3279 dnl  QuickTime plugin
3280 dnl
3281 AC_ARG_ENABLE(quicktime,
3282   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
3283 if test "${enable_quicktime}" != "no" &&
3284   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
3285 then
3286   if test "${SYS}" = "mingw32"; then
3287     VLC_ADD_BUILTINS([quicktime])
3288   else
3289   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
3290     [ VLC_ADD_BUILTINS([quicktime])
3291       VLC_ADD_LDFLAGS([quicktime],[-Wl,-framework,QuickTime,-framework,Carbon])
3292     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
3293   fi
3294 fi
3295
3296 dnl
3297 dnl  Real plugin
3298 dnl
3299 AC_ARG_ENABLE(real,
3300   [  --enable-real           Real audio module (default disabled)])
3301 if test "${enable_real}" = "yes"; then
3302   VLC_ADD_PLUGINS([realaudio])
3303 fi
3304
3305 dnl
3306 dnl  Real RTSP plugin
3307 dnl
3308 AC_ARG_ENABLE(realrtsp,
3309   [  --enable-realrtsp       Real RTSP module (default disabled)])
3310 if test "${enable_realrtsp}" = "yes"; then
3311   VLC_ADD_PLUGINS([access_realrtsp])
3312 fi
3313
3314 dnl
3315 dnl MP4 module
3316 dnl
3317 AC_CHECK_HEADERS(zlib.h, [
3318   VLC_ADD_LIBS([mp4 skins2 sap mkv gme],[-lz])
3319 ] )
3320
3321 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
3322   VLC_ADD_LIBS([mp4 mkv],[-lsysfs])
3323 ] )
3324
3325 dnl
3326 dnl skins2 module
3327 dnl
3328 AC_ARG_ENABLE(libtar,
3329   [  --enable-libtar support for skins2 (default enabled)])
3330
3331 AS_IF([test "${enable_libtar}" != "no"],[
3332   AC_CHECK_HEADERS(libtar.h, [
3333     VLC_ADD_LIBS([skins2],[-ltar])
3334   ] )
3335 ])
3336
3337 dnl
3338 dnl A52/AC3 decoder plugin
3339 dnl
3340 AC_ARG_ENABLE(a52,
3341   [  --enable-a52            A/52 support with liba52 (default enabled)])
3342 if test "${enable_a52}" != "no"
3343 then
3344   AC_ARG_WITH(a52,
3345     [    --with-a52=PATH       a52 headers and libraries])
3346   AC_ARG_WITH(a52-tree,
3347     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
3348   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
3349   then
3350     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
3351     if test -z "${real_a52_tree}"
3352     then
3353       dnl  The given directory can't be found
3354       AC_MSG_RESULT(no)
3355       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
3356     fi
3357     dnl  Use a custom a52dec
3358     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
3359     if test -f ${real_a52_tree}/include/a52.h
3360     then
3361       AC_MSG_RESULT(yes)
3362       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
3363       VLC_ADD_LIBS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
3364       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32} -lm"
3365       AC_CHECK_LIB(a52, a52_free, [
3366         VLC_ADD_BUILTINS([a52tofloat32])
3367         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
3368         VLC_ADD_LIBS([a52tofloat32],[-la52])
3369         ],[
3370         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
3371         then
3372           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3 ($real_a52_tree)])
3373         else
3374           AC_MSG_ERROR([the specified tree hasn't been compiled])
3375         fi
3376       ])
3377       LDFLAGS="${LDFLAGS_save}"
3378     else
3379       AC_MSG_RESULT(no)
3380       AC_MSG_ERROR([the specified tree doesn't have a52.h])
3381     fi
3382   else
3383     if test -z "${with_a52}"
3384     then
3385       LDFLAGS_test=""
3386       CPPFLAGS_test=""
3387     else
3388       LDFLAGS_test="-L${with_a52}/lib"
3389       CPPFLAGS_test="-I${with_a52}/include"
3390     fi
3391     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
3392     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
3393     AC_CHECK_HEADERS(a52dec/a52.h, [
3394       AC_CHECK_LIB(a52, a52_free, [
3395         VLC_ADD_PLUGINS([a52tofloat32])
3396         VLC_ADD_LIBS([a52tofloat32],[${LDFLAGS_test} -la52])
3397         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
3398       ],[
3399         AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3400         ])
3401     ],[
3402       AC_MSG_ERROR([Could not find liba52 on your system: you may get it from http://liba52.sf.net/. Alternatively you can use --disable-a52 to disable the a52 plugin.])
3403     ])
3404     CPPFLAGS="${CPPFLAGS_save}"
3405     LDFLAGS="${LDFLAGS_save}"
3406   fi
3407 fi
3408
3409 AC_ARG_WITH(a52-fixed,
3410       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
3411       [
3412         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
3413
3414 dnl
3415 dnl DTS Coherent Acoustics decoder plugin
3416 dnl
3417 AS_IF([test "x${enable_dts}" != "x"], [
3418   AC_MSG_ERROR([--enable-dts is obsolete. Please use libdca and --enable-dca.])
3419 ])
3420 AS_IF([test "x${with_dts_tree}" != "x"], [
3421   AC_MSG_ERROR([--with-dts-tree is obsolete. Please use libdca and --with-dca-tree.])
3422 ])
3423
3424 AC_ARG_ENABLE(dca,
3425   [  --enable-dca            DTS Coherent Acoustics support with libdca (default enabled)])
3426 AS_IF([test "${enable_dca}" != "no"], [
3427   AC_ARG_WITH(dca-tree,
3428     [    --with-dca-tree=PATH  libdca tree for static linking],,
3429     [with_dca_tree="no"])
3430   AS_IF([test "${with_dca_tree}" != "no"], [
3431     real_dca_tree="`cd ${with_dca_tree} 2>/dev/null && pwd`"
3432     AS_IF([test -z "${real_dca_tree}"], [
3433       dnl  The given directory can't be found
3434       AC_MSG_RESULT(no)
3435       AC_MSG_ERROR([${with_dca_tree} directory doesn't exist])
3436     ])
3437     dnl  Use a custom libdca
3438     AC_MSG_CHECKING(for libdca in ${real_dca_tree})
3439     AS_IF([test -f "${real_dca_tree}/libdca/.libs/libdca.a"], [
3440       AC_MSG_RESULT(yes)
3441       VLC_ADD_LIBS([dtstofloat32],[${real_dca_tree}/libdca/.libs/libdca.a])
3442       AS_IF([test -f "${real_dca_tree}/include/dca.h"], [
3443         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/include])
3444       ], [
3445         VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dca_tree}/../include])
3446       ])
3447     ], [
3448       AC_MSG_RESULT(no)
3449       AC_MSG_ERROR([the specified tree doesn't have libdca/.libs/libdca.a])
3450     ])
3451   ], [
3452     PKG_CHECK_MODULES([DCA], [libdca >= 0.0.5], [
3453       VLC_ADD_PLUGINS([dtstofloat32])
3454       VLC_ADD_CPPFLAGS([dtstofloat32], [${DCA_CFLAGS}])
3455       VLC_ADD_LIBS([dtstofloat32], [${DCA_LIBS}])
3456     ], [
3457       AS_IF([test "x${enable_dca}" != "x"], [
3458         AC_MSG_ERROR([${DCA_PKG_ERRORS}])
3459       ])
3460     ])
3461   ])
3462 ])
3463
3464 dnl
3465 dnl  Flac plugin
3466 dnl
3467 AC_ARG_ENABLE(flac,
3468   [  --enable-flac           libflac decoder/encoder support (default disabled)])
3469 if test "${enable_flac}" = "yes"
3470 then
3471   AC_ARG_WITH(flac-tree,
3472   [    --with-flac-tree=PATH flac tree for static linking])
3473   if test -n "${with_flac_tree}"
3474   then
3475     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
3476     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
3477     if test -z "${real_flac_tree}"
3478     then
3479       dnl  The given directory can't be found
3480       AC_MSG_RESULT(no)
3481       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
3482     fi
3483     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
3484     then
3485       dnl  Use a custom flac
3486       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
3487       VLC_ADD_LIBS([flac],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
3488       VLC_ADD_CFLAGS([flac],[-I${real_flac_tree}/include])
3489       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
3490     else
3491       dnl  The given flac wasn't built
3492       AC_MSG_RESULT(no)
3493       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
3494     fi
3495   else
3496     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3497       VLC_ADD_LIBS([flac],[-lFLAC -logg])
3498      ],[])
3499   fi
3500 fi
3501
3502 dnl
3503 dnl  Libmpeg2 plugin
3504 dnl
3505 AC_ARG_ENABLE(libmpeg2,
3506   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3507 if test "${enable_libmpeg2}" != "no"
3508 then
3509   AC_ARG_WITH(libmpeg2-tree,
3510   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3511   if test -n "${with_libmpeg2_tree}"
3512   then
3513     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3514     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3515     if test -z "${real_libmpeg2_tree}"
3516     then
3517       dnl  The given directory can't be found
3518       AC_MSG_RESULT(no)
3519       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3520     fi
3521     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3522     then
3523       dnl  Use a custom libmpeg2
3524       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3525       VLC_ADD_BUILTINS([libmpeg2])
3526       VLC_ADD_LIBS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3527       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3528       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3529     else
3530       dnl  The given libmpeg2 wasn't built
3531       AC_MSG_RESULT(no)
3532       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3533     fi
3534   else
3535     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3536       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3537       AC_EGREP_CPP(yes,
3538         [#include <mpeg2dec/mpeg2.h>
3539          #ifdef MPEG2_RELEASE
3540          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3541          yes
3542          #endif
3543          #endif],
3544         [AC_MSG_RESULT([yes])
3545           VLC_ADD_PLUGINS([libmpeg2])
3546           VLC_ADD_LIBS([libmpeg2],[-lmpeg2])],
3547         [AC_MSG_RESULT([no])
3548           AC_MSG_ERROR([Your libmpeg2 is too old (you need the cvs version): you may get a more recent one from http://libmpeg2.sf.net/. Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])])],
3549
3550       [AC_MSG_ERROR([Could not find libmpeg2 on your system: you may get it from http://libmpeg2.sf.net/ (you need the cvs version). Alternatively you can use --disable-libmpeg2 to disable the libmpeg2 plugin.])]
3551     )
3552   fi
3553 fi
3554
3555 dnl
3556 dnl  Vorbis plugin
3557 dnl
3558 AC_ARG_ENABLE(vorbis,
3559   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3560 if test "${enable_vorbis}" != "no"
3561 then
3562   AC_ARG_WITH(vorbis-tree,
3563   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3564   if test -n "${with_vorbis_tree}"
3565   then
3566     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3567     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3568     if test -z "${real_vorbis_tree}"
3569     then
3570       dnl  The given directory can't be found
3571       AC_MSG_RESULT(no)
3572       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3573     fi
3574     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3575     then
3576       dnl  Use a custom vorbis 
3577       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3578       VLC_ADD_PLUGINS([vorbis])
3579       VLC_ADD_LIBS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3580       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3581     else
3582       dnl  The given vorbis wasn't built
3583       AC_MSG_RESULT(no)
3584       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3585     fi
3586   else
3587     AC_CHECK_HEADERS(vorbis/codec.h, [
3588       VLC_ADD_PLUGINS([vorbis])
3589       VLC_ADD_LIBS([vorbis],[-lvorbis -logg -lm]) ],[])
3590
3591     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3592       VLC_ADD_LIBS([vorbis],[-lvorbisenc -lm]) ],[])
3593   fi
3594 fi
3595
3596 dnl
3597 dnl  Tremor plugin
3598 dnl
3599 AC_ARG_ENABLE(tremor,
3600   [  --enable-tremor         Tremor decoder support (default disabled)])
3601 if test "${enable_tremor}" = "yes"
3602 then
3603   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3604     VLC_ADD_PLUGINS([tremor])
3605     VLC_ADD_LIBS([tremor],[-lvorbisidec -logg])
3606    ],[])
3607 fi
3608
3609 dnl
3610 dnl  Speex plugin
3611 dnl
3612 AC_ARG_ENABLE(speex,
3613   [  --enable-speex          Speex decoder support (default enabled)])
3614 if test "${enable_speex}" != "no"
3615 then
3616   AC_ARG_WITH(speex-tree,
3617   [    --with-speex-tree=PATH speex tree for static linking])
3618   if test -n "${with_speex_tree}"
3619   then
3620     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3621     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3622     if test -z "${real_speex_tree}"
3623     then
3624       dnl  The given directory can't be found
3625       AC_MSG_RESULT(no)
3626       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3627     fi
3628     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3629     then
3630       dnl  Use a custom speex
3631       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3632       VLC_ADD_PLUGINS([speex])
3633       VLC_ADD_LIBS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3634       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3635     else
3636       dnl  The given speex wasn't built
3637       AC_MSG_RESULT(no)
3638       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3639     fi
3640   else
3641     AC_CHECK_HEADERS(speex/speex.h, [
3642       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3643       AC_CHECK_LIB(speex, speex_decode_int, [
3644         VLC_ADD_PLUGINS([speex])
3645         VLC_ADD_LIBS([speex],[-lspeex]) ],
3646         [ AC_MSG_RESULT([no])
3647           AC_MSG_WARN([Your libspeex is too old, please get the development
3648                        version.]) ],[])
3649       LDFLAGS="${LDFLAGS_save}"
3650       ],[])
3651   fi
3652 fi
3653
3654 dnl
3655 dnl  tarkin decoder plugin
3656 dnl
3657 AC_ARG_ENABLE(tarkin,
3658 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3659 if test "${enable_tarkin}" = "yes"
3660 then
3661   AC_ARG_WITH(tarkin-tree,
3662   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3663   if test -n "${with_tarkin_tree}"
3664   then
3665     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3666     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3667     if test -f "${real_tarkin_tree}/tarkin.o"
3668     then
3669       VLC_ADD_BUILTINS([tarkin])
3670       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3671       VLC_ADD_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])
3672       AC_MSG_RESULT(yes)
3673     else
3674       dnl  The given tarkin tree wasn't built
3675       AC_MSG_RESULT(no)
3676       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3677                     make sure you compiled tarkin in ${with_tarkin_tree}])
3678     fi
3679   fi
3680 fi
3681
3682 dnl
3683 dnl  theora decoder plugin
3684 dnl
3685 AC_ARG_ENABLE(theora,
3686 [  --enable-theora         experimental theora codec (default disabled)])
3687 if test "${enable_theora}" = "yes"
3688 then
3689   AC_CHECK_HEADERS(theora/theora.h, [
3690     AC_CHECK_LIB(theora, theora_granule_time, [
3691       VLC_ADD_PLUGINS([theora])
3692       theora_libs="-ltheora -logg"
3693       VLC_ADD_LIBS([theora],[${theora_libs}]) ],[
3694       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3695 You also need to check that you have a libogg posterior to the 1.0 release.])],
3696       [-logg])
3697   ])
3698 fi
3699
3700 dnl
3701 dnl  dirac decoder plugin
3702 dnl
3703 AC_ARG_ENABLE(dirac,
3704 [  --enable-dirac          experimental dirac codec (default disabled)])
3705 if test "${enable_dirac}" = "yes"; then
3706   PKG_CHECK_MODULES(DIRAC,[dirac >= 0.6.0], [
3707       VLC_ADD_PLUGINS([dirac])
3708       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3709       VLC_ADD_LIBS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3710       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3711   ])
3712 fi
3713
3714 dnl
3715 dnl  PNG decoder module
3716 dnl
3717 AC_ARG_ENABLE(png,
3718   [  --enable-png            PNG support (default enabled)])
3719 if test "${enable_png}" != "no"; then
3720 AC_CHECK_HEADERS(png.h, [
3721   LDFLAGS="${LDFLAGS_save} -lz"
3722   AC_CHECK_LIB(png, png_set_rows, [
3723     VLC_ADD_LIBS([png],[-lpng -lz])
3724     VLC_ADD_PLUGINS([png])
3725     VLC_ADD_PLUGINS([osdmenu])
3726     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3727     [],[-lz])
3728   LDFLAGS="${LDFLAGS_save}"
3729   ])
3730 fi
3731
3732 dnl
3733 dnl H264 encoder plugin (using libx264)
3734 dnl
3735 AC_ARG_ENABLE(x264,
3736   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3737 if test "${enable_x264}" != "no"; then
3738   AC_ARG_WITH(x264-tree,
3739     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3740   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3741   then
3742     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3743     if test -z "${real_x264_tree}"
3744     then
3745       dnl  The given directory can't be found
3746       AC_MSG_RESULT(no)
3747       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3748     fi
3749     dnl  Use a custom libx264
3750     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3751     if test -f ${real_x264_tree}/x264.h
3752     then
3753       AC_MSG_RESULT(yes)
3754       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3755       VLC_ADD_LIBS([x264],[-L${real_x264_tree}])
3756       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3757       AC_CHECK_LIB(x264, x264_encoder_open, [
3758         VLC_ADD_BUILTINS([x264])
3759         VLC_ADD_LIBS([x264],[-lx264])
3760       ],[
3761         AC_MSG_ERROR([the specified tree hasn't been compiled])
3762       ])
3763       LDFLAGS="${LDFLAGS_save}"
3764     else
3765       AC_MSG_RESULT(no)
3766       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3767     fi
3768   else
3769     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3770     AC_CHECK_HEADERS(x264.h, [
3771       AC_CHECK_LIB(x264, x264_encoder_open, [
3772         VLC_ADD_PLUGINS([x264])
3773         VLC_ADD_LIBS([x264],[-lx264])
3774       ],[
3775         if test "${enable_x264}" = "yes"; then
3776             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3777           fi
3778       ])
3779     ])
3780     LDFLAGS="${LDFLAGS_save}"
3781   fi
3782 fi
3783
3784 dnl
3785 dnl libfluidsynth (MIDI synthetizer) plugin
3786 dnl
3787 AC_ARG_ENABLE(fluidsynth,
3788   [  --enable-fluidsynth     MIDI synthesisr with libfluidsynth (default auto)])
3789 AS_IF([test "x${enable_fluidsynth}" != "xno"], [
3790   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth, [
3791     VLC_ADD_PLUGINS(fluidsynth)
3792     VLC_ADD_CFLAGS(fluidsynth, [${FLUIDSYNTH_CFLAGS}])
3793     VLC_ADD_LIBS(fluidsynth, [${FLUIDSYNTH_LIBS}])
3794   ], [
3795     AS_IF([test "x${enable_fluidsynth}" != "x"], [
3796       AC_MSG_ERROR([${FLUIDSYNTH_PKG_ERRORS}])
3797     ])
3798   ])
3799 ])
3800
3801 dnl
3802 dnl Teletext Modules
3803 dnl vbi decoder plugin (using libzbvi)
3804 dnl telx module
3805 dnl uncompatible
3806 dnl
3807 AC_ARG_ENABLE(zvbi,
3808   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3809 AC_ARG_ENABLE(telx,
3810   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3811
3812 AS_IF( [test "${enable_zvbi}" != "no"],[
3813   AS_IF( [test "${enable_telx}" = "yes"],[
3814     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3815   ],[
3816     PKG_CHECK_MODULES(ZVBI,
3817         zvbi-0.2 >= 0.2.25,
3818         [
3819           VLC_ADD_LIBS([zvbi],[$ZVBI_LIBS])
3820           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3821           VLC_ADD_PLUGINS([zvbi])
3822           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3823         ],[
3824           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3825           enable_telx="yes"
3826         ])
3827     ])  
3828   ])
3829 AS_IF( [test "${enable_telx}" = "yes"],[
3830   VLC_ADD_PLUGINS([telx])
3831   ])
3832
3833 dnl
3834 dnl  CMML plugin
3835 dnl
3836 AC_ARG_ENABLE(cmml,
3837   [  --enable-cmml           CMML support (default enabled)])
3838 if test "${enable_cmml}" != "no"
3839 then
3840   VLC_ADD_PLUGINS([cmml])
3841 fi
3842
3843
3844 dnl
3845 dnl  Video plugins
3846 dnl
3847
3848 AC_ARG_WITH(,[Video plugins:])
3849
3850 dnl Check for DPMS
3851 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3852   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3853   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3854     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3855     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3856       AC_MSG_RESULT(yes)
3857       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3858                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3859     ],[
3860       AC_MSG_RESULT(no)
3861     ])
3862   ],,[
3863     #include <X11/Xlib.h>
3864   ])
3865   CPPFLAGS="${CPPFLAGS_save}"
3866 fi
3867
3868 dnl
3869 dnl  X11 module
3870 dnl  (enabled by default except on win32)
3871 dnl
3872 AC_ARG_ENABLE(x11,
3873   [  --enable-x11            X11 support (default enabled)])
3874 if test "${enable_x11}" != "no" &&
3875   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3876    test "${enable_x11}" = "yes"); then
3877   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3878   AC_CHECK_HEADERS(X11/Xlib.h, [
3879     VLC_ADD_PLUGINS([panoramix])
3880     VLC_ADD_LIBS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3881     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3882     AC_CHECK_LIB(Xext, XShmAttach, [
3883       VLC_ADD_PLUGINS([x11])
3884       VLC_ADD_LIBS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3885       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3886     ])
3887   ])
3888   CPPFLAGS="${CPPFLAGS_save}"
3889 fi
3890
3891 dnl
3892 dnl  XVideo module
3893 dnl  (enabled by default except on win32)
3894 dnl
3895 AC_ARG_ENABLE(xvideo,
3896   [  --enable-xvideo         XVideo support (default enabled)])
3897 if test "${enable_xvideo}" != "no" &&
3898   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3899    test "${enable_xvideo}" = "yes"); then
3900   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3901   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3902     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3903     AC_CHECK_LIB(Xv,XvPutImage,[
3904       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3905       # test for libXv_pic.
3906       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3907         VLC_ADD_PLUGINS([xvideo])
3908         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3909         VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3910       else
3911         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3912           VLC_ADD_PLUGINS([xvideo])
3913           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3914           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3915         ],[
3916           VLC_ADD_BUILTINS([xvideo])
3917           VLC_ADD_LIBS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3918           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3919         ])
3920       fi
3921     ])
3922     CFLAGS="${CFLAGS_save}"
3923   ]
3924   CPPFLAGS="${CPPFLAGS_save}")
3925 fi
3926
3927 dnl
3928 dnl  GLX module
3929 dnl  (enabled by default except on win32)
3930 dnl
3931 AC_ARG_ENABLE(glx,
3932   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3933 if test "${enable_glx}" != "no" &&
3934   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3935    test "${enable_glx}" = "yes"); then
3936   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3937   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3938   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3939     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3940     choke me
3941     #endif]]),
3942     [
3943       VLC_ADD_PLUGINS([glx])
3944       VLC_ADD_LIBS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3945       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3946     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3947   CPPFLAGS="${CPPFLAGS_save}"
3948 fi
3949
3950 dnl
3951 dnl  XVMC module
3952 dnl  (enabled by default except on win32)
3953 dnl
3954 AC_ARG_ENABLE(xvmc,
3955   [  --enable-xvmc           XVMC support (default disabled)])
3956 if test "${enable_xvmc}" = "yes" &&
3957   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3958    test "${enable_xvmc}" = "yes"); then
3959   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3960   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3961     VLC_ADD_PLUGINS([xvmc])
3962     VLC_ADD_LIBS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3963     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3964   ])
3965   CPPFLAGS="${CPPFLAGS_save}"
3966 fi
3967
3968 dnl
3969 dnl  Check for the Xinerama extension
3970 dnl
3971 AC_ARG_ENABLE(xinerama,
3972   [  --enable-xinerama       Xinerama support (default enabled)])
3973 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3974   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3975    test "${enable_xvideo}" = "yes"); then
3976   ac_cv_have_xinerama="no"
3977   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3978   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3979   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3980     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3981       VLC_ADD_LIBS([xvideo],[-lXinerama_pic])
3982       VLC_ADD_LIBS([x11],[-lXinerama_pic])
3983       VLC_ADD_LIBS([glx],[-lXinerama_pic])
3984       ac_cv_have_xinerama="yes"
3985     ],[
3986       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3987         VLC_ADD_LIBS([xvideo],[-lXinerama])
3988         VLC_ADD_LIBS([x11],[-lXinerama])
3989         VLC_ADD_LIBS([glx],[-lXinerama])
3990         ac_cv_have_xinerama="yes"
3991       ])
3992     ])
3993   ])
3994   if test "${ac_cv_have_xinerama}" = "yes"; then
3995     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3996   fi
3997   CFLAGS="${CFLAGS_save}"
3998   CPPFLAGS="${CPPFLAGS_save}"
3999
4000 dnl
4001 dnl  Check for XF86VidMode extension
4002 dnl
4003   ac_cv_have_xf86vidmode="no"
4004   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
4005   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
4006   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
4007     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
4008       VLC_ADD_LIBS([xvideo],[-lXxf86vm_pic])
4009       VLC_ADD_LIBS([x11],[-lXxf86vm_pic])
4010       VLC_ADD_LIBS([glx],[-lXxf86vm_pic])
4011       ac_cv_have_xf86vidmode="yes"
4012     ],[
4013       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
4014         VLC_ADD_LIBS([xvideo],[-lXxf86vm])
4015         VLC_ADD_LIBS([x11],[-lXxf86vm])
4016         VLC_ADD_LIBS([glx],[-lXxf86vm])
4017         ac_cv_have_xf86vidmode="yes"
4018       ])
4019     ])
4020   ],[true],
4021 [#ifdef HAVE_X11_XLIB_H
4022 # include <X11/Xlib.h>
4023 #endif]
4024    )
4025   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4026     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4027   ])
4028   CFLAGS="${CFLAGS_save}"
4029   CPPFLAGS="${CPPFLAGS_save}"
4030
4031 fi
4032
4033 dnl
4034 dnl  OpenGL module
4035 dnl  (enabled by default except on beos)
4036 dnl
4037 AC_ARG_ENABLE(opengl,
4038   [  --enable-opengl         OpenGL support (default enabled)])
4039 if test "${enable_opengl}" != "no" &&
4040    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4041   if test "${SYS}" != "darwin"; then
4042     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4043       VLC_ADD_PLUGINS([opengl])
4044       if test "${SYS}" != "mingw32"; then
4045         VLC_ADD_LIBS([opengl],[${X_LIBS} -lGL -lGLU])
4046       else
4047         VLC_ADD_LIBS([opengl],[-lopengl32 -lglu32])
4048       fi
4049     ])
4050   else
4051     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4052     VLC_ADD_PLUGINS([opengl])
4053     VLC_ADD_LIBS([opengl],[-Wl,-framework,OpenGL])
4054   fi
4055 fi
4056
4057 dnl
4058 dnl  SDL module
4059 dnl
4060 AC_ARG_ENABLE(sdl,
4061   [  --enable-sdl            SDL support (default enabled)])
4062 AC_ARG_ENABLE(sdl-image,
4063   [  --enable-sdl-image      SDL image support (default enabled)])
4064 if test "${enable_sdl}" != "no"
4065 then
4066   SDL_PATH="${PATH}"
4067   AC_ARG_WITH(sdl-config-path,
4068     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4069     [ if test "${with_sdl_config_path}" != "no"
4070       then
4071         SDL_PATH="${with_sdl_config_path}:${PATH}"
4072       fi ])
4073   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4074   SDL_CONFIG="${SDL12_CONFIG}"
4075   SDL_HEADER="SDL12/SDL.h"
4076   SDL_IMAGE="SDL12/SDL_image.h"
4077   if test "${SDL_CONFIG}" = "no"
4078   then
4079     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4080     SDL_CONFIG=${SDL11_CONFIG}
4081     SDL_HEADER="SDL11/SDL.h"
4082     SDL_IMAGE="SDL11/SDL_image.h"
4083   fi
4084   if test "${SDL_CONFIG}" = "no"
4085   then
4086     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4087     SDL_HEADER="SDL/SDL.h"
4088     SDL_IMAGE="SDL/SDL_image.h"
4089   fi
4090   # check for cross-compiling
4091   SDL_PREFIX=
4092   AC_ARG_WITH(sdl-prefix,
4093     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4094                                e.g use as:
4095                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4096   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4097   then
4098     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4099   fi
4100   if test "${SDL_CONFIG}" != "no"
4101   then
4102     # SDL on Darwin is heavily patched and can only run SDL_image
4103     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4104       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4105     fi
4106     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4107     VLC_ADD_LIBS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4108     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4109     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4110       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4111       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4112           As a last resort we also test for SDL.h presence),
4113       [ AC_MSG_ERROR([The development package for SDL is not installed.
4114 Please install it and try again. Alternatively you can also configure with
4115 --disable-sdl.])
4116       ])])
4117     AS_IF([ test "${enable_sdl_image}" != "no"],[
4118       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4119         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4120         VLC_ADD_PLUGINS([sdl_image])
4121         AC_CHECK_LIB(png, png_set_rows,
4122           [VLC_ADD_LIBS([sdl_image],[-lpng -lz])],[],[-lz])
4123         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4124           [VLC_ADD_LIBS([sdl_image],[-ljpeg])])
4125         AC_CHECK_LIB(tiff, TIFFClientOpen,
4126           [VLC_ADD_LIBS([sdl_image],[-ltiff])])
4127         VLC_ADD_LIBS([sdl_image], [-lSDL_image])],
4128         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4129             As a last resort we also test for SDL_image.h presence),
4130         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4131   You should install it alongside your SDL package.])
4132         ])])
4133     ])
4134     CPPFLAGS="${CPPFLAGS_save}"
4135     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4136     then
4137       AC_MSG_ERROR([The development package for SDL is not installed.
4138 Please install it and try again. Alternatively you can also configure with
4139 --disable-sdl.])
4140     fi
4141
4142   elif test "${enable_sdl}" =  "yes"
4143   then
4144     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4145 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4146     ])
4147   fi
4148 fi
4149
4150 dnl
4151 dnl  freetype module
4152 dnl
4153 AC_ARG_ENABLE(freetype,
4154   [  --enable-freetype       freetype support (default enabled)])
4155 AC_ARG_ENABLE(fribidi,
4156   [  --enable-fribidi        fribidi support (default enabled)])
4157 if test "${enable_freetype}" != "no"
4158 then
4159   FREETYPE_PATH="${PATH}"
4160   AC_ARG_WITH(freetype-config-path,
4161     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4162     [ if test "${with_freetype_config_path}" != "no"
4163       then
4164         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4165       fi ])
4166   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4167
4168   if test "${FREETYPE_CONFIG}" != "no"
4169   then
4170     VLC_ADD_PLUGINS([freetype])
4171     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4172     VLC_ADD_LIBS([freetype],[`${FREETYPE_CONFIG} --libs`])
4173     if test "${SYS}" = "mingw32"; then
4174        VLC_ADD_LIBS([freetype],[-lxml2])
4175     fi
4176     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4177       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4178        VLC_ADD_LIBS([freetype],[-lfontconfig])])
4179     AC_CHECK_HEADERS(Carbon/Carbon.h,
4180       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4181   elif test "${enable_freetype}" =  "yes"
4182   then
4183     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4184 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4185     ])
4186   fi
4187
4188   dnl fribidi support
4189   if test "${enable_fribidi}" != "no"
4190   then
4191     FRIBIDI_PATH="${PATH}"
4192     AC_ARG_WITH(fribidi-config-path,
4193       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4194       [ if test "${with_fribidi_config_path}" != "no"
4195         then
4196           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4197         fi ])
4198     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4199
4200     if test "${FRIBIDI_CONFIG}" != "no"
4201     then
4202       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4203       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4204       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4205       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4206     fi
4207   fi
4208 fi
4209
4210 dnl
4211 dnl  libxml2 module
4212 dnl
4213 AC_ARG_ENABLE(libxml2,
4214   [  --enable-libxml2        libxml2 support (default enabled)])
4215 if test "${enable_libxml2}" != "no"
4216 then
4217   XML2_PATH="${PATH}"
4218   AC_ARG_WITH(xml2-config-path,
4219     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4220     [ if test "${with_xml2_config_path}" != "no"; then
4221         XML2_PATH="${with_xml2_config_path}:${PATH}"
4222       fi ])
4223   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4224   if test "${XML2_CONFIG}" != "no"; then
4225     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4226     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4227     dnl depends on the xmlTextReader extension
4228     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4229     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4230     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4231       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4232         VLC_ADD_PLUGINS([xml]) ],[
4233           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4234           if test "${enable_xml2}" = "yes"; then
4235             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4236           fi])
4237        ],[
4238       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4239       if test "${enable_xml2}" = "yes"; then
4240         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4241       fi])
4242     LDFLAGS="${LDFLAGS_save}"
4243     CPPFLAGS="${CPPFLAGS_save}"
4244   else
4245     if test "${enable_xml2}" = "yes"; then
4246       AC_MSG_ERROR([Could not find libxml2])
4247     fi
4248   fi
4249 fi
4250
4251 dnl
4252 dnl  SVG module
4253 dnl
4254 AC_ARG_ENABLE(svg,
4255   [  --enable-svg            SVG support (default disabled)])
4256 if test "${enable_svg}" = "yes"
4257 then
4258   PKG_CHECK_MODULES(SVG, 
4259         librsvg-2.0 >= 2.9.0,
4260         [
4261           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4262           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4263           VLC_ADD_PLUGINS([svg]) ],
4264         [AC_MSG_WARN(SVG library not found)])
4265 fi
4266
4267 dnl
4268 dnl Snapshot vout module (with cache)
4269 dnl
4270 AC_ARG_ENABLE(snapshot,
4271   [  --enable-snapshot       snapshot module (default disabled)])
4272 if test "${enable_snapshot}" = "yes"
4273 then
4274   VLC_ADD_PLUGINS([snapshot])
4275 fi
4276
4277 dnl
4278 dnl  Qt Embedded module
4279 dnl  (disabled by default)
4280 dnl
4281 AC_ARG_ENABLE(qte,
4282   [  --enable-qte            QT Embedded support (default disabled)])
4283 if test "${enable_qte}" = "yes"
4284 then
4285   AC_ARG_WITH(qte,
4286   [    --with-qte=PATH       Qt Embedded headers and libraries])
4287   if test "${with_qte}" != "no" -a -n "${with_qte}"
4288   then
4289     VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4290     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])
4291   else
4292     VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4293     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4294   fi
4295   VLC_ADD_PLUGINS([qte])
4296   NEED_QTE_MAIN=yes
4297   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4298   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4299     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4300   ] )
4301   CPPFLAGS="${CPPFLAGS_save}"
4302 fi
4303
4304 dnl
4305 dnl  Qt Video output module
4306 dnl  (disabled by default)
4307 dnl
4308 dnl AC_ARG_ENABLE(qt_video,
4309 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4310 dnl if test "${enable_qt_video}" = "yes"
4311 dnl then
4312 dnl  VLC_ADD_PLUGINS([qt_video])
4313 dnl  VLC_ADD_LIBS([qt_video],[-L${QTDIR}/lib])
4314 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4315 dnl   AC_CHECK_LIB(qt-mt,main,[
4316 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4317 dnl  ],[
4318 dnl    AC_CHECK_LIB(qt,main,[
4319 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4320 dnl    ])
4321 dnl  ])
4322 dnl  NEED_QTE_MAIN=yes
4323 dnl  LDFLAGS="${LDFLAGS_save}"
4324 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4325 dnl fi
4326
4327 dnl
4328 dnl Roku HD1000 Video output module
4329 dnl
4330 AC_ARG_ENABLE(hd1000v,
4331   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4332 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4333   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4334    test "${enable_hd1000v}" = "yes"); then
4335   AC_LANG_PUSH([C++])
4336   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4337   [
4338     can_build_roku="yes"
4339   ],
4340   [
4341     can_build_roku="no"
4342     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4343   ])
4344   if test "$can_build_roku" = "yes"
4345   then
4346     VLC_ADD_PLUGINS([hd1000v])
4347     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4348   fi
4349   AC_LANG_POP([C++])
4350 fi
4351
4352 dnl
4353 dnl  Windows DirectX module
4354 dnl
4355
4356 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4357 then
4358   VLC_ADD_PLUGINS([panoramix])
4359 fi
4360
4361 AC_ARG_ENABLE(directx,
4362   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4363 if test "${enable_directx}" != "no"
4364 then
4365   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4366   then
4367     AC_ARG_WITH(directx,
4368     [    --with-directx=PATH   Win32 DirectX headers])
4369     if test -z "${with_directx}"
4370     then
4371       AC_CHECK_HEADERS(ddraw.h,
4372       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4373         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4374       ])
4375       AC_CHECK_HEADERS(GL/gl.h,
4376       [ VLC_ADD_PLUGINS([glwin32])
4377         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4378       ])
4379       AC_CHECK_HEADERS(d3d9.h,
4380       [ VLC_ADD_PLUGINS([direct3d])
4381         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4382       ])
4383     else
4384       AC_MSG_CHECKING(for directX headers in ${with_directx})
4385       if test -f ${with_directx}/ddraw.h
4386       then
4387         VLC_ADD_PLUGINS([vout_directx aout_directx])
4388         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4389         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4390         AC_MSG_RESULT(yes)
4391       else
4392         AC_MSG_RESULT(no)
4393         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4394       fi
4395     fi
4396   fi
4397 fi
4398
4399 dnl
4400 dnl  Linux framebuffer module
4401 dnl
4402 AC_ARG_ENABLE(fb,
4403   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4404     if test "${enable_fb}" != "no"
4405     then
4406       AC_CHECK_HEADERS(linux/fb.h, [
4407         VLC_ADD_PLUGINS([fb])
4408       ])
4409     fi
4410
4411 dnl
4412 dnl  Linux MGA module
4413 dnl
4414 AC_ARG_ENABLE(mga,
4415   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4416   [ if test "${enable_mga}" = "yes"
4417     then
4418       VLC_ADD_PLUGINS([mga])
4419     fi ])
4420
4421 dnl
4422 dnl  SVGAlib module
4423 dnl
4424 AC_ARG_ENABLE(svgalib,
4425   [  --enable-svgalib        SVGAlib support (default disabled)])
4426 if test "${enable_svgalib}" = "yes"
4427 then
4428   VLC_ADD_PLUGINS([svgalib])
4429   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4430 fi
4431
4432 dnl
4433 dnl  DirectFB module
4434 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4435 dnl  TODO: support for static linking
4436 dnl
4437 AC_ARG_ENABLE(directfb,
4438   [  --enable-directfb       DirectFB support (default disabled)])
4439 AC_ARG_WITH(directfb, 
4440   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4441
4442 if test "${enable_directfb}" = "yes"; then
4443     have_directfb="false"
4444     CPPFLAGS_mydirectfb=
4445     LDFLAGS_mydirectfb=
4446     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4447         dnl Trying the given location
4448         CPPFLAGS_save=${CPPFLAGS}
4449         LDFLAGS_save=${LDFLAGS}
4450
4451         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4452         LDFLAGS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4453         LDFLAGS_new="${LDFLAGS_new} -L${with_directfb}/src/.libs/"
4454
4455         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4456         LDFLAGS="${LD_FLAGS} ${LDFLAGS_new}"
4457
4458         dnl FIXME: too obscure
4459         AC_CHECK_HEADER([directfb.h], [
4460             AC_CHECK_LIB([direct],[direct_initialize], [
4461                 AC_CHECK_LIB([fusion], [fusion_enter], [
4462                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4463                 ], have_directfb="false")
4464             ], have_directfb="false")
4465         ], have_directfb="false")
4466
4467         dnl Restore flags
4468         CPPFLAGS="${CPPFLAGS_save}"
4469         LDFLAGS="${LDFLAGS_save}"
4470
4471         if test "${have_directfb}" = "true"; then
4472             LDFLAGS_mydirectfb="${LDFLAGS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4473             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4474         fi
4475     else 
4476         dnl Look for directfb-config
4477         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4478         if test "${DIRECTFB_CONFIG}" != "no"; then
4479             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4480             LDFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4481             have_directfb="true"
4482         else 
4483             dnl Trying with pkg-config
4484             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4485                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4486                 LDFLAGS_mydirectfb="${DIRECTFB_LIBS}"
4487                 have_directfb="true"
4488                 ], [have_directfb="false"])
4489         fi
4490     fi
4491     if test "${have_directfb}" = "true"; then
4492         VLC_ADD_PLUGINS([directfb])
4493         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4494         VLC_ADD_LDFLAGS([directfb],[${LDFLAGS_mydirectfb}])
4495     else 
4496         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4497     fi
4498 fi
4499  
4500
4501
4502 dnl
4503 dnl  GGI module
4504 dnl
4505 AC_ARG_ENABLE(ggi,
4506   [  --enable-ggi            GGI support (default disabled)])
4507 if test "${enable_ggi}" = "yes"
4508 then
4509   VLC_ADD_PLUGINS([ggi])
4510   VLC_ADD_LDFLAGS([ggi],[-lggi])
4511   AC_ARG_WITH(ggi,
4512     [    --with-ggi=PATH       path to libggi],
4513     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4514       then
4515         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4516         VLC_ADD_LIBS([ggi],[-L${with_ggi}/lib])
4517       fi ])
4518 fi
4519
4520 dnl
4521 dnl  Glide module
4522 dnl
4523 AC_ARG_ENABLE(glide,
4524   [  --enable-glide          Glide (3dfx) support (default disabled)])
4525 if test "${enable_glide}" = "yes"
4526 then
4527   CFLAGS_save="${CFLAGS}"
4528   AC_ARG_WITH(glide,
4529     [    --with-glide=PATH     path to libglide],
4530     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4531       then
4532         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4533         VLC_ADD_LIBS([glide],[-L${with_glide}/lib])
4534         CFLAGS="$CFLAGS -I${with_glide}/include"
4535     fi ])
4536    CFLAGS="$CFLAGS -I/usr/include/glide"
4537    AC_CHECK_HEADER(glide.h,[   
4538       VLC_ADD_PLUGINS([glide])
4539       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4540       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4541     ],[
4542       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4543      ])
4544    CFLAGS="${CFLAGS_save}"
4545 fi
4546
4547 dnl
4548 dnl  AA plugin
4549 dnl
4550 AC_ARG_ENABLE(aa,
4551   [  --enable-aa             aalib output (default disabled)])
4552 if test "${enable_aa}" = "yes"
4553 then
4554   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4555   if test "${have_aa}" = "true"
4556   then
4557     VLC_ADD_PLUGINS([aa])
4558     VLC_ADD_LDFLAGS([aa],[-laa])
4559   fi
4560 fi
4561
4562 dnl
4563 dnl  libcaca plugin
4564 dnl
4565 AC_ARG_ENABLE(caca,
4566   [  --enable-caca           libcaca output (default disabled)])
4567 if test "${enable_caca}" = "yes"
4568 then
4569   CACA_PATH="${PATH}"
4570   AC_ARG_WITH(caca-config-path,
4571     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4572     [ if test "${with_caca_config_path}" != "no"
4573       then
4574         CACA_PATH="${with_caca_config_path}:${PATH}"
4575       fi ])
4576   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4577   if test "${CACA_CONFIG}" != "no"
4578   then
4579     VLC_ADD_PLUGINS([caca])
4580     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4581     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4582   fi
4583 fi
4584
4585 dnl
4586 dnl  win32 GDI plugin
4587 dnl
4588 AC_ARG_ENABLE(wingdi,
4589   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4590 if test "${enable_wingdi}" != "no"; then
4591   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4592     VLC_ADD_PLUGINS([wingdi])
4593     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4594   fi
4595   if test "${SYS}" = "mingwce"; then
4596     VLC_ADD_PLUGINS([wingdi wingapi])
4597   fi
4598 fi
4599
4600 dnl
4601 dnl  Audio plugins
4602 dnl
4603
4604 AC_ARG_WITH(,[Audio plugins:])
4605
4606 dnl
4607 dnl  OSS /dev/dsp module (enabled by default except on win32)
4608 dnl
4609 AC_ARG_ENABLE(oss,
4610   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4611
4612 if test "${enable_oss}" != "no" &&
4613   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4614    test "${enable_oss}" = "yes")
4615 then
4616   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4617     VLC_ADD_PLUGINS([oss])
4618     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4619   ])
4620 fi
4621
4622 dnl
4623 dnl  Esound module
4624 dnl
4625 AC_ARG_ENABLE(esd,
4626   [  --enable-esd            Esound library support (default disabled)],
4627   [if test "${enable_esd}" = "yes"
4628    then
4629      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4630      if test "${ESD_CONFIG}" != "no"
4631      then
4632        VLC_ADD_PLUGINS([esd])
4633        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4634        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4635      fi
4636    fi])
4637
4638 dnl
4639 dnl  Portaudio module
4640 dnl
4641 AC_ARG_ENABLE(portaudio,
4642   [  --enable-portaudio      Portaudio library support (default disabled)],
4643   [if test "${enable_portaudio}" = "yes"
4644    then
4645      VLC_ADD_PLUGINS([portaudio])
4646      VLC_ADD_CXXFLAGS([portaudio],[])
4647      if test "${SYS}" = "mingw32"; then
4648         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4649      else
4650         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4651      fi
4652    fi])
4653
4654 dnl
4655 dnl  aRts module -- broken (freeze wxWidgets)
4656 dnl
4657 AC_ARG_ENABLE(arts,
4658  [  --enable-arts           aRts sound server (default disabled)],
4659  [if test "${enable_arts}" = "yes"
4660   then
4661     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4662     if test "${ARTS_CONFIG}" != "no"
4663     then
4664       VLC_ADD_PLUGINS([arts])
4665       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4666       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4667     fi
4668   fi])
4669
4670 dnl
4671 dnl  ALSA module
4672 dnl
4673 AC_ARG_ENABLE(alsa,
4674   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4675 if test "${enable_alsa}" != "no"
4676 then
4677   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4678   if test "${have_alsa}" = "true"
4679   then
4680     CFLAGS="${CFLAGS_save}"
4681     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4682                     #define ALSA_PCM_NEW_SW_PARAMS_API
4683                     #include <alsa/asoundlib.h>],
4684        [snd_pcm_hw_params_get_period_time(0,0,0);],
4685         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4686     VLC_ADD_PLUGINS([alsa])
4687     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4688   else
4689     if test "${enable_alsa}" = "yes"; then
4690       AC_MSG_ERROR([Could not find ALSA development headers])
4691     fi
4692   fi
4693 fi
4694
4695 dnl
4696 dnl  win32 waveOut plugin
4697 dnl
4698 AC_ARG_ENABLE(waveout,
4699   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4700 if test "${enable_waveout}" != "no"; then
4701   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4702     VLC_ADD_PLUGINS([waveout])
4703     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4704   fi
4705   if test "${SYS}" = "mingwce"; then
4706     VLC_ADD_PLUGINS([waveout])
4707   fi
4708 fi
4709
4710 dnl
4711 dnl  CoreAudio plugin
4712 dnl
4713 AC_ARG_ENABLE(macosx-audio,
4714   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4715 if test "${enable_macosx-audio}" != "no" &&
4716   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4717 then
4718   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4719     [ VLC_ADD_BUILTINS([auhal])
4720       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4721     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4722 fi
4723
4724 dnl
4725 dnl  Roku HD1000 audio
4726 dnl
4727 AC_ARG_ENABLE(hd1000a,
4728   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4729 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4730   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4731    test "${enable_hd1000a}" = "yes")
4732 then
4733   AC_LANG_PUSH([C++])
4734   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4735     VLC_ADD_PLUGINS([hd1000a])
4736     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LIBS([hd1000a],[-lHDMachineX225]))  ])
4737   AC_LANG_POP([C++])
4738 fi
4739
4740 dnl
4741 dnl  JACK modules
4742 dnl
4743 AC_ARG_ENABLE(jack,
4744  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4745  [enable_jack="no"])
4746
4747 AS_IF([test "${enable_jack}" != "no"], [
4748   AC_CHECK_HEADERS(jack/jack.h, [
4749     VLC_ADD_PLUGINS([access_jack jack])
4750     VLC_ADD_LIBS([access_jack jack],[-ljack])
4751   ],[AC_MSG_ERROR([cannot find JACK headers])])
4752 ])
4753
4754 dnl
4755 dnl  CyberLink for C++ UPnP stack
4756 dnl
4757 AC_ARG_ENABLE(cyberlink,
4758   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4759   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4760   AC_ARG_WITH(cyberlink-tree,
4761     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4762
4763   dnl
4764   dnl test for --with-cyberlink-tree
4765   dnl
4766   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4767     AC_LANG_PUSH(C++)
4768     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4769     AS_IF([test -z "${real_cyberlink_tree}"], [
4770       dnl  The given directory can't be found
4771       AC_MSG_RESULT(no)
4772       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4773     ])
4774     CPPFLAGS_save="${CPPFLAGS}"
4775     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4776     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4777     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4778       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4779         VLC_ADD_PLUGINS([upnp_cc]) 
4780       ],[
4781         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4782       ])
4783     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4784     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4785       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4786       dnl The mere fact that we have to make such an ugly check sucks
4787       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4788       LIBS_save="$LIBS"
4789       LIBS_cclink="no"
4790       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4791         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4792         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4793 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4794 using namespace CyberLink;
4795
4796 class testclass : public SearchResponseListener, public MediaPlayer
4797 {
4798     virtual void deviceSearchResponseReceived( SSDPPacket *)
4799     {
4800     }
4801
4802     public:
4803       testclass (void)
4804       {
4805         addSearchResponseListener (this);
4806         start ();
4807       }
4808 };
4809 ],[testclass l;])],[LIBS_cclink="$l"])
4810       done
4811       LIBS="${LIBS_save}"
4812       dnl should not happen - otherwise this needs fixing - hence FAILURE
4813       AS_IF([test "${LIBS_cclink}" = "no"],
4814         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4815       AC_MSG_RESULT([${LIBS_cclink}])
4816       VLC_ADD_LIBS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4817     ], [
4818       AC_MSG_RESULT(no)
4819       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4820     ])
4821     CPPFLAGS="${CPPFLAGS_save}"
4822     AC_LANG_POP([C++])
4823   ])
4824 ])
4825
4826 dnl
4827 dnl UPnP Plugin (Intel SDK)
4828 dnl
4829 AC_ARG_ENABLE(upnp,
4830   [  --enable-upnp           Intel UPnP SDK (default auto)])
4831
4832 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4833 AS_IF([test "x${enable_upnp}" != "xno"], [
4834   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4835   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4836     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4837   ])
4838   AS_IF([test "${has_upnp}" = "yes"], [
4839     VLC_ADD_LIBS([upnp_intel], [-lupnp -lixml])
4840   ])
4841 ], [
4842   has_upnp="no"
4843 ])
4844
4845 AS_IF([test "${has_upnp}" = "yes"], [
4846   VLC_ADD_PLUGINS([upnp_intel])
4847 ])
4848
4849
4850 dnl
4851 dnl  Interface plugins
4852 dnl
4853
4854 AC_ARG_WITH(,[Interface plugins:])
4855
4856 dnl special case for BeOS
4857 if test "${SYS}" = "beos"
4858 then
4859     VLC_ADD_BUILTINS([beos])
4860 fi
4861
4862 dnl
4863 dnl Skins2 module
4864 dnl
4865 AC_ARG_ENABLE(skins2,
4866   [  --enable-skins2         Skins2 interface module (default disabled)])
4867 if test "${enable_skins2}" = "yes" ||
4868   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4869    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4870
4871   dnl test for the required libraries
4872   skins2_missing_lib="no"
4873
4874   dnl freetype
4875   if test "${FREETYPE_CONFIG}" != "no"; then
4876     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4877     VLC_ADD_LIBS([skins2],[`${FREETYPE_CONFIG} --libs`])
4878   else
4879     skins2_missing_lib="yes"
4880     if test "${enable_skins2}" = "yes"; then
4881       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4882     fi
4883   fi
4884
4885   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4886     VLC_ADD_PLUGINS([skins2])
4887     ALIASES="${ALIASES} svlc"
4888     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4889     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4890     VLC_ADD_LIBS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4891
4892   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4893     VLC_ADD_PLUGINS([skins2])
4894     ALIASES="${ALIASES} svlc"
4895     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4896     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4897     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4898
4899   else if test "${skins2_missing_lib}" = "no"; then
4900     VLC_ADD_PLUGINS([skins2])
4901     ALIASES="${ALIASES} svlc"
4902     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4903     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4904     VLC_ADD_LIBS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4905   fi fi fi
4906 fi
4907
4908
4909 dnl dnl
4910 dnl dnl  Gtk+ module
4911 dnl dnl
4912 dnl AC_ARG_ENABLE(gtk,
4913 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4914 dnl if test "${enable_gtk}" != "no"
4915 dnl then
4916 dnl   GTK_PATH="${PATH}"
4917 dnl   AC_ARG_WITH(gtk-config-path,
4918 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4919 dnl     [ if test "${with_gtk_config_path}" != "no"
4920 dnl       then
4921 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4922 dnl       fi ])
4923 dnl   # look for gtk-config
4924 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4925 dnl   GTK_CONFIG=${GTK12_CONFIG}
4926 dnl   if test "${GTK_CONFIG}" = "no"
4927 dnl   then
4928 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4929 dnl   fi
4930 dnl   if test "${GTK_CONFIG}" != "no"
4931 dnl   then
4932 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4933 dnl     then
4934 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.])
4935 dnl     fi
4936 dnl     if test "${SYS}" != "mingw32"; then
4937 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4938 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4939 dnl     else
4940 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4941 dnl       VLC_ADD_LIBS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4942 dnl     fi
4943 dnl     # now look for the gtk.h header
4944 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4945 dnl     ac_cv_gtk_headers=yes
4946 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4947 dnl       ac_cv_gtk_headers=no
4948 dnl       echo "Cannot find gtk development headers."
4949 dnl     ])
4950 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4951 dnl     then
4952 dnl       VLC_ADD_PLUGINS([gtk])
4953 dnl       if test "${SYS}" != "mingw32"; then
4954 dnl         NEED_GTK_MAIN=yes
4955 dnl       fi
4956 dnl       ALIASES="${ALIASES} gvlc"
4957 dnl     fi
4958 dnl     CPPFLAGS="${CPPFLAGS_save}"
4959 dnl   fi
4960 dnl fi
4961 dnl 
4962 dnl
4963 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4964 dnl
4965 dnl AC_ARG_ENABLE(gtk2,
4966 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4967 dnl if test "${enable_gtk2}" = "yes"
4968 dnl then
4969 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4970 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4971 dnl   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4972 dnl   VLC_ADD_PLUGINS([gtk2])
4973 dnl   if test "${SYS}" != "mingw32"; then
4974 dnl     NEED_GTK2_MAIN=yes
4975 dnl   fi
4976 dnl fi
4977
4978 dnl
4979 dnl  PDA Gtk+2 module
4980 dnl
4981 AC_ARG_ENABLE(pda,
4982   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4983 if test "${enable_pda}" = "yes"
4984 then
4985   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4986   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4987   VLC_ADD_LIBS([gtk2],[${GTK2_LIBS}])
4988   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4989   VLC_ADD_LIBS([pda],[${LDFLAGS_pda}])
4990   VLC_ADD_LIBS([pda],[${GTK2_LIBS}])
4991   VLC_ADD_PLUGINS([pda])
4992   if test "${SYS}" != "mingw32"; then
4993     NEED_GTK2_MAIN=yes
4994   fi
4995 fi
4996
4997 dnl dnl
4998 dnl dnl  Gnome module
4999 dnl dnl
5000 dnl AC_ARG_ENABLE(gnome,
5001 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
5002 dnl   [if test "${enable_gnome}" = "yes"; then
5003 dnl     # look for gnome-config
5004 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
5005 dnl     if test -x ${GNOME_CONFIG}
5006 dnl     then
5007 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
5008 dnl        VLC_ADD_LIBS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
5009 dnl     fi
5010 dnl     # now look for the gnome.h header
5011 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
5012 dnl     AC_CHECK_HEADERS(gnome.h, [
5013 dnl       VLC_ADD_PLUGINS([gnome])
5014 dnl       NEED_GTK_MAIN=yes
5015 dnl       NEED_GNOME_MAIN=yes
5016 dnl       ALIASES="${ALIASES} gnome-vlc"
5017 dnl       dnl We need this because of some moronic gnomesupport.h flavours
5018 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
5019 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5020 dnl         AC_MSG_RESULT(yes)
5021 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5022 dnl                   Define if <gnome.h> defines strndup.)],[
5023 dnl         AC_MSG_RESULT(no)])
5024 dnl      ],[
5025 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5026 dnl developement tools or remove the --enable-gnome option])
5027 dnl      ])
5028 dnl     CPPFLAGS="${CPPFLAGS_save}"
5029 dnl   fi])
5030
5031 dnl
5032 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5033 dnl
5034 dnl AC_ARG_ENABLE(gnome2,
5035 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5036 dnl if test "${enable_gnome2}" = "yes"
5037 dnl then
5038 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5039 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5040 dnl   VLC_ADD_LIBS([gnome2],[${GNOME2_LIBS}])
5041 dnl   VLC_ADD_PLUGINS([gnome2])
5042 dnl   if test "${SYS}" != "mingw32"; then
5043 dnl     NEED_GNOME2_MAIN=yes
5044 dnl   fi
5045 dnl fi
5046
5047 dnl
5048 dnl  wxWidgets module
5049 dnl
5050 AC_ARG_ENABLE(wxwidgets,
5051   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5052
5053 if test "${enable_wxwidgets}" = "yes"
5054 then
5055   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5056   WXWIDGETS_PATH="${PATH}"
5057   AC_ARG_WITH(wx-config-path,
5058     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5059     [ if test "${with_wx_config_path}" != "no"
5060       then
5061         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5062       fi ])
5063   WXWIDGETS_NAME="wx-config"
5064   AC_ARG_WITH(wx-config,
5065     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5066     [ if test "${with_wx_config}" != "no"
5067       then
5068         WXWIDGETS_NAME="${with_wx_config}"
5069       fi ])
5070   # look for wx-config
5071   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5072   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5073   then
5074     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5075     then
5076       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5077     fi
5078     AC_LANG_PUSH(C++)
5079     # Turn this error:
5080     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5081     # into a warning. However better would be to fix playlist.cpp
5082     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5083         [ac_cv_cxx_fpermissive],
5084         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5085          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5086                         ac_cv_cxx_fpermissive=no)])
5087     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5088       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5089     fi
5090     VLC_ADD_LIBS([wxwidgets],[`${WX_CONFIG} --libs`])
5091     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5092     # check if we must link against gtk2 libs
5093     # if __WXGTK20__ && __WXGTK__ are defined
5094     # for modules/gui/wxwidgets/video.cpp
5095     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5096 #include <wx/wx.h>
5097 #ifdef __WXGTK20__
5098 #error ok, we need to link against gtk2
5099 #endif
5100         ])],[WXGTK=no],[WXGTK=yes])
5101     if test "$WXGTK" = "yes"; then
5102       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LIBS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5103     fi
5104     if ${WX_CONFIG} --unicode
5105     then 
5106       # wxwidgets should provide the following flags but does not
5107       # the following is required to compile for win32
5108       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5109     else
5110       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5111     fi
5112     if test "$have_libcdio" = "yes"
5113     then 
5114       VLC_ADD_LIBS([wxwidgets],[$LIBCDIO_LIBS])
5115       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5116     else 
5117       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5118     fi
5119
5120     if test "$have_libvcdinfo" = "yes"
5121     then 
5122       VLC_ADD_LIBS([wxwidgets],[$VCDINFO_LIBS])
5123       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5124     else 
5125       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5126     fi
5127
5128     # now look for the wxprec.h header
5129     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5130     ac_cv_wx_headers=yes
5131     AC_CHECK_HEADERS(wx/wxprec.h, , [
5132       ac_cv_wx_headers=no
5133       echo "Cannot find wxWidgets development headers."
5134     ])
5135     if test "${ac_cv_wx_headers}" = "yes"
5136     then
5137       VLC_ADD_PLUGINS([wxwidgets])
5138       ALIASES="${ALIASES} wxvlc"
5139     fi
5140     CPPFLAGS="${CPPFLAGS_save}"
5141     AC_LANG_POP(C++)
5142   fi
5143   dnl WxWidgets plugin will yield incorrect code without this
5144   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5145 fi
5146
5147 dnl
5148 dnl QT 4
5149 dnl
5150 enableqt4=false
5151 AC_ARG_ENABLE(qt4,
5152   [  --enable-qt4            QT 4 support (default enabled) ])
5153 AS_IF([test "${enable_qt4}" != "no" &&
5154   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5155   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5156     [ VLC_ADD_PLUGINS([qt4])
5157       ALIASES="${ALIASES} qvlc"
5158       enableqt4=true
5159       VLC_ADD_LIBS([qt4],[$QT4_LIBS])
5160       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS -DQT4LOCALEDIR=\\\\\\\"$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/\\\\\\\"])
5161       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5162       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5163       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5164       ],
5165       AS_IF([test "${enable_qt4}" = "yes"],[
5166         AC_MSG_ERROR(QT4 library not found)
5167       ],[
5168          AC_MSG_WARN(QT4 library not found)
5169       ])
5170     )
5171 ])
5172 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5173
5174 dnl
5175 dnl  WinCE GUI module
5176 dnl
5177 if test "${SYS}" = "mingwce"; then
5178   VLC_ADD_BUILTINS([wince])
5179   VLC_ADD_CXXFLAGS([wince],[])
5180   VLC_ADD_LIBS([wince],[-lcommctrl -lcommdlg -laygshell])
5181   dnl Gross hack
5182   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5183 elif test "${SYS}" = "mingw32"; then
5184   VLC_ADD_CXXFLAGS([wince],[])
5185   VLC_ADD_LIBS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5186   dnl Gross hack
5187   VLC_ADD_LIBS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5188 fi
5189
5190 dnl
5191 dnl Simple test for skins2 dependency
5192 dnl
5193 if test "${enable_skins2}" != "no"
5194 then
5195   if test "${WX_CONFIG}" = "no"
5196   then
5197     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.])
5198   fi
5199 fi
5200
5201 dnl dnl
5202 dnl dnl  Qt module
5203 dnl dnl
5204 dnl AC_ARG_ENABLE(qt,
5205 dnl   [  --enable-qt             Qt interface support (default disabled)],
5206 dnl   [if test "${enable_qt}" = "yes"; then
5207 dnl      VLC_ADD_PLUGINS([qt])
5208 dnl      ALIASES="${ALIASES} qvlc"
5209 dnl      VLC_ADD_LIBS([qt],[-L${QTDIR}/lib])
5210 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5211 dnl      AC_CHECK_LIB(qt-mt,main,[
5212 dnl        VLC_ADD_LIBS([qt],[-lqt-mt])
5213 dnl      ],[
5214 dnl        AC_CHECK_LIB(qt,main,[
5215 dnl          VLC_ADD_LIBS([qt],[-lqt])
5216 dnl        ])
5217 dnl      ])
5218 dnl      LDFLAGS="${LDFLAGS_save}"
5219 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5220 dnl      if test -x ${QTDIR}/bin/moc
5221 dnl      then
5222 dnl        MOC=${QTDIR}/bin/moc
5223 dnl      else
5224 dnl        MOC=moc
5225 dnl      fi
5226 dnl    fi])
5227 dnl 
5228 dnl dnl
5229 dnl dnl  KDE module
5230 dnl dnl
5231 dnl AC_ARG_ENABLE(kde,
5232 dnl   [  --enable-kde            KDE interface support (default disabled)],
5233 dnl   [if test "${enable_kde}" = "yes"; then
5234 dnl      VLC_ADD_PLUGINS([kde])
5235 dnl      ALIASES="${ALIASES} kvlc"
5236 dnl      VLC_ADD_LIBS([kde],[-L${KDEDIR}/lib])
5237 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5238 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5239 dnl      AC_CHECK_LIB(kfile,main,[
5240 dnl        VLC_ADD_LIBS([kde],[-lkfile])
5241 dnl      ])
5242 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5243 dnl      AC_CHECK_LIB(kdeui,main,[
5244 dnl        VLC_ADD_LIBS([kde],[-lkdeui])
5245 dnl      ])
5246 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5247 dnl      AC_CHECK_LIB(kio,main,[
5248 dnl        VLC_ADD_LIBS([kde],[-lkio])
5249 dnl      ])
5250 dnl      LDFLAGS="${LDFLAGS_save}"
5251 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5252 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5253 dnl      if test -x ${QTDIR}/bin/moc
5254 dnl      then
5255 dnl        MOC=${QTDIR}/bin/moc
5256 dnl      else
5257 dnl        MOC=moc
5258 dnl      fi
5259 dnl    fi])
5260
5261 dnl
5262 dnl  Opie QT embedded module
5263 dnl
5264 AC_ARG_ENABLE(opie,
5265   [  --enable-opie           Qt embedded interface support (default disabled)],
5266   [if test "${enable_opie}" = "yes"; then
5267      AC_ARG_WITH(qte,
5268      [    --with-qte=PATH       Qt Embedded headers and libraries])
5269      if test "${with_qte}" != "no" -a -n "${with_qte}"
5270      then
5271        VLC_ADD_LIBS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5272        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])
5273      else
5274        VLC_ADD_LIBS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5275        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5276      fi
5277      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5278      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5279        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5280      ] )
5281      CPPFLAGS="${CPPFLAGS_save}"
5282
5283      VLC_ADD_PLUGINS([opie])
5284      NEED_QTE_MAIN=yes
5285      VLC_ADD_LIBS([opie],[-lqpe ${LDFLAGS_qte}])
5286      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5287      if test "${with_qte}" != "no" -a -n "${with_qte}"
5288      then
5289        MOC=${with_qte}/bin/moc
5290      else
5291        MOC=${QTDIR}/bin/moc
5292      fi
5293    fi])
5294
5295 dnl
5296 dnl  MacOS X module
5297 dnl
5298 ORIGCFLAGS=$CFLAGS
5299 CFLAGS="$CFLAGS -x objective-c"
5300 AC_ARG_ENABLE(macosx,
5301   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
5302   [if test "${enable_macosx}" = "yes"
5303    then
5304      VLC_ADD_PLUGINS([access_eyetv])
5305      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5306      VLC_ADD_LDFLAGS([minimal_macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL])
5307      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit,-framework,WebKit])
5308      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
5309      VLC_ADD_OBJCFLAGS( [minimal_macosx],[-fobjc-exceptions] )
5310    fi],
5311   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
5312     [VLC_ADD_PLUGINS([access_eyetv])
5313      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5314      VLC_ADD_BUILTINS([macosx])
5315      VLC_ADD_BUILTINS([minimal_macosx])
5316      VLC_ADD_LDFLAGS([minimal_macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL])
5317      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit,-framework,WebKit])
5318      VLC_ADD_OBJCFLAGS([macosx],[-fobjc-exceptions])
5319      VLC_ADD_OBJCFLAGS([minimal_macosx],[-fobjc-exceptions])
5320     ])])
5321 CFLAGS=$ORIGCFLAGS
5322
5323 dnl
5324 dnl  QNX RTOS module
5325 dnl
5326 AC_ARG_ENABLE(qnx,
5327   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5328     if test "${enable_qnx}" != "no"
5329     then
5330       AC_CHECK_HEADERS(Ph.h, [
5331         VLC_ADD_PLUGINS([qnx])
5332         VLC_ADD_LIBS([qnx],[-lasound -lph])
5333       ])
5334     fi
5335
5336 dnl
5337 dnl  ncurses module
5338 dnl
5339 AC_ARG_ENABLE(ncurses,
5340   [  --disable-ncurses       ncurses interface support (default enabled)],
5341   [if test "${enable_ncurses}" != "no"; then
5342      AC_CHECK_HEADERS(ncursesw/curses.h,
5343        [AC_CHECK_LIB( ncursesw, mvprintw,
5344          [VLC_ADD_PLUGINS([ncurses])
5345          VLC_ADD_LIBS([ncurses],[-lncursesw])])
5346        ],
5347        [AC_CHECK_HEADER(curses.h,
5348          [AC_CHECK_LIB(ncurses, mvprintw,
5349            [VLC_ADD_PLUGINS([ncurses])
5350            VLC_ADD_LIBS([ncurses],[-lncurses])]
5351          )]
5352        )]
5353      )  
5354    fi])
5355
5356 dnl
5357 dnl  XOSD plugin
5358 dnl
5359 AC_ARG_ENABLE(xosd,
5360   [  --enable-xosd           xosd interface support (default disabled)])
5361 if test "${enable_xosd}" = "yes"
5362 then
5363   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5364   AC_CHECK_LIB(xosd,xosd_set_offset,
5365       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5366     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5367         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5368       AC_TRY_COMPILE([#include <xosd.h>],
5369          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5370           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5371   if test "${have_xosd}" = "true"
5372   then
5373     VLC_ADD_PLUGINS([xosd])
5374     VLC_ADD_LIBS([xosd],[-lxosd])
5375   fi
5376 fi
5377
5378 dnl
5379 dnl Visualisation plugin
5380 dnl
5381 AC_ARG_ENABLE(visual,
5382   [  --enable-visual         visualisation plugin (default enabled)])
5383 if test "${enable_visual}" != "no"
5384 then
5385     VLC_ADD_PLUGINS([visual])
5386 fi
5387
5388 dnl
5389 dnl OpenGL visualisation plugin
5390 dnl
5391 AC_ARG_ENABLE(galaktos,
5392   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5393 if test "${enable_galaktos}" = "yes"
5394 then
5395   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5396     VLC_ADD_PLUGINS([galaktos])
5397     if test "${SYS}" != "mingw32"; then
5398       VLC_ADD_LIBS([galaktos],[${X_LIBS} -lGL -lGLU])
5399     else
5400       VLC_ADD_LIBS([galaktos],[-lopengl32])
5401     fi
5402   ])
5403 fi
5404
5405 dnl
5406 dnl  goom visualization plugin
5407 dnl
5408 AC_ARG_ENABLE(goom,
5409 [  --enable-goom           goom visualisation plugin (default disabled)])
5410 if test "${enable_goom}" = "yes"
5411 then
5412   AC_ARG_WITH(goom-tree,
5413     [    --with-goom-tree=PATH goom tree for static linking (required)])
5414
5415   dnl
5416   dnl test for --with-goom-tree
5417   dnl
5418   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5419     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5420     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5421     if test -z "${real_goom_tree}"; then
5422       dnl  The given directory can't be found
5423       AC_MSG_RESULT(no)
5424       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5425     fi
5426     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5427       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5428       VLC_ADD_BUILTINS([goom])
5429       VLC_ADD_LIBS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5430       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5431     else
5432       dnl  The given libgoom2 wasn't built, try to look for the old goom
5433       AC_MSG_RESULT(no)
5434       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5435       if test -f "${real_goom_tree}/libgoom.a"; then
5436         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5437         VLC_ADD_BUILTINS([goom])
5438         VLC_ADD_LIBS([goom],[-L${real_goom_tree} -lgoom])
5439         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5440       else
5441         dnl  The given libgoom wasn't built
5442         AC_MSG_RESULT(no)
5443         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5444       fi
5445     fi
5446   else
5447     AC_CHECK_HEADERS(goom/goom.h, [
5448       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5449       AC_CHECK_LIB(goom2, goom_init, [
5450         VLC_ADD_PLUGINS([goom])
5451         VLC_ADD_LIBS([goom],[-lgoom2])
5452       ],[
5453         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5454       ])
5455       LDFLAGS="${LDFLAGS_save}"
5456     ])
5457   fi
5458 fi
5459
5460 dnl
5461 dnl  Bonjour services discovery
5462 dnl
5463 AC_ARG_ENABLE(bonjour,
5464   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5465 if test "${enable_bonjour}" != "no"
5466 then
5467   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5468     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5469        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5470       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5471       VLC_ADD_LIBS([bonjour access_output_http],[$BONJOUR_LIBS])
5472       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5473       VLC_ADD_PLUGINS([bonjour]) ],
5474     [AC_MSG_WARN(avahi-client library not found)])
5475 fi
5476
5477 dnl
5478 dnl  Lirc plugin
5479 dnl
5480 AC_ARG_ENABLE(lirc,
5481   [  --enable-lirc           lirc support (default disabled)])
5482 if test "${enable_lirc}" = "yes"
5483 then
5484   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5485   if test "${have_lirc}" = "true"
5486   then
5487     VLC_ADD_PLUGINS([lirc])
5488     VLC_ADD_LIBS([lirc],[-llirc_client])
5489   fi
5490 fi
5491
5492
5493 AC_ARG_WITH(,[Misc options:])
5494
5495 dnl
5496 dnl TLS/SSL
5497 dnl
5498 AC_ARG_ENABLE(gnutls,
5499   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5500
5501 AS_IF([test "${enable_gnutls}" != "no"], [
5502   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [have_gnutls="yes"], [have_gnutls="no"])
5503
5504   AS_IF([test "${have_gnutls}" = "yes"], [
5505     VLC_ADD_PLUGINS([gnutls])
5506     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5507     AS_IF([test "${SYS}" = "mingw32"], [
5508       dnl pkg-config --libs gnutls omits these
5509       VLC_ADD_LIBS([gnutls], [-lz])
5510       VLC_ADD_LIBS([gnutls], [${LTLIBINTL}])
5511     ])
5512     AC_CHECK_LIB([gcrypt], [gcry_control], [
5513       VLC_ADD_LIBS([gnutls], [-lgcrypt -lgpg-error])
5514     ], [], [-lgpg-error])
5515     VLC_ADD_LIBS([gnutls], [$GNUTLS_LIBS])
5516   ], [
5517     AS_IF([test "${enable_gnutls}" = "yes"], [
5518       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5519     ])
5520   ])
5521 ])
5522
5523 dnl
5524 dnl libgcrypt
5525 dnl
5526 AC_ARG_ENABLE(libgcrypt,
5527   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5528 if test "${enable_libgcrypt}" != "no" -a "${enable_gnutls}" != "no"i
5529 then
5530   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5531   dnl it and looks for libgcrypt headers in the wrong place.
5532   if test "${host_cpu}" = "${build_cpu}"
5533   then
5534     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5535   else
5536     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5537   fi
5538 fi
5539 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5540
5541
5542 dnl
5543 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5544 dnl
5545 dnl  We give the user the opportunity to specify
5546 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5547 dnl
5548 AC_ARG_WITH(words,
5549   [    --with-words=endianness set endianness (big or little)])
5550   case "${with_words}" in
5551     big)
5552       ac_cv_c_bigendian=yes
5553       ;;
5554     little)
5555       ac_cv_c_bigendian=no
5556       ;;
5557     *)
5558       dnl  Try to guess endianness by matching patterns on a compiled
5559       dnl  binary, by looking for an ASCII or EBCDIC string
5560       AC_CACHE_CHECK([whether the byte order is big-endian],
5561         [ac_cv_c_bigendian],
5562         [ac_cv_c_bigendian="unknown"
5563         [cat >conftest.c <<EOF
5564         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5565         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5566         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5567         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5568         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5569         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5570         int main(void) { _a(); _e(); return 0; }
5571 EOF
5572         ]
5573         if test -f conftest.c
5574         then
5575           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5576               && test -f conftest.o
5577           then
5578             if test "`strings conftest.o | grep BIGenDianSyS`"
5579             then
5580               ac_cv_c_bigendian="yes"
5581             fi
5582             if test "`strings conftest.o | grep LiTTleEnDian`"
5583             then
5584               ac_cv_c_bigendian="no"
5585             fi
5586           fi
5587         fi
5588       ])
5589       if test "${ac_cv_c_bigendian}" = "unknown"
5590       then
5591         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5592       fi
5593       ;;
5594   esac
5595 dnl  Now we know what to use for endianness, just put it in the header
5596 if test "${ac_cv_c_bigendian}" = "yes"
5597 then
5598   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5599 fi
5600
5601 dnl
5602 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5603 dnl
5604 loader=false
5605 AC_ARG_ENABLE(loader,
5606   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5607 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5608 AS_IF([test "${enable_loader}" = "yes"],
5609   [ VLC_ADD_PLUGINS([dmo])
5610     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5611     VLC_ADD_LIBS([dmo],[../../../libs/loader/libloader.la -lpthread])
5612     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5613     VLC_ADD_LIBS([quicktime],[../../libs/loader/libloader.la -lpthread])
5614     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5615     VLC_ADD_LIBS([realaudio],[../../libs/loader/libloader.la -ldl -lpthread])
5616   ])
5617
5618 dnl
5619 dnl  Microsoft ActiveX support
5620 dnl
5621 activex=false
5622 AC_ARG_ENABLE(activex,
5623   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5624 AC_ARG_WITH(wine-sdk-path,
5625   [    --with-wine-sdk-path=PATH path to wine sdk])
5626 if test "${enable_activex}" != "no"
5627 then
5628   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5629   then
5630     AC_CHECK_PROGS(MIDL, [midl], no)
5631     if test "${with_wine_sdk_path}" != ""
5632     then
5633        WINE_SDK_PATH=${with_wine_sdk_path}
5634        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5635     else
5636        WIDL=no
5637     fi
5638     AC_LANG_PUSH(C++)
5639     AC_CHECK_HEADERS(ole2.h, 
5640       [AC_CHECK_HEADERS(olectl.h,
5641         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5642           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5643           VLC_ADD_LIBS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5644           AC_CHECK_HEADERS(objsafe.h,
5645             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5646             [
5647              #if HAVE_OLE2_H
5648              #   include <ole2.h>
5649              #endif
5650              ]
5651           )
5652           activex=:
5653           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5654         ],
5655         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5656       )],
5657       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5658     )
5659     AC_LANG_POP(C++)
5660   fi
5661 fi
5662 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5663 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5664 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5665 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5666 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5667
5668 dnl
5669 dnl  Mozilla plugin
5670 dnl
5671 mozilla=false
5672 AC_ARG_ENABLE(mozilla,
5673   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5674 AC_ARG_WITH(mozilla-sdk-path,
5675   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5676 AC_LANG_PUSH(C++)
5677 if test "${enable_mozilla}" = "yes" 
5678 then
5679   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5680   need_xpcom_libs=false
5681
5682   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5683   then
5684     dnl New firefox-1.5 SDK api
5685     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5686       [
5687         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5688           [],
5689           [
5690             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5691               [],
5692               [
5693                 PKG_CHECK_MODULES([NSPR], [nspr],
5694                   [],
5695                   [
5696                     AC_MSG_ERROR([Please install the nspr development tools.])
5697                   ]
5698                 )
5699               ]
5700             )
5701           ])
5702         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5703         MOZILLA_REQUIRED_HEADERS=1
5704         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5705         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5706         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5707           [#if HAVE_NPAPI_H
5708            # include <npapi.h>
5709            #endif
5710           ])
5711         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5712             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5713         fi
5714         MOZILLA_REQUIRED_HEADERS=
5715         mozilla=:
5716         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5717         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5718             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5719         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5720             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5721         else
5722             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5723         fi
5724         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5725             VLC_ADD_LIBS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt])
5726         fi
5727         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5728         VLC_ADD_LDFLAGS([mozilla],[${MOZILLA_LDFLAGS}])
5729         VLC_ADD_LIBS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS}])
5730         VLC_ADD_PLUGINS([mozilla])
5731         MOZILLA_CONFIG=
5732         CPPFLAGS="${CPPFLAGS_save}"
5733       ],
5734       [
5735         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5736         if test "${MOZILLA_CONFIG}" = "no"
5737         then
5738           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5739           if test "${SEAMONKEY_CONFIG}" = "no"
5740           then
5741             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5742             if test "${XULRUNNER_CONFIG}" = "no"
5743             then
5744               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5745             else
5746               have_xul=true
5747               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5748             fi
5749           else
5750             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5751           fi
5752         fi
5753       ]
5754     )
5755     if test ! -z "${MOZILLA_CONFIG}"
5756     then
5757       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5758         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5759         AC_CHECK_LIB(Xt,XtStrings,
5760          [
5761            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5762            VLC_ADD_LIBS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5763          ],
5764          [],
5765          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5766         ])
5767         LDFLAGS="${LDFLAGS_save}"
5768       fi
5769
5770       mozilla=:
5771       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5772       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5773       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5774       if ${need_xpcom_libs}; then
5775          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5776       else
5777          VLC_ADD_LIBS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5778       fi
5779       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5780       MOZILLA_REQUIRED_HEADERS=1
5781       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5782       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5783       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5784         [#if HAVE_NPAPI_H
5785          # include <npapi.h>
5786          #endif
5787         ])
5788       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5789       then
5790         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5791       fi
5792       MOZILLA_REQUIRED_HEADERS=
5793       CPPFLAGS="${CPPFLAGS_save}"
5794       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5795     fi
5796     dnl End of moz_sdk = ""
5797   else
5798     dnl special case for mingw32
5799     if test "${SYS}" = "mingw32"
5800     then
5801       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5802       dnl latest gecko sdk does not have an xpcom directory
5803       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5804           mozilla_sdk_xpcom="/xpcom"
5805       fi
5806     fi
5807
5808     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5809     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5810     MOZILLA_REQUIRED_HEADERS=1
5811     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5812     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5813     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5814         [#if HAVE_NPAPI_H
5815           #include <npapi.h>
5816           #endif
5817         ])
5818     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5819     then
5820         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5821     fi
5822     MOZILLA_REQUIRED_HEADERS=
5823     mozilla=:
5824     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5825     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])
5826     if ${need_xpcom_libs}; then
5827        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])
5828       if test "${SYS}" = "mingw32"; then
5829         dnl latest gecko sdk does not have embedstring
5830         if test -d "${real_mozilla_sdk}/embedstring/bin"
5831         then
5832           VLC_ADD_LIBS([mozilla],[-lembedstring])
5833         fi
5834       fi
5835     fi
5836     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5837
5838     if test -n "${CYGPATH}"; then
5839       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5840     fi
5841     CPPFLAGS="${CPPFLAGS_save}"
5842   fi
5843 fi
5844 AC_LANG_POP(C++)
5845 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5846
5847    dnl Tests for Osso and Xsp
5848 if test "${enable_x11}" != "no" &&
5849   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5850    test "${enable_x11}" = "yes"); then
5851    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5852       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5853           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5854           VLC_ADD_LIBS([x11],[-losso])
5855       ])
5856    ])
5857    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5858       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5859       VLC_ADD_LIBS([x11],[-lXsp])
5860    ])
5861 fi
5862
5863 dnl
5864 dnl  Mediacontrol Python bindings
5865 dnl
5866 AC_ARG_ENABLE(python-bindings,
5867   [  --enable-python-bindings Enable Python bindings (default disabled)])
5868 dnl TODO: look for python dev headers
5869 AS_IF([test "${enable_python_bindings}" = "yes"],
5870       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5871      ) 
5872
5873 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5874
5875 dnl
5876 dnl  Java bindings
5877 dnl
5878 AC_ARG_ENABLE(java-bindings,
5879   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5880 if test "${enable_java_bindings}" = "yes"
5881 then
5882   AS_IF([test "x${JAVA_HOME}" == "x"],
5883         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5884   AC_PROG_JAVAC
5885   AC_PROG_JAVA
5886   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5887   if test "${JAVAC}" == "javac${EXEEXT}"
5888   then
5889     JAVAC="javac${EXEEXT} -cp ./ "
5890   fi
5891 fi
5892 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5893
5894 dnl
5895 dnl  test plugins
5896 dnl
5897 AC_ARG_ENABLE(testsuite,
5898   [  --enable-testsuite      build test modules (default disabled)])
5899 if test "${enable_testsuite}" = "yes"
5900 then
5901   TESTS="test1 test2 test3 test4"
5902
5903   dnl  we define those so that bootstrap sets the right linker
5904   VLC_ADD_CXXFLAGS([test2],[])
5905   VLC_ADD_OBJCFLAGS([test3],[])
5906   dnl  this one is needed until automake knows what to do
5907   VLC_ADD_LIBS([test3],[-lobjc])
5908
5909   VLC_ADD_PLUGINS([${TESTS}])
5910 fi
5911
5912 dnl
5913 dnl Microsoft Layer for Unicode for WIN9x/ME
5914 dnl
5915 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5916 then
5917     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5918         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5919     ])
5920 fi
5921
5922 dnl
5923 dnl  gtk_main plugin
5924 dnl
5925 if test "${NEED_GTK_MAIN}" != "no"
5926 then
5927     VLC_ADD_PLUGINS([gtk_main])
5928     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5929     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5930 fi
5931
5932 if test "${NEED_GNOME_MAIN}" != "no"
5933 then
5934     VLC_ADD_PLUGINS([gnome_main])
5935     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5936     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5937 fi
5938
5939 if test "${NEED_GTK2_MAIN}" != "no"
5940 then
5941     VLC_ADD_PLUGINS([gtk2_main])
5942     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5943     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5944     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5945     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5946 fi
5947
5948 if test "${NEED_GNOME2_MAIN}" != "no"
5949 then
5950     VLC_ADD_PLUGINS([gnome2_main])
5951     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5952     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5953 fi
5954
5955 dnl
5956 dnl  qte_main plugin
5957 dnl
5958 if test "${NEED_QTE_MAIN}" != "no"
5959 then
5960     VLC_ADD_PLUGINS([qte_main])
5961     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5962     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5963     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5964 fi
5965
5966
5967 dnl
5968 dnl  Plugin and builtin checks
5969 dnl
5970 plugin_support=yes
5971
5972 dnl Automagically disable plugins if there is no system support for
5973 dnl dynamically loadable files (.so, .dll, .dylib).
5974 dnl don't forget vlc-win32 still can load .dll as plugins
5975 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5976   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5977   plugin_support=no
5978 ])
5979
5980 AS_IF([test "${enable_shared}" = "no"], [
5981   plugin_support=no
5982 ])
5983
5984 AS_IF([test "${plugin_support}" != "no"], [
5985   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5986 ])
5987
5988 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5989
5990 dnl Temporary(?) hack for plugins/builtins transition
5991 VLC_ADD_PLUGINS([${BUILTINS}])
5992 BUILTINS=""
5993
5994 dnl
5995 dnl Pic and shared libvlc stuff
5996 dnl
5997 AS_IF([test "${SYS}" = "mingw32"], [
5998   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5999   FILE_LIBVLC_CONTROL_DLL="!define LIBVLC_CONTROL_DLL libvlc-control.dll"
6000 ])
6001
6002 dnl
6003 dnl  Stuff used by the program
6004 dnl
6005 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
6006 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2007 the VideoLAN team", [Copyright string])
6007 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
6008 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
6009 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
6010 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
6011 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
6012 AC_SUBST(VERSION_MAJOR)
6013 AC_SUBST(VERSION_MINOR)
6014 AC_SUBST(VERSION_REVISION)
6015 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
6016 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
6017 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
6018 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
6019
6020 dnl New definitions with value matching 0.9.0 release
6021 module_symbol="0_9_0b"
6022 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
6023 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
6024 VLC_ENTRY="vlc_entry__${module_symbol}"
6025 AC_SUBST(VLC_ENTRY)
6026
6027 dnl
6028 dnl  Handle substvars that use $(top_srcdir)
6029 dnl
6030 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6031 AC_SUBST(VLC_CONFIG)
6032 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
6033
6034 dnl
6035 dnl  Restore *FLAGS
6036 dnl
6037 VLC_RESTORE_FLAGS
6038
6039 dnl
6040 dnl  Create the vlc-config script
6041 dnl
6042 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6043
6044 dnl
6045 dnl  Configuration is finished
6046 dnl
6047 AC_SUBST(SYS)
6048 AC_SUBST(ARCH)
6049 AC_SUBST(ALIASES)
6050 AC_SUBST(ASM)
6051 AC_SUBST(MOC)
6052 AC_SUBST(RCC)
6053 AC_SUBST(UIC)
6054 AC_SUBST(WINDRES)
6055 AC_SUBST(MOZILLA_SDK_PATH)
6056 AC_SUBST(WINE_SDK_PATH)
6057 AC_SUBST(LIBEXT)
6058 AC_SUBST(AM_CPPFLAGS)
6059 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6060 AC_SUBST(FILE_LIBVLC_DLL)
6061 AC_SUBST(FILE_LIBVLC_CONTROL_DLL)
6062
6063 dnl Create vlc-config.in
6064 VLC_OUTPUT_VLC_CONFIG_IN
6065
6066 AC_CONFIG_FILES([
6067   vlc.win32.nsi
6068   Makefile
6069   activex/Makefile
6070   activex/axvlc.inf
6071   bindings/Makefile
6072   bindings/java/Makefile
6073   bindings/java/src/Makefile
6074   bindings/python/Makefile
6075   doc/Makefile
6076   intl/Makefile
6077   ipkg/Makefile
6078   libs/loader/Makefile
6079   libs/srtp/Makefile
6080   modules/Makefile
6081   mozilla/Makefile
6082   m4/Makefile
6083   po/Makefile.in
6084   share/Makefile
6085   src/Makefile
6086 ])
6087
6088 AC_CONFIG_FILES([
6089   modules/access/Makefile
6090   modules/access/bda/Makefile
6091   modules/access/dshow/Makefile
6092   modules/access/dvb/Makefile
6093   modules/access/mms/Makefile
6094   modules/access/cdda/Makefile
6095   modules/access/rtsp/Makefile
6096   modules/access/vcd/Makefile
6097   modules/access/vcdx/Makefile
6098   modules/access/screen/Makefile
6099   modules/access_filter/Makefile
6100   modules/access_output/Makefile
6101   modules/audio_filter/Makefile
6102   modules/audio_filter/channel_mixer/Makefile
6103   modules/audio_filter/converter/Makefile
6104   modules/audio_filter/resampler/Makefile
6105   modules/audio_filter/spatializer/Makefile
6106   modules/audio_mixer/Makefile
6107   modules/audio_output/Makefile
6108   modules/codec/Makefile
6109   modules/codec/cmml/Makefile
6110   modules/codec/dmo/Makefile
6111   modules/codec/ffmpeg/Makefile
6112   modules/codec/subtitles/Makefile
6113   modules/codec/spudec/Makefile
6114   modules/codec/xvmc/Makefile
6115   modules/control/Makefile
6116   modules/control/http/Makefile
6117   modules/demux/Makefile
6118   modules/demux/asf/Makefile
6119   modules/demux/avi/Makefile
6120   modules/demux/mp4/Makefile
6121   modules/demux/mpeg/Makefile
6122   modules/demux/playlist/Makefile
6123   modules/gui/Makefile
6124   modules/gui/beos/Makefile
6125   modules/gui/pda/Makefile
6126   modules/gui/macosx/Makefile
6127   modules/gui/minimal_macosx/Makefile
6128   modules/gui/qnx/Makefile
6129   modules/gui/qt4/Makefile
6130   modules/gui/skins2/Makefile
6131   modules/gui/wxwidgets/Makefile
6132   modules/gui/wince/Makefile
6133   modules/meta_engine/Makefile
6134   modules/misc/Makefile
6135   modules/misc/dummy/Makefile
6136   modules/misc/lua/Makefile
6137   modules/misc/memcpy/Makefile
6138   modules/misc/notify/Makefile
6139   modules/misc/testsuite/Makefile
6140   modules/misc/playlist/Makefile
6141   modules/misc/xml/Makefile
6142   modules/misc/probe/Makefile
6143   modules/mux/Makefile
6144   modules/mux/mpeg/Makefile
6145   modules/mux/rtp/Makefile
6146   modules/packetizer/Makefile
6147   modules/services_discovery/Makefile
6148   modules/stream_out/Makefile
6149   modules/stream_out/transrate/Makefile
6150   modules/video_chroma/Makefile
6151   modules/video_filter/Makefile
6152   modules/video_output/Makefile
6153   modules/video_output/msw/Makefile
6154   modules/video_output/qte/Makefile
6155   modules/video_output/x11/Makefile
6156   modules/visualization/Makefile
6157   modules/visualization/visual/Makefile
6158   modules/visualization/galaktos/Makefile
6159 ])
6160
6161 dnl Generate makefiles
6162 AC_OUTPUT
6163
6164 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6165 # not provided with the source
6166 ${SHELL} ./config.status --file=vlc-config
6167 chmod 0755 vlc-config
6168
6169 dnl echo "Enabled builtin modules :"
6170 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6171
6172 dnl echo "Enabled plugin modules :"
6173 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6174
6175 dnl Shortcut to nice compile message
6176 rm -f compile
6177 echo '#! /bin/sh' >compile
6178
6179 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6180 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
6181 chmod a+x compile
6182
6183 printf "
6184 vlc configuration
6185 --------------------
6186 vlc version           : ${VERSION}
6187 system                : ${SYS}
6188 architecture          : ${ARCH}
6189 build flavour         : "
6190 test "${enable_debug}" = "yes" && printf "debug "
6191 test "${enable_cprof}" = "yes" && printf "cprof "
6192 test "${enable_gprof}" = "yes" && printf "gprof "
6193 test "${enable_optimizations}" = "yes" && printf "optim "
6194 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6195 echo "
6196 vlc aliases           :${ALIASES}
6197 plugins/bindings      :${PLUGINS_BINDINGS}
6198
6199 You can check which modules have been enabled 
6200 with \`./vlc-config --list plugin'.
6201 You can tune the compiler flags in vlc-config.
6202 To build vlc and its plugins, type \`./compile' or \`make'.
6203 "
6204