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