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