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