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