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