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