]> git.sesse.net Git - vlc/blob - configure.ac
Use decoder_GetDisplayDate.
[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])
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])
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 Teletext Modules
3784 dnl vbi decoder plugin (using libzbvi)
3785 dnl telx module
3786 dnl uncompatible
3787 dnl
3788 AC_ARG_ENABLE(zvbi,
3789   [  --enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi (default enabled)])
3790 AC_ARG_ENABLE(telx,
3791   [  --enable-telx,          Teletext decoding module (conflicting with zvbi) (default disabled)])
3792
3793 AS_IF( [test "${enable_zvbi}" != "no"],[
3794   AS_IF( [test "${enable_telx}" = "yes"],[
3795     AC_MSG_ERROR([The zvbi and telx modules are uncompatibles. Disable the other if you enable one.])
3796   ],[
3797     PKG_CHECK_MODULES(ZVBI,
3798         zvbi-0.2 >= 0.2.25,
3799         [
3800           VLC_ADD_LDFLAGS([zvbi],[$ZVBI_LIBS])
3801           VLC_ADD_CFLAGS([zvbi],[$ZVBI_CFLAGS])
3802           VLC_ADD_PLUGINS([zvbi])
3803           AC_DEFINE(ZVBI_COMPILED, 1, [Define if the zvbi module is built]) 
3804         ],[
3805           AC_MSG_WARN(ZVBI library not found. Enabling the telx module instead)
3806           enable_telx="yes"
3807         ])
3808     ])  
3809   ])
3810 AS_IF( [test "${enable_telx}" = "yes"],[
3811   VLC_ADD_PLUGINS([telx])
3812   ])
3813
3814 dnl
3815 dnl  CMML plugin
3816 dnl
3817 AC_ARG_ENABLE(cmml,
3818   [  --enable-cmml           CMML support (default enabled)])
3819 if test "${enable_cmml}" != "no"
3820 then
3821   VLC_ADD_PLUGINS([cmml])
3822 fi
3823
3824
3825 dnl
3826 dnl  Video plugins
3827 dnl
3828
3829 AC_ARG_WITH(,[Video plugins:])
3830
3831 dnl Check for DPMS
3832 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3833   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3834   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3835     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3836     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3837       AC_MSG_RESULT(yes)
3838       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3839                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3840     ],[
3841       AC_MSG_RESULT(no)
3842     ])
3843   ],,[
3844     #include <X11/Xlib.h>
3845   ])
3846   CPPFLAGS="${CPPFLAGS_save}"
3847 fi
3848
3849 dnl
3850 dnl  X11 module
3851 dnl  (enabled by default except on win32)
3852 dnl
3853 AC_ARG_ENABLE(x11,
3854   [  --enable-x11            X11 support (default enabled)])
3855 if test "${enable_x11}" != "no" &&
3856   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3857    test "${enable_x11}" = "yes"); then
3858   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3859   AC_CHECK_HEADERS(X11/Xlib.h, [
3860     VLC_ADD_PLUGINS([panoramix])
3861     VLC_ADD_LDFLAGS([panoramix],[${X_LIBS} ${X_PRE_LIBS} -lX11])
3862     VLC_ADD_CPPFLAGS([panoramix],[${X_CFLAGS}])
3863     AC_CHECK_LIB(Xext, XShmAttach, [
3864       VLC_ADD_PLUGINS([x11])
3865       VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3866       VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3867     ])
3868   ])
3869   CPPFLAGS="${CPPFLAGS_save}"
3870 fi
3871
3872 dnl
3873 dnl  XVideo module
3874 dnl  (enabled by default except on win32)
3875 dnl
3876 AC_ARG_ENABLE(xvideo,
3877   [  --enable-xvideo         XVideo support (default enabled)])
3878 if test "${enable_xvideo}" != "no" &&
3879   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3880    test "${enable_xvideo}" = "yes"); then
3881   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3882   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3883     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3884     AC_CHECK_LIB(Xv,XvPutImage,[
3885       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3886       # test for libXv_pic.
3887       if test -f /usr/X11R6/lib/libXv.so -o -f /usr/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3888         VLC_ADD_PLUGINS([xvideo])
3889         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3890         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3891       else
3892         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3893           VLC_ADD_PLUGINS([xvideo])
3894           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3895           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3896         ],[
3897           VLC_ADD_BUILTINS([xvideo])
3898           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3899           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3900         ])
3901       fi
3902     ])
3903     CFLAGS="${CFLAGS_save}"
3904   ]
3905   CPPFLAGS="${CPPFLAGS_save}")
3906 fi
3907
3908 dnl
3909 dnl  GLX module
3910 dnl  (enabled by default except on win32)
3911 dnl
3912 AC_ARG_ENABLE(glx,
3913   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3914 if test "${enable_glx}" != "no" &&
3915   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3916    test "${enable_glx}" = "yes"); then
3917   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3918   AC_CHECK_HEADERS(X11/Xlib.h GL/glu.h GL/glx.h)
3919   AC_COMPILE_IFELSE(AC_LANG_PROGRAM(
3920     [[#if !defined(HAVE_X11_XLIB_H) || !defined(HAVE_GL_GLU_H) || !defined(HAVE_GL_GLX_H)
3921     choke me
3922     #endif]]),
3923     [
3924       VLC_ADD_PLUGINS([glx])
3925       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3926       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3927     ],[AC_MSG_ERROR([Please install GL development package. Alternatively you can also configure with --disable-glx.])])
3928   CPPFLAGS="${CPPFLAGS_save}"
3929 fi
3930
3931 dnl
3932 dnl  XVMC module
3933 dnl  (enabled by default except on win32)
3934 dnl
3935 AC_ARG_ENABLE(xvmc,
3936   [  --enable-xvmc           XVMC support (default disabled)])
3937 if test "${enable_xvmc}" = "yes" &&
3938   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3939    test "${enable_xvmc}" = "yes"); then
3940   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3941   AC_CHECK_HEADERS(X11/extensions/vldXvMC.h, [
3942     VLC_ADD_PLUGINS([xvmc])
3943     VLC_ADD_LDFLAGS([xvmc],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3944     VLC_ADD_CPPFLAGS([xvmc],[${X_CFLAGS}])
3945   ])
3946   CPPFLAGS="${CPPFLAGS_save}"
3947 fi
3948
3949 dnl
3950 dnl  Check for the Xinerama extension
3951 dnl
3952 AC_ARG_ENABLE(xinerama,
3953   [  --enable-xinerama       Xinerama support (default enabled)])
3954 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3955   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3956    test "${enable_xvideo}" = "yes"); then
3957   ac_cv_have_xinerama="no"
3958   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3959   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3960   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3961     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3962       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3963       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3964       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3965       ac_cv_have_xinerama="yes"
3966     ],[
3967       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3968         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3969         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3970         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3971         ac_cv_have_xinerama="yes"
3972       ])
3973     ])
3974   ])
3975   if test "${ac_cv_have_xinerama}" = "yes"; then
3976     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3977   fi
3978   CFLAGS="${CFLAGS_save}"
3979   CPPFLAGS="${CPPFLAGS_save}"
3980
3981 dnl
3982 dnl  Check for XF86VidMode extension
3983 dnl
3984   ac_cv_have_xf86vidmode="no"
3985   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3986   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3987   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3988     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3989       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3990       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3991       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3992       ac_cv_have_xf86vidmode="yes"
3993     ],[
3994       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3995         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3996         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3997         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3998         ac_cv_have_xf86vidmode="yes"
3999       ])
4000     ])
4001   ],[true],
4002 [#ifdef HAVE_X11_XLIB_H
4003 # include <X11/Xlib.h>
4004 #endif]
4005    )
4006   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
4007     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
4008   ])
4009   CFLAGS="${CFLAGS_save}"
4010   CPPFLAGS="${CPPFLAGS_save}"
4011
4012 fi
4013
4014 dnl
4015 dnl  OpenGL module
4016 dnl  (enabled by default except on beos)
4017 dnl
4018 AC_ARG_ENABLE(opengl,
4019   [  --enable-opengl         OpenGL support (default enabled)])
4020 if test "${enable_opengl}" != "no" &&
4021    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
4022   if test "${SYS}" != "darwin"; then
4023     AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
4024       VLC_ADD_PLUGINS([opengl])
4025       if test "${SYS}" != "mingw32"; then
4026         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
4027       else
4028         VLC_ADD_LDFLAGS([opengl],[-lopengl32 -lglu32])
4029       fi
4030     ])
4031   else
4032     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
4033     VLC_ADD_PLUGINS([opengl])
4034     VLC_ADD_LDFLAGS([opengl],[-Wl,-framework,OpenGL])
4035   fi
4036 fi
4037
4038 dnl
4039 dnl  SDL module
4040 dnl
4041 AC_ARG_ENABLE(sdl,
4042   [  --enable-sdl            SDL support (default enabled)])
4043 AC_ARG_ENABLE(sdl-image,
4044   [  --enable-sdl-image      SDL image support (default enabled)])
4045 if test "${enable_sdl}" != "no"
4046 then
4047   SDL_PATH="${PATH}"
4048   AC_ARG_WITH(sdl-config-path,
4049     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
4050     [ if test "${with_sdl_config_path}" != "no"
4051       then
4052         SDL_PATH="${with_sdl_config_path}:${PATH}"
4053       fi ])
4054   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
4055   SDL_CONFIG="${SDL12_CONFIG}"
4056   SDL_HEADER="SDL12/SDL.h"
4057   SDL_IMAGE="SDL12/SDL_image.h"
4058   if test "${SDL_CONFIG}" = "no"
4059   then
4060     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
4061     SDL_CONFIG=${SDL11_CONFIG}
4062     SDL_HEADER="SDL11/SDL.h"
4063     SDL_IMAGE="SDL11/SDL_image.h"
4064   fi
4065   if test "${SDL_CONFIG}" = "no"
4066   then
4067     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
4068     SDL_HEADER="SDL/SDL.h"
4069     SDL_IMAGE="SDL/SDL_image.h"
4070   fi
4071   # check for cross-compiling
4072   SDL_PREFIX=
4073   AC_ARG_WITH(sdl-prefix,
4074     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
4075                                e.g use as:
4076                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
4077   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
4078   then
4079     SDL_PREFIX="--prefix=${with_sdl_prefix}"
4080   fi
4081   if test "${SDL_CONFIG}" != "no"
4082   then
4083     # SDL on Darwin is heavily patched and can only run SDL_image
4084     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
4085       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
4086     fi
4087     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
4088     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
4089     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
4090     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
4091       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
4092       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
4093           As a last resort we also test for SDL.h presence),
4094       [ AC_MSG_ERROR([The development package for SDL is not installed.
4095 Please install it and try again. Alternatively you can also configure with
4096 --disable-sdl.])
4097       ])])
4098     AS_IF([ test "${enable_sdl_image}" != "no"],[
4099       AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
4100         <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
4101         VLC_ADD_PLUGINS([sdl_image])
4102         AC_CHECK_LIB(png, png_set_rows,
4103           [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
4104         AC_CHECK_LIB(jpeg, jpeg_start_decompress,
4105           [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
4106         AC_CHECK_LIB(tiff, TIFFClientOpen,
4107           [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
4108         VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
4109         [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
4110             As a last resort we also test for SDL_image.h presence),
4111         [ AC_MSG_WARN([The development package for SDL_image is not installed.
4112   You should install it alongside your SDL package.])
4113         ])])
4114     ])
4115     CPPFLAGS="${CPPFLAGS_save}"
4116     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
4117     then
4118       AC_MSG_ERROR([The development package for SDL is not installed.
4119 Please install it and try again. Alternatively you can also configure with
4120 --disable-sdl.])
4121     fi
4122
4123   elif test "${enable_sdl}" =  "yes"
4124   then
4125     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
4126 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
4127     ])
4128   fi
4129 fi
4130
4131 dnl
4132 dnl  freetype module
4133 dnl
4134 AC_ARG_ENABLE(freetype,
4135   [  --enable-freetype       freetype support (default enabled)])
4136 AC_ARG_ENABLE(fribidi,
4137   [  --enable-fribidi        fribidi support (default enabled)])
4138 if test "${enable_freetype}" != "no"
4139 then
4140   FREETYPE_PATH="${PATH}"
4141   AC_ARG_WITH(freetype-config-path,
4142     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
4143     [ if test "${with_freetype_config_path}" != "no"
4144       then
4145         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
4146       fi ])
4147   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
4148
4149   if test "${FREETYPE_CONFIG}" != "no"
4150   then
4151     VLC_ADD_PLUGINS([freetype])
4152     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
4153     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
4154     if test "${SYS}" = "mingw32"; then
4155        VLC_ADD_LDFLAGS([freetype],[-lxml2])]
4156     fi
4157     AC_CHECK_HEADERS(fontconfig/fontconfig.h,
4158       [VLC_ADD_CFLAGS([freetype],[-DHAVE_FONTCONFIG])
4159        VLC_ADD_LDFLAGS([freetype],[-lfontconfig])])
4160     AC_CHECK_HEADERS(Carbon/Carbon.h,
4161       [VLC_ADD_LDFLAGS([freetype],[-Wl,-framework,Carbon])])
4162   elif test "${enable_freetype}" =  "yes"
4163   then
4164     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
4165 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
4166     ])
4167   fi
4168
4169   dnl fribidi support
4170   if test "${enable_fribidi}" != "no"
4171   then
4172     FRIBIDI_PATH="${PATH}"
4173     AC_ARG_WITH(fribidi-config-path,
4174       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
4175       [ if test "${with_fribidi_config_path}" != "no"
4176         then
4177           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
4178         fi ])
4179     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
4180
4181     if test "${FRIBIDI_CONFIG}" != "no"
4182     then
4183       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4184       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
4185       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
4186       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
4187     fi
4188   fi
4189 fi
4190
4191 dnl
4192 dnl  libxml2 module
4193 dnl
4194 AC_ARG_ENABLE(libxml2,
4195   [  --enable-libxml2        libxml2 support (default enabled)])
4196 if test "${enable_libxml2}" != "no"
4197 then
4198   XML2_PATH="${PATH}"
4199   AC_ARG_WITH(xml2-config-path,
4200     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
4201     [ if test "${with_xml2_config_path}" != "no"; then
4202         XML2_PATH="${with_xml2_config_path}:${PATH}"
4203       fi ])
4204   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
4205   if test "${XML2_CONFIG}" != "no"; then
4206     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
4207     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
4208     dnl depends on the xmlTextReader extension
4209     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
4210     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
4211     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
4212       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
4213         VLC_ADD_PLUGINS([xml]) ],[
4214           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4215           if test "${enable_xml2}" = "yes"; then
4216             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4217           fi])
4218        ],[
4219       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
4220       if test "${enable_xml2}" = "yes"; then
4221         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
4222       fi])
4223     LDFLAGS="${LDFLAGS_save}"
4224     CPPFLAGS="${CPPFLAGS_save}"
4225   else
4226     if test "${enable_xml2}" = "yes"; then
4227       AC_MSG_ERROR([Could not find libxml2])
4228     fi
4229   fi
4230 fi
4231
4232 dnl
4233 dnl  SVG module
4234 dnl
4235 AC_ARG_ENABLE(svg,
4236   [  --enable-svg            SVG support (default disabled)])
4237 if test "${enable_svg}" = "yes"
4238 then
4239   PKG_CHECK_MODULES(SVG, 
4240         librsvg-2.0 >= 2.9.0,
4241         [
4242           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
4243           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
4244           VLC_ADD_PLUGINS([svg]) ],
4245         [AC_MSG_WARN(SVG library not found)])
4246 fi
4247
4248 dnl
4249 dnl Snapshot vout module (with cache)
4250 dnl
4251 AC_ARG_ENABLE(snapshot,
4252   [  --enable-snapshot       snapshot module (default disabled)])
4253 if test "${enable_snapshot}" = "yes"
4254 then
4255   VLC_ADD_PLUGINS([snapshot])
4256 fi
4257
4258 dnl
4259 dnl  Qt Embedded module
4260 dnl  (disabled by default)
4261 dnl
4262 AC_ARG_ENABLE(qte,
4263   [  --enable-qte            QT Embedded support (default disabled)])
4264 if test "${enable_qte}" = "yes"
4265 then
4266   AC_ARG_WITH(qte,
4267   [    --with-qte=PATH       Qt Embedded headers and libraries])
4268   if test "${with_qte}" != "no" -a -n "${with_qte}"
4269   then
4270     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4271     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])
4272   else
4273     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4274     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
4275   fi
4276   VLC_ADD_PLUGINS([qte])
4277   NEED_QTE_MAIN=yes
4278   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4279   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4280     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4281   ] )
4282   CPPFLAGS="${CPPFLAGS_save}"
4283 fi
4284
4285 dnl
4286 dnl  Qt Video output module
4287 dnl  (disabled by default)
4288 dnl
4289 dnl AC_ARG_ENABLE(qt_video,
4290 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
4291 dnl if test "${enable_qt_video}" = "yes"
4292 dnl then
4293 dnl  VLC_ADD_PLUGINS([qt_video])
4294 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
4295 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
4296 dnl   AC_CHECK_LIB(qt-mt,main,[
4297 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
4298 dnl  ],[
4299 dnl    AC_CHECK_LIB(qt,main,[
4300 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
4301 dnl    ])
4302 dnl  ])
4303 dnl  NEED_QTE_MAIN=yes
4304 dnl  LDFLAGS="${LDFLAGS_save}"
4305 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4306 dnl fi
4307
4308 dnl
4309 dnl Roku HD1000 Video output module
4310 dnl
4311 AC_ARG_ENABLE(hd1000v,
4312   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
4313 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
4314   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4315    test "${enable_hd1000v}" = "yes"); then
4316   AC_LANG_PUSH([C++])
4317   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
4318   [
4319     can_build_roku="yes"
4320   ],
4321   [
4322     can_build_roku="no"
4323     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
4324   ])
4325   if test "$can_build_roku" = "yes"
4326   then
4327     VLC_ADD_PLUGINS([hd1000v])
4328     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
4329   fi
4330   AC_LANG_POP([C++])
4331 fi
4332
4333 dnl
4334 dnl  Windows DirectX module
4335 dnl
4336
4337 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4338 then
4339   VLC_ADD_PLUGINS([panoramix])
4340 fi
4341
4342 AC_ARG_ENABLE(directx,
4343   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
4344 if test "${enable_directx}" != "no"
4345 then
4346   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
4347   then
4348     AC_ARG_WITH(directx,
4349     [    --with-directx=PATH   Win32 DirectX headers])
4350     if test -z "${with_directx}"
4351     then
4352       AC_CHECK_HEADERS(ddraw.h,
4353       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
4354         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4355       ])
4356       AC_CHECK_HEADERS(GL/gl.h,
4357       [ VLC_ADD_PLUGINS([glwin32])
4358         VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
4359       ])
4360       AC_CHECK_HEADERS(d3d9.h,
4361       [ VLC_ADD_PLUGINS([direct3d])
4362         VLC_ADD_LDFLAGS([direct3d],[-lgdi32])
4363       ])
4364     else
4365       AC_MSG_CHECKING(for directX headers in ${with_directx})
4366       if test -f ${with_directx}/ddraw.h
4367       then
4368         VLC_ADD_PLUGINS([vout_directx aout_directx])
4369         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
4370         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
4371         AC_MSG_RESULT(yes)
4372       else
4373         AC_MSG_RESULT(no)
4374         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
4375       fi
4376     fi
4377   fi
4378 fi
4379
4380 dnl
4381 dnl  Linux framebuffer module
4382 dnl
4383 AC_ARG_ENABLE(fb,
4384   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
4385     if test "${enable_fb}" != "no"
4386     then
4387       AC_CHECK_HEADERS(linux/fb.h, [
4388         VLC_ADD_PLUGINS([fb])
4389       ])
4390     fi
4391
4392 dnl
4393 dnl  Linux MGA module
4394 dnl
4395 AC_ARG_ENABLE(mga,
4396   [  --enable-mga            Linux kernel Matrox support (default disabled)],
4397   [ if test "${enable_mga}" = "yes"
4398     then
4399       VLC_ADD_PLUGINS([mga])
4400     fi ])
4401
4402 dnl
4403 dnl  SVGAlib module
4404 dnl
4405 AC_ARG_ENABLE(svgalib,
4406   [  --enable-svgalib        SVGAlib support (default disabled)])
4407 if test "${enable_svgalib}" = "yes"
4408 then
4409   VLC_ADD_PLUGINS([svgalib])
4410   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
4411 fi
4412
4413 dnl
4414 dnl  DirectFB module
4415 dnl  try to find using: 1 - given location; 2 - directfb-config; 3 - pkg-config
4416 dnl  TODO: support for static linking
4417 dnl
4418 AC_ARG_ENABLE(directfb,
4419   [  --enable-directfb       DirectFB support (default disabled)])
4420 AC_ARG_WITH(directfb, 
4421   [    --with-directfb=PATH  path to DirectFB headers and libraries])
4422
4423 if test "${enable_directfb}" = "yes"; then
4424     have_directfb="false"
4425     CPPFLAGS_mydirectfb=
4426     LDFLAGS_mydirectfb=
4427     if test "${with_directfb}" != "no" -a -n "${with_directfb}"; then
4428         dnl Trying the given location
4429         CPPFLAGS_save=${CPPFLAGS}
4430         LDFLAGS_save=${LDFLAGS}
4431
4432         CPPFLAGS_new="-I${with_directfb}/include -D_REENTRANT -D_GNU_SOURCE"
4433         LDFLAGS_new="-L${with_directfb}/lib/fusion/.libs/ -L${with_directfb}/lib/direct/.libs/"
4434         LDFLAGS_new="${LDFLAGS_new} -L${with_directfb}/src/.libs/"
4435
4436         CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_new}"
4437         LDFLAGS="${LD_FLAGS} ${LDFLAGS_new}"
4438
4439         dnl FIXME: too obscure
4440         AC_CHECK_HEADER([directfb.h], [
4441             AC_CHECK_LIB([direct],[direct_initialize], [
4442                 AC_CHECK_LIB([fusion], [fusion_enter], [
4443                     AC_CHECK_LIB([directfb], [DirectFBInit], have_directfb="true", have_directfb="false")
4444                 ], have_directfb="false")
4445             ], have_directfb="false")
4446         ], have_directfb="false")
4447
4448         dnl Restore flags
4449         CPPFLAGS="${CPPFLAGS_save}"
4450         LDFLAGS="${LDFLAGS_save}"
4451
4452         if test "${have_directfb}" = "true"; then
4453             LDFLAGS_mydirectfb="${LDFLAGS_new} -lz -ldl -ldirectfb -lfusion -ldirect -lpthread"
4454             CPPFLAGS_mydirectfb="${CPPFLAGS_new}"
4455         fi
4456     else 
4457         dnl Look for directfb-config
4458         AC_PATH_PROG(DIRECTFB_CONFIG, directfb-config, no, ${PATH})
4459         if test "${DIRECTFB_CONFIG}" != "no"; then
4460             CPPFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --cflags`"
4461             LDFLAGS_mydirectfb="`${DIRECTFB_CONFIG} --libs`"
4462             have_directfb="true"
4463         else 
4464             dnl Trying with pkg-config
4465             PKG_CHECK_MODULES(DIRECTFB, directfb, [
4466                 CPPFLAGS_mydirectfb="${DIRECTFB_CFLAGS}"
4467                 LDFLAGS_mydirectfb="${DIRECTFB_LIBS}"
4468                 have_directfb="true"
4469                 ], [have_directfb="false"])
4470         fi
4471     fi
4472     if test "${have_directfb}" = "true"; then
4473         VLC_ADD_PLUGINS([directfb])
4474         VLC_ADD_CPPFLAGS([directfb],[${CPPFLAGS_mydirectfb}])
4475         VLC_ADD_LDFLAGS([directfb],[${LDFLAGS_mydirectfb}])
4476     else 
4477         AC_MSG_ERROR([cannot find directfb headers and/or libraries ])
4478     fi
4479 fi
4480  
4481
4482
4483 dnl
4484 dnl  GGI module
4485 dnl
4486 AC_ARG_ENABLE(ggi,
4487   [  --enable-ggi            GGI support (default disabled)])
4488 if test "${enable_ggi}" = "yes"
4489 then
4490   VLC_ADD_PLUGINS([ggi])
4491   VLC_ADD_LDFLAGS([ggi],[-lggi])
4492   AC_ARG_WITH(ggi,
4493     [    --with-ggi=PATH       path to libggi],
4494     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
4495       then
4496         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
4497         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
4498       fi ])
4499 fi
4500
4501 dnl
4502 dnl  Glide module
4503 dnl
4504 AC_ARG_ENABLE(glide,
4505   [  --enable-glide          Glide (3dfx) support (default disabled)])
4506 if test "${enable_glide}" = "yes"
4507 then
4508   CFLAGS_save="${CFLAGS}"
4509   AC_ARG_WITH(glide,
4510     [    --with-glide=PATH     path to libglide],
4511     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
4512       then
4513         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
4514         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
4515         CFLAGS="$CFLAGS -I${with_glide}/include"
4516     fi ])
4517    CFLAGS="$CFLAGS -I/usr/include/glide"
4518    AC_CHECK_HEADER(glide.h,[   
4519       VLC_ADD_PLUGINS([glide])
4520       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
4521       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
4522     ],[
4523       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
4524      ])
4525    CFLAGS="${CFLAGS_save}"
4526 fi
4527
4528 dnl
4529 dnl  AA plugin
4530 dnl
4531 AC_ARG_ENABLE(aa,
4532   [  --enable-aa             aalib output (default disabled)])
4533 if test "${enable_aa}" = "yes"
4534 then
4535   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
4536   if test "${have_aa}" = "true"
4537   then
4538     VLC_ADD_PLUGINS([aa])
4539     VLC_ADD_LDFLAGS([aa],[-laa])
4540   fi
4541 fi
4542
4543 dnl
4544 dnl  libcaca plugin
4545 dnl
4546 AC_ARG_ENABLE(caca,
4547   [  --enable-caca           libcaca output (default disabled)])
4548 if test "${enable_caca}" = "yes"
4549 then
4550   CACA_PATH="${PATH}"
4551   AC_ARG_WITH(caca-config-path,
4552     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
4553     [ if test "${with_caca_config_path}" != "no"
4554       then
4555         CACA_PATH="${with_caca_config_path}:${PATH}"
4556       fi ])
4557   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
4558   if test "${CACA_CONFIG}" != "no"
4559   then
4560     VLC_ADD_PLUGINS([caca])
4561     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
4562     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
4563   fi
4564 fi
4565
4566 dnl
4567 dnl  win32 GDI plugin
4568 dnl
4569 AC_ARG_ENABLE(wingdi,
4570   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
4571 if test "${enable_wingdi}" != "no"; then
4572   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4573     VLC_ADD_PLUGINS([wingdi])
4574     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
4575   fi
4576   if test "${SYS}" = "mingwce"; then
4577     VLC_ADD_PLUGINS([wingdi wingapi])
4578   fi
4579 fi
4580
4581 dnl
4582 dnl  Audio plugins
4583 dnl
4584
4585 AC_ARG_WITH(,[Audio plugins:])
4586
4587 dnl
4588 dnl  OSS /dev/dsp module (enabled by default except on win32)
4589 dnl
4590 AC_ARG_ENABLE(oss,
4591   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4592
4593 if test "${enable_oss}" != "no" &&
4594   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4595    test "${enable_oss}" = "yes")
4596 then
4597   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4598     VLC_ADD_PLUGINS([oss])
4599     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4600   ])
4601 fi
4602
4603 dnl
4604 dnl  Esound module
4605 dnl
4606 AC_ARG_ENABLE(esd,
4607   [  --enable-esd            Esound library support (default disabled)],
4608   [if test "${enable_esd}" = "yes"
4609    then
4610      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4611      if test "${ESD_CONFIG}" != "no"
4612      then
4613        VLC_ADD_PLUGINS([esd])
4614        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4615        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4616      fi
4617    fi])
4618
4619 dnl
4620 dnl  Portaudio module
4621 dnl
4622 AC_ARG_ENABLE(portaudio,
4623   [  --enable-portaudio      Portaudio library support (default disabled)],
4624   [if test "${enable_portaudio}" = "yes"
4625    then
4626      VLC_ADD_PLUGINS([portaudio])
4627      VLC_ADD_CXXFLAGS([portaudio],[])
4628      if test "${SYS}" = "mingw32"; then
4629         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4630      else
4631         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4632      fi
4633    fi])
4634
4635 dnl
4636 dnl  aRts module -- broken (freeze wxWidgets)
4637 dnl
4638 AC_ARG_ENABLE(arts,
4639  [  --enable-arts           aRts sound server (default disabled)],
4640  [if test "${enable_arts}" = "yes"
4641   then
4642     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4643     if test "${ARTS_CONFIG}" != "no"
4644     then
4645       VLC_ADD_PLUGINS([arts])
4646       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4647       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4648     fi
4649   fi])
4650
4651 dnl
4652 dnl  ALSA module
4653 dnl
4654 AC_ARG_ENABLE(alsa,
4655   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4656 if test "${enable_alsa}" != "no"
4657 then
4658   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4659   if test "${have_alsa}" = "true"
4660   then
4661     CFLAGS="${CFLAGS_save}"
4662     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4663                     #define ALSA_PCM_NEW_SW_PARAMS_API
4664                     #include <alsa/asoundlib.h>],
4665        [snd_pcm_hw_params_get_period_time(0,0,0);],
4666         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4667     VLC_ADD_PLUGINS([alsa])
4668     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4669   else
4670     if test "${enable_alsa}" = "yes"; then
4671       AC_MSG_ERROR([Could not find ALSA development headers])
4672     fi
4673   fi
4674 fi
4675
4676 dnl
4677 dnl  win32 waveOut plugin
4678 dnl
4679 AC_ARG_ENABLE(waveout,
4680   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4681 if test "${enable_waveout}" != "no"; then
4682   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4683     VLC_ADD_PLUGINS([waveout])
4684     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4685   fi
4686   if test "${SYS}" = "mingwce"; then
4687     VLC_ADD_PLUGINS([waveout])
4688   fi
4689 fi
4690
4691 dnl
4692 dnl  CoreAudio plugin
4693 dnl
4694 AC_ARG_ENABLE(macosx-audio,
4695   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4696 if test "${enable_macosx-audio}" != "no" &&
4697   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4698 then
4699   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4700     [ VLC_ADD_BUILTINS([auhal])
4701       VLC_ADD_LDFLAGS([auhal],[-Wl,-framework,CoreAudio,-framework,AudioUnit,-framework,AudioToolbox,-framework,Carbon])
4702     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4703 fi
4704
4705 dnl
4706 dnl  Roku HD1000 audio
4707 dnl
4708 AC_ARG_ENABLE(hd1000a,
4709   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4710 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4711   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4712    test "${enable_hd1000a}" = "yes")
4713 then
4714   AC_LANG_PUSH([C++])
4715   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4716     VLC_ADD_PLUGINS([hd1000a])
4717     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4718   AC_LANG_POP([C++])
4719 fi
4720
4721 dnl
4722 dnl  JACK modules
4723 dnl
4724 AC_ARG_ENABLE(jack,
4725  [  --enable-jack           JACK audio I/O modules (default disabled)],,
4726  [enable_jack="no"])
4727
4728 AS_IF([test "${enable_jack}" != "no"], [
4729   AC_CHECK_HEADERS(jack/jack.h, [
4730     VLC_ADD_PLUGINS([access_jack jack])
4731     VLC_ADD_LDFLAGS([access_jack jack],[-ljack])
4732   ],[AC_MSG_ERROR([cannot find JACK headers])])
4733 ])
4734
4735 dnl
4736 dnl  CyberLink for C++ UPnP stack
4737 dnl
4738 AC_ARG_ENABLE(cyberlink,
4739   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4740   AS_IF([test "${enable_cyberlink}" = "yes" ], [
4741   AC_ARG_WITH(cyberlink-tree,
4742     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4743
4744   dnl
4745   dnl test for --with-cyberlink-tree
4746   dnl
4747   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4748     AC_LANG_PUSH(C++)
4749     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4750     AS_IF([test -z "${real_cyberlink_tree}"], [
4751       dnl  The given directory can't be found
4752       AC_MSG_RESULT(no)
4753       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4754     ])
4755     CPPFLAGS_save="${CPPFLAGS}"
4756     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4757     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4758     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4759       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4760         VLC_ADD_PLUGINS([upnp_cc]) 
4761       ],[
4762         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4763       ])
4764     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4765     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4766       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4767       dnl The mere fact that we have to make such an ugly check sucks
4768       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4769       LIBS_save="$LIBS"
4770       LIBS_cclink="no"
4771       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4772         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4773         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4774 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4775 using namespace CyberLink;
4776
4777 class testclass : public SearchResponseListener, public MediaPlayer
4778 {
4779     virtual void deviceSearchResponseReceived( SSDPPacket *)
4780     {
4781     }
4782
4783     public:
4784       testclass (void)
4785       {
4786         addSearchResponseListener (this);
4787         start ();
4788       }
4789 };
4790 ],[testclass l;])],[LIBS_cclink="$l"])
4791       done
4792       LIBS="${LIBS_save}"
4793       dnl should not happen - otherwise this needs fixing - hence FAILURE
4794       AS_IF([test "${LIBS_cclink}" = "no"],
4795         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4796       AC_MSG_RESULT([${LIBS_cclink}])
4797       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4798     ], [
4799       AC_MSG_RESULT(no)
4800       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4801     ])
4802     CPPFLAGS="${CPPFLAGS_save}"
4803     AC_LANG_POP([C++])
4804   ])
4805 ])
4806
4807 dnl
4808 dnl UPnP Plugin (Intel SDK)
4809 dnl
4810 AC_ARG_ENABLE(upnp,
4811   [  --enable-upnp           Intel UPnP SDK (default auto)])
4812
4813 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4814 AS_IF([test "x${enable_upnp}" != "xno"], [
4815   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4816   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" = "no"], [
4817     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4818   ])
4819   AS_IF([test "${has_upnp}" = "yes"], [
4820     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp -lixml])
4821   ])
4822 ], [
4823   has_upnp="no"
4824 ])
4825
4826 AS_IF([test "${has_upnp}" = "yes"], [
4827   VLC_ADD_PLUGINS([upnp_intel])
4828 ])
4829
4830
4831 dnl
4832 dnl  Interface plugins
4833 dnl
4834
4835 AC_ARG_WITH(,[Interface plugins:])
4836
4837 dnl special case for BeOS
4838 if test "${SYS}" = "beos"
4839 then
4840     VLC_ADD_BUILTINS([beos])
4841 fi
4842
4843 dnl
4844 dnl Skins2 module
4845 dnl
4846 AC_ARG_ENABLE(skins2,
4847   [  --enable-skins2         Skins2 interface module (default disabled)])
4848 if test "${enable_skins2}" = "yes" ||
4849   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4850    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4851
4852   dnl test for the required libraries
4853   skins2_missing_lib="no"
4854
4855   dnl freetype
4856   if test "${FREETYPE_CONFIG}" != "no"; then
4857     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4858     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4859   else
4860     skins2_missing_lib="yes"
4861     if test "${enable_skins2}" = "yes"; then
4862       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4863     fi
4864   fi
4865
4866   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4867     VLC_ADD_PLUGINS([skins2])
4868     ALIASES="${ALIASES} svlc"
4869     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4870     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4871     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4872
4873   else if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "darwin"); then
4874     VLC_ADD_PLUGINS([skins2])
4875     ALIASES="${ALIASES} svlc"
4876     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -DMACOSX_SKINS])
4877     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4878     VLC_ADD_LDFLAGS([skins2],[-Wl,-framework,Carbon])
4879
4880   else if test "${skins2_missing_lib}" = "no"; then
4881     VLC_ADD_PLUGINS([skins2])
4882     ALIASES="${ALIASES} svlc"
4883     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4884     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4885     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4886   fi fi fi
4887 fi
4888
4889
4890 dnl dnl
4891 dnl dnl  Gtk+ module
4892 dnl dnl
4893 dnl AC_ARG_ENABLE(gtk,
4894 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4895 dnl if test "${enable_gtk}" != "no"
4896 dnl then
4897 dnl   GTK_PATH="${PATH}"
4898 dnl   AC_ARG_WITH(gtk-config-path,
4899 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4900 dnl     [ if test "${with_gtk_config_path}" != "no"
4901 dnl       then
4902 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4903 dnl       fi ])
4904 dnl   # look for gtk-config
4905 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4906 dnl   GTK_CONFIG=${GTK12_CONFIG}
4907 dnl   if test "${GTK_CONFIG}" = "no"
4908 dnl   then
4909 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4910 dnl   fi
4911 dnl   if test "${GTK_CONFIG}" != "no"
4912 dnl   then
4913 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4914 dnl     then
4915 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.])
4916 dnl     fi
4917 dnl     if test "${SYS}" != "mingw32"; then
4918 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4919 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4920 dnl     else
4921 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4922 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4923 dnl     fi
4924 dnl     # now look for the gtk.h header
4925 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4926 dnl     ac_cv_gtk_headers=yes
4927 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4928 dnl       ac_cv_gtk_headers=no
4929 dnl       echo "Cannot find gtk development headers."
4930 dnl     ])
4931 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4932 dnl     then
4933 dnl       VLC_ADD_PLUGINS([gtk])
4934 dnl       if test "${SYS}" != "mingw32"; then
4935 dnl         NEED_GTK_MAIN=yes
4936 dnl       fi
4937 dnl       ALIASES="${ALIASES} gvlc"
4938 dnl     fi
4939 dnl     CPPFLAGS="${CPPFLAGS_save}"
4940 dnl   fi
4941 dnl fi
4942 dnl 
4943 dnl
4944 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4945 dnl
4946 dnl AC_ARG_ENABLE(gtk2,
4947 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4948 dnl if test "${enable_gtk2}" = "yes"
4949 dnl then
4950 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4951 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4952 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4953 dnl   VLC_ADD_PLUGINS([gtk2])
4954 dnl   if test "${SYS}" != "mingw32"; then
4955 dnl     NEED_GTK2_MAIN=yes
4956 dnl   fi
4957 dnl fi
4958
4959 dnl
4960 dnl  PDA Gtk+2 module
4961 dnl
4962 AC_ARG_ENABLE(pda,
4963   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4964 if test "${enable_pda}" = "yes"
4965 then
4966   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4967   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4968   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4969   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4970   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4971   VLC_ADD_PLUGINS([pda])
4972   if test "${SYS}" != "mingw32"; then
4973     NEED_GTK2_MAIN=yes
4974   fi
4975 fi
4976
4977 dnl dnl
4978 dnl dnl  Gnome module
4979 dnl dnl
4980 dnl AC_ARG_ENABLE(gnome,
4981 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4982 dnl   [if test "${enable_gnome}" = "yes"; then
4983 dnl     # look for gnome-config
4984 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4985 dnl     if test -x ${GNOME_CONFIG}
4986 dnl     then
4987 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4988 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4989 dnl     fi
4990 dnl     # now look for the gnome.h header
4991 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4992 dnl     AC_CHECK_HEADERS(gnome.h, [
4993 dnl       VLC_ADD_PLUGINS([gnome])
4994 dnl       NEED_GTK_MAIN=yes
4995 dnl       NEED_GNOME_MAIN=yes
4996 dnl       ALIASES="${ALIASES} gnome-vlc"
4997 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4998 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4999 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
5000 dnl         AC_MSG_RESULT(yes)
5001 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
5002 dnl                   Define if <gnome.h> defines strndup.)],[
5003 dnl         AC_MSG_RESULT(no)])
5004 dnl      ],[
5005 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
5006 dnl developement tools or remove the --enable-gnome option])
5007 dnl      ])
5008 dnl     CPPFLAGS="${CPPFLAGS_save}"
5009 dnl   fi])
5010
5011 dnl
5012 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
5013 dnl
5014 dnl AC_ARG_ENABLE(gnome2,
5015 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
5016 dnl if test "${enable_gnome2}" = "yes"
5017 dnl then
5018 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
5019 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
5020 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
5021 dnl   VLC_ADD_PLUGINS([gnome2])
5022 dnl   if test "${SYS}" != "mingw32"; then
5023 dnl     NEED_GNOME2_MAIN=yes
5024 dnl   fi
5025 dnl fi
5026
5027 dnl
5028 dnl  wxWidgets module
5029 dnl
5030 AC_ARG_ENABLE(wxwidgets,
5031   [  --enable-wxwidgets      wxWidgets support (default disabled)])
5032
5033 if test "${enable_wxwidgets}" = "yes"
5034 then
5035   AC_MSG_WARN([wxWidgets support is deprecated and will be removed. Consider using Qt4 instead.])
5036   WXWIDGETS_PATH="${PATH}"
5037   AC_ARG_WITH(wx-config-path,
5038     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
5039     [ if test "${with_wx_config_path}" != "no"
5040       then
5041         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
5042       fi ])
5043   WXWIDGETS_NAME="wx-config"
5044   AC_ARG_WITH(wx-config,
5045     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
5046     [ if test "${with_wx_config}" != "no"
5047       then
5048         WXWIDGETS_NAME="${with_wx_config}"
5049       fi ])
5050   # look for wx-config
5051   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
5052   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
5053   then
5054     if expr 2.6.0 \> `${WX_CONFIG} --version` >/dev/null
5055     then
5056       AC_MSG_ERROR([You need wxWidgets version 2.6.0 or upwards. Please upgrade and try again.])
5057     fi
5058     AC_LANG_PUSH(C++)
5059     # Turn this error:
5060     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
5061     # into a warning. However better would be to fix playlist.cpp
5062     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
5063         [ac_cv_cxx_fpermissive],
5064         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
5065          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
5066                         ac_cv_cxx_fpermissive=no)])
5067     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
5068       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
5069     fi
5070     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
5071     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
5072     # check if we must link against gtk2 libs
5073     # if __WXGTK20__ && __WXGTK__ are defined
5074     # for modules/gui/wxwidgets/video.cpp
5075     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
5076 #include <wx/wx.h>
5077 #ifdef __WXGTK20__
5078 #error ok, we need to link against gtk2
5079 #endif
5080         ])],[WXGTK=no],[WXGTK=yes])
5081     if test "$WXGTK" = "yes"; then
5082       ${PKG_CONFIG} --exists gtk+-2.0 && VLC_ADD_LDFLAGS([wxwidgets],[`$PKG_CONFIG --libs gtk+-2.0`])
5083     fi
5084     if ${WX_CONFIG} --unicode
5085     then 
5086       # wxwidgets should provide the following flags but does not
5087       # the following is required to compile for win32
5088       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
5089     else
5090       AC_MSG_ERROR([You need a unicode build of wxWidgets. Please fix that and try again. Better yet, you can configure with --disable-wxwidgets.])
5091     fi
5092     if test "$have_libcdio" = "yes"
5093     then 
5094       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
5095       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
5096     else 
5097       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
5098     fi
5099
5100     if test "$have_libvcdinfo" = "yes"
5101     then 
5102       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
5103       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
5104     else 
5105       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
5106     fi
5107
5108     # now look for the wxprec.h header
5109     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
5110     ac_cv_wx_headers=yes
5111     AC_CHECK_HEADERS(wx/wxprec.h, , [
5112       ac_cv_wx_headers=no
5113       echo "Cannot find wxWidgets development headers."
5114     ])
5115     if test "${ac_cv_wx_headers}" = "yes"
5116     then
5117       VLC_ADD_PLUGINS([wxwidgets])
5118       ALIASES="${ALIASES} wxvlc"
5119     fi
5120     CPPFLAGS="${CPPFLAGS_save}"
5121     AC_LANG_POP(C++)
5122   fi
5123   dnl WxWidgets plugin will yield incorrect code without this
5124   VLC_ADD_CXXFLAGS([wxwidgets], [-fno-strict-aliasing])
5125 fi
5126
5127 dnl
5128 dnl QT 4
5129 dnl
5130 enableqt4=false
5131 AC_ARG_ENABLE(qt4,
5132   [  --enable-qt4            QT 4 support (default enabled) ])
5133 AS_IF([test "${enable_qt4}" != "no" &&
5134   (test "${SYS}" != "darwin" || test "${enable_qt4}" = "yes")], [
5135   PKG_CHECK_MODULES(QT4, [QtCore QtGui >= 4.2.0],
5136     [ VLC_ADD_PLUGINS([qt4])
5137       ALIASES="${ALIASES} qvlc"
5138       enableqt4=true
5139       VLC_ADD_LDFLAGS([qt4],[$QT4_LIBS])
5140       VLC_ADD_CXXFLAGS([qt4],[$QT4_CFLAGS])
5141       AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5142       AC_PATH_PROG(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5143       AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
5144       ],
5145       AS_IF([test "${enable_qt4}" = "yes"],[
5146         AC_MSG_ERROR(QT4 library not found)
5147       ],[
5148          AC_MSG_WARN(QT4 library not found)
5149       ])
5150     )
5151 ])
5152 AM_CONDITIONAL(ENABLE_QT4, test "$enableqt4" = "true")
5153
5154 dnl
5155 dnl  WinCE GUI module
5156 dnl
5157 if test "${SYS}" = "mingwce"; then
5158   VLC_ADD_BUILTINS([wince])
5159   VLC_ADD_CXXFLAGS([wince],[])
5160   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
5161   dnl Gross hack
5162   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5163 elif test "${SYS}" = "mingw32"; then
5164   VLC_ADD_CXXFLAGS([wince],[])
5165   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
5166   dnl Gross hack
5167   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
5168 fi
5169
5170 dnl
5171 dnl Simple test for skins2 dependency
5172 dnl
5173 if test "${enable_skins2}" != "no"
5174 then
5175   if test "${WX_CONFIG}" = "no"
5176   then
5177     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.])
5178   fi
5179 fi
5180
5181 dnl dnl
5182 dnl dnl  Qt module
5183 dnl dnl
5184 dnl AC_ARG_ENABLE(qt,
5185 dnl   [  --enable-qt             Qt interface support (default disabled)],
5186 dnl   [if test "${enable_qt}" = "yes"; then
5187 dnl      VLC_ADD_PLUGINS([qt])
5188 dnl      ALIASES="${ALIASES} qvlc"
5189 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
5190 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
5191 dnl      AC_CHECK_LIB(qt-mt,main,[
5192 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
5193 dnl      ],[
5194 dnl        AC_CHECK_LIB(qt,main,[
5195 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
5196 dnl        ])
5197 dnl      ])
5198 dnl      LDFLAGS="${LDFLAGS_save}"
5199 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
5200 dnl      if test -x ${QTDIR}/bin/moc
5201 dnl      then
5202 dnl        MOC=${QTDIR}/bin/moc
5203 dnl      else
5204 dnl        MOC=moc
5205 dnl      fi
5206 dnl    fi])
5207 dnl 
5208 dnl dnl
5209 dnl dnl  KDE module
5210 dnl dnl
5211 dnl AC_ARG_ENABLE(kde,
5212 dnl   [  --enable-kde            KDE interface support (default disabled)],
5213 dnl   [if test "${enable_kde}" = "yes"; then
5214 dnl      VLC_ADD_PLUGINS([kde])
5215 dnl      ALIASES="${ALIASES} kvlc"
5216 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
5217 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
5218 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5219 dnl      AC_CHECK_LIB(kfile,main,[
5220 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
5221 dnl      ])
5222 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5223 dnl      AC_CHECK_LIB(kdeui,main,[
5224 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
5225 dnl      ])
5226 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
5227 dnl      AC_CHECK_LIB(kio,main,[
5228 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
5229 dnl      ])
5230 dnl      LDFLAGS="${LDFLAGS_save}"
5231 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
5232 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
5233 dnl      if test -x ${QTDIR}/bin/moc
5234 dnl      then
5235 dnl        MOC=${QTDIR}/bin/moc
5236 dnl      else
5237 dnl        MOC=moc
5238 dnl      fi
5239 dnl    fi])
5240
5241 dnl
5242 dnl  Opie QT embedded module
5243 dnl
5244 AC_ARG_ENABLE(opie,
5245   [  --enable-opie           Qt embedded interface support (default disabled)],
5246   [if test "${enable_opie}" = "yes"; then
5247      AC_ARG_WITH(qte,
5248      [    --with-qte=PATH       Qt Embedded headers and libraries])
5249      if test "${with_qte}" != "no" -a -n "${with_qte}"
5250      then
5251        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
5252        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])
5253      else
5254        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
5255        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
5256      fi
5257      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
5258      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
5259        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
5260      ] )
5261      CPPFLAGS="${CPPFLAGS_save}"
5262
5263      VLC_ADD_PLUGINS([opie])
5264      NEED_QTE_MAIN=yes
5265      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
5266      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
5267      if test "${with_qte}" != "no" -a -n "${with_qte}"
5268      then
5269        MOC=${with_qte}/bin/moc
5270      else
5271        MOC=${QTDIR}/bin/moc
5272      fi
5273    fi])
5274
5275 dnl
5276 dnl  MacOS X module
5277 dnl
5278 ORIGCFLAGS=$CFLAGS
5279 CFLAGS="$CFLAGS -x objective-c"
5280 AC_ARG_ENABLE(macosx,
5281   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
5282   [if test "${enable_macosx}" = "yes"
5283    then
5284      VLC_ADD_PLUGINS([access_eyetv])
5285      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5286      VLC_ADD_LDFLAGS([minimal_macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL])
5287      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit])
5288      VLC_ADD_OBJCFLAGS( [macosx],[-fobjc-exceptions] )
5289      VLC_ADD_OBJCFLAGS( [minimal_macosx],[-fobjc-exceptions] )
5290    fi],
5291   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
5292     [VLC_ADD_PLUGINS([access_eyetv])
5293      VLC_ADD_LDFLAGS([access_eyetv], [-Wl,-framework,CoreFoundation])
5294      VLC_ADD_BUILTINS([macosx])
5295      VLC_ADD_BUILTINS([minimal_macosx])
5296      VLC_ADD_LDFLAGS([minimal_macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL])
5297      VLC_ADD_LDFLAGS([macosx],[-Wl,-framework,IOKit,-framework,Cocoa,-framework,Carbon,-framework,QuickTime,-lobjc,-ObjC,-framework,OpenGL,-framework,AGL,-framework,QTKit])
5298      VLC_ADD_OBJCFLAGS([macosx],[-fobjc-exceptions])
5299      VLC_ADD_OBJCFLAGS([minimal_macosx],[-fobjc-exceptions])
5300     ])])
5301 CFLAGS=$ORIGCFLAGS
5302
5303 dnl
5304 dnl  QNX RTOS module
5305 dnl
5306 AC_ARG_ENABLE(qnx,
5307   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
5308     if test "${enable_qnx}" != "no"
5309     then
5310       AC_CHECK_HEADERS(Ph.h, [
5311         VLC_ADD_PLUGINS([qnx])
5312         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
5313       ])
5314     fi
5315
5316 dnl
5317 dnl  ncurses module
5318 dnl
5319 AC_ARG_ENABLE(ncurses,
5320   [  --disable-ncurses       ncurses interface support (default enabled)],
5321   [if test "${enable_ncurses}" != "no"; then
5322      AC_CHECK_HEADERS(ncursesw/curses.h,
5323        [AC_CHECK_LIB( ncursesw, mvprintw,
5324          [VLC_ADD_PLUGINS([ncurses])
5325          VLC_ADD_LDFLAGS([ncurses],[-lncursesw])])
5326        ],
5327        [AC_CHECK_HEADER(curses.h,
5328          [AC_CHECK_LIB(ncurses, mvprintw,
5329            [VLC_ADD_PLUGINS([ncurses])
5330            VLC_ADD_LDFLAGS([ncurses],[-lncurses])]
5331          )]
5332        )]
5333      )  
5334    fi])
5335
5336 dnl
5337 dnl  XOSD plugin
5338 dnl
5339 AC_ARG_ENABLE(xosd,
5340   [  --enable-xosd           xosd interface support (default disabled)])
5341 if test "${enable_xosd}" = "yes"
5342 then
5343   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
5344   AC_CHECK_LIB(xosd,xosd_set_offset,
5345       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
5346     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
5347         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
5348       AC_TRY_COMPILE([#include <xosd.h>],
5349          [xosd_init("foo","bar",12,XOSD_top,2,12,42);],,
5350           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
5351   if test "${have_xosd}" = "true"
5352   then
5353     VLC_ADD_PLUGINS([xosd])
5354     VLC_ADD_LDFLAGS([xosd],[-lxosd])
5355   fi
5356 fi
5357
5358 dnl
5359 dnl Visualisation plugin
5360 dnl
5361 AC_ARG_ENABLE(visual,
5362   [  --enable-visual         visualisation plugin (default enabled)])
5363 if test "${enable_visual}" != "no"
5364 then
5365     VLC_ADD_PLUGINS([visual])
5366 fi
5367
5368 dnl
5369 dnl OpenGL visualisation plugin
5370 dnl
5371 AC_ARG_ENABLE(galaktos,
5372   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
5373 if test "${enable_galaktos}" = "yes"
5374 then
5375   AC_CHECK_HEADERS(GL/gl.h GL/glu.h, [
5376     VLC_ADD_PLUGINS([galaktos])
5377     if test "${SYS}" != "mingw32"; then
5378       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
5379     else
5380       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
5381     fi
5382   ])
5383 fi
5384
5385 dnl
5386 dnl  goom visualization plugin
5387 dnl
5388 AC_ARG_ENABLE(goom,
5389 [  --enable-goom           goom visualisation plugin (default disabled)])
5390 if test "${enable_goom}" = "yes"
5391 then
5392   AC_ARG_WITH(goom-tree,
5393     [    --with-goom-tree=PATH goom tree for static linking (required)])
5394
5395   dnl
5396   dnl test for --with-goom-tree
5397   dnl
5398   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
5399     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
5400     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
5401     if test -z "${real_goom_tree}"; then
5402       dnl  The given directory can't be found
5403       AC_MSG_RESULT(no)
5404       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
5405     fi
5406     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
5407       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
5408       VLC_ADD_BUILTINS([goom])
5409       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
5410       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
5411     else
5412       dnl  The given libgoom2 wasn't built, try to look for the old goom
5413       AC_MSG_RESULT(no)
5414       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
5415       if test -f "${real_goom_tree}/libgoom.a"; then
5416         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
5417         VLC_ADD_BUILTINS([goom])
5418         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
5419         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
5420       else
5421         dnl  The given libgoom wasn't built
5422         AC_MSG_RESULT(no)
5423         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
5424       fi
5425     fi
5426   else
5427     AC_CHECK_HEADERS(goom/goom.h, [
5428       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
5429       AC_CHECK_LIB(goom2, goom_init, [
5430         VLC_ADD_PLUGINS([goom])
5431         VLC_ADD_LDFLAGS([goom],[-lgoom2])
5432       ],[
5433         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
5434       ])
5435       LDFLAGS="${LDFLAGS_save}"
5436     ])
5437   fi
5438 fi
5439
5440 dnl
5441 dnl  Bonjour services discovery
5442 dnl
5443 AC_ARG_ENABLE(bonjour,
5444   [  --enable-bonjour        Bonjour services discovery (default enabled)])
5445 if test "${enable_bonjour}" != "no"
5446 then
5447   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
5448     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
5449        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
5450       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
5451       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
5452       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
5453       VLC_ADD_PLUGINS([bonjour]) ],
5454     [AC_MSG_WARN(avahi-client library not found)])
5455 fi
5456
5457 dnl
5458 dnl  Lirc plugin
5459 dnl
5460 AC_ARG_ENABLE(lirc,
5461   [  --enable-lirc           lirc support (default disabled)])
5462 if test "${enable_lirc}" = "yes"
5463 then
5464   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
5465   if test "${have_lirc}" = "true"
5466   then
5467     VLC_ADD_PLUGINS([lirc])
5468     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
5469   fi
5470 fi
5471
5472
5473 AC_ARG_WITH(,[Misc options:])
5474
5475 dnl
5476 dnl TLS/SSL
5477 dnl
5478 AC_ARG_ENABLE(gnutls,
5479   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
5480
5481 AS_IF([test "${enable_gnutls}" != "no"], [
5482   PKG_CHECK_MODULES(GNUTLS, [gnutls >= 1.3.3], [have_gnutls="yes"], [have_gnutls="no"])
5483
5484   AS_IF([test "${have_gnutls}" = "yes"], [
5485     VLC_ADD_PLUGINS([gnutls])
5486     VLC_ADD_CFLAGS([gnutls], [$GNUTLS_CFLAGS])
5487     AS_IF([test "${SYS}" = "mingw32"], [
5488       dnl pkg-config --libs gnutls omits these
5489       VLC_ADD_LDFLAGS([gnutls], [-lz])
5490       VLC_ADD_LDFLAGS([gnutls], [${LTLIBINTL}])
5491     ])
5492     AC_CHECK_LIB([gcrypt], [gcry_control], [
5493       VLC_ADD_LDFLAGS([gnutls], [-lgcrypt -lgpg-error])
5494     ], [], [-lgpg-error])
5495     VLC_ADD_LDFLAGS([gnutls], [$GNUTLS_LIBS])
5496   ], [
5497     AS_IF([test "${enable_gnutls}" = "yes"], [
5498       AC_MSG_ERROR([gnutls not present or too old (version 1.2.9 required)])
5499     ])
5500   ])
5501 ])
5502
5503 dnl
5504 dnl libgcrypt
5505 dnl
5506 AC_ARG_ENABLE(libgcrypt,
5507   [  --enable-libgcrypt      libgcrypts support (default enabled)])
5508 if test "${enable_libgcrypt}" != "no" -a "${enable_gnutls}" != "no"i
5509 then
5510   dnl Workaround for cross-compiling since AM_PATH_LIBGRYPT doesn't dectect
5511   dnl it and looks for libgcrypt headers in the wrong place.
5512   if test "${host_cpu}" = "${build_cpu}"
5513   then
5514     AM_PATH_LIBGCRYPT([1:1.1.94], [have_libgcrypt="yes"], [have_libgcrypt="no"])
5515   else
5516     AC_CHECK_HEADERS(gcrypt.h,have_libgcrypt="yes",have_libgcrypt="no")
5517   fi
5518 fi
5519 AM_CONDITIONAL([HAVE_LIBGCRYPT], [test "${have_libgcrypt}" = "yes"])
5520
5521
5522 dnl
5523 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
5524 dnl
5525 dnl  We give the user the opportunity to specify
5526 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
5527 dnl
5528 AC_ARG_WITH(words,
5529   [    --with-words=endianness set endianness (big or little)])
5530   case "${with_words}" in
5531     big)
5532       ac_cv_c_bigendian=yes
5533       ;;
5534     little)
5535       ac_cv_c_bigendian=no
5536       ;;
5537     *)
5538       dnl  Try to guess endianness by matching patterns on a compiled
5539       dnl  binary, by looking for an ASCII or EBCDIC string
5540       AC_CACHE_CHECK([whether the byte order is big-endian],
5541         [ac_cv_c_bigendian],
5542         [ac_cv_c_bigendian="unknown"
5543         [cat >conftest.c <<EOF
5544         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
5545         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
5546         void _a(void) { char*s = (char*)am; s = (char *)ai; }
5547         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
5548         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
5549         void _e(void) { char*s = (char*)em; s = (char*)ei; }
5550         int main(void) { _a(); _e(); return 0; }
5551 EOF
5552         ]
5553         if test -f conftest.c
5554         then
5555           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
5556               && test -f conftest.o
5557           then
5558             if test "`strings conftest.o | grep BIGenDianSyS`"
5559             then
5560               ac_cv_c_bigendian="yes"
5561             fi
5562             if test "`strings conftest.o | grep LiTTleEnDian`"
5563             then
5564               ac_cv_c_bigendian="no"
5565             fi
5566           fi
5567         fi
5568       ])
5569       if test "${ac_cv_c_bigendian}" = "unknown"
5570       then
5571         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
5572       fi
5573       ;;
5574   esac
5575 dnl  Now we know what to use for endianness, just put it in the header
5576 if test "${ac_cv_c_bigendian}" = "yes"
5577 then
5578   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
5579 fi
5580
5581 dnl
5582 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
5583 dnl
5584 loader=false
5585 AC_ARG_ENABLE(loader,
5586   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
5587 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
5588 AS_IF([test "${enable_loader}" = "yes"],
5589   [ VLC_ADD_PLUGINS([dmo])
5590     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/libs/loader])
5591     VLC_ADD_LDFLAGS([dmo],[../../../libs/loader/libloader.la -lpthread])
5592     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/libs/loader])
5593     VLC_ADD_LDFLAGS([quicktime],[../../libs/loader/libloader.la -lpthread])
5594     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/libs/loader -DLOADER])
5595     VLC_ADD_LDFLAGS([realaudio],[../../libs/loader/libloader.la -ldl -lpthread])
5596   ])
5597
5598 dnl
5599 dnl  Microsoft ActiveX support
5600 dnl
5601 activex=false
5602 AC_ARG_ENABLE(activex,
5603   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5604 AC_ARG_WITH(wine-sdk-path,
5605   [    --with-wine-sdk-path=PATH path to wine sdk])
5606 if test "${enable_activex}" != "no"
5607 then
5608   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5609   then
5610     AC_CHECK_PROGS(MIDL, [midl], no)
5611     if test "${with_wine_sdk_path}" != ""
5612     then
5613        WINE_SDK_PATH=${with_wine_sdk_path}
5614        AC_PATH_PROG(WIDL, widl, no, [$WINE_SDK_PATH/bin:$WINE_SDK_PATH/tools/widl])
5615     else
5616        WIDL=no
5617     fi
5618     AC_LANG_PUSH(C++)
5619     AC_CHECK_HEADERS(ole2.h, 
5620       [AC_CHECK_HEADERS(olectl.h,
5621         [ VLC_ADD_CPPFLAGS([activex],[-DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_])
5622           VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5623           VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5624           AC_CHECK_HEADERS(objsafe.h,
5625             VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5626             [
5627              #if HAVE_OLE2_H
5628              #   include <ole2.h>
5629              #endif
5630              ]
5631           )
5632           activex=:
5633           PLUGINS_BINDINGS="${PLUGINS_BINDINGS} activex"
5634         ],
5635         [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5636       )],
5637       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5638     )
5639     AC_LANG_POP(C++)
5640   fi
5641 fi
5642 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5643 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5644 AC_ARG_VAR(WIDL, [Wine IDL compiler (requires Wine SDK)])
5645 AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")
5646 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5647
5648 dnl
5649 dnl  Mozilla plugin
5650 dnl
5651 mozilla=false
5652 AC_ARG_ENABLE(mozilla,
5653   [  --enable-mozilla        build a vlc-based Firefox/Mozilla plugin (default disabled)])
5654 AC_ARG_WITH(mozilla-sdk-path,
5655   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5656 AC_LANG_PUSH(C++)
5657 if test "${enable_mozilla}" = "yes" 
5658 then
5659   dnl currently vlc plugin only needs headers, no xpcom support apis are actually used
5660   need_xpcom_libs=false
5661
5662   if test "${with_mozilla_sdk_path}" = "" -o "${with_mozilla_sdk_path}" = "no"
5663   then
5664     dnl New firefox-1.5 SDK api
5665     PKG_CHECK_MODULES([FIREFOX], [firefox-plugin],
5666       [
5667         PKG_CHECK_MODULES([FIREFOX_XPCOM], [firefox-xpcom],
5668           [],
5669           [
5670             PKG_CHECK_MODULES([MOZILLA_NSPR], [mozilla-nspr],
5671               [],
5672               [
5673                 PKG_CHECK_MODULES([NSPR], [nspr],
5674                   [],
5675                   [
5676                     AC_MSG_ERROR([Please install the nspr development tools.])
5677                   ]
5678                 )
5679               ]
5680             )
5681           ])
5682         CPPFLAGS="${CPPFLAGS_save} ${FIREFOX_CFLAGS} ${FIREFOX_XPCOM_CFLAGS} ${MOZILLA_NSPR_CFLAGS} ${NSPR_CFLAGS} ${MOZILLA_CPPFLAGS}"
5683         MOZILLA_REQUIRED_HEADERS=1
5684         AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5685         AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5686         AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5687           [#if HAVE_NPAPI_H
5688            # include <npapi.h>
5689            #endif
5690           ])
5691         if test "${MOZILLA_REQUIRED_HEADERS}" = "0"; then
5692             AC_MSG_ERROR([Please install the Firefox development tools; mozilla-config.h, plugin/npapi.h and plugin/npruntime.h were not found.])
5693         fi
5694         MOZILLA_REQUIRED_HEADERS=
5695         mozilla=:
5696         firefox_include=`pkg-config --variable=includedir firefox-plugin`
5697         if test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config32.h"; then
5698             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config32.h"
5699         elif test -f "${firefox_include}/mozilla-config.h" -a -f "${firefox_include}/mozilla-config64.h"; then
5700             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config64.h"
5701         else
5702             MOZILLA_CONFIG_H="${firefox_include}/mozilla-config.h"
5703         fi
5704         if grep '^#define MOZ_X11 1' ${MOZILLA_CONFIG_H} 2>&1 > /dev/null ; then
5705             VLC_ADD_LDFLAGS([mozilla], [${X_LIBS} ${X_PRE_LIBS} -lX11 -lXt])
5706         fi
5707         VLC_ADD_CPPFLAGS([mozilla],[${CPPFLAGS}])
5708         VLC_ADD_LDFLAGS([mozilla],[${FIREFOX_LIBS} ${MOZILLA_NSPR_LIBS} ${NSPR_LIBS} ${MOZILLA_LDFLAGS}])
5709         VLC_ADD_PLUGINS([mozilla])
5710         MOZILLA_CONFIG=
5711         CPPFLAGS="${CPPFLAGS_save}"
5712       ],
5713       [
5714         AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5715         if test "${MOZILLA_CONFIG}" = "no"
5716         then
5717           AC_PATH_PROG(SEAMONKEY_CONFIG, seamonkey-config, no)
5718           if test "${SEAMONKEY_CONFIG}" = "no"
5719           then
5720             AC_PATH_PROG(XULRUNNER_CONFIG, xulrunner-config, no)
5721             if test "${XULRUNNER_CONFIG}" = "no"
5722             then
5723               AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5724             else
5725               have_xul=true
5726               MOZILLA_CONFIG="${XULRUNNER_CONFIG}"
5727             fi
5728           else
5729             MOZILLA_CONFIG="${SEAMONKEY_CONFIG}"
5730           fi
5731         fi
5732       ]
5733     )
5734     if test ! -z "${MOZILLA_CONFIG}"
5735     then
5736       if ${MOZILLA_CONFIG} --defines | grep -q 'MOZ_X11=1'; then
5737         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5738         AC_CHECK_LIB(Xt,XtStrings,
5739          [
5740            VLC_ADD_CPPFLAGS([mozilla],[${X_CFLAGS}])
5741            VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])
5742          ],
5743          [],
5744          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5745         ])
5746         LDFLAGS="${LDFLAGS_save}"
5747       fi
5748
5749       mozilla=:
5750       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5751       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5752       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5753       if ${need_xpcom_libs}; then
5754          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5755       else
5756          VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin`])
5757       fi
5758       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5759       MOZILLA_REQUIRED_HEADERS=1
5760       AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5761       AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5762       AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5763         [#if HAVE_NPAPI_H
5764          # include <npapi.h>
5765          #endif
5766         ])
5767       if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5768       then
5769         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5770       fi
5771       MOZILLA_REQUIRED_HEADERS=
5772       CPPFLAGS="${CPPFLAGS_save}"
5773       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5774     fi
5775     dnl End of moz_sdk = ""
5776   else
5777     dnl special case for mingw32
5778     if test "${SYS}" = "mingw32"
5779     then
5780       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5781       dnl latest gecko sdk does not have an xpcom directory
5782       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5783           mozilla_sdk_xpcom="/xpcom"
5784       fi
5785     fi
5786
5787     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5788     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5789     MOZILLA_REQUIRED_HEADERS=1
5790     AC_CHECK_HEADERS(mozilla-config.h,,MOZILLA_REQUIRED_HEADERS=0)
5791     AC_CHECK_HEADERS(npapi.h,,MOZILLA_REQUIRED_HEADERS=0)
5792     AC_CHECK_HEADERS(npruntime.h,,MOZILLA_REQUIRED_HEADERS=0,
5793         [#if HAVE_NPAPI_H
5794           #include <npapi.h>
5795           #endif
5796         ])
5797     if test "${MOZILLA_REQUIRED_HEADERS}" = "0"
5798     then
5799         AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
5800     fi
5801     MOZILLA_REQUIRED_HEADERS=
5802     mozilla=:
5803     PLUGINS_BINDINGS="${PLUGINS_BINDINGS} mozilla"
5804     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])
5805     if ${need_xpcom_libs}; then
5806        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])
5807       if test "${SYS}" = "mingw32"; then
5808         dnl latest gecko sdk does not have embedstring
5809         if test -d "${real_mozilla_sdk}/embedstring/bin"
5810         then
5811           VLC_ADD_LDFLAGS([mozilla],[-lembedstring])
5812         fi
5813       fi
5814     fi
5815     MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5816
5817     if test -n "${CYGPATH}"; then
5818       real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5819     fi
5820     CPPFLAGS="${CPPFLAGS_save}"
5821   fi
5822 fi
5823 AC_LANG_POP(C++)
5824 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5825
5826    dnl Tests for Osso and Xsp
5827 if test "${enable_x11}" != "no" &&
5828   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
5829    test "${enable_x11}" = "yes"); then
5830    AC_CHECK_LIB(osso, osso_display_blanking_pause,[
5831       PKG_CHECK_MODULES(GLIB2, glib-2.0, [                                                
5832           VLC_ADD_CPPFLAGS([x11],[-DHAVE_OSSO ${DBUS_CFLAGS} ${GLIB2_CFLAGS}])
5833           VLC_ADD_LDFLAGS([x11],[-losso])
5834       ])
5835    ])
5836    AC_CHECK_LIB(Xsp, XSPSetPixelDoubling,[
5837       VLC_ADD_CPPFLAGS([x11],[-DHAVE_XSP])
5838       VLC_ADD_LDFLAGS([x11],[-lXsp])
5839    ])
5840 fi
5841
5842 dnl
5843 dnl  Mediacontrol Python bindings
5844 dnl
5845 AC_ARG_ENABLE(python-bindings,
5846   [  --enable-python-bindings Enable Python bindings (default disabled)])
5847 dnl TODO: look for python dev headers
5848 AS_IF([test "${enable_python_bindings}" = "yes"],
5849       PLUGINS_BINDINGS="${PLUGINS_BINDINGS} python"
5850      ) 
5851
5852 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
5853
5854 dnl
5855 dnl  Java bindings
5856 dnl
5857 AC_ARG_ENABLE(java-bindings,
5858   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5859 if test "${enable_java_bindings}" = "yes"
5860 then
5861   AS_IF([test "x${JAVA_HOME}" == "x"],
5862         [AC_MSG_ERROR([Please set the JAVA_HOME variable to your JDK environment])])
5863   AC_PROG_JAVAC
5864   AC_PROG_JAVA
5865   PLUGINS_BINDINGS="${PLUGINS_BINDINGS} java"
5866   if test "${JAVAC}" == "javac${EXEEXT}"
5867   then
5868     JAVAC="javac${EXEEXT} -cp ./ "
5869   fi
5870 fi
5871 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5872
5873 dnl
5874 dnl  test plugins
5875 dnl
5876 AC_ARG_ENABLE(testsuite,
5877   [  --enable-testsuite      build test modules (default disabled)])
5878 if test "${enable_testsuite}" = "yes"
5879 then
5880   TESTS="test1 test2 test3 test4"
5881
5882   dnl  we define those so that bootstrap sets the right linker
5883   VLC_ADD_CXXFLAGS([test2],[])
5884   VLC_ADD_OBJCFLAGS([test3],[])
5885   dnl  this one is needed until automake knows what to do
5886   VLC_ADD_LDFLAGS([test3],[-lobjc])
5887
5888   VLC_ADD_PLUGINS([${TESTS}])
5889 fi
5890
5891 dnl
5892 dnl Microsoft Layer for Unicode for WIN9x/ME
5893 dnl
5894 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5895 then
5896     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5897         VLC_ADD_LDFLAGS([vlc libvlc],[-Wl,--exclude-libs,libunicows.a -lunicows])
5898     ])
5899 fi
5900
5901 dnl
5902 dnl  gtk_main plugin
5903 dnl
5904 if test "${NEED_GTK_MAIN}" != "no"
5905 then
5906     VLC_ADD_PLUGINS([gtk_main])
5907     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5908     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5909 fi
5910
5911 if test "${NEED_GNOME_MAIN}" != "no"
5912 then
5913     VLC_ADD_PLUGINS([gnome_main])
5914     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5915     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5916 fi
5917
5918 if test "${NEED_GTK2_MAIN}" != "no"
5919 then
5920     VLC_ADD_PLUGINS([gtk2_main])
5921     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5922     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5923     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5924     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5925 fi
5926
5927 if test "${NEED_GNOME2_MAIN}" != "no"
5928 then
5929     VLC_ADD_PLUGINS([gnome2_main])
5930     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5931     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5932 fi
5933
5934 dnl
5935 dnl  qte_main plugin
5936 dnl
5937 if test "${NEED_QTE_MAIN}" != "no"
5938 then
5939     VLC_ADD_PLUGINS([qte_main])
5940     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5941     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5942     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5943 fi
5944
5945
5946 dnl
5947 dnl  Plugin and builtin checks
5948 dnl
5949 plugin_support=yes
5950
5951 dnl Automagically disable plugins if there is no system support for
5952 dnl dynamically loadable files (.so, .dll, .dylib).
5953 dnl don't forget vlc-win32 still can load .dll as plugins
5954 AS_IF([test "${ac_cv_have_plugins}" = "no"], [
5955   AC_MSG_WARN([*** No plugin support! Building statically! ***])
5956   plugin_support=no
5957 ])
5958
5959 AS_IF([test "${enable_shared}" = "no"], [
5960   plugin_support=no
5961 ])
5962
5963 AS_IF([test "${plugin_support}" != "no"], [
5964   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5965 ])
5966
5967 AM_CONDITIONAL(HAVE_PLUGINS, [test "${plugin_support}" != "no"])
5968
5969 dnl Temporary(?) hack for plugins/builtins transition
5970 VLC_ADD_PLUGINS([${BUILTINS}])
5971 BUILTINS=""
5972
5973 dnl
5974 dnl Pic and shared libvlc stuff
5975 dnl
5976 AS_IF([test "${SYS}" = "mingw32"], [
5977   FILE_LIBVLC_DLL="!define LIBVLC_DLL libvlc.dll"
5978 ])
5979
5980 dnl
5981 dnl  Stuff used by the program
5982 dnl
5983 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5984 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2007 the VideoLAN team", [Copyright string])
5985 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5986 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5987 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5988 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5989 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5990 AC_SUBST(VERSION_MAJOR)
5991 AC_SUBST(VERSION_MINOR)
5992 AC_SUBST(VERSION_REVISION)
5993 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5994 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5995 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5996 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5997
5998 dnl New definitions with value matching 0.9.0 release
5999 module_symbol="0_9_0b"
6000 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
6001 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
6002 VLC_ENTRY="vlc_entry__${module_symbol}"
6003 AC_SUBST(VLC_ENTRY)
6004
6005 dnl
6006 dnl  Handle substvars that use $(top_srcdir)
6007 dnl
6008 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
6009 AC_SUBST(VLC_CONFIG)
6010 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
6011
6012 dnl
6013 dnl  Restore *FLAGS
6014 dnl
6015 VLC_RESTORE_FLAGS
6016
6017 dnl
6018 dnl  Create the vlc-config script
6019 dnl
6020 LDFLAGS_libvlc="${LDFLAGS_libvlc} ${LDFLAGS_builtin}"
6021
6022 dnl
6023 dnl  Configuration is finished
6024 dnl
6025 AC_SUBST(SYS)
6026 AC_SUBST(ARCH)
6027 AC_SUBST(ALIASES)
6028 AC_SUBST(ASM)
6029 AC_SUBST(MOC)
6030 AC_SUBST(RCC)
6031 AC_SUBST(UIC)
6032 AC_SUBST(WINDRES)
6033 AC_SUBST(MOZILLA_SDK_PATH)
6034 AC_SUBST(WINE_SDK_PATH)
6035 AC_SUBST(LIBEXT)
6036 AC_SUBST(AM_CPPFLAGS)
6037 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
6038 AC_SUBST(FILE_LIBVLC_DLL)
6039
6040 dnl Create vlc-config.in
6041 VLC_OUTPUT_VLC_CONFIG_IN
6042
6043 AC_CONFIG_FILES([
6044   vlc.win32.nsi
6045   Makefile
6046   activex/Makefile
6047   activex/axvlc.inf
6048   bindings/Makefile
6049   bindings/java/Makefile
6050   bindings/java/src/Makefile
6051   bindings/python/Makefile
6052   doc/Makefile
6053   intl/Makefile
6054   ipkg/Makefile
6055   libs/loader/Makefile
6056   libs/srtp/Makefile
6057   modules/Makefile
6058   mozilla/Makefile
6059   m4/Makefile
6060   po/Makefile.in
6061   share/Makefile
6062   src/Makefile
6063 ])
6064
6065 AC_CONFIG_FILES([
6066   modules/access/Makefile
6067   modules/access/bda/Makefile
6068   modules/access/dshow/Makefile
6069   modules/access/dvb/Makefile
6070   modules/access/mms/Makefile
6071   modules/access/cdda/Makefile
6072   modules/access/rtsp/Makefile
6073   modules/access/vcd/Makefile
6074   modules/access/vcdx/Makefile
6075   modules/access/screen/Makefile
6076   modules/access_filter/Makefile
6077   modules/access_output/Makefile
6078   modules/audio_filter/Makefile
6079   modules/audio_filter/channel_mixer/Makefile
6080   modules/audio_filter/converter/Makefile
6081   modules/audio_filter/resampler/Makefile
6082   modules/audio_filter/spatializer/Makefile
6083   modules/audio_mixer/Makefile
6084   modules/audio_output/Makefile
6085   modules/codec/Makefile
6086   modules/codec/cmml/Makefile
6087   modules/codec/dmo/Makefile
6088   modules/codec/ffmpeg/Makefile
6089   modules/codec/subtitles/Makefile
6090   modules/codec/spudec/Makefile
6091   modules/codec/xvmc/Makefile
6092   modules/control/Makefile
6093   modules/control/http/Makefile
6094   modules/demux/Makefile
6095   modules/demux/asf/Makefile
6096   modules/demux/avi/Makefile
6097   modules/demux/mp4/Makefile
6098   modules/demux/mpeg/Makefile
6099   modules/demux/playlist/Makefile
6100   modules/gui/Makefile
6101   modules/gui/beos/Makefile
6102   modules/gui/pda/Makefile
6103   modules/gui/macosx/Makefile
6104   modules/gui/minimal_macosx/Makefile
6105   modules/gui/qnx/Makefile
6106   modules/gui/qt4/Makefile
6107   modules/gui/skins2/Makefile
6108   modules/gui/wxwidgets/Makefile
6109   modules/gui/wince/Makefile
6110   modules/meta_engine/Makefile
6111   modules/misc/Makefile
6112   modules/misc/dummy/Makefile
6113   modules/misc/lua/Makefile
6114   modules/misc/memcpy/Makefile
6115   modules/misc/notify/Makefile
6116   modules/misc/testsuite/Makefile
6117   modules/misc/playlist/Makefile
6118   modules/misc/xml/Makefile
6119   modules/misc/probe/Makefile
6120   modules/mux/Makefile
6121   modules/mux/mpeg/Makefile
6122   modules/mux/rtp/Makefile
6123   modules/packetizer/Makefile
6124   modules/services_discovery/Makefile
6125   modules/stream_out/Makefile
6126   modules/stream_out/transrate/Makefile
6127   modules/video_chroma/Makefile
6128   modules/video_filter/Makefile
6129   modules/video_output/Makefile
6130   modules/video_output/msw/Makefile
6131   modules/video_output/qte/Makefile
6132   modules/video_output/x11/Makefile
6133   modules/visualization/Makefile
6134   modules/visualization/visual/Makefile
6135   modules/visualization/galaktos/Makefile
6136 ])
6137
6138 dnl Generate makefiles
6139 AC_OUTPUT
6140
6141 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
6142 # not provided with the source
6143 ${SHELL} ./config.status --file=vlc-config
6144 chmod 0755 vlc-config
6145
6146 dnl echo "Enabled builtin modules :"
6147 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
6148
6149 dnl echo "Enabled plugin modules :"
6150 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
6151
6152 dnl Shortcut to nice compile message
6153 rm -f compile
6154 echo '#! /bin/sh' >compile
6155
6156 echo "PATH=$PATH LANG=C make \$@ 2>&1| \\" >> compile
6157 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
6158 chmod a+x compile
6159
6160 printf "
6161 vlc configuration
6162 --------------------
6163 vlc version           : ${VERSION}
6164 system                : ${SYS}
6165 architecture          : ${ARCH}
6166 build flavour         : "
6167 test "${enable_debug}" = "yes" && printf "debug "
6168 test "${enable_cprof}" = "yes" && printf "cprof "
6169 test "${enable_gprof}" = "yes" && printf "gprof "
6170 test "${enable_optimizations}" = "yes" && printf "optim "
6171 test "${enable_release}" = "yes" && printf "release " || printf "devel "
6172 echo "
6173 vlc aliases           :${ALIASES}
6174 plugins/bindings      :${PLUGINS_BINDINGS}
6175
6176 You can check which modules have been enabled 
6177 with \`./vlc-config --list plugin'.
6178 You can tune the compiler flags in vlc-config.
6179 To build vlc and its plugins, type \`./compile' or \`make'.
6180 "
6181