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