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