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