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