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