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