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