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