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