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