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