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