ALL: Fix make distcheck
[vlc.git] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.8.5-test1)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="8"
6 VERSION_REVISION="5"
7 VERSION_EXTRA="test1"
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.5-test1)
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
97     topdir="`dirname $0`"
98     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
99        topdir="`pwd`/$topdir"
100     fi
101
102   if test -d ${topdir}/extras/contrib/lib; then
103     export PATH=${topdir}/extras/contrib/bin:$PATH
104     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
105     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
106     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
107     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
108     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
109     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
110     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
111     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
112     if test $build = $host -o $PKG_CONFIG_LIBDIR; then
113         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
114     else
115         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
116     fi
117     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
118     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
119
120 dnl kludge because only the debian package provides a ffmpeg-config
121     if test -z $with_ffmpeg_config_path; then 
122        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
123     fi
124     if test -z $with_livedotcom_tree; then
125        with_livedotcom_tree=${topdir}/extras/contrib/src/live
126     fi
127     if test -z $with_goom_tree; then
128       with_goom_tree=${topdir}/extras/contrib/src/goom
129     fi
130     if test -z $with_mozilla_sdk_path; then
131        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
132     fi
133
134     if test ".`uname -s`" = ".Darwin"; then
135       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
136       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
137     elif test ".`uname -s`" = ".BeOS"; then
138       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
139       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
140     fi
141   fi
142 fi
143 dnl
144 dnl  Set default values
145 dnl
146 LDFLAGS_vlc="${LDFLAGS}"
147
148 dnl
149 dnl  Check the operating system
150 dnl
151 case "${target_os}" in
152   "")
153     SYS=unknown
154     ;;
155   linux*)
156     SYS=linux
157     ;;
158   bsdi*)
159     SYS=bsdi
160     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
161     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
162     ;;
163   *bsd*)
164     SYS="${target_os}"
165     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
166     case "${target_os}" in
167       freebsd*)
168         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
169         CPPFLAGS="${CPPFLAGS_save}"
170         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
171         LDFLAGS="${LDLFAGS_save}"
172         ;;
173     esac
174     ;;
175   darwin1.[0123])
176     dnl Mac OS X < 10.3
177     SYS=darwin
178     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
179     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
180     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
181     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
182     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
183     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
184     VLC_ADD_CFLAGS([vlc],[-x objective-c])
185     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
186     ;;
187   darwin*)
188     SYS=darwin
189     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
190     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
191     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
192     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
193     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
194     VLC_ADD_CFLAGS([vlc],[-x objective-c])
195     ;;
196   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
197     AC_CHECK_TOOL(WINDRES, windres, :)
198
199     case "${target_os}" in
200       *mingw32*)
201         SYS=mingw32
202         ;;
203       *cygwin*)
204         dnl Check if we are using the mno-cygwin mode in which case we are
205         dnl actually dealing with a mingw32 compiler.
206         AC_EGREP_CPP(yes,
207             [#ifdef WIN32
208              yes
209              #endif],
210             SYS=mingw32, SYS=cygwin)
211         ;;
212       *wince* | *mingwce* | *pe*)
213         SYS=mingwce
214         ;;
215     esac
216
217     if test "${SYS}" = "mingw32"; then
218         # add ws2_32 for closesocket, select, recv
219         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
220         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
221         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
222         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])
223     fi
224     if test "${SYS}" = "mingwce"; then
225         # add ws2 for closesocket, select, recv
226         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
227         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
228         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
229         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
230    fi
231     ;;
232   *nto*)
233     SYS=nto
234     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
235     ;;
236   solaris*)
237     SYS=solaris
238     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
239     # Perhaps it is useful other places as well? 
240     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
241     ;;
242   hpux*)
243     SYS=hpux
244     ;;
245   beos)
246     SYS=beos
247     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
248     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
249     VLC_ADD_CXXFLAGS([beos],[])
250     VLC_ADD_LDFLAGS([vlc beos logger],[-lbe])
251     VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
252
253     dnl Check for BONE
254     if test -f /boot/beos/system/lib/libbind.so; then
255         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket])
256     else
257         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet])
258     fi
259
260     dnl Ugly check for Zeta
261     if test -f /boot/beos/system/lib/libzeta.so; then
262         VLC_ADD_LDFLAGS([beos],[-lzeta])
263     fi
264     ;;
265   *)
266     SYS="${target_os}"
267     ;;
268 esac
269 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
270 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
271 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
272 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
273
274 dnl
275 dnl  Check for Mac OS X SDK settings
276 dnl
277 AC_ARG_WITH(macosx-sdk,
278    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
279 if test "${with_macosx_sdk}" != "no" ; then
280   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
281   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
282   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
283   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
284   export MACOSX_DEPLOYMENT_TARGET=10.3
285   MACOSX_DEPLOYMENT_TARGET="10.3"
286 fi
287
288 dnl
289 dnl Gettext stuff
290 dnl
291 ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl oc pt_BR ro ru sv tr zh_CN zh_TW"
292 AM_GNU_GETTEXT_VERSION(0.11.5)
293 AM_GNU_GETTEXT
294 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
295   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
296   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
297   AS_IF([test "${enable_libtool}" != "no"], [
298     INCLUDED_LIBINTL="${LTLIBINTL}"
299   ],[
300     INCLUDED_LIBINTL="${LIBINTL}"
301   ])
302 else
303   VLC_ADD_LDFLAGS([vlc],[${LIBINTL}])
304   INCLUDED_LIBINTL=
305 fi
306 AC_SUBST(INCLUDED_LIBINTL)
307 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
308
309 dnl
310 dnl Iconv stuff
311 dnl
312 if test "${SYS}" != "mingwce"; then
313 AS_IF([test "$am_cv_func_iconv" != "yes"],
314         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
315 fi
316 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
317 AS_IF([test "${enable_libtool}" != "no"], [
318   VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
319 ],[
320   VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
321 ])
322
323 dnl Check for the need to include the mingwex lib for mingw32
324 if test "${SYS}" = "mingw32"
325 then
326     AC_CHECK_LIB(mingwex,opendir,
327         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
328             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
329     )
330 fi
331
332 dnl Check for fnative-struct or mms-bitfields support for mingw32
333 if test "${SYS}" = "mingw32"
334 then
335     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
336         [ac_cv_c_mms_bitfields],
337         [CFLAGS="${CFLAGS_save} -mms-bitfields"
338          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
339     if test "${ac_cv_c_mms_bitfields}" != "no"; then
340         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
341         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
342     else
343         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
344             [ac_cv_c_fnative_struct],
345             [CFLAGS="${CFLAGS_save} -fnative-struct"
346              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
347         if test "${ac_cv_c_fnative_struct}" != "no"; then
348             CFLAGS_save="${CFLAGS_save} -fnative-struct";
349             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
350         fi
351     fi
352
353     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
354 fi
355
356 dnl Check for fvtable-thunks support for mingw32
357 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
358 then
359 AC_LANG_PUSH(C++)
360     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
361         [ac_cv_cxx_fvtable_thunks],
362         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
363          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
364                         ac_cv_cxx_fvtable_thunks=no)])
365     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
366         CXXFLAGS_mingw32_special="-fvtable-thunks"
367     fi
368
369     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
370 AC_LANG_POP(C++)
371 fi
372
373 dnl Plugin compilation stuff
374
375 VLC_LIBRARY_SUFFIX
376
377 VLC_SYMBOL_PREFIX
378 AC_SUBST(SYMPREF)
379
380 AS_IF([test "${enable_libtool}" = "no"], [
381 case "${SYS}" in
382   mingw32|cygwin)
383     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
384     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
385     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
386     ;;
387   mingwce)
388     ;;
389   *)
390     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
391     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
392     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
393     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
394     ;;
395 esac
396 ])
397
398 dnl The -DSYS_FOO flag
399 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
400
401 dnl Check for system libs needed
402 need_libc=false
403
404 AC_CHECK_FUNCS(gettimeofday select strerror 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)
405
406 dnl Check for usual libc functions
407 AC_CHECK_FUNCS(strdup strndup atof)
408 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
409 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
410 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
411
412 dnl Check for setlocal and langinfo
413 AC_CHECK_FUNCS(setlocale)
414 AC_CHECK_HEADERS(langinfo.h)
415 AC_CHECK_FUNCS(nl_langinfo)
416
417 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
418   [AC_TRY_LINK([#include <langinfo.h>],
419     [char* cs = nl_langinfo(CODESET);],
420     ac_cv_langinfo_codeset=yes,
421     ac_cv_langinfo_codeset=no)
422   ])
423 if test ${ac_cv_langinfo_codeset} = yes; then
424   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
425     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
426 fi
427
428 AC_CHECK_FUNCS(connect,,[
429   AC_CHECK_LIB(socket,connect,[
430     VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lsocket)
431     LIBS_socket="-lsocket"
432   ])
433 ])
434
435 AC_CHECK_FUNCS(send,,[
436   AC_CHECK_LIB(socket,send,[
437     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
438   ])
439 ])
440
441 AC_CHECK_FUNCS(gethostbyname,,[
442   AC_CHECK_LIB(nsl,gethostbyname,[
443     VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl])
444   ],[
445     AC_CHECK_LIB(bind,gethostbyname,[
446       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
447     ])
448   ])
449 ])
450
451 dnl Check for socklen_t
452 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
453   [AC_TRY_COMPILE(
454      [#include <sys/types.h>
455       #include <sys/socket.h>],
456      [socklen_t len = 42; return len;],
457      ac_cv_type_socklen_t=yes,
458      ac_cv_type_socklen_t=no)])
459 if test "${ac_cv_type_socklen_t}" != "no"; then
460   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
461 fi
462
463 dnl Check for struct sockaddr_storage
464 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
465 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
466 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
467   [AC_TRY_COMPILE(
468     [#include <sys/types.h>
469      #if defined( UNDER_CE )
470      # include <winsock.h>
471      #elif defined( WIN32 )
472      # include <winsock2.h>
473      #else
474      # include <sys/socket.h>
475      #endif], [struct sockaddr_storage addr;],
476      ac_cv_struct_sockaddr_storage=yes,
477      ac_cv_struct_sockaddr_storage=no)])
478 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
479   AC_DEFINE(sockaddr_storage, sockaddr)
480   AC_DEFINE(ss_family, sa_family)
481 ])
482
483 dnl getaddrinfo, getnameinfo and gai_strerror check
484 dnl  -lnsl and -lsocket are needed on Solaris;
485 dnl  we purposedly make the test fail on Windows
486 LIBS_save="${LIBS}"
487 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
488 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
489
490 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
491 dnl are
492 LIBS="${LIBS_gai}"
493 AC_CHECK_FUNCS([getnameinfo gai_strerror])
494 LIBS="${LIBS_save}"
495
496 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
497 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
498 [#include <sys/types.h>
499 #if defined( WIN32 ) || defined( UNDER_CE )
500 # if defined(UNDER_CE) && defined(sockaddr_storage)
501 #  undef sockaddr_storage
502 # endif
503 # include <winsock2.h>
504 # include <ws2tcpip.h>
505 #else
506 # include <netdb.h>
507 #endif])
508
509 dnl Check for va_copy
510 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
511   AC_TRY_LINK(
512     [#include <stdarg.h>],
513     [va_list ap1, ap2; va_copy(ap1,ap2);],
514     [ac_cv_c_va_copy="yes"],
515     [ac_cv_c_va_copy="no"]))
516 if test "${ac_cv_c_va_copy}" = "yes"; then
517   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
518 fi
519 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
520   AC_TRY_LINK(
521     [#include <stdarg.h>],
522     [va_list ap1, ap2; __va_copy(ap1,ap2);],
523     [ac_cv_c___va_copy="yes"],
524     [ac_cv_c___va_copy="no"]))
525 if test "${ac_cv_c___va_copy}" = "yes"; then
526   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
527 fi
528
529 AC_CHECK_FUNCS(inet_aton,,[
530   AC_CHECK_LIB(resolv,inet_aton,[
531     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
532   ])
533 ])
534
535 dnl Check for getopt (always use builtin one on win32)
536 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
537 need_getopt=:
538 else
539 need_getopt=false
540 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
541 [ # FreeBSD has a gnugetopt library for this:
542   AC_CHECK_LIB([gnugetopt],[getopt_long],
543     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
544      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
545     [need_getopt=:])])
546 fi
547 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
548
549 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
550 AC_TYPE_SIGNAL
551 AC_CHECK_LIB(m,cos,[
552   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
553 ])
554 AC_CHECK_LIB(m,pow,[
555   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc],[-lm])
556 ])
557 AC_CHECK_LIB(m,sqrt,[
558   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
559 ])
560 AC_CHECK_LIB(mx,sqrtf,[
561   VLC_ADD_LDFLAGS([x264],[-lmx])
562 ])
563 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
564
565 dnl Check for dynamic plugins
566 ac_cv_have_plugins=no
567
568 # OS X style
569 AC_CHECK_HEADERS(mach-o/dyld.h,
570   [AC_CHECK_FUNCS(NSLinkModule,
571     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
572      ac_cv_have_plugins=yes])])
573
574 # HP-UX style
575 if test "${ac_cv_have_plugins}" = "no"; then
576   AC_CHECK_HEADERS(dl.h)
577   ac_cv_my_have_shl_load=no
578   AC_CHECK_FUNC(shl_load,
579    [ac_cv_my_have_shl_load=yes,
580     AC_CHECK_LIB(dld, shl_load,
581      [ac_cv_my_have_shl_load=yes
582       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
583   if test "${ac_cv_my_have_shl_load}" = "yes"; then
584     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
585     ac_cv_have_plugins=yes
586   fi
587 fi
588
589 # Whatever style
590 if test "${ac_cv_have_plugins}" = "no"; then
591   AC_CHECK_LIB(dld, dld_link,
592    [VLC_ADD_LDFLAGS([vlc],[-ldld])
593     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
594     ac_cv_have_plugins=yes])
595 fi
596
597 # Win32 style
598 if test "${ac_cv_have_plugins}" = "no"; then
599   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
600     AC_CHECK_LIB(kernel32, main,
601      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
602       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
603       ac_cv_have_plugins=yes])
604   fi
605 fi
606
607 # WinCE style
608 if test "${ac_cv_have_plugins}" = "no"; then
609   if test "${SYS}" = "mingwce"; then
610     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
611     ac_cv_have_plugins=yes
612   fi
613 fi
614
615 # BeOS style
616 if test "${ac_cv_have_plugins}" = "no"; then
617   AC_CHECK_HEADERS(image.h)
618   AC_CHECK_FUNCS(load_add_on,
619    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
620     ac_cv_have_plugins=yes])
621 fi
622
623 # Only test for dlopen() if the others didn't work
624 if test "${ac_cv_have_plugins}" = "no"; then
625   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
626   ac_cv_my_have_dlopen=no
627   AC_CHECK_FUNC(dlopen,
628     ac_cv_my_have_dlopen=yes,
629     AC_CHECK_LIB(dl, dlopen,
630       ac_cv_my_have_dlopen=yes
631       VLC_ADD_LDFLAGS([vlc],[-ldl]),
632       AC_CHECK_LIB(svld, dlopen,
633         ac_cv_my_have_dlopen=yes
634         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
635   if test "${ac_cv_my_have_dlopen}" = "yes"; then
636     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
637     ac_cv_have_plugins=yes
638   fi
639 fi
640
641 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
642 dnl Check for pthreads - borrowed from XMMS
643 THREAD_LIB=error
644 if test "${THREAD_LIB}" = "error"; then
645   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
646 fi
647 if test "${THREAD_LIB}" = "error"; then
648   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
649 fi
650 if test "${THREAD_LIB}" = "error"; then
651   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
652 fi
653 if test "${THREAD_LIB}" = "error"; then
654   AC_CHECK_FUNCS(pthread_mutex_lock)
655   THREAD_LIB=""
656 fi
657
658 dnl Check for cthreads under GNU/Hurd for instance
659 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
660
661 dnl
662 dnl  GNU portable threads
663 dnl
664 AC_ARG_ENABLE(pth,
665   [  --enable-pth            GNU Pth support (default disabled)],
666   [ if test "${enable_pth}" = "yes"; then
667     AC_CHECK_LIB(pth,pth_init)
668     AC_MSG_CHECKING(for pth_init in pth.h)
669     AC_EGREP_HEADER(pth_init,pth.h,[
670       AC_MSG_RESULT(yes)
671       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
672                 Define if <pth.h> defines pth_init)
673       THREAD_LIB="-lpth"
674     ],[
675       AC_MSG_RESULT(no)
676     ])
677     fi
678 ])
679
680 dnl
681 dnl  State Threads
682 dnl
683 AC_ARG_ENABLE(st,
684   [  --enable-st             State Threads (default disabled)],
685   [ if test "${enable_st}" = "yes"; then
686     AC_CHECK_LIB(st,st_init)
687     AC_MSG_CHECKING(for st_init in st.h)
688     AC_EGREP_HEADER(st_init,st.h,[
689       AC_MSG_RESULT(yes)
690       AC_DEFINE(ST_INIT_IN_ST_H, 1,
691                 Define if <st.h> defines st_init)
692       THREAD_LIB="-lst"
693     ],[
694       AC_MSG_RESULT(yes)
695     ])
696     fi
697 ])
698
699 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
700
701 dnl Don't link with rt when using GNU-pth
702 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
703   dnl HP/UX port
704   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
705
706   have_nanosleep=false
707   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
708     AC_CHECK_LIB(rt,nanosleep,
709       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
710       [AC_CHECK_LIB(posix4,nanosleep,
711           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
712     )
713   ])
714   if ${have_nanosleep}; then
715     AC_DEFINE(HAVE_NANOSLEEP, 1,
716               Define if nanosleep is available.)
717   fi
718 fi
719
720 dnl Check for misc headers
721 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
722 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
723   AC_MSG_RESULT(yes)
724   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
725             Define if <pthread.h> defines pthread_cond_t.)],[
726   AC_MSG_RESULT(no)])
727
728 AC_MSG_CHECKING(for pthread_once in pthread.h)
729 AC_EGREP_HEADER(pthread_once,pthread.h,[
730   AC_MSG_RESULT(yes)
731   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
732             Define if <pthread.h> defines pthread_once.)],[
733   AC_MSG_RESULT(no)])
734 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
735
736 AC_MSG_CHECKING(for strncasecmp in strings.h)
737 AC_EGREP_HEADER(strncasecmp,strings.h,[
738   AC_MSG_RESULT(yes)
739   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
740             Define if <strings.h> defines strncasecmp.)],[
741   AC_MSG_RESULT(no)])
742
743 dnl Check for headers
744 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)
745 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
746 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
747 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
748 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
749 AC_CHECK_HEADERS(linux/version.h)
750 AC_CHECK_HEADERS(syslog.h)
751 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
752
753 AC_HEADER_TIME
754
755 dnl Check for dirent
756 need_dirent=false
757 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
758 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
759
760 dnl Mac OS X and other OSes don't have declaration for nanosleep
761 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
762 AC_MSG_CHECKING(for nanosleep in time.h)
763 AC_EGREP_HEADER(nanosleep,time.h,[
764   AC_MSG_RESULT(yes)
765   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
766             Define if <time.h> defines nanosleep.)
767 ],[
768   AC_MSG_RESULT(no)
769 ])
770 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
771
772 dnl Make sure we have timespecs
773 AC_MSG_CHECKING(for timespec in sys/time.h)
774 AC_EGREP_HEADER(timespec,sys/time.h,[
775   AC_MSG_RESULT(yes)
776   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
777             Define if <sys/time.h> defines struct timespec.)
778 ],[
779   AC_MSG_RESULT(no)
780 ])
781
782 dnl Check for threads library
783 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
784 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
785 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
786
787 dnl Find where are the X headers and libraries
788 AC_PATH_XTRA()
789
790 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.
791
792 PKG_PROG_PKG_CONFIG()
793
794 dnl Check for hal
795 AC_ARG_ENABLE(hal,
796   [  --enable-hal            Linux HAL services discovery (default enabled)])
797  
798 if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
799 then
800   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
801     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
802       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
803       VLC_ADD_PLUGINS([hal]) 
804       VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
805       VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
806     dnl No hal 0.5 Test for 0.2
807     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
808        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
809         VLC_ADD_PLUGINS([hal])
810         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
811         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
812        [AC_MSG_WARN(HAL library not found)])
813     ]
814   )
815 fi
816
817 dnl Build the gtk_main plugins?
818 NEED_GTK_MAIN=no
819 NEED_GNOME_MAIN=no
820 NEED_GTK2_MAIN=no
821 NEED_GNOME2_MAIN=no
822
823 dnl build the qte plugin ?
824 NEED_QTE_MAIN=no
825
826 dnl Check for ntohl, etc.
827 AC_CACHE_CHECK([for ntohl in sys/param.h],
828     [ac_cv_c_ntohl_sys_param_h],
829     [CFLAGS="${CFLAGS_save} -Wall -Werror"
830      AC_TRY_COMPILE([#include <sys/param.h>],
831         [void foo() { int meuh; ntohl(meuh); }],
832         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
833 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
834     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
835 fi
836
837 # XXX: do this with an M4 macro?
838 #dnl Check for various -W flags
839 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
840 #do
841 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
842 #        [ac_cv_c_W${flag}],
843 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
844 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
845 #    if test "${ac_cv_c_W${flag}}" != "no"; then
846 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
847 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
848 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
849 #    fi
850 #done
851
852 AC_CACHE_CHECK([if \$CC accepts -Wall],
853     [ac_cv_c_Wall],
854     [CFLAGS="-Wall ${CFLAGS_save}"
855      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
856
857 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
858     [ac_cv_c_Wconversion],
859     [CFLAGS="-Wconversion ${CFLAGS_save}"
860      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
861
862 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
863     [ac_cv_c_Wunreachable_code],
864     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
865      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
866
867 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
868     [ac_cv_c_Wsign_compare],
869     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
870      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
871
872 if test "${ac_cv_c_Wall}" != "no"; then
873     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
874     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
875     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
876 fi
877
878 if test "${ac_cv_c_Wsign_compare}" != "no"; then
879     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
880     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
881     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
882 fi
883
884 dnl Check for -pipe
885 AC_CACHE_CHECK([if \$CC accepts -pipe],
886     [ac_cv_c_pipe],
887     [CFLAGS="${CFLAGS_save} -pipe"
888      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
889 if test "${ac_cv_c_pipe}" != "no"; then
890     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
891     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
892     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
893 fi
894
895 dnl Check for various optimization flags
896 AC_CACHE_CHECK([if \$CC accepts -Os],
897     [ac_cv_c_os],
898     [CFLAGS="${CFLAGS_save} -Os"
899      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
900 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
901     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
902 fi
903
904 AC_CACHE_CHECK([if \$CC accepts -O3],
905     [ac_cv_c_o3],
906     [CFLAGS="${CFLAGS_save} -O3"
907      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
908 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
909     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
910 fi
911
912 AC_CACHE_CHECK([if \$CC accepts -O2],
913     [ac_cv_c_o2],
914     [CFLAGS="${CFLAGS_save} -O2"
915      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
916 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
917     if test "${ac_cv_c_o3}" = "no"; then
918         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
919     fi
920     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
921 else 
922     AC_CACHE_CHECK([if \$CC accepts -O],
923         [ac_cv_c_o],
924         [CFLAGS="${CFLAGS_save} -O"
925          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
926     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
927         if test "${ac_cv_c_o3}" = "no"; then
928             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
929         fi
930         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
931     fi
932 fi
933
934 dnl Check for -ffast-math
935 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
936     [ac_cv_c_fast_math],
937     [CFLAGS="${CFLAGS_save} -ffast-math"
938      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
939 if test "${ac_cv_c_fast_math}" != "no"; then
940     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
941 fi
942
943 dnl Check for -funroll-loops
944 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
945 if test "${SYS}" != "beos"
946 then
947   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
948       [ac_cv_c_unroll_loops],
949       [CFLAGS="${CFLAGS_save} -funroll-loops"
950        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
951   if test "${ac_cv_c_unroll_loops}" != "no"; then
952       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
953   fi
954 fi
955
956 dnl Check for -fomit-frame-pointer
957 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
958     [ac_cv_c_omit_frame_pointer],
959     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
960      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
961 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
962     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
963     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
964     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
965 fi
966
967 dnl Check for -mdynamic-no-pic
968 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
969     [ac_cv_c_dynamic_no_pic],
970     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
971      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
972 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
973     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
974     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
975 ])
976
977 dnl Check for Darwin plugin linking flags
978 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
979     [ac_cv_ld_darwin],
980     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
981      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
982 if test "${ac_cv_ld_darwin}" != "no"; then
983     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
984 fi
985
986 dnl Check for standard plugin linking flags
987 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
988 if test "${SYS}" = "beos"; then
989   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
990 else
991   AC_CACHE_CHECK([if \$CC accepts -shared],
992       [ac_cv_ld_plugins],
993       [CFLAGS="${CFLAGS_save} -shared"
994        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
995   if test "${ac_cv_ld_plugins}" != "no"; then
996     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
997   fi
998 fi
999
1000 dnl Check for variadic macros
1001 AC_CACHE_CHECK([for variadic cpp macros],
1002     [ac_cv_cpp_variadic_macros],
1003     [CFLAGS="${CFLAGS_save}"
1004      AC_TRY_COMPILE(
1005          [#include <stdio.h>
1006           #define a(b,c...) printf(b,##c)],
1007          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1008          ac_cv_cpp_variadic_macros=yes,
1009          ac_cv_cpp_variadic_macros=no)])
1010 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1011     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1012 fi
1013
1014 dnl Checks for __attribute__(aligned()) directive
1015 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1016     [ac_cv_c_attribute_aligned],
1017     [ac_cv_c_attribute_aligned=0
1018         CFLAGS="${CFLAGS_save} -Werror"
1019     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1020         AC_TRY_COMPILE([],
1021         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1022         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1023     done
1024         CFLAGS="${CFLAGS_save}"])
1025 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1026     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1027         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1028 fi
1029
1030 dnl Checks for __attribute__(format()) directive
1031 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1032     [ac_cv_c_attribute_format],
1033     [ac_cv_c_attribute_format=no
1034         CFLAGS="${CFLAGS_save} -Werror"
1035         AC_TRY_COMPILE([],
1036         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1037         [ac_cv_c_attribute_format=yes])
1038         CFLAGS="${CFLAGS_save}"])
1039 if test "${ac_cv_c_attribute_format}" != "no"; then
1040     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1041 fi
1042
1043 dnl Check for __attribute__(())
1044 AC_CACHE_CHECK([for __attribute__((packed))],
1045   [ac_cv_c_attribute_packed],
1046   [ac_cv_c_attribute_packed=no
1047    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1048                     [ac_cv_c_attribute_packed=yes])])
1049 if test "${ac_cv_c_attribute_packed}" != "no"; then
1050   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1051 fi
1052
1053 dnl
1054 dnl  Check the CPU
1055 dnl
1056 case "${target_cpu}" in
1057   "")
1058     ARCH=unknown
1059     ;;
1060   *)
1061     ARCH="${target_cpu}"
1062     ;;
1063 esac
1064
1065 dnl
1066 dnl  Enable profiling
1067 dnl
1068 AC_ARG_ENABLE(gprof,
1069 [  --enable-gprof          gprof profiling (default disabled)])
1070 AC_ARG_ENABLE(cprof,
1071 [  --enable-cprof          cprof profiling (default disabled)])
1072 test "${enable_gprof}" != "yes" && enable_gprof="no"
1073 test "${enable_cprof}" != "yes" && enable_cprof="no"
1074
1075 dnl
1076 dnl  default modules
1077 dnl
1078 VLC_ADD_PLUGINS([dummy logger memcpy])
1079 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
1080 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1081 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
1082 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
1083 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1084 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1085 VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
1086 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1087 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1088 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1089 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1090 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1091 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1092
1093 if test "${SYS}" != "mingwce"; then
1094 dnl  VLC_ADD_PLUGINS([externrun])
1095   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1096   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
1097   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1098   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1099   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1100   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1101   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1102   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1103 fi
1104
1105 dnl
1106 dnl  Switch to enable a version of VLC where most modules will be builtin
1107 dnl
1108 AC_ARG_ENABLE(mostly-builtin,
1109 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1110 if test "${enable_mostly_builtin}" = "yes"; then
1111   VLC_ADD_BUILTINS([${PLUGINS}])
1112   PLUGINS=""
1113 fi
1114
1115 dnl
1116 dnl Some plugins aren't useful on some platforms
1117 dnl
1118 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1119     VLC_ADD_PLUGINS([screensaver])
1120 elif test "${SYS}" != "mingwce"; then
1121     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1122     VLC_ADD_LDFLAGS([dmo],[-lole32])
1123 else
1124     VLC_ADD_PLUGINS([win32text])
1125 fi
1126
1127 dnl
1128 dnl  Accelerated modules
1129 dnl
1130 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1131 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1132 MMXEXT_MODULES="memcpymmxext"
1133 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1134 THREEDNOW_MODULES="memcpy3dn"
1135 SSE_MODULES=""
1136 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1137 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1138
1139 if test "${enable_gprof}" != "yes"
1140 then
1141   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1142 fi
1143
1144 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1145     [ac_cv_mmx_inline],
1146     [CFLAGS="${CFLAGS_save}"
1147      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1148                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1149 if test "${ac_cv_mmx_inline}" != "no"; then
1150   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1151   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1152 fi
1153
1154 dnl  Check for fully workin MMX intrinsics
1155 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1156 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1157 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1158     [ac_cv_c_mmx_intrinsics],
1159     [CFLAGS="${CFLAGS_save} -O -mmmx"
1160      AC_TRY_COMPILE([#include <mmintrin.h>
1161                      #include <stdint.h>
1162                      uint64_t frobzor;],
1163                     [__m64 a, b, c;
1164                      a = b = c = (__m64)frobzor;
1165                      a = _mm_slli_pi16(a, 3);
1166                      a = _mm_adds_pi16(a, b);
1167                      c = _mm_srli_pi16(c, 8);
1168                      c = _mm_slli_pi16(c, 3);
1169                      b = _mm_adds_pi16(b, c);
1170                      a = _mm_unpacklo_pi8(a, b);
1171                      frobzor = (uint64_t)a;],
1172                     [ac_cv_c_mmx_intrinsics=yes],
1173                     [ac_cv_c_mmx_intrinsics=no])])
1174 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1175   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1176   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1177 fi
1178
1179 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1180     [ac_cv_mmxext_inline],
1181     [CFLAGS="${CFLAGS_save}"
1182      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1183                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1184 if test "${ac_cv_mmxext_inline}" != "no"; then
1185   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1186   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1187 fi
1188
1189 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1190     [ac_cv_3dnow_inline],
1191     [CFLAGS="${CFLAGS_save}"
1192      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1193                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1194 if test "${ac_cv_3dnow_inline}" != "no"; then
1195   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1196   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1197 fi
1198
1199 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1200     [ac_cv_sse_inline],
1201     [CFLAGS="${CFLAGS_save}"
1202      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1203                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1204 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
1205   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1206   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1207 fi
1208
1209 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1210 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1211     [ac_cv_altivec_inline],
1212     [CFLAGS="${CFLAGS_save}"
1213      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1214          ac_cv_altivec_inline=yes,
1215          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1216           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1217             [ac_cv_altivec_inline="-Wa,-m7400"],
1218             ac_cv_altivec_inline=no)
1219          ])])
1220 if test "${ac_cv_altivec_inline}" != "no"; then
1221   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1222   if test "${ac_cv_altivec_inline}" != "yes"; then
1223     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1224     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1225     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1226     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1227     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1228   fi
1229   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1230 fi
1231
1232 dnl The AltiVec C extensions
1233 dnl
1234 dnl There are several possible cases:
1235 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1236 dnl                      need <altivec.h>
1237 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1238 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1239 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1240 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1241 dnl - Others: test should fail
1242 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1243   [ac_cv_c_altivec],
1244   [# OS X/PPC test (gcc 4.x)
1245    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1246    AC_TRY_COMPILE([],
1247      [vec_ld(0, (unsigned char *)0);],
1248      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1249      [# OS X/PPC test (gcc 3.x)
1250       CFLAGS="${CFLAGS_save} -faltivec"
1251       AC_TRY_COMPILE([],
1252         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1253         [ac_cv_c_altivec="-faltivec"],
1254         dnl Below this are the Linux tests
1255         [# Linux/PPC test (gcc 4.x)
1256          CFLAGS="${CFLAGS_save} -maltivec"
1257          AC_TRY_COMPILE([#include <altivec.h>],
1258            [vec_ld(0, (unsigned char *)0);],
1259            [ac_cv_c_altivec="-maltivec"],
1260            [# Linux/PPC test (gcc 3.3)
1261             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1262             AC_TRY_COMPILE([#include <altivec.h>],
1263               [vec_ld(0, (unsigned char *)0);],
1264               [ac_cv_c_altivec=""
1265                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1266               [# Linux/PPC test (gcc 3.3)
1267                CFLAGS="${CFLAGS_save} -fvec"
1268                AC_TRY_COMPILE([#include <altivec.h>],
1269                  [vec_ld(0, (unsigned char *)0);],
1270                  [ac_cv_c_altivec="-fvec"],
1271                  [ac_cv_c_altivec=no])
1272               ])
1273            ])
1274         ])
1275      ])
1276    CFLAGS="${CFLAGS_save}"
1277   ])
1278
1279 if test "${ac_cv_c_altivec}" != "no"; then
1280   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1281 fi
1282 AC_CHECK_HEADERS(altivec.h)
1283 CPPFLAGS="${CPPFLAGS_save}"
1284
1285 if test "${ac_cv_c_altivec}" != "no"; then
1286   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1287   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1288   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1289   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1290   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1291 fi
1292
1293 AC_CACHE_CHECK([if linker needs -framework vecLib],
1294     [ac_cv_ld_altivec],
1295     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1296      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1297      LDFLAGS="${LDFLAGS_save}"
1298     ])
1299 if test "${ac_cv_ld_altivec}" != "no"; then
1300   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1301 fi
1302 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1303
1304 AC_ARG_WITH(,[])
1305 AC_ARG_WITH(,[Optimization options:])
1306
1307 dnl
1308 dnl  Special arch tuning
1309 dnl
1310 AC_ARG_WITH(tuning,
1311 [  --with-tuning=ARCH      enable special tuning for an architecture
1312                           (default Pentium 2 on IA-32 and 750 on PPC)])
1313 if test -n "${with_tuning}"; then
1314     if test "${with_tuning}" != "no"; then
1315         CFLAGS_TUNING="-mtune=${with_tuning}"
1316     fi
1317 else
1318     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1319         CFLAGS_TUNING="-mtune=pentium2"
1320     elif test "${target_cpu}" = "x86_64"; then
1321         CFLAGS_TUNING="-mtune=athlon64"
1322     elif test "${target_cpu}" = "powerpc"; then
1323         CFLAGS_TUNING="-mtune=750";
1324     fi
1325 fi
1326
1327 dnl NOTE: this can't be cached cleanly
1328 AS_IF([test "${CFLAGS_TUNING}"],
1329    [CFLAGS_save="${CFLAGS}"
1330     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1331
1332     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1333     AC_COMPILE_IFELSE([ ],
1334                       [tuning="yes"],
1335                       [CFLAGS_TUNING=""; tuning="no"
1336                        AS_IF([test "${with_tuning}"],
1337                              [AC_MSG_ERROR([requested tuning not supported])])])
1338
1339     AC_MSG_RESULT([$tuning])
1340     CFLAGS="${CFLAGS_save}"
1341 ])
1342
1343 dnl
1344 dnl  x86 accelerations
1345 dnl
1346 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1347 then
1348     ARCH="${ARCH} mmx"
1349     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1350 fi
1351
1352 dnl
1353 dnl  Memory usage
1354 dnl
1355 AC_ARG_ENABLE(optimize-memory,
1356 [  --enable-optimize-memory      optimize memory usage over performance])
1357 if test "${enable_optimize_memory}" = "yes"; then
1358   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1359 fi
1360
1361 dnl
1362 dnl  Enable/disable optimizations
1363 dnl
1364 AC_ARG_ENABLE(optimizations,
1365 [  --disable-optimizations disable compiler optimizations (default enabled)])
1366 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1367
1368 dnl
1369 dnl  AltiVec acceleration
1370 dnl
1371 AC_ARG_ENABLE(altivec,
1372 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1373 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1374     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1375 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1376     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1377
1378 dnl
1379 dnl  Debugging mode
1380 dnl
1381 AC_ARG_ENABLE(debug,
1382 [  --enable-debug          debug mode (default disabled)])
1383 test "${enable_debug}" != "yes" && enable_debug="no"
1384 AH_TEMPLATE(NDEBUG,
1385             [Define to 1 if debug code should NOT be compiled])
1386 AS_IF([test "x${enable_debug}" == "xno"], [AC_DEFINE(NDEBUG)])
1387
1388 dnl
1389 dnl  Enable release-specific flags
1390 dnl
1391 AC_ARG_ENABLE(release,
1392 [  --enable-release        activate extra optimizations (default disabled)])
1393 test "${enable_release}" != "yes" && enable_release="no"
1394
1395 dnl
1396 dnl  Is the shared libvlc forced ?
1397 dnl
1398 build_pic=no
1399 AC_ARG_ENABLE(shared-libvlc,
1400   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1401 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1402   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1403 ])
1404
1405 dnl
1406 dnl Stream output
1407 dnl
1408 AC_ARG_ENABLE(sout,
1409   [  --enable-sout           Stream output modules (default enabled)])
1410 if test "${enable_sout}" != "no"
1411 then
1412   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1413   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1414   VLC_ADD_PLUGINS([packetizer_copy])
1415
1416   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1417   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1418 #  VLC_ADD_PLUGINS([stream_out_transrate])
1419
1420   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1421 fi
1422
1423 dnl Check for libshout
1424 AC_ARG_ENABLE(shout,
1425   [  --enable-shout          libshout output plugin (default disabled)])
1426 if test "${enable_shout}" = "yes"; then
1427   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1428     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1429      VLC_ADD_PLUGINS([access_output_shout])
1430      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1431      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1432     [AC_MSG_WARN(libshout library not found)])
1433 fi
1434
1435 dnl
1436 dnl HTTP daemon
1437 dnl
1438 AC_ARG_ENABLE(httpd,
1439   [  --enable-httpd          HTTP daemon (default enabled)])
1440 if test "${enable_httpd}" != "no"
1441 then
1442   VLC_ADD_PLUGINS([http])
1443   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1444 fi
1445
1446 dnl
1447 dnl VideoLAN manager
1448 dnl
1449 AC_ARG_ENABLE(vlm,
1450   [  --enable-vlm            VideoLAN manager (default enabled)])
1451 if test "${enable_vlm}" != "no"
1452 then
1453   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1454 fi
1455
1456 dnl
1457 dnl Growl notification plugin
1458 dnl
1459 AC_ARG_ENABLE(growl,
1460   [  --enable-growl         growl notification plugin (default enabled)])
1461 AS_IF([test "${enable_growl}" != "no"], [
1462     VLC_ADD_PLUGINS([growl])
1463   ]
1464 )
1465
1466
1467 dnl
1468 dnl  Input plugins
1469 dnl
1470
1471 AC_ARG_WITH(,[Input plugins:])
1472
1473 dnl  live.com input
1474 dnl
1475 AC_ARG_ENABLE(livedotcom,
1476 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1477 if test "${enable_livedotcom}" = "yes"; then
1478   AC_ARG_WITH(livedotcom-tree,
1479     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1480
1481   dnl
1482   dnl test for --with-livedotcom-tree
1483   dnl
1484   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1485     AC_LANG_PUSH(C++)
1486     CPPFLAGS_save="${CPPFLAGS}"
1487     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1488     if test "${SYS}" = "solaris"; then
1489       CPPFLAGS_livedotcom="${CPPFLAGS_livedotcom} -DSOLARIS"
1490     fi
1491     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1492     AC_CHECK_HEADERS(liveMedia.hh, [
1493       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1494       AC_CHECK_LIB(liveMedia_pic, main, [
1495         # We have -lliveMedia_pic, build plugins
1496         VLC_ADD_PLUGINS([livedotcom])
1497         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1498       ], [
1499         AC_CHECK_LIB(liveMedia, main, [
1500           # We only have -lliveMedia, do builtins
1501           VLC_ADD_BUILTINS([livedotcom])
1502           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1503         ])
1504       ])
1505       if test "${SYS}" = "mingw32"; then
1506         # add ws2_32 for closesocket, select, recv
1507         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1508       fi
1509     ])
1510     CPPFLAGS="${CPPFLAGS_save}"
1511     AC_LANG_POP(C++)
1512   else
1513     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1514     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1515     if test -z "${real_livedotcom_tree}"; then
1516       dnl  The given directory can't be found
1517       AC_MSG_RESULT(no)
1518       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1519     fi
1520     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1521       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1522
1523       VLC_ADD_BUILTINS([livedotcom])
1524
1525       if test "${SYS}" = "mingw32"; then
1526         # add ws2_32 for closesocket, select, recv
1527         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1528       fi
1529
1530       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1531       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1532       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1533       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1534
1535       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1536       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1537       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1538       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1539       if test "${SYS}" = "solaris"; then
1540         VLC_ADD_CXXFLAGS([livedotcom],[-DSOLARIS])
1541       fi
1542     else
1543       dnl  The given live.com wasn't built
1544       AC_MSG_RESULT(no)
1545       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1546     fi
1547   fi
1548 fi
1549
1550 dnl
1551 dnl dv module: digital video module check for libraw1394
1552 dnl
1553 AC_ARG_ENABLE(dv,
1554 [  --enable-dv             dv input module (default disabled)])
1555 if test "${enable_dv}" = "yes"
1556 then
1557   AC_ARG_WITH(dv-raw1394,
1558   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1559   AC_ARG_WITH(dv-raw1394-tree,
1560   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1561
1562   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1563   then
1564     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1565     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1566     then
1567       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1568       AC_MSG_RESULT(yes)
1569       VLC_ADD_PLUGINS([access_dv])
1570       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1571       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1572     else
1573       dnl  No libraw1394 could be found, sorry
1574       AC_MSG_RESULT(no)
1575       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1576     fi
1577   else
1578     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1579     [ VLC_ADD_PLUGINS([access_dv])
1580         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1581     ],[
1582         if test -n "${enable_dv}"
1583         then
1584           AC_MSG_ERROR([cannot find libraw1394 headers])
1585         fi
1586     ])
1587   fi
1588
1589   dnl Check for static linking of libraw1394
1590   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1591   then
1592     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1593     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1594     if test -z "${real_dv_raw1394_tree}"
1595     then
1596       dnl  The given directory can't be found
1597       AC_MSG_RESULT(no)
1598       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1599     fi
1600     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1601     then
1602       dnl  Use a custom libraw1394
1603       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1604       VLC_ADD_BUILTINS([access_dv])
1605       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1606       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1607     else
1608       dnl  The given libraw1394 wasn't built
1609       AC_MSG_RESULT(no)
1610       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1611     fi
1612   fi
1613
1614   dnl
1615   dnl Check for libavc1394
1616   dnl
1617
1618   AC_ARG_WITH(dv-avc1394,
1619   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1620   AC_ARG_WITH(dv-avc1394-tree,
1621   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1622
1623   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1624   then
1625     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1626     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1627     then
1628       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1629       AC_MSG_RESULT(yes)
1630       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1631       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1632     else
1633       dnl  No libavc1394 could be found, sorry
1634       AC_MSG_RESULT(no)
1635       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1636     fi
1637   else
1638     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1639     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1640     ],[
1641         if test -n "${enable_dv}"
1642         then
1643           AC_MSG_ERROR([cannot find libavc1394 headers])
1644         fi
1645     ])
1646   fi
1647
1648   dnl Check for static linking of libavc1394
1649   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1650   then
1651     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1652     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1653     if test -z "${real_dv_avc1394_tree}"
1654     then
1655       dnl  The given directory can't be found
1656       AC_MSG_RESULT(no)
1657       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1658     fi
1659     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1660     then
1661       dnl  Use a custom libavc1394
1662       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1663       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1664       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1665     else
1666       dnl  The given libavc1394 wasn't built
1667       AC_MSG_RESULT(no)
1668       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1669     fi
1670   fi
1671 fi
1672
1673 dnl
1674 dnl dvdread module: check for libdvdread
1675 dnl
1676 AC_ARG_ENABLE(dvdread,
1677 [  --enable-dvdread        dvdread input module (default disabled)])
1678 if test "${enable_dvdread}" != "no"
1679 then
1680   AC_ARG_WITH(dvdread,
1681   [    --with-dvdread=PATH   libdvdread headers and libraries])
1682   AC_ARG_WITH(dvdread-tree,
1683   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1684
1685   dnl Temporary hack (yeah, sure ;)
1686   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1687       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1688   fi
1689
1690   if test -z "${with_dvdread}"
1691   then
1692     if test -z "${with_dvdread_tree}"
1693     then
1694       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1695         [ VLC_ADD_PLUGINS([dvdread])
1696           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1697         ],[
1698           if test -n "${enable_dvdread}"
1699           then
1700             AC_MSG_ERROR([cannot find libdvdread headers])
1701           fi
1702         ])
1703     else
1704       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1705       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1706       if test -z "${real_dvdread_tree}"
1707       then
1708         dnl  The given directory can't be found
1709         AC_MSG_RESULT(no)
1710         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1711       fi
1712       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1713       then
1714         dnl  Use a custom libdvdread
1715         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1716         VLC_ADD_BUILTINS([dvdread])
1717         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1718         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1719       else
1720         dnl  The given libdvdread wasn't built
1721         AC_MSG_RESULT(no)
1722         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1723       fi
1724     fi
1725   else
1726     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1727     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1728     then
1729       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1730       AC_MSG_RESULT(yes)
1731       VLC_ADD_PLUGINS([dvdread])
1732       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1733       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1734     else
1735       dnl  No libdvdread could be found, sorry
1736       AC_MSG_RESULT(no)
1737       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1738     fi
1739   fi
1740 fi
1741
1742 dnl
1743 dnl  libdvdnav plugin
1744 dnl
1745 AC_ARG_ENABLE(dvdnav,
1746   [  --enable-dvdnav         dvdnav input module (default enabled)])
1747 if test "${enable_dvdnav}" != "no"
1748 then
1749   dnl Same hack than dvdread
1750   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1751       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1752   fi
1753
1754   DVDNAV_PATH="${PATH}"
1755   AC_ARG_WITH(dvdnav-config-path,
1756     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1757     [ if test "${with_dvdnav_config_path}" != "no"
1758       then
1759         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1760       fi ])
1761   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1762   if test "${DVDNAV_CONFIG}" != "no"
1763   then
1764     VLC_ADD_PLUGINS([dvdnav])
1765     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1766     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1767   fi
1768 fi
1769
1770 dnl
1771 dnl  Windows DirectShow access module
1772 dnl
1773 AC_ARG_ENABLE(dshow,
1774   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1775 if test "${enable_dshow}" != "no"
1776 then
1777   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1778   then
1779     AC_LANG_PUSH(C++)
1780       AC_CHECK_HEADERS(dshow.h,
1781       [ VLC_ADD_PLUGINS([dshow])
1782         VLC_ADD_CXXFLAGS([dshow],[])
1783         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1784     AC_LANG_POP(C++)
1785   fi
1786 fi
1787
1788 dnl
1789 dnl  libsmbclient plugin
1790 dnl
1791 AC_ARG_ENABLE(smb,
1792   [  --enable-smb            smb input module (default enabled)])
1793 if test "${enable_smb}" != "no"; then
1794   AC_CHECK_HEADERS(libsmbclient.h,
1795     [ VLC_ADD_PLUGINS([access_smb])
1796       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1797     [ if test -n "${enable_smb}"; then
1798         AC_MSG_ERROR([cannot find libsmbclient headers])
1799      fi ])
1800   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1801     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1802     [#include <libsmbclient.h>])
1803 fi
1804
1805 dnl
1806 dnl  libdvbpsi ts demux/mux
1807 dnl
1808 AC_ARG_ENABLE(dvbpsi,
1809   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1810 if test "${enable_dvbpsi}" != "no"
1811 then
1812   AC_ARG_WITH(dvbpsi,
1813   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1814   AC_ARG_WITH(dvbpsi,
1815   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1816   case "${with_dvbpsi}" in
1817   ""|yes)
1818     if test -z "${with_dvbpsi_tree}"
1819     then
1820       AC_CHECK_HEADERS(dvbpsi/dr.h,
1821         [ VLC_ADD_PLUGINS([ts])
1822           if test "${enable_sout}" != "no"; then
1823             VLC_ADD_BUILTINS([mux_ts])
1824           fi
1825           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1826         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1827         [#if defined( HAVE_STDINT_H )
1828 #   include <stdint.h>
1829 #elif defined( HAVE_INTTYPES_H )
1830 #   include <inttypes.h>
1831 #endif
1832 #include <dvbpsi/dvbpsi.h>
1833 #include <dvbpsi/descriptor.h>
1834 #include <dvbpsi/pat.h>
1835 #include <dvbpsi/pmt.h>])
1836     else
1837       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1838       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1839       if test -z "${real_dvbpsi_tree}"
1840       then
1841         dnl  The given directory can't be found
1842         AC_MSG_RESULT(no)
1843         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1844       fi
1845       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1846       then
1847         dnl  Use a custom libdvbpsi
1848         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1849         VLC_ADD_BUILTINS([ts])
1850         if test "${enable_sout}" != "no"; then
1851           VLC_ADD_BUILTINS([mux_ts])
1852         fi
1853         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1854         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1855       else
1856         dnl  The given libdvbpsi wasn't built
1857         AC_MSG_RESULT(no)
1858         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1859       fi
1860     fi
1861   ;;
1862   no)
1863     dnl  Compile without dvbpsi
1864   ;;
1865   *)
1866     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1867     if test -z "${with_dvbpsi}"
1868     then
1869       LDFLAGS_test=""
1870       CPPFLAGS_test=""
1871     else
1872       LDFLAGS_test="-L${with_dvbpsi}/lib"
1873       CPPFLAGS_test="-I${with_dvbpsi}/include"
1874     fi
1875     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1876     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1877       VLC_ADD_PLUGINS([ts])
1878       if test "${enable_sout}" != "no"; then
1879         VLC_ADD_PLUGINS([mux_ts])
1880       fi
1881       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1882       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1883
1884     ],[
1885       if test -n "${enable_dvbpsi}"
1886       then
1887         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])
1888       fi
1889     ])
1890     CPPFLAGS="${CPPFLAGS_save}"
1891   ;;
1892   esac
1893   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1894     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1895   ], [], [${LDFLAGS_ts}])
1896
1897 fi
1898
1899 dnl
1900 dnl  Video4Linux plugin
1901 dnl
1902 AC_ARG_ENABLE(v4l,
1903   [  --enable-v4l            Video4Linux input support (default disabled)])
1904 if test "${enable_v4l}" = "yes"
1905 then
1906   AC_ARG_WITH(v4l,
1907     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1908   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1909   then
1910     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1911   fi
1912
1913   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1914   AC_CHECK_HEADERS(linux/videodev.h, [
1915     VLC_ADD_PLUGINS([v4l])
1916   ],[])
1917   CPPFLAGS="${CPPFLAGS_save}"
1918 fi
1919
1920 dnl
1921 dnl  special access module for Hauppauge PVR cards
1922 dnl
1923 AC_ARG_ENABLE(pvr,
1924   [  --enable-pvr            PVR cards access module (default disabled)])
1925 if test "${enable_pvr}" = "yes"
1926 then
1927   VLC_ADD_PLUGINS([pvr])
1928 fi
1929
1930 dnl
1931 dnl  gnomeVFS access module
1932 dnl
1933 AC_ARG_ENABLE(gnomevfs,
1934   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1935 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1936 then
1937   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1938     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1939     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1940     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1941     VLC_ADD_PLUGINS([access_gnomevfs]),
1942     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1943 fi
1944
1945 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1946 AC_ARG_ENABLE(libcdio,
1947   [  --enable-libcdio        CD input and control library support (default enabled)])
1948
1949
1950 have_libcdio=no
1951 have_libvcdinfo=no
1952 if test "${enable_libcdio}" != "no"
1953 then
1954   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1955      have_libcdio=yes
1956      AC_DEFINE(HAVE_LIBCDIO, [], 
1957      [Define if you have libcdio 0.72 or greater installed]),
1958      [AC_MSG_WARN(CD Reading and information library not found)])
1959
1960   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1961      [have_libvcdinfo=yes
1962      AC_DEFINE(HAVE_VCDINFO, [], 
1963      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1964      [AC_MSG_WARN(VCD information library not found)])
1965 fi
1966
1967 dnl
1968 dnl  VCDX and CDDAX modules
1969 dnl
1970 AC_ARG_ENABLE(cddax,
1971   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1972  
1973 AC_ARG_ENABLE(libcddb,
1974   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1975  
1976 if test "${enable_cddax}" = "yes"
1977 then
1978   if test "$have_libcdio" = "yes"
1979   then
1980     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1981     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1982     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1983     VLC_ADD_PLUGINS([cddax])
1984     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1985     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1986     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1987   else 
1988     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1989     HAVE_CDDAX=no
1990   fi
1991
1992   if test "$enable_libcddb" != "no"; then
1993     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1994       HAVE_LIBCDDB=yes 
1995       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1996       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1997       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1998       ],
1999       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2000       HAVE_LIBCDDB=no])
2001   fi
2002  
2003 fi
2004
2005 AC_ARG_ENABLE(vcdx,
2006   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2007  
2008 if test "${enable_vcdx}" = "yes"
2009 then
2010   if test "${have_libvcdinfo}" = "yes"
2011   then
2012     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2013     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2014   else 
2015     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2016     HAVE_VCDX=no
2017   fi
2018
2019   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2020    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2021     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2022     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2023     HAVE_VCDX=no])
2024
2025   if test "$have_libvcdinfo" = "yes"
2026   then
2027     AC_DEFINE(HAVE_VCDX, [], 
2028     [Define for the VCD plugin using libcdio/libvcdinfo])
2029     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2030     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2031     VLC_ADD_PLUGINS([vcdx])
2032   else 
2033     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2034     HAVE_VCDX=no
2035   fi
2036 fi
2037
2038 dnl
2039 dnl  Built-in CD-DA and VCD module
2040 dnl
2041 AC_ARG_ENABLE(cdda,           
2042   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2043  
2044 AC_ARG_ENABLE(vcd,
2045   [  --enable-vcd            built-in VCD (default enabled)])
2046
2047 if test "${enable_vcd}" != "no"
2048 then
2049   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2050   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2051     AC_MSG_RESULT(yes)
2052     VLC_ADD_PLUGINS([vcd cdda])
2053   ],[
2054     AC_MSG_RESULT(no)
2055   ])
2056
2057   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2058   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2059     AC_MSG_RESULT(yes)
2060     VLC_ADD_PLUGINS([vcd cdda])
2061     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2062   ],[
2063     AC_MSG_RESULT(no)
2064   ])
2065
2066   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2067   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2068     AC_MSG_RESULT(yes)
2069     VLC_ADD_PLUGINS([vcd cdda])
2070     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2071   ],[
2072     AC_MSG_RESULT(no)
2073   ])
2074
2075   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2076   then
2077     VLC_ADD_PLUGINS([vcd cdda])
2078   fi
2079
2080   if test "${SYS}" = "darwin"
2081   then
2082     VLC_ADD_PLUGINS([vcd cdda])
2083     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2084     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2085   fi
2086
2087   if test "$enable_libcddb" != "no"; then
2088     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2089       HAVE_LIBCDDB=yes 
2090       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2091       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2092       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2093       ],:
2094       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2095       HAVE_LIBCDDB=no])
2096   fi
2097 fi
2098
2099 dnl
2100 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2101 dnl
2102 AC_ARG_ENABLE(dvb,
2103   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2104
2105 if test "${enable_dvb}" = "yes"
2106 then
2107   AC_ARG_WITH(dvb,
2108   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2109   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2110   then
2111     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2112   fi
2113   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2114   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2115     if test -z "${with_dvbpsi_tree}"
2116     then
2117       VLC_ADD_PLUGINS([dvb])
2118     else
2119       VLC_ADD_BUILTINS([dvb])
2120     fi
2121   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2122   CPPFLAGS="${CPPFLAGS_save}"
2123 fi
2124
2125 dnl
2126 dnl  Screen capture module
2127 dnl
2128 AC_ARG_ENABLE(screen,
2129   [  --enable-screen         Screen capture support (default enabled)])
2130 if test "${enable_screen}" != "no"; then
2131   if test "${SYS}" = "darwin"; then
2132     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2133       VLC_ADD_PLUGINS([screen])
2134       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2135     ])
2136   elif test "${SYS}" = "mingw32"; then
2137     VLC_ADD_PLUGINS([screen])
2138     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2139   elif test "${SYS}" = "mingwce"; then
2140     CPPFLAGS="${CPPFLAGS_save}"
2141   elif test "${SYS}" = "beos"; then
2142     VLC_ADD_PLUGINS([screen])
2143     VLC_ADD_CXXFLAGS([screen],[])
2144     VLC_ADD_LDFLAGS([screen],[-lbe])
2145   else
2146     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2147     AC_CHECK_HEADERS(X11/Xlib.h, [
2148       VLC_ADD_PLUGINS([screen])
2149       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2150       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2151     ])
2152     CPPFLAGS="${CPPFLAGS_save}"
2153   fi
2154 fi
2155
2156 dnl
2157 dnl  ipv6 plugin - not for QNX yet
2158 dnl
2159 have_ipv6=no
2160 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2161   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2162 ])
2163
2164 AS_IF([test "${have_ipv6}" = "yes"], [
2165   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2166
2167 if test "${SYS}" != "nto" &&
2168    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2169 then
2170   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2171   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2172     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2173   AS_IF([test "${have_ipv6}" != "no"], [
2174     VLC_ADD_PLUGINS([ipv6])])
2175 fi
2176 if test "${SYS}" = "mingw32"
2177 then
2178   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2179   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2180     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2181 fi
2182
2183 dnl
2184 dnl  ogg demux plugin
2185 dnl
2186 AC_ARG_ENABLE(ogg,
2187   [  --enable-ogg            Ogg demux support (default enabled)])
2188 if test "${enable_ogg}" != "no"
2189 then
2190   AC_ARG_WITH(ogg-tree,
2191   [    --with-ogg-tree=PATH  ogg tree for static linking])
2192   if test -n "${with_ogg_tree}"
2193   then
2194     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2195     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2196     if test -z "${real_ogg_tree}"
2197     then
2198       dnl  The given directory can't be found
2199       AC_MSG_RESULT(no)
2200       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2201     fi
2202     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2203     then
2204       dnl  Use a custom ogg
2205       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2206       VLC_ADD_PLUGINS([ogg])
2207       if test "${enable_sout}" != "no"; then
2208         VLC_ADD_PLUGINS([mux_ogg])
2209       fi
2210       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2211       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2212     else
2213       dnl  The given ogg wasn't built
2214       AC_MSG_RESULT(no)
2215       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2216     fi
2217   else
2218     AC_CHECK_HEADERS(ogg/ogg.h, [
2219       AC_CHECK_LIB( ogg, oggpack_read, [
2220         VLC_ADD_PLUGINS([ogg])
2221         if test "${enable_sout}" != "no"; then
2222           VLC_ADD_PLUGINS([mux_ogg])
2223         fi
2224         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2225      ],[])
2226   fi
2227 fi
2228
2229 dnl
2230 dnl  matroska demux plugin
2231 dnl
2232 AC_ARG_ENABLE(mkv,
2233   [  --enable-mkv            Matroska demux support (default enabled)])
2234 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2235   AC_LANG_PUSH(C++)
2236   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2237     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2238     AC_EGREP_CPP(yes,
2239       [#include <ebml/EbmlVersion.h>
2240        #ifdef LIBEBML_VERSION
2241        #if LIBEBML_VERSION >= 0x000706
2242        yes
2243        #endif
2244        #endif],
2245       [AC_MSG_RESULT([yes])
2246         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2247           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2248           AC_EGREP_CPP(yes,
2249             [#include <matroska/KaxVersion.h>
2250              #ifdef LIBMATROSKA_VERSION
2251              #if LIBMATROSKA_VERSION >= 0x000705
2252              yes
2253              #endif
2254              #endif],
2255             [AC_MSG_RESULT([yes])
2256               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2257               VLC_ADD_CXXFLAGS([mkv],[])
2258               if test "${SYS}" = "darwin"; then
2259                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2260               fi
2261               AC_CHECK_LIB(ebml_pic, main, [
2262                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2263                 VLC_ADD_PLUGINS([mkv])
2264                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2265               ], [
2266                 AC_CHECK_LIB(ebml, main, [
2267                   # We only have libebml, make mkv.a a builtin
2268                   VLC_ADD_BUILTINS([mkv])
2269                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2270                 ])
2271               ])
2272             ],
2273             [AC_MSG_RESULT([no])
2274               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.])
2275           ])
2276         ])
2277       ],
2278       [AC_MSG_RESULT([no])
2279         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.])
2280     ])
2281   ])
2282   AC_LANG_POP(C++)
2283 fi
2284
2285 dnl
2286 dnl  modplug demux plugin
2287 dnl
2288 AC_ARG_ENABLE(mod,
2289   [  --enable-mod            Mod demux support (default enabled)])
2290 if test "${enable_mod}" != "no"
2291 then
2292   AC_ARG_WITH(mod-tree,
2293   [    --with-mod-tree=PATH mod tree for static linking])
2294   if test -n "${with_mod_tree}"
2295   then
2296     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2297     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2298     if test -z "${real_mod_tree}"
2299     then
2300       dnl  The given directory can't be found
2301       AC_MSG_RESULT(no)
2302       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2303     fi
2304     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2305     then
2306       dnl  Use a custom mod
2307       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2308       VLC_ADD_PLUGINS([mod])
2309       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2310       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2311     else
2312       dnl  The given mod wasn't built
2313       AC_MSG_RESULT(no)
2314       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2315     fi
2316   else
2317     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2318       VLC_ADD_PLUGINS([mod])
2319       VLC_ADD_CXXFLAGS([mod],[])
2320       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2321   fi
2322 fi
2323
2324 dnl
2325 dnl  mpc demux plugin
2326 dnl
2327 AC_ARG_ENABLE(mpc,
2328   [  --enable-mpc            Mpc demux support (default enabled)])
2329 if test "${enable_mpc}" != "no"
2330 then
2331   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2332     VLC_ADD_PLUGINS([mpc])
2333     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2334 fi
2335
2336
2337 dnl
2338 dnl  Codec plugins
2339 dnl
2340
2341 AC_ARG_WITH(,[Codec plugins:])
2342
2343 dnl
2344 dnl  mad plugin
2345 dnl
2346 AC_ARG_ENABLE(mad,
2347   [  --enable-mad            libmad module (default enabled)])
2348 if test "${enable_mad}" != "no"
2349 then
2350   AC_ARG_WITH(mad,
2351     [    --with-mad=PATH       path to libmad],[],[])
2352   if test "${with_mad}" != "no" -a -n "${with_mad}"
2353   then
2354     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2355     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2356   fi
2357
2358   AC_ARG_WITH(mad-tree,
2359     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2360   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2361   then
2362     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2363     if test -z "${real_mad_tree}"
2364     then
2365       dnl  The given directory can't be found
2366       AC_MSG_RESULT(no)
2367       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2368     fi
2369     dnl  Use a custom libmad
2370     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2371     if test -f ${real_mad_tree}/mad.h
2372     then
2373       AC_MSG_RESULT(yes)
2374       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2375       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2376       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2377       AC_CHECK_LIB(mad, mad_bit_init, [
2378         VLC_ADD_BUILTINS([mpgatofixed32])
2379         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2380         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2381       ],[])
2382       LDFLAGS="${LDFLAGS_save}"
2383     else
2384       AC_MSG_RESULT(no)
2385       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2386     fi
2387   else
2388     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2389     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2390     AC_CHECK_HEADERS(mad.h, ,
2391       [ 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.]) ])
2392     AC_CHECK_LIB(mad, mad_bit_init, [
2393       VLC_ADD_PLUGINS([mpgatofixed32])
2394       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2395       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2396     CPPFLAGS="${CPPFLAGS_save}"
2397     LDFLAGS="${LDFLAGS_save}"
2398   fi
2399 fi
2400
2401 dnl
2402 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2403 dnl
2404 AC_CHECK_HEADERS(id3tag.h, [
2405   AC_CHECK_HEADERS(zlib.h, [
2406     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2407     VLC_ADD_PLUGINS([id3tag])]) ])
2408
2409 dnl
2410 dnl  ffmpeg decoder/demuxer plugin
2411 dnl
2412 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2413 dnl                             4- default place, 
2414
2415 AC_ARG_ENABLE(ffmpeg,
2416 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2417 if test "${enable_ffmpeg}" != "no"
2418 then
2419
2420 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2421
2422  AC_ARG_WITH(ffmpeg-mp3lame,
2423    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2424    [
2425      if test "$with_ffmpeg_mp3lame" = "yes";    then
2426         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2427      fi])
2428
2429  AC_ARG_WITH(ffmpeg-faac,
2430    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2431    [
2432      if test "$with_ffmpeg_faac" = "yes"; then
2433         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2434      fi])
2435
2436  AC_ARG_WITH(ffmpeg-dts,
2437    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2438    [
2439      if test "$with_ffmpeg_dts" = "yes"; then
2440              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2441              AC_CHECK_LIB(dts_pic, dts_free, 
2442                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2443                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2444              LDFLAGS="${LDFLAGS_save}"
2445      fi])
2446
2447  AC_ARG_WITH(ffmpeg-vorbis,
2448    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2449    [
2450      if test "$with_ffmpeg_vorbis" = "yes"; then
2451         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2452      fi])
2453
2454  AC_ARG_WITH(ffmpeg-theora,
2455    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2456    [
2457      if test "$with_ffmpeg_theora" = "yes"; then
2458         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2459      fi])
2460
2461  AC_ARG_WITH(ffmpeg-ogg,
2462    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2463    [
2464      if test "$with_ffmpeg_ogg" = "yes"; then
2465         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2466      fi])
2467
2468  AC_ARG_WITH(ffmpeg-zlib,
2469    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2470    [
2471      if test "$with_ffmpeg_zlib" = "yes"; then
2472                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2473      fi])
2474
2475  dnl
2476  dnl test for --with-ffmpeg-tree
2477  dnl
2478  AC_ARG_WITH(ffmpeg-tree,
2479    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2480
2481  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2482    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2483    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2484    if test -z "${real_ffmpeg_tree}"; then
2485      dnl  The given directory can't be found
2486      AC_MSG_RESULT(no)
2487      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2488    fi
2489    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2490      dnl  The given libavcodec wasn't built
2491      AC_MSG_RESULT(no)
2492      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2493    fi
2494    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2495      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2496        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2497      else
2498        dnl  The given libavcodec wasn't built with --enable-pp
2499        AC_MSG_RESULT(no)
2500        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2501      fi
2502    fi
2503    dnl  Use a custom libffmpeg
2504    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2505
2506    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2507      if test "${with_ffmpeg_zlib}" != "yes"; then
2508        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2509      fi
2510    fi
2511    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2512      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2513        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2514      fi
2515    fi
2516    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2517      if test "${with_ffmpeg_faac}" != "yes"; then
2518        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2519      fi
2520    fi
2521    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2522      if test "${with_ffmpeg_dts}" != "yes"; then
2523        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2524        AC_CHECK_LIB(dts_pic, dts_free, 
2525          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2526          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2527        LDFLAGS="${LDFLAGS_save}"
2528      fi
2529    fi
2530    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2531      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2532    fi
2533    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2534      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2535    fi
2536    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2537      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2538    fi
2539
2540    VLC_ADD_BUILTINS([ffmpeg])
2541    if test "${enable_sout}" != "no"; then
2542      VLC_ADD_BUILTINS([stream_out_switcher])
2543    fi
2544
2545    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2546      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2547      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2548    fi
2549
2550    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2551    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2552
2553    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2554      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2555      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2556      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2557    fi
2558 else    
2559     
2560 dnl Look for a ffmpeg-config (we are on debian )
2561  
2562   FFMPEG_PATH="${PATH}"
2563   AC_ARG_WITH(ffmpeg-config-path,
2564     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2565     [ if test "${with_ffmpeg_config_path}" != "no"
2566       then
2567         FFMPEG_PATH="${with_ffmpeg_config_path}"
2568       fi ])
2569   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2570   if test "${FFMPEG_CONFIG}" != "no"
2571   then
2572     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2573     AC_CHECK_HEADERS(postproc/postprocess.h)
2574     VLC_ADD_PLUGINS([ffmpeg])
2575     if test "${enable_sout}" != "no"; then
2576         VLC_ADD_PLUGINS([stream_out_switcher])
2577     fi
2578     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2579     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2580  
2581  else
2582
2583 dnl Trying with pkg-config
2584    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2585     [
2586      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2587      AC_CHECK_HEADERS(postproc/postprocess.h)
2588      VLC_ADD_BUILTINS([ffmpeg])
2589      if test "${enable_sout}" != "no"; then
2590          VLC_ADD_BUILTINS([stream_out_switcher])
2591      fi
2592      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2593      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2594      dnl newer ffmpeg have a separate libpostproc
2595      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2596        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2597        ],[ true ])
2598     ],[
2599      
2600     dnl
2601     dnl last chance: at the default place
2602     dnl
2603       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2604       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2605       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2606       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2607
2608       AC_CHECK_LIB(avutil, av_add_i, [
2609         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2610         LDAVUTIL="-lavutil"])
2611
2612       AC_CHECK_LIB(postproc, pp_postprocess, [
2613         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2614
2615       AC_CHECK_LIB(avcodec, avcodec_init, [
2616         VLC_ADD_BUILTINS([ffmpeg])
2617         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2618         if test "${enable_sout}" != "no"; then
2619             VLC_ADD_BUILTINS([stream_out_switcher])
2620         fi],
2621          [ 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])
2622       AC_CHECK_LIB(avformat, av_open_input_stream, [
2623         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2624         [Define if you have ffmpeg's libavformat.])
2625         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2626       LDFLAGS="${LDFLAGS_save}"
2627       CPPFLAGS="${CPPFLAGS_save}"
2628     ])
2629   fi
2630  fi 
2631 fi
2632
2633 dnl
2634 dnl  ffmpegaltivec plugin
2635 dnl
2636 AC_ARG_ENABLE(ffmpegaltivec,
2637 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2638 if test "${enable_ffmpegaltivec}" = "yes"
2639 then
2640   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2641     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2642     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2643     if test -z "${real_ffmpeg_tree}"; then
2644       dnl  The given directory can't be found
2645       AC_MSG_RESULT(no)
2646       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2647     fi
2648     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2649       dnl  The given libavcodecaltivec wasn't built
2650       AC_MSG_RESULT(no)
2651       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2652     fi
2653     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2654       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2655       AC_MSG_RESULT(no)
2656       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2657     fi
2658     dnl  Use a custom libffmpeg
2659     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2660     VLC_ADD_BUILTINS([ffmpegaltivec])
2661     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2662     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2663     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2664
2665     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2666       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2667       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2668       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2669     fi
2670     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2671     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2672   fi
2673 fi
2674
2675 dnl
2676 dnl  faad decoder plugin
2677 dnl
2678 AC_ARG_ENABLE(faad,
2679 [  --enable-faad           faad codec (default disabled)])
2680 if test "${enable_faad}" = "yes"
2681 then
2682   AC_ARG_WITH(faad-tree,
2683   [    --with-faad-tree=PATH faad tree for static linking])
2684   if test -n "${with_faad_tree}"
2685   then
2686     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2687     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2688     if test -z "${real_faad_tree}"
2689     then
2690       dnl  The given directory can't be found
2691       AC_MSG_RESULT(no)
2692       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2693     fi
2694     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2695     then
2696       dnl  Use a custom faad
2697       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2698       VLC_ADD_BUILTINS([faad])
2699       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2700       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2701     else
2702       dnl  The given libfaad wasn't built
2703       AC_MSG_RESULT(no)
2704       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2705     fi
2706   else
2707     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2708     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2709     AC_CHECK_HEADERS(faad.h, ,
2710       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2711     AC_CHECK_LIB(faad, faacDecOpen, [
2712       VLC_ADD_PLUGINS([faad])
2713       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2714       AC_CHECK_LIB(faad, NeAACDecOpen, [
2715         VLC_ADD_PLUGINS([faad])
2716         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2717         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2718     LDFLAGS="${LDFLAGS_save}"
2719     CPPFLAGS="${CPPFLAGS_save}"
2720   fi
2721 fi
2722
2723 dnl
2724 dnl twolame encoder plugin
2725 dnl
2726 AC_ARG_ENABLE(twolame,
2727 [  --enable-twolame        twolame codec (default disabled)])
2728 if test "${enable_twolame}" = "yes"
2729 then
2730   AC_ARG_WITH(twolame-tree,
2731   [    --with-twolame-tree=PATH twolame tree for static linking])
2732   if test -n "${with_twolame_tree}"
2733   then
2734     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2735     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2736     if test -z "${real_twolame_tree}"
2737     then
2738       dnl  The given directory can't be found
2739       AC_MSG_RESULT(no)
2740       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2741     fi
2742     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2743     then
2744       dnl  Use a custom twolame
2745       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2746       VLC_ADD_BUILTINS([twolame])
2747       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2748       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2749     else
2750       dnl  The given libtwolame wasn't built
2751       AC_MSG_RESULT(no)
2752       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2753     fi
2754   else
2755     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2756     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2757     AC_CHECK_HEADERS(twolame.h, ,
2758       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2759     AC_CHECK_LIB(twolame, twolame_init, [
2760       VLC_ADD_PLUGINS([twolame])
2761       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2762         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2763     LDFLAGS="${LDFLAGS_save}"  
2764     CPPFLAGS="${CPPFLAGS_save}"
2765   fi
2766 fi
2767
2768 dnl
2769 dnl  QuickTime plugin
2770 dnl
2771 AC_ARG_ENABLE(quicktime,
2772   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2773 if test "${enable_quicktime}" != "no" &&
2774   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2775 then
2776   if test "${SYS}" = "mingw32"; then
2777     VLC_ADD_BUILTINS([quicktime])
2778   else
2779   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2780     [ VLC_ADD_BUILTINS([quicktime])
2781       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2782     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2783   fi
2784 fi
2785
2786 dnl
2787 dnl  Real plugin
2788 dnl
2789 AC_ARG_ENABLE(real,
2790   [  --enable-real           Real audio module (default disabled)])
2791 if test "${enable_real}" = "yes"; then
2792   VLC_ADD_PLUGINS([realaudio])
2793 fi
2794
2795 dnl
2796 dnl  Real RTSP plugin
2797 dnl
2798 AC_ARG_ENABLE(realrtsp,
2799   [  --enable-realrtsp       Real RTSP module (default disabled)])
2800 if test "${enable_realrtsp}" = "yes"; then
2801   VLC_ADD_PLUGINS([access_realrtsp])
2802 fi
2803
2804 dnl
2805 dnl MP4 module
2806 dnl
2807 AC_CHECK_HEADERS(zlib.h, [
2808   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2809 ] )
2810
2811 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2812   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2813 ] )
2814
2815 dnl
2816 dnl skins2 module
2817 dnl
2818 AC_CHECK_HEADERS(libtar.h, [
2819   VLC_ADD_LDFLAGS([skins2],[-ltar])
2820 ] )
2821
2822
2823
2824 dnl
2825 dnl A52/AC3 decoder plugin
2826 dnl
2827 AC_ARG_ENABLE(a52,
2828   [  --enable-a52            A/52 support with liba52 (default enabled)])
2829 if test "${enable_a52}" != "no"
2830 then
2831   AC_ARG_WITH(a52,
2832     [    --with-a52=PATH       a52 headers and libraries])
2833   AC_ARG_WITH(a52-tree,
2834     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2835   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2836   then
2837     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2838     if test -z "${real_a52_tree}"
2839     then
2840       dnl  The given directory can't be found
2841       AC_MSG_RESULT(no)
2842       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2843     fi
2844     dnl  Use a custom a52dec
2845     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2846     if test -f ${real_a52_tree}/include/a52.h
2847     then
2848       AC_MSG_RESULT(yes)
2849       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2850       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2851       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2852       AC_CHECK_LIB(a52, a52_free, [
2853         VLC_ADD_BUILTINS([a52tofloat32])
2854         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2855         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2856         ],[
2857         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2858         then
2859           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2860         else
2861           AC_MSG_ERROR([the specified tree hasn't been compiled])
2862         fi
2863       ])
2864       LDFLAGS="${LDFLAGS_save}"
2865     else
2866       AC_MSG_RESULT(no)
2867       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2868     fi
2869   else
2870     if test -z "${with_a52}"
2871     then
2872       LDFLAGS_test=""
2873       CPPFLAGS_test=""
2874     else
2875       LDFLAGS_test="-L${with_a52}/lib"
2876       CPPFLAGS_test="-I${with_a52}/include"
2877     fi
2878     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2879     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2880     AC_CHECK_HEADERS(a52dec/a52.h, [
2881       AC_CHECK_LIB(a52, a52_free, [
2882         VLC_ADD_PLUGINS([a52tofloat32])
2883         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2884         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2885       ],[
2886         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.])
2887       ])
2888     ])
2889     CPPFLAGS="${CPPFLAGS_save}"
2890     LDFLAGS="${LDFLAGS_save}"
2891   fi
2892 fi
2893
2894 AC_ARG_WITH(a52-fixed,
2895       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2896       [
2897         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2898
2899 dnl
2900 dnl DTS Coherent Acoustics decoder plugin
2901 dnl
2902 AC_ARG_ENABLE(dts,
2903   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2904 if test "${enable_dts}" != "no"; then
2905   AC_ARG_WITH(dts-tree,
2906     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2907   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2908   then
2909     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2910     if test -z "${real_dts_tree}"
2911     then
2912       dnl  The given directory can't be found
2913       AC_MSG_RESULT(no)
2914       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2915     fi
2916     dnl  Use a custom libdts
2917     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2918     if test -f ${real_dts_tree}/include/dts.h
2919     then
2920       AC_MSG_RESULT(yes)
2921       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2922       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2923       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2924       AC_CHECK_LIB(dts_pic, dts_free, [
2925         VLC_ADD_PLUGINS([dtstofloat32])
2926         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2927         ],[
2928         AC_CHECK_LIB(dts, dts_free, [
2929           VLC_ADD_BUILTINS([dtstofloat32])
2930           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2931           ],[
2932           if test -f ${real_dts_tree}/libdts/libdts.a
2933           then
2934             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2935           else
2936             AC_MSG_ERROR([the specified tree hasn't been compiled])
2937           fi
2938         ])
2939       ])
2940       LDFLAGS="${LDFLAGS_save}"
2941     else
2942       AC_MSG_RESULT(no)
2943       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2944     fi
2945   else
2946     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2947     AC_CHECK_HEADERS(dts.h, [
2948       AC_CHECK_LIB(dts_pic, dts_free, [
2949         VLC_ADD_PLUGINS([dtstofloat32])
2950         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2951       ],[
2952         AC_CHECK_LIB(dts, dts_free, [
2953           VLC_ADD_BUILTINS([dtstofloat32])
2954           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2955         ],[
2956           if test "${enable_dts}" = "yes"; then
2957             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2958           fi
2959         ])
2960       ])
2961     ])
2962     LDFLAGS="${LDFLAGS_save}"
2963   fi
2964 fi
2965
2966 dnl
2967 dnl  Flac plugin
2968 dnl
2969 AC_ARG_ENABLE(flac,
2970   [  --enable-flac           flac decoder support (default disabled)])
2971 if test "${enable_flac}" = "yes"
2972 then
2973   AC_ARG_WITH(flac-tree,
2974   [    --with-flac-tree=PATH flac tree for static linking])
2975   if test -n "${with_flac_tree}"
2976   then
2977     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2978     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2979     if test -z "${real_flac_tree}"
2980     then
2981       dnl  The given directory can't be found
2982       AC_MSG_RESULT(no)
2983       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2984     fi
2985     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2986     then
2987       dnl  Use a custom flac
2988       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2989       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2990       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2991       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2992     else
2993       dnl  The given flac wasn't built
2994       AC_MSG_RESULT(no)
2995       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2996     fi
2997   else
2998     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2999       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3000      ],[])
3001   fi
3002 fi
3003
3004 dnl
3005 dnl  Libmpeg2 plugin
3006 dnl
3007 AC_ARG_ENABLE(libmpeg2,
3008   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3009 if test "${enable_libmpeg2}" != "no"
3010 then
3011   AC_ARG_WITH(libmpeg2-tree,
3012   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3013   if test -n "${with_libmpeg2_tree}"
3014   then
3015     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3016     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3017     if test -z "${real_libmpeg2_tree}"
3018     then
3019       dnl  The given directory can't be found
3020       AC_MSG_RESULT(no)
3021       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3022     fi
3023     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3024     then
3025       dnl  Use a custom libmpeg2
3026       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3027       VLC_ADD_BUILTINS([libmpeg2])
3028       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3029       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3030       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3031     else
3032       dnl  The given libmpeg2 wasn't built
3033       AC_MSG_RESULT(no)
3034       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3035     fi
3036   else
3037     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3038       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3039       AC_EGREP_CPP(yes,
3040         [#include <mpeg2dec/mpeg2.h>
3041          #ifdef MPEG2_RELEASE
3042          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3043          yes
3044          #endif
3045          #endif],
3046         [AC_MSG_RESULT([yes])
3047           VLC_ADD_PLUGINS([libmpeg2])
3048           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3049         [AC_MSG_RESULT([no])
3050           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.])])],
3051
3052       [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.])]
3053     )
3054   fi
3055 fi
3056
3057 dnl
3058 dnl  Vorbis plugin
3059 dnl
3060 AC_ARG_ENABLE(vorbis,
3061   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3062 if test "${enable_vorbis}" != "no"
3063 then
3064   AC_ARG_WITH(vorbis-tree,
3065   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3066   if test -n "${with_vorbis_tree}"
3067   then
3068     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3069     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3070     if test -z "${real_vorbis_tree}"
3071     then
3072       dnl  The given directory can't be found
3073       AC_MSG_RESULT(no)
3074       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3075     fi
3076     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3077     then
3078       dnl  Use a custom vorbis 
3079       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3080       VLC_ADD_PLUGINS([vorbis])
3081       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3082       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3083     else
3084       dnl  The given vorbis wasn't built
3085       AC_MSG_RESULT(no)
3086       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3087     fi
3088   else
3089     AC_CHECK_HEADERS(vorbis/codec.h, [
3090       VLC_ADD_PLUGINS([vorbis])
3091       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3092
3093     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3094       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3095   fi
3096 fi
3097
3098 dnl
3099 dnl  Tremor plugin
3100 dnl
3101 AC_ARG_ENABLE(tremor,
3102   [  --enable-tremor         Tremor decoder support (default disabled)])
3103 if test "${enable_tremor}" = "yes"
3104 then
3105   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3106     VLC_ADD_PLUGINS([tremor])
3107     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3108    ],[])
3109 fi
3110
3111 dnl
3112 dnl  Speex plugin
3113 dnl
3114 AC_ARG_ENABLE(speex,
3115   [  --enable-speex          Speex decoder support (default enabled)])
3116 if test "${enable_speex}" != "no"
3117 then
3118   AC_ARG_WITH(speex-tree,
3119   [    --with-speex-tree=PATH speex tree for static linking])
3120   if test -n "${with_speex_tree}"
3121   then
3122     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3123     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3124     if test -z "${real_speex_tree}"
3125     then
3126       dnl  The given directory can't be found
3127       AC_MSG_RESULT(no)
3128       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3129     fi
3130     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3131     then
3132       dnl  Use a custom speex
3133       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3134       VLC_ADD_PLUGINS([speex])
3135       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3136       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3137     else
3138       dnl  The given speex wasn't built
3139       AC_MSG_RESULT(no)
3140       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3141     fi
3142   else
3143     AC_CHECK_HEADERS(speex/speex.h, [
3144       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3145       AC_CHECK_LIB(speex, speex_decode_int, [
3146         VLC_ADD_PLUGINS([speex])
3147         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3148         [ AC_MSG_RESULT([no])
3149           AC_MSG_WARN([Your libspeex is too old, please get the development
3150                        version.]) ],[])
3151       LDFLAGS="${LDFLAGS_save}"
3152       ],[])
3153   fi
3154 fi
3155
3156 dnl
3157 dnl  tarkin decoder plugin
3158 dnl
3159 AC_ARG_ENABLE(tarkin,
3160 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3161 if test "${enable_tarkin}" = "yes"
3162 then
3163   AC_ARG_WITH(tarkin-tree,
3164   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3165   if test -n "${with_tarkin_tree}"
3166   then
3167     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3168     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3169     if test -f "${real_tarkin_tree}/tarkin.o"
3170     then
3171       VLC_ADD_BUILTINS([tarkin])
3172       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3173       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])
3174       AC_MSG_RESULT(yes)
3175     else
3176       dnl  The given tarkin tree wasn't built
3177       AC_MSG_RESULT(no)
3178       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3179                     make sure you compiled tarkin in ${with_tarkin_tree}])
3180     fi
3181   fi
3182 fi
3183
3184 dnl
3185 dnl  theora decoder plugin
3186 dnl
3187 AC_ARG_ENABLE(theora,
3188 [  --enable-theora         experimental theora codec (default disabled)])
3189 if test "${enable_theora}" = "yes"
3190 then
3191   AC_CHECK_HEADERS(theora/theora.h, [
3192     AC_CHECK_LIB(theora, theora_granule_time, [
3193       if test "${SYS}" = "mingw32"; then
3194         VLC_ADD_PLUGINS([theora])
3195       else
3196         VLC_ADD_BUILTINS([theora])
3197       fi
3198       theora_libs="-ltheora -logg"
3199       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3200       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3201 You also need to check that you have a libogg posterior to the 1.0 release.])],
3202       [-logg])
3203   ])
3204 fi
3205
3206 dnl
3207 dnl  dirac decoder plugin
3208 dnl
3209 AC_ARG_ENABLE(dirac,
3210 [  --enable-dirac          experimental dirac codec (default disabled)])
3211 if test "${enable_dirac}" = "yes"; then
3212   PKG_CHECK_MODULES(DIRAC,dirac, [
3213       VLC_ADD_PLUGINS([dirac])
3214       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3215       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3216       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3217   ])
3218 fi
3219
3220 dnl  libvc1 decoder plugin
3221 dnl
3222 AC_ARG_ENABLE(libvc1,
3223 [  --enable-libvc1         VC-1 codec (default disabled)])
3224 if test "${enable_libvc1}" = "yes"
3225 then
3226   AC_ARG_WITH(libvc1-tree,
3227   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3228   if test -n "${with_libvc1_tree}"
3229   then
3230     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3231     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3232     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3233     then
3234       VLC_ADD_BUILTINS([libvc1])
3235       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3236       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3237       AC_MSG_RESULT(yes)
3238     else
3239       dnl  The given libvc1 tree wasn't built
3240       AC_MSG_RESULT(no)
3241       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3242                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3243     fi
3244   fi
3245 fi
3246
3247 dnl
3248 dnl  PNG decoder module
3249 dnl
3250 AC_ARG_ENABLE(png,
3251   [  --enable-png            PNG support (default enabled)])
3252 if test "${enable_png}" != "no"; then
3253 AC_CHECK_HEADERS(png.h, [
3254   LDFLAGS="${LDFLAGS_save} -lz"
3255   AC_CHECK_LIB(png, png_set_rows, [
3256     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3257     VLC_ADD_PLUGINS([png])
3258     VLC_ADD_PLUGINS([osdmenu])
3259     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3260     [],[-lz])
3261   LDFLAGS="${LDFLAGS_save}"
3262   ])
3263 fi
3264
3265 dnl
3266 dnl H264 encoder plugin (using libx264)
3267 dnl
3268 AC_ARG_ENABLE(x264,
3269   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3270 if test "${enable_x264}" != "no"; then
3271   AC_ARG_WITH(x264-tree,
3272     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3273   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3274   then
3275     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3276     if test -z "${real_x264_tree}"
3277     then
3278       dnl  The given directory can't be found
3279       AC_MSG_RESULT(no)
3280       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3281     fi
3282     dnl  Use a custom libx264
3283     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3284     if test -f ${real_x264_tree}/x264.h
3285     then
3286       AC_MSG_RESULT(yes)
3287       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3288       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3289       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3290       AC_CHECK_LIB(x264, x264_encoder_open, [
3291         VLC_ADD_BUILTINS([x264])
3292         VLC_ADD_LDFLAGS([x264],[-lx264])
3293       ],[
3294         AC_MSG_ERROR([the specified tree hasn't been compiled])
3295       ])
3296       LDFLAGS="${LDFLAGS_save}"
3297     else
3298       AC_MSG_RESULT(no)
3299       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3300     fi
3301   else
3302     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3303     AC_CHECK_HEADERS(x264.h, [
3304       AC_CHECK_LIB(x264, x264_encoder_open, [
3305         VLC_ADD_PLUGINS([x264])
3306         VLC_ADD_LDFLAGS([x264],[-lx264])
3307       ],[
3308         if test "${enable_x264}" = "yes"; then
3309             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3310           fi
3311       ])
3312     ])
3313     LDFLAGS="${LDFLAGS_save}"
3314   fi
3315 fi
3316
3317 dnl
3318 dnl  CMML plugin
3319 dnl
3320 AC_ARG_ENABLE(cmml,
3321   [  --enable-cmml           CMML support (default enabled)])
3322 if test "${enable_cmml}" != "no"
3323 then
3324   VLC_ADD_PLUGINS([cmml])
3325 fi
3326
3327
3328 dnl
3329 dnl  Video plugins
3330 dnl
3331
3332 AC_ARG_WITH(,[Video plugins:])
3333
3334 dnl Check for DPMS
3335 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3336   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3337   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3338     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3339     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3340       AC_MSG_RESULT(yes)
3341       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3342                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3343     ],[
3344       AC_MSG_RESULT(no)
3345     ])
3346   ],,[
3347     #include <X11/Xlib.h>
3348   ])
3349   CPPFLAGS="${CPPFLAGS_save}"
3350 fi
3351
3352 dnl
3353 dnl  X11 module
3354 dnl  (enabled by default except on win32)
3355 dnl
3356 AC_ARG_ENABLE(x11,
3357   [  --enable-x11            X11 support (default enabled)])
3358 if test "${enable_x11}" != "no" &&
3359   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3360    test "${enable_x11}" = "yes"); then
3361   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3362   AC_CHECK_HEADERS(X11/Xlib.h, [
3363     VLC_ADD_PLUGINS([x11])
3364     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3365     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3366   ])
3367   CPPFLAGS="${CPPFLAGS_save}"
3368 fi
3369
3370 dnl
3371 dnl  XVideo module
3372 dnl  (enabled by default except on win32)
3373 dnl
3374 AC_ARG_ENABLE(xvideo,
3375   [  --enable-xvideo         XVideo support (default enabled)])
3376 if test "${enable_xvideo}" != "no" &&
3377   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3378    test "${enable_xvideo}" = "yes"); then
3379   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3380   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3381     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3382     AC_CHECK_LIB(Xv,XvPutImage,[
3383       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3384       # test for libXv_pic.
3385       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3386         VLC_ADD_PLUGINS([xvideo])
3387         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3388         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3389       else
3390         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3391           VLC_ADD_PLUGINS([xvideo])
3392           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3393           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3394         ],[
3395           VLC_ADD_BUILTINS([xvideo])
3396           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3397           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3398         ])
3399       fi
3400     ])
3401     CFLAGS="${CFLAGS_save}"
3402   ]
3403   CPPFLAGS="${CPPFLAGS_save}")
3404 fi
3405
3406 dnl
3407 dnl  GLX module
3408 dnl  (enabled by default except on win32)
3409 dnl
3410 AC_ARG_ENABLE(glx,
3411   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3412 if test "${enable_glx}" != "no" &&
3413   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3414    test "${enable_glx}" = "yes"); then
3415   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3416   AC_CHECK_HEADERS(X11/Xlib.h, [
3417     AC_CHECK_HEADERS(GL/glx.h, [
3418       VLC_ADD_PLUGINS([glx])
3419       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3420       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3421   ]) ])
3422   CPPFLAGS="${CPPFLAGS_save}"
3423 fi
3424
3425 dnl
3426 dnl  Check for the Xinerama extension
3427 dnl
3428 AC_ARG_ENABLE(xinerama,
3429   [  --enable-xinerama       Xinerama support (default enabled)])
3430 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3431   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3432    test "${enable_xvideo}" = "yes"); then
3433   ac_cv_have_xinerama="no"
3434   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3435   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3436   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3437     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3438       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3439       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3440       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3441       ac_cv_have_xinerama="yes"
3442     ],[
3443       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3444         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3445         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3446         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3447         ac_cv_have_xinerama="yes"
3448       ])
3449     ])
3450   ])
3451   if test "${ac_cv_have_xinerama}" = "yes"; then
3452     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3453   fi
3454   CFLAGS="${CFLAGS_save}"
3455   CPPFLAGS="${CPPFLAGS_save}"
3456
3457 dnl
3458 dnl  Check for XF86VidMode extension
3459 dnl
3460   ac_cv_have_xf86vidmode="no"
3461   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3462   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3463   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3464     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3465       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3466       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3467       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3468       ac_cv_have_xf86vidmode="yes"
3469     ],[
3470       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3471         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3472         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3473         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3474         ac_cv_have_xf86vidmode="yes"
3475       ])
3476     ])
3477   ],[true],
3478 [#ifdef HAVE_X11_XLIB_H
3479 # include <X11/Xlib.h>
3480 #endif]
3481    )
3482   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3483     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3484   ])
3485   CFLAGS="${CFLAGS_save}"
3486   CPPFLAGS="${CPPFLAGS_save}"
3487
3488 fi
3489
3490 dnl
3491 dnl  OpenGL module
3492 dnl  (enabled by default except on beos)
3493 dnl
3494 AC_ARG_ENABLE(opengl,
3495   [  --enable-opengl         OpenGL support (default enabled)])
3496 if test "${enable_opengl}" != "no" &&
3497    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3498   if test "${SYS}" != "darwin"; then
3499     AC_CHECK_HEADERS(GL/gl.h, [
3500       VLC_ADD_PLUGINS([opengl])
3501       if test "${SYS}" != "mingw32"; then
3502         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3503       else
3504         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3505       fi
3506     ])
3507   else
3508     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3509     VLC_ADD_PLUGINS([opengl])
3510     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3511   fi
3512 fi
3513
3514 dnl
3515 dnl  SDL module
3516 dnl
3517 AC_ARG_ENABLE(sdl,
3518   [  --enable-sdl            SDL support (default enabled)])
3519 if test "${enable_sdl}" != "no"
3520 then
3521   SDL_PATH="${PATH}"
3522   AC_ARG_WITH(sdl-config-path,
3523     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3524     [ if test "${with_sdl_config_path}" != "no"
3525       then
3526         SDL_PATH="${with_sdl_config_path}:${PATH}"
3527       fi ])
3528   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3529   SDL_CONFIG="${SDL12_CONFIG}"
3530   SDL_HEADER="SDL12/SDL.h"
3531   SDL_IMAGE="SDL12/SDL_image.h"
3532   if test "${SDL_CONFIG}" = "no"
3533   then
3534     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3535     SDL_CONFIG=${SDL11_CONFIG}
3536     SDL_HEADER="SDL11/SDL.h"
3537     SDL_IMAGE="SDL11/SDL_image.h"
3538   fi
3539   if test "${SDL_CONFIG}" = "no"
3540   then
3541     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3542     SDL_HEADER="SDL/SDL.h"
3543     SDL_IMAGE="SDL/SDL_image.h"
3544   fi
3545   # check for cross-compiling
3546   SDL_PREFIX=
3547   AC_ARG_WITH(sdl-prefix,
3548     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3549                                e.g use as:
3550                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3551   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3552   then
3553     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3554   fi
3555   if test "${SDL_CONFIG}" != "no"
3556   then
3557     # SDL on Darwin is heavily patched and can only run SDL_image
3558     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3559       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3560     fi
3561     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3562     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3563     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3564     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3565       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3566       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3567           As a last resort we also test for SDL.h presence),
3568       [ AC_MSG_ERROR([The development package for SDL is not installed.
3569 Please install it and try again. Alternatively you can also configure with
3570 --disable-sdl.])
3571       ])])
3572     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3573       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3574       VLC_ADD_PLUGINS([sdl_image])
3575       AC_CHECK_LIB(png, png_set_rows,
3576         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3577       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3578         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3579       AC_CHECK_LIB(tiff, TIFFClientOpen,
3580         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3581       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3582       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3583           As a last resort we also test for SDL_image.h presence),
3584       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3585 You should install it alongside your SDL package.])
3586       ])])
3587     CPPFLAGS="${CPPFLAGS_save}"
3588     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3589     then
3590       AC_MSG_ERROR([The development package for SDL is not installed.
3591 Please install it and try again. Alternatively you can also configure with
3592 --disable-sdl.])
3593     fi
3594
3595   elif test "${enable_sdl}" =  "yes"
3596   then
3597     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3598 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3599     ])
3600   fi
3601 fi
3602
3603 dnl
3604 dnl  freetype module
3605 dnl
3606 AC_ARG_ENABLE(freetype,
3607   [  --enable-freetype       freetype support (default enabled)])
3608 AC_ARG_ENABLE(fribidi,
3609   [  --enable-fribidi        fribidi support (default enabled)])
3610 if test "${enable_freetype}" != "no"
3611 then
3612   FREETYPE_PATH="${PATH}"
3613   AC_ARG_WITH(freetype-config-path,
3614     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3615     [ if test "${with_freetype_config_path}" != "no"
3616       then
3617         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3618       fi ])
3619   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3620
3621   if test "${FREETYPE_CONFIG}" != "no"
3622   then
3623     VLC_ADD_PLUGINS([freetype])
3624     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3625     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3626     AC_CHECK_HEADERS(Carbon/Carbon.h,
3627       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3628   elif test "${enable_freetype}" =  "yes"
3629   then
3630     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3631 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3632     ])
3633   fi
3634
3635   dnl fribidi support
3636   if test "${enable_fribidi}" != "no"
3637   then
3638     FRIBIDI_PATH="${PATH}"
3639     AC_ARG_WITH(fribidi-config-path,
3640       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3641       [ if test "${with_fribidi_config_path}" != "no"
3642         then
3643           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3644         fi ])
3645     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3646
3647     if test "${FRIBIDI_CONFIG}" != "no"
3648     then
3649       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3650       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3651       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3652       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3653     fi
3654   fi
3655 fi
3656
3657 dnl
3658 dnl  libxml2 module
3659 dnl
3660 AC_ARG_ENABLE(libxml2,
3661   [  --enable-libxml2        libxml2 support (default enabled)])
3662 if test "${enable_libxml2}" != "no"
3663 then
3664   XML2_PATH="${PATH}"
3665   AC_ARG_WITH(xml2-config-path,
3666     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3667     [ if test "${with_xml2_config_path}" != "no"; then
3668         XML2_PATH="${with_xml2_config_path}:${PATH}"
3669       fi ])
3670   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3671   if test "${XML2_CONFIG}" != "no"; then
3672     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3673     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3674     dnl depends on the xmlTextReader extension
3675     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3676     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3677     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3678       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3679         VLC_ADD_PLUGINS([xml]) ],[
3680           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3681           if test "${enable_xml2}" = "yes"; then
3682             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3683           fi])
3684        ],[
3685       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3686       if test "${enable_xml2}" = "yes"; then
3687         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3688       fi])
3689     LDFLAGS="${LDFLAGS_save}"
3690     CPPFLAGS="${CPPFLAGS_save}"
3691   else
3692     if test "${enable_xml2}" = "yes"; then
3693       AC_MSG_ERROR([Could not find libxml2])
3694     fi
3695   fi
3696 fi
3697
3698 dnl
3699 dnl  SVG module
3700 dnl
3701 AC_ARG_ENABLE(svg,
3702   [  --enable-svg            SVG support (default disabled)])
3703 if test "${enable_svg}" = "yes"
3704 then
3705   PKG_CHECK_MODULES(SVG, 
3706         librsvg-2.0 >= 2.5.0,
3707         [
3708           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3709           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3710           VLC_ADD_PLUGINS([svg]) ],
3711         [AC_MSG_WARN(SVG library not found)])
3712 fi
3713
3714 dnl
3715 dnl Snapshot vout module (with cache)
3716 dnl
3717 AC_ARG_ENABLE(snapshot,
3718   [  --enable-snapshot       snapshot module (default disabled)])
3719 if test "${enable_snapshot}" = "yes"
3720 then
3721   VLC_ADD_PLUGINS([snapshot])
3722 fi
3723
3724 dnl
3725 dnl  Qt Embedded module
3726 dnl  (disabled by default)
3727 dnl
3728 AC_ARG_ENABLE(qte,
3729   [  --enable-qte            QT Embedded support (default disabled)])
3730 if test "${enable_qte}" = "yes"
3731 then
3732   AC_ARG_WITH(qte,
3733   [    --with-qte=PATH       Qt Embedded headers and libraries])
3734   if test "${with_qte}" != "no" -a -n "${with_qte}"
3735   then
3736     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3737     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])
3738   else
3739     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3740     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3741   fi
3742   VLC_ADD_PLUGINS([qte])
3743   NEED_QTE_MAIN=yes
3744   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3745   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3746     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3747   ] )
3748   CPPFLAGS="${CPPFLAGS_save}"
3749 fi
3750
3751 dnl
3752 dnl  Qt Video output module
3753 dnl  (disabled by default)
3754 dnl
3755 dnl AC_ARG_ENABLE(qt_video,
3756 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3757 dnl if test "${enable_qt_video}" = "yes"
3758 dnl then
3759 dnl  VLC_ADD_PLUGINS([qt_video])
3760 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3761 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3762 dnl   AC_CHECK_LIB(qt-mt,main,[
3763 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3764 dnl  ],[
3765 dnl    AC_CHECK_LIB(qt,main,[
3766 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3767 dnl    ])
3768 dnl  ])
3769 dnl  NEED_QTE_MAIN=yes
3770 dnl  LDFLAGS="${LDFLAGS_save}"
3771 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3772 dnl fi
3773
3774 dnl
3775 dnl Roku HD1000 Video output module
3776 dnl
3777 AC_ARG_ENABLE(hd1000v,
3778   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3779 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3780   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3781    test "${enable_hd1000v}" = "yes"); then
3782   AC_LANG_PUSH([C++])
3783   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3784   [
3785     can_build_roku="yes"
3786   ],
3787   [
3788     can_build_roku="no"
3789     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3790   ])
3791   if test "$can_build_roku" = "yes"
3792   then
3793     VLC_ADD_PLUGINS([hd1000v])
3794     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3795   fi
3796   AC_LANG_POP([C++])
3797 fi
3798
3799 dnl
3800 dnl  Windows DirectX module
3801 dnl
3802 AC_ARG_ENABLE(directx,
3803   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3804 if test "${enable_directx}" != "no"
3805 then
3806   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3807   then
3808     AC_ARG_WITH(directx,
3809     [    --with-directx=PATH   Win32 DirectX headers])
3810     if test -z "${with_directx}"
3811     then
3812       AC_CHECK_HEADERS(ddraw.h,
3813       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3814         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3815         dnl to be moved when dependance is removed
3816         AC_CHECK_HEADERS(GL/gl.h, [
3817             VLC_ADD_PLUGINS([glwin32])
3818             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3819         ]) ])
3820     else
3821       AC_MSG_CHECKING(for directX headers in ${with_directx})
3822       if test -f ${with_directx}/ddraw.h
3823       then
3824         VLC_ADD_PLUGINS([vout_directx aout_directx])
3825         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3826         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3827         AC_MSG_RESULT(yes)
3828       else
3829         AC_MSG_RESULT(no)
3830         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3831       fi
3832     fi
3833   fi
3834 fi
3835
3836 dnl
3837 dnl  Linux framebuffer module
3838 dnl
3839 AC_ARG_ENABLE(fb,
3840   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3841     if test "${enable_fb}" != "no"
3842     then
3843       AC_CHECK_HEADERS(linux/fb.h, [
3844         VLC_ADD_PLUGINS([fb])
3845       ])
3846     fi
3847
3848 dnl
3849 dnl  Linux MGA module
3850 dnl
3851 AC_ARG_ENABLE(mga,
3852   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3853   [ if test "${enable_mga}" = "yes"
3854     then
3855       VLC_ADD_PLUGINS([mga])
3856     fi ])
3857
3858 dnl
3859 dnl  SVGAlib module
3860 dnl
3861 AC_ARG_ENABLE(svgalib,
3862   [  --enable-svgalib        SVGAlib support (default disabled)])
3863 if test "${enable_svgalib}" = "yes"
3864 then
3865   VLC_ADD_PLUGINS([svgalib])
3866   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3867 fi
3868
3869 dnl
3870 dnl  DirectFB module
3871 dnl
3872 AC_ARG_ENABLE(directfb,
3873   [  --enable-directfb       DirectFB support (default disabled)])
3874 if test "${enable_directfb}" = "yes"
3875 then
3876   if test "${with_directfb}" = "no"
3877   then
3878     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3879     if test "${have_directfb}"= "true"
3880     then
3881         VLC_ADD_PLUGINS([directfb])
3882         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3883         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
3884     else
3885         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
3886     fi
3887   else
3888     CPPFLAGS_save="${CPPFLAGS}"
3889     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
3890     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3891     CPPFLAGS="${CPPFLAGS_save}"
3892     AC_ARG_WITH(directfb,
3893         [    --with-directfb=PATH  path to directfb],
3894         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
3895         then
3896             VLC_ADD_PLUGINS([directfb])
3897             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
3898             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3899         fi ],
3900         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
3901   fi
3902 fi
3903
3904 dnl
3905 dnl  GGI module
3906 dnl
3907 AC_ARG_ENABLE(ggi,
3908   [  --enable-ggi            GGI support (default disabled)])
3909 if test "${enable_ggi}" = "yes"
3910 then
3911   VLC_ADD_PLUGINS([ggi])
3912   VLC_ADD_LDFLAGS([ggi],[-lggi])
3913   AC_ARG_WITH(ggi,
3914     [    --with-ggi=PATH       path to libggi],
3915     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3916       then
3917         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3918         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3919       fi ])
3920 fi
3921
3922 dnl
3923 dnl  Glide module
3924 dnl
3925 AC_ARG_ENABLE(glide,
3926   [  --enable-glide          Glide (3dfx) support (default disabled)])
3927 if test "${enable_glide}" = "yes"
3928 then
3929   CFLAGS_save="${CFLAGS}"
3930   AC_ARG_WITH(glide,
3931     [    --with-glide=PATH     path to libglide],
3932     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3933       then
3934         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3935         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3936         CFLAGS="$CFLAGS -I${with_glide}/include"
3937     fi ])
3938    CFLAGS="$CFLAGS -I/usr/include/glide"
3939    AC_CHECK_HEADER(glide.h,[   
3940       VLC_ADD_PLUGINS([glide])
3941       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3942       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3943     ],[
3944       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
3945      ])
3946    CFAGS="${CFLAGS_save}"
3947 fi
3948
3949 dnl
3950 dnl  AA plugin
3951 dnl
3952 AC_ARG_ENABLE(aa,
3953   [  --enable-aa             aalib output (default disabled)])
3954 if test "${enable_aa}" = "yes"
3955 then
3956   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3957   if test "${have_aa}" = "true"
3958   then
3959     VLC_ADD_PLUGINS([aa])
3960     VLC_ADD_LDFLAGS([aa],[-laa])
3961   fi
3962 fi
3963
3964 dnl
3965 dnl  libcaca plugin
3966 dnl
3967 AC_ARG_ENABLE(caca,
3968   [  --enable-caca           libcaca output (default disabled)])
3969 if test "${enable_caca}" = "yes"
3970 then
3971   CACA_PATH="${PATH}"
3972   AC_ARG_WITH(caca-config-path,
3973     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3974     [ if test "${with_caca_config_path}" != "no"
3975       then
3976         CACA_PATH="${with_caca_config_path}:${PATH}"
3977       fi ])
3978   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3979   if test "${CACA_CONFIG}" != "no"
3980   then
3981     VLC_ADD_PLUGINS([caca])
3982     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3983     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3984   fi
3985 fi
3986
3987 dnl
3988 dnl  win32 GDI plugin
3989 dnl
3990 AC_ARG_ENABLE(wingdi,
3991   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3992 if test "${enable_wingdi}" != "no"; then
3993   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3994     VLC_ADD_PLUGINS([wingdi])
3995     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3996   fi
3997   if test "${SYS}" = "mingwce"; then
3998     VLC_ADD_PLUGINS([wingdi wingapi])
3999   fi
4000 fi
4001
4002 dnl
4003 dnl  Audio plugins
4004 dnl
4005
4006 AC_ARG_WITH(,[Audio plugins:])
4007
4008 dnl
4009 dnl  OSS /dev/dsp module (enabled by default except on win32)
4010 dnl
4011 AC_ARG_ENABLE(oss,
4012   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4013
4014 if test "${enable_oss}" != "no" &&
4015   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4016    test "${enable_oss}" = "yes")
4017 then
4018   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4019     VLC_ADD_PLUGINS([oss])
4020     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4021   ])
4022 fi
4023
4024 dnl
4025 dnl  Esound module
4026 dnl
4027 AC_ARG_ENABLE(esd,
4028   [  --enable-esd            Esound library support (default disabled)],
4029   [if test "${enable_esd}" = "yes"
4030    then
4031      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4032      if test "${ESD_CONFIG}" != "no"