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