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