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