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