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