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