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