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