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