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