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