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