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