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