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