]> git.sesse.net Git - vlc/blob - configure.ac
* configure.ac: libavcodec.pc doesn't instruct us to link with mp3lame,
[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 dnl we try to find ffmpeg using : 1- ffmpeg-config, 2- pkg-config
2022 dnl                             3- default place, 4- given tree
2023
2024 AC_ARG_ENABLE(ffmpeg,
2025 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2026 if test "${enable_ffmpeg}" != "no"
2027 then
2028 dnl Look for a ffmpeg-config (we are on debian )
2029  
2030    FFMPEG_PATH="${PATH}"
2031    AC_ARG_WITH(ffmpeg-config-path,
2032      [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2033      [ if test "${with_ffmpeg_config_path}" != "no"
2034        then
2035          FFMPEG_PATH="${with_ffmpeg_config_path}"
2036        fi ])
2037    AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2038    if test "${FFMPEG_CONFIG}" != "no"
2039    then
2040      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2041      AC_CHECK_HEADERS(postproc/postprocess.h)
2042      VLC_ADD_PLUGINS([ffmpeg])
2043      if test "${enable_sout}" != "no"; then
2044          VLC_ADD_PLUGINS([stream_out_switcher])
2045      fi
2046      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2047      VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2048   
2049   else
2050 dnl Trying with pkg-config
2051    PKG_CHECK_MODULES(FFMPEG,libavcodec libavformat,
2052     [
2053      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2054      AC_CHECK_HEADERS(postproc/postprocess.h)
2055      VLC_ADD_BUILTINS([ffmpeg])
2056      if test "${enable_sout}" != "no"; then
2057          VLC_ADD_BUILTINS([stream_out_switcher])
2058      fi
2059      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2060      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2061
2062     ],[
2063      
2064     dnl
2065     dnl test for !(--with-ffmpeg-tree)
2066     dnl
2067     if test "${with_ffmpeg_tree}" = "no" -o -z "${with_ffmpeg_tree}"; then
2068       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2069       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2070       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2071       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2072
2073       AC_CHECK_LIB(avutil, av_add_i, [
2074         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2075         LDAVUTIL="-lavutil"])
2076
2077       AC_CHECK_LIB(avcodec, avcodec_init, [
2078         VLC_ADD_BUILTINS([ffmpeg])
2079         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2080         if test "${enable_sout}" != "no"; then
2081             VLC_ADD_BUILTINS([stream_out_switcher])
2082         fi],
2083          [ 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])
2084       AC_CHECK_LIB(avformat, av_open_input_stream, [
2085         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2086         [Define if you have ffmpeg's libavformat.])
2087         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz])
2088       LDFLAGS="${LDFLAGS_save}"
2089       CPPFLAGS="${CPPFLAGS_save}"
2090     fi
2091
2092     dnl
2093     dnl test for --with-ffmpeg-tree
2094     dnl
2095     if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2096       AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2097       real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2098       if test -z "${real_ffmpeg_tree}"; then
2099         dnl  The given directory can't be found
2100         AC_MSG_RESULT(no)
2101         AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2102       fi
2103       if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2104         dnl  The given libavcodec wasn't built
2105         AC_MSG_RESULT(no)
2106         AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2107       fi
2108       if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2109         dnl  The given libavcodec wasn't built with --enable-pp
2110         AC_MSG_RESULT(no)
2111         AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2112       fi
2113       dnl  Use a custom libffmpeg
2114       AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2115
2116       if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2117         if test "${with_ffmpeg_zlib}" != "yes"; then
2118           VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2119         fi
2120       fi
2121       if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2122         if test "${with_ffmpeg_mp3lame}" != "yes"; then
2123           VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2124         fi
2125       fi
2126       if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2127         if test "${with_ffmpeg_faac}" != "yes"; then
2128           VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2129         fi
2130       fi
2131       if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2132         if test "${with_ffmpeg_dts}" != "yes"; then
2133           VLC_ADD_LDFLAGS([ffmpeg],[-ldts])
2134         fi
2135       fi
2136       if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2137         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2138       fi
2139       if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2140         VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2141       fi
2142       if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2143         VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2144       fi
2145
2146       VLC_ADD_BUILTINS([ffmpeg])
2147       if test "${enable_sout}" != "no"; then
2148         VLC_ADD_BUILTINS([stream_out_switcher])
2149       fi
2150
2151       if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2152         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2153         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2154       fi
2155
2156       VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2157       VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2158
2159       if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2160         AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2161         VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2162         VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2163       fi
2164     fi
2165     ])
2166
2167     AC_ARG_WITH(ffmpeg-mp3lame,
2168       [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2169       [
2170         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame]) ])
2171
2172     AC_ARG_WITH(ffmpeg-faac,
2173       [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2174       [
2175         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac]) ])
2176
2177     AC_ARG_WITH(ffmpeg-dts,
2178       [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2179       [
2180         VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2181
2182     AC_ARG_WITH(ffmpeg-zlib,
2183       [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2184       [
2185         VLC_ADD_LDFLAGS([ffmpeg],[-lz]) ])
2186
2187     AC_ARG_WITH(ffmpeg-tree,
2188       [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2189
2190   fi
2191 fi
2192
2193 dnl
2194 dnl  ffmpeg decoder/demuxer plugin
2195 dnl
2196 AC_ARG_ENABLE(ffmpegaltivec,
2197 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2198 if test "${enable_ffmpegaltivec}" == "yes"
2199 then
2200   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2201     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2202     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2203     if test -z "${real_ffmpeg_tree}"; then
2204       dnl  The given directory can't be found
2205       AC_MSG_RESULT(no)
2206       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2207     fi
2208     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2209       dnl  The given libavcodecaltivec wasn't built
2210       AC_MSG_RESULT(no)
2211       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2212     fi
2213     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2214       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2215       AC_MSG_RESULT(no)
2216       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2217     fi
2218     dnl  Use a custom libffmpeg
2219     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2220     VLC_ADD_BUILTINS([ffmpegaltivec])
2221     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2222     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2223     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2224
2225     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2226       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2227       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2228       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2229     fi
2230     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2231     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2232   fi
2233 fi
2234
2235 dnl
2236 dnl  faad decoder plugin
2237 dnl
2238 AC_ARG_ENABLE(faad,
2239 [  --enable-faad           faad codec (default disabled)])
2240 if test "${enable_faad}" = "yes"
2241 then
2242   AC_ARG_WITH(faad-tree,
2243   [    --with-faad-tree=PATH faad tree for static linking])
2244   if test -n "${with_faad_tree}"
2245   then
2246     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2247     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2248     if test -z "${real_faad_tree}"
2249     then
2250       dnl  The given directory can't be found
2251       AC_MSG_RESULT(no)
2252       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2253     fi
2254     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2255     then
2256       dnl  Use a custom faad
2257       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2258       VLC_ADD_BUILTINS([faad])
2259       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2260       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2261     else
2262       dnl  The given libfaad wasn't built
2263       AC_MSG_RESULT(no)
2264       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2265     fi
2266   else
2267     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2268     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2269     AC_CHECK_HEADERS(faad.h, ,
2270       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2271     AC_CHECK_LIB(faad, faacDecOpen, [
2272       VLC_ADD_PLUGINS([faad])
2273       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2274       AC_CHECK_LIB(faad, NeAACDecOpen, [
2275         VLC_ADD_PLUGINS([faad])
2276         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2277         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2278     LDFLAGS="${LDFLAGS_save}"
2279     CPPFLAGS="${CPPFLAGS_save}"
2280   fi
2281 fi
2282
2283 dnl
2284 dnl twolame encoder plugin
2285 dnl
2286 AC_ARG_ENABLE(twolame,
2287 [  --enable-twolame        twolame codec (default disabled)])
2288 if test "${enable_twolame}" = "yes"
2289 then
2290   AC_ARG_WITH(twolame-tree,
2291   [    --with-twolame-tree=PATH twolame tree for static linking])
2292   if test -n "${with_twolame_tree}"
2293   then
2294     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2295     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2296     if test -z "${real_twolame_tree}"
2297     then
2298       dnl  The given directory can't be found
2299       AC_MSG_RESULT(no)
2300       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2301     fi
2302     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2303     then
2304       dnl  Use a custom twolame
2305       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2306       VLC_ADD_BUILTINS([twolame])
2307       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2308       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2309     else
2310       dnl  The given libtwolame wasn't built
2311       AC_MSG_RESULT(no)
2312       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2313     fi
2314   else
2315     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2316     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2317     AC_CHECK_HEADERS(twolame.h, ,
2318       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2319     AC_CHECK_LIB(twolame, twolame_init, [
2320       VLC_ADD_PLUGINS([twolame])
2321       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2322         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2323     LDFLAGS="${LDFLAGS_save}"  
2324     CPPFLAGS="${CPPFLAGS_save}"
2325   fi
2326 fi
2327
2328 dnl
2329 dnl  QuickTime plugin
2330 dnl
2331 AC_ARG_ENABLE(quicktime,
2332   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2333 if test "${enable_quicktime}" != "no" &&
2334   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2335 then
2336   if test "${SYS}" = "mingw32"; then
2337     VLC_ADD_BUILTINS([quicktime])
2338   else
2339   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2340     [ VLC_ADD_BUILTINS([quicktime])
2341       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2342     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2343   fi
2344 fi
2345
2346 dnl
2347 dnl MP4 module
2348 dnl
2349 AC_CHECK_HEADERS(zlib.h, [
2350   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2351 ] )
2352
2353 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2354   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2355 ] )
2356
2357 dnl
2358 dnl skins2 module
2359 dnl
2360 AC_CHECK_HEADERS(libtar.h, [
2361   VLC_ADD_LDFLAGS([skins2],[-ltar])
2362 ] )
2363
2364
2365
2366 dnl
2367 dnl A52/AC3 decoder plugin
2368 dnl
2369 AC_ARG_ENABLE(a52,
2370   [  --enable-a52            A/52 support with liba52 (default enabled)])
2371 if test "${enable_a52}" != "no"
2372 then
2373   AC_ARG_WITH(a52,
2374     [    --with-a52=PATH       a52 headers and libraries])
2375   AC_ARG_WITH(a52-tree,
2376     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2377   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2378   then
2379     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2380     if test -z "${real_a52_tree}"
2381     then
2382       dnl  The given directory can't be found
2383       AC_MSG_RESULT(no)
2384       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2385     fi
2386     dnl  Use a custom a52dec
2387     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2388     if test -f ${real_a52_tree}/include/a52.h
2389     then
2390       AC_MSG_RESULT(yes)
2391       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2392       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2393       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2394       AC_CHECK_LIB(a52, a52_free, [
2395         VLC_ADD_BUILTINS([a52tofloat32])
2396         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2397         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2398         ],[
2399         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2400         then
2401           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2402         else
2403           AC_MSG_ERROR([the specified tree hasn't been compiled])
2404         fi
2405       ])
2406       LDFLAGS="${LDFLAGS_save}"
2407     else
2408       AC_MSG_RESULT(no)
2409       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2410     fi
2411   else
2412     if test -z "${with_a52}"
2413     then
2414       LDFLAGS_test=""
2415       CPPFLAGS_test=""
2416     else
2417       LDFLAGS_test="-L${with_a52}/lib"
2418       CPPFLAGS_test="-I${with_a52}/include"
2419     fi
2420     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2421     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2422     AC_CHECK_HEADERS(a52dec/a52.h, [
2423       AC_CHECK_LIB(a52, a52_free, [
2424         VLC_ADD_PLUGINS([a52tofloat32])
2425         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2426         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2427       ],[
2428         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.])
2429       ])
2430     ])
2431     CPPFLAGS="${CPPFLAGS_save}"
2432     LDFLAGS="${LDFLAGS_save}"
2433   fi
2434 fi
2435
2436 AC_ARG_WITH(a52-fixed,
2437       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2438       [
2439         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2440
2441 dnl
2442 dnl DTS Coherent Acoustics decoder plugin
2443 dnl
2444 AC_ARG_ENABLE(dts,
2445   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2446 if test "${enable_dts}" != "no"; then
2447   AC_ARG_WITH(dts-tree,
2448     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2449   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2450   then
2451     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2452     if test -z "${real_dts_tree}"
2453     then
2454       dnl  The given directory can't be found
2455       AC_MSG_RESULT(no)
2456       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2457     fi
2458     dnl  Use a custom libdts
2459     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2460     if test -f ${real_dts_tree}/include/dts.h
2461     then
2462       AC_MSG_RESULT(yes)
2463       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2464       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2465       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2466       AC_CHECK_LIB(dts_pic, dts_free, [
2467         VLC_ADD_PLUGINS([dtstofloat32])
2468         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2469         ],[
2470         AC_CHECK_LIB(dts, dts_free, [
2471           VLC_ADD_BUILTINS([dtstofloat32])
2472           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2473           ],[
2474           if test -f ${real_dts_tree}/libdts/libdts.a
2475           then
2476             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2477           else
2478             AC_MSG_ERROR([the specified tree hasn't been compiled])
2479           fi
2480         ])
2481       ])
2482       LDFLAGS="${LDFLAGS_save}"
2483     else
2484       AC_MSG_RESULT(no)
2485       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2486     fi
2487   else
2488     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2489     AC_CHECK_HEADERS(dts.h, [
2490       AC_CHECK_LIB(dts_pic, dts_free, [
2491         VLC_ADD_PLUGINS([dtstofloat32])
2492         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2493       ],[
2494         AC_CHECK_LIB(dts, dts_free, [
2495           VLC_ADD_BUILTINS([dtstofloat32])
2496           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2497         ],[
2498           if test "${enable_dts}" = "yes"; then
2499             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2500           fi
2501         ])
2502       ])
2503     ])
2504     LDFLAGS="${LDFLAGS_save}"
2505   fi
2506 fi
2507
2508 dnl
2509 dnl  Flac plugin
2510 dnl
2511 AC_ARG_ENABLE(flac,
2512   [  --enable-flac           flac decoder support (default disabled)])
2513 if test "${enable_flac}" = "yes"
2514 then
2515   AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2516     VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2517    ],[])
2518 fi
2519
2520 dnl
2521 dnl  Libmpeg2 plugin
2522 dnl
2523 AC_ARG_ENABLE(libmpeg2,
2524   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2525 if test "${enable_libmpeg2}" != "no"
2526 then
2527   AC_ARG_WITH(libmpeg2-tree,
2528   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2529   if test -n "${with_libmpeg2_tree}"
2530   then
2531     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2532     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2533     if test -z "${real_libmpeg2_tree}"
2534     then
2535       dnl  The given directory can't be found
2536       AC_MSG_RESULT(no)
2537       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2538     fi
2539     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2540     then
2541       dnl  Use a custom libmpeg2
2542       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2543       VLC_ADD_BUILTINS([libmpeg2])
2544       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2545       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2546       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2547     else
2548       dnl  The given libmpeg2 wasn't built
2549       AC_MSG_RESULT(no)
2550       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2551     fi
2552   else
2553     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2554       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2555       AC_EGREP_CPP(yes,
2556         [#include <mpeg2dec/mpeg2.h>
2557          #ifdef MPEG2_RELEASE
2558          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
2559          yes
2560          #endif
2561          #endif],
2562         [AC_MSG_RESULT([yes])
2563           VLC_ADD_PLUGINS([libmpeg2])
2564           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
2565         [AC_MSG_RESULT([no])
2566           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.])])],
2567
2568       [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.])]
2569     )
2570   fi
2571 fi
2572
2573 dnl
2574 dnl  Vorbis plugin
2575 dnl
2576 AC_ARG_ENABLE(vorbis,
2577   [  --enable-vorbis         Vorbis decoder support (default enabled)])
2578 if test "${enable_vorbis}" != "no"
2579 then
2580   AC_CHECK_HEADERS(vorbis/codec.h, [
2581     VLC_ADD_PLUGINS([vorbis])
2582     VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
2583
2584   AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
2585     VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
2586 fi
2587
2588 dnl
2589 dnl  Tremor plugin
2590 dnl
2591 AC_ARG_ENABLE(tremor,
2592   [  --enable-tremor         Tremor decoder support (default disabled)])
2593 if test "${enable_tremor}" = "yes"
2594 then
2595   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
2596     VLC_ADD_PLUGINS([tremor])
2597     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
2598    ],[])
2599 fi
2600
2601 dnl
2602 dnl  Speex plugin
2603 dnl
2604 AC_ARG_ENABLE(speex,
2605   [  --enable-speex          Speex decoder support (default enabled)])
2606 if test "${enable_speex}" != "no"
2607 then
2608   AC_CHECK_HEADERS(speex/speex.h, [
2609     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
2610     AC_CHECK_LIB(speex, speex_decode_int, [
2611       VLC_ADD_PLUGINS([speex])
2612       VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
2613       [ AC_MSG_RESULT([no])
2614         AC_MSG_WARN([Your libspeex is too old, please get the development
2615                      version.]) ],[])
2616     LDFLAGS="${LDFLAGS_save}"
2617     ],[])
2618 fi
2619
2620 dnl
2621 dnl  tarkin decoder plugin
2622 dnl
2623 AC_ARG_ENABLE(tarkin,
2624 [  --enable-tarkin         experimental tarkin codec (default disabled)])
2625 if test "${enable_tarkin}" = "yes"
2626 then
2627   AC_ARG_WITH(tarkin-tree,
2628   [    --with-tarkin-tree=PATH tarkin tree for static linking])
2629   if test -n "${with_tarkin_tree}"
2630   then
2631     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
2632     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
2633     if test -f "${real_tarkin_tree}/tarkin.o"
2634     then
2635       VLC_ADD_BUILTINS([tarkin])
2636       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
2637       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])
2638       AC_MSG_RESULT(yes)
2639     else
2640       dnl  The given tarkin tree wasn't built
2641       AC_MSG_RESULT(no)
2642       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
2643                     make sure you compiled tarkin in ${with_tarkin_tree}])
2644     fi
2645   fi
2646 fi
2647
2648 dnl
2649 dnl  theora decoder plugin
2650 dnl
2651 AC_ARG_ENABLE(theora,
2652 [  --enable-theora         experimental theora codec (default disabled)])
2653 if test "${enable_theora}" = "yes"
2654 then
2655   AC_CHECK_HEADERS(theora/theora.h, [
2656     AC_CHECK_LIB(theora, theora_granule_time, [
2657       if test "${SYS}" = "mingw32"; then
2658         VLC_ADD_PLUGINS([theora])
2659       else
2660         VLC_ADD_BUILTINS([theora])
2661       fi
2662       theora_libs="-ltheora -logg"
2663       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
2664       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
2665 You also need to check that you have a libogg posterior to the 1.0 release.])],
2666       [-logg])
2667   ])
2668 fi
2669
2670 dnl
2671 dnl  dirac decoder plugin
2672 dnl
2673 AC_ARG_ENABLE(dirac,
2674 [  --enable-dirac          experimental dirac codec (default disabled)])
2675 if test "${enable_dirac}" = "yes"; then
2676   AC_CHECK_HEADERS(libdirac_decoder/dirac_parser.h, [
2677     AC_CHECK_LIB(dirac_decoder, dirac_decoder_init, [
2678       VLC_ADD_PLUGINS([dirac])
2679       VLC_ADD_LDFLAGS([dirac],[-ldirac_decoder -ldirac_encoder -lstdc++]) ],[
2680       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])],
2681       [-lstdc++])
2682   ])
2683 fi
2684
2685 dnl
2686 dnl  PNG decoder module
2687 dnl
2688 AC_ARG_ENABLE(png,
2689   [  --enable-png            PNG support (default enabled)])
2690 if test "${enable_png}" != "no"; then
2691 AC_CHECK_HEADERS(png.h, [
2692   LDFLAGS="${LDFLAGS_save} -lz"
2693   AC_CHECK_LIB(png, png_set_rows, [
2694     VLC_ADD_LDFLAGS([png],[-lpng -lz])
2695     VLC_ADD_PLUGINS([png])
2696     VLC_ADD_PLUGINS([osdmenu])
2697     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
2698     [],[-lz])
2699   LDFLAGS="${LDFLAGS_save}"
2700   ])
2701 fi
2702
2703 dnl
2704 dnl H264 encoder plugin (using libx264)
2705 dnl
2706 AC_ARG_ENABLE(x264,
2707   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
2708 if test "${enable_x264}" != "no"; then
2709   AC_ARG_WITH(x264-tree,
2710     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
2711   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
2712   then
2713     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
2714     if test -z "${real_x264_tree}"
2715     then
2716       dnl  The given directory can't be found
2717       AC_MSG_RESULT(no)
2718       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
2719     fi
2720     dnl  Use a custom libx264
2721     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
2722     if test -f ${real_x264_tree}/x264.h
2723     then
2724       AC_MSG_RESULT(yes)
2725       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
2726       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
2727       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2728       AC_CHECK_LIB(x264, x264_encoder_open, [
2729         VLC_ADD_BUILTINS([x264])
2730         VLC_ADD_LDFLAGS([x264],[-lx264])
2731       ],[
2732         AC_MSG_ERROR([the specified tree hasn't been compiled])
2733       ])
2734       LDFLAGS="${LDFLAGS_save}"
2735     else
2736       AC_MSG_RESULT(no)
2737       AC_MSG_ERROR([the specified tree doesn't have x264.h])
2738     fi
2739   else
2740     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264}"
2741     AC_CHECK_HEADERS(x264.h, [
2742       AC_CHECK_LIB(x264, x264_encoder_open, [
2743         VLC_ADD_PLUGINS([x264])
2744         VLC_ADD_LDFLAGS([x264],[-lx264])
2745       ],[
2746         if test "${enable_x264}" = "yes"; then
2747             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
2748           fi
2749       ])
2750     ])
2751     LDFLAGS="${LDFLAGS_save}"
2752   fi
2753 fi
2754
2755 dnl
2756 dnl  CMML plugin
2757 dnl
2758 AC_ARG_ENABLE(cmml,
2759   [  --enable-cmml           CMML support (default enabled)])
2760 if test "${enable_cmml}" != "no"
2761 then
2762   VLC_ADD_PLUGINS([cmml])
2763 fi
2764
2765
2766 dnl
2767 dnl  Video plugins
2768 dnl
2769
2770 AC_ARG_WITH(,[Video plugins:])
2771
2772 dnl Check for DPMS
2773 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
2774   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2775   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
2776     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
2777     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
2778       AC_MSG_RESULT(yes)
2779       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
2780                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
2781     ],[
2782       AC_MSG_RESULT(no)
2783     ])
2784   ],,[
2785     #include <X11/Xlib.h>
2786   ])
2787   CPPFLAGS="${CPPFLAGS_save}"
2788 fi
2789
2790 dnl
2791 dnl  X11 module
2792 dnl  (enabled by default except on win32)
2793 dnl
2794 AC_ARG_ENABLE(x11,
2795   [  --enable-x11            X11 support (default enabled)])
2796 if test "${enable_x11}" != "no" &&
2797   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2798    test "${enable_x11}" = "yes"); then
2799   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2800   AC_CHECK_HEADERS(X11/Xlib.h, [
2801     VLC_ADD_PLUGINS([x11])
2802     VLC_ADD_LDFLAGS([x11],[-L${x_libraries} -lX11 -lXext])
2803     VLC_ADD_CPPFLAGS([x11],[-I${x_includes}])
2804   ])
2805   CPPFLAGS="${CPPFLAGS_save}"
2806 fi
2807
2808 dnl
2809 dnl  XVideo module
2810 dnl  (enabled by default except on win32)
2811 dnl
2812 AC_ARG_ENABLE(xvideo,
2813   [  --enable-xvideo         XVideo support (default enabled)])
2814 if test "${enable_xvideo}" != "no" &&
2815   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2816    test "${enable_xvideo}" = "yes"); then
2817   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2818   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
2819     CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2820     AC_CHECK_LIB(Xv,XvPutImage,[
2821       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
2822       # test for libXv_pic.
2823       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
2824         VLC_ADD_PLUGINS([xvideo])
2825         VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2826         VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2827       else
2828         AC_CHECK_LIB(Xv_pic,XvPutImage,[
2829           VLC_ADD_PLUGINS([xvideo])
2830           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2831           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv_pic])
2832         ],[
2833           VLC_ADD_BUILTINS([xvideo])
2834           VLC_ADD_LDFLAGS([xvideo],[-L${x_libraries} -lX11 -lXext -lXv])
2835           VLC_ADD_CPPFLAGS([xvideo],[-I${x_includes}])
2836         ])
2837       fi
2838     ])
2839     CFLAGS="${CFLAGS_save}"
2840   ]
2841   CPPFLAGS="${CPPFLAGS_save}")
2842 fi
2843
2844 dnl
2845 dnl  GLX module
2846 dnl  (enabled by default except on win32)
2847 dnl
2848 AC_ARG_ENABLE(glx,
2849   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
2850 if test "${enable_glx}" != "no" &&
2851   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2852    test "${enable_glx}" = "yes"); then
2853   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2854   AC_CHECK_HEADERS(X11/Xlib.h, [
2855     AC_CHECK_HEADERS(GL/glx.h, [
2856       VLC_ADD_PLUGINS([glx])
2857       VLC_ADD_LDFLAGS([glx],[-L${x_libraries} -lX11 -lXext -lGL -lGLU])
2858       VLC_ADD_CPPFLAGS([glx],[-I${x_includes}])
2859   ]) ])
2860   CPPFLAGS="${CPPFLAGS_save}"
2861 fi
2862
2863 dnl
2864 dnl  Check for the Xinerama extension
2865 dnl
2866 if test "${enable_xvideo}" != "no" &&
2867   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
2868    test "${enable_xvideo}" = "yes"); then
2869   ac_cv_have_xinerama="no"
2870   CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
2871   CFLAGS="${CFLAGS_save} -L${x_libraries} -lX11 -lXext"
2872   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
2873     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
2874       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
2875       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
2876       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
2877       ac_cv_have_xinerama="yes"
2878     ],[
2879       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
2880         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
2881         VLC_ADD_LDFLAGS([x11],[-lXinerama])
2882         VLC_ADD_LDFLAGS([glx],[-lXinerama])
2883         ac_cv_have_xinerama="yes"
2884       ])
2885     ])
2886   ])
2887   if test "${ac_cv_have_xinerama}" = "yes"; then
2888     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
2889   fi
2890   CFLAGS="${CFLAGS_save}"
2891   CPPFLAGS="${CPPFLAGS_save}"
2892 fi
2893
2894 dnl
2895 dnl  OpenGL module
2896 dnl  (enabled by default except on beos)
2897 dnl
2898 AC_ARG_ENABLE(opengl,
2899   [  --enable-opengl         OpenGL support (default enabled)])
2900 if test "${enable_opengl}" != "no" &&
2901    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
2902   if test "${SYS}" != "darwin"; then
2903     AC_CHECK_HEADERS(GL/gl.h, [
2904       VLC_ADD_PLUGINS([opengl])
2905       if test "${SYS}" != "mingw32"; then
2906         VLC_ADD_LDFLAGS([opengl],[-L${x_libraries} -lGL -lGLU])
2907       else
2908         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
2909       fi
2910     ])
2911   else
2912     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
2913     VLC_ADD_PLUGINS([opengl])
2914     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
2915   fi
2916 fi
2917
2918 dnl
2919 dnl  SDL module
2920 dnl
2921 AC_ARG_ENABLE(sdl,
2922   [  --enable-sdl            SDL support (default enabled)])
2923 if test "${enable_sdl}" != "no"
2924 then
2925   SDL_PATH="${PATH}"
2926   AC_ARG_WITH(sdl-config-path,
2927     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
2928     [ if test "${with_sdl_config_path}" != "no"
2929       then
2930         SDL_PATH="${with_sdl_config_path}:${PATH}"
2931       fi ])
2932   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
2933   SDL_CONFIG="${SDL12_CONFIG}"
2934   SDL_HEADER="SDL12/SDL.h"
2935   SDL_IMAGE="SDL12/SDL_image.h"
2936   if test "${SDL_CONFIG}" = "no"
2937   then
2938     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
2939     SDL_CONFIG=${SDL11_CONFIG}
2940     SDL_HEADER="SDL11/SDL.h"
2941     SDL_IMAGE="SDL11/SDL_image.h"
2942   fi
2943   if test "${SDL_CONFIG}" = "no"
2944   then
2945     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
2946     SDL_HEADER="SDL/SDL.h"
2947     SDL_IMAGE="SDL/SDL_image.h"
2948   fi
2949   # check for cross-compiling
2950   SDL_PREFIX=
2951   AC_ARG_WITH(sdl-prefix,
2952     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
2953                                e.g use as:
2954                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
2955   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
2956   then
2957     SDL_PREFIX="--prefix=${with_sdl_prefix}"
2958   fi
2959   if test "${SDL_CONFIG}" != "no"
2960   then
2961     # SDL on Darwin is heavily patched and can only run SDL_image
2962     if test "${SYS}" != "darwin"; then
2963       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
2964     fi
2965     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
2966     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
2967     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
2968     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
2969       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
2970       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
2971           As a last resort we also test for SDL.h presence),
2972       [ AC_MSG_ERROR([The development package for SDL is not installed.
2973 Please install it and try again. Alternatively you can also configure with
2974 --disable-sdl.])
2975       ])])
2976     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
2977       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
2978       VLC_ADD_PLUGINS([sdl_image])
2979       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
2980       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
2981           As a last resort we also test for SDL_image.h presence),
2982       [ AC_MSG_WARN([The development package for SDL_image is not installed.
2983 You should install it alongside your SDL package.])
2984       ])])
2985     CPPFLAGS="${CPPFLAGS_save}"
2986     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
2987     then
2988       AC_MSG_ERROR([The development package for SDL is not installed.
2989 Please install it and try again. Alternatively you can also configure with
2990 --disable-sdl.])
2991     fi
2992   elif test "${enable_sdl}" =  "yes"
2993   then
2994     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
2995 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
2996     ])
2997   fi
2998 fi
2999
3000 dnl
3001 dnl  freetype module
3002 dnl
3003 AC_ARG_ENABLE(freetype,
3004   [  --enable-freetype       freetype support (default enabled)])
3005 AC_ARG_ENABLE(fribidi,
3006   [  --enable-fribidi        fribidi support (default enabled)])
3007 if test "${enable_freetype}" != "no"
3008 then
3009   FREETYPE_PATH="${PATH}"
3010   AC_ARG_WITH(freetype-config-path,
3011     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3012     [ if test "${with_freetype_config_path}" != "no"
3013       then
3014         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3015       fi ])
3016   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3017
3018   if test "${FREETYPE_CONFIG}" != "no"
3019   then
3020     VLC_ADD_PLUGINS([freetype])
3021     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3022     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3023     AC_CHECK_HEADERS(Carbon/Carbon.h,
3024       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3025   elif test "${enable_freetype}" =  "yes"
3026   then
3027     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3028 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3029     ])
3030   fi
3031
3032   dnl fribidi support
3033   if test "${enable_fribidi}" != "no"
3034   then
3035     FRIBIDI_PATH="${PATH}"
3036     AC_ARG_WITH(fribidi-config-path,
3037       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3038       [ if test "${with_fribidi_config_path}" != "no"
3039         then
3040           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3041         fi ])
3042     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3043
3044     if test "${FRIBIDI_CONFIG}" != "no"
3045     then
3046       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3047       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3048       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3049       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3050     fi
3051   fi
3052 fi
3053
3054 dnl
3055 dnl  libxml2 module
3056 dnl
3057 AC_ARG_ENABLE(libxml2,
3058   [  --enable-libxml2        libxml2 support (default enabled)])
3059 if test "${enable_libxml2}" != "no"
3060 then
3061   XML2_PATH="${PATH}"
3062   AC_ARG_WITH(xml2-config-path,
3063     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3064     [ if test "${with_xml2_config_path}" != "no"; then
3065         XML2_PATH="${with_xml2_config_path}:${PATH}"
3066       fi ])
3067   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3068   if test "${XML2_CONFIG}" != "no"; then
3069     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3070     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3071     dnl depends on the xmlTextReader extension
3072     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3073     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3074     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3075       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3076         VLC_ADD_PLUGINS([xml]) ],[
3077           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3078           if test "${enable_xml2}" = "yes"; then
3079             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3080           fi])
3081        ],[
3082       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3083       if test "${enable_xml2}" = "yes"; then
3084         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3085       fi])
3086     LDFLAGS="${LDFLAGS_save}"
3087     CPPFLAGS="${CPPFLAGS_save}"
3088   else
3089     if test "${enable_xml2}" = "yes"; then
3090       AC_MSG_ERROR([Could not find libxml2])
3091     fi
3092   fi
3093 fi
3094
3095 dnl
3096 dnl  SVG module
3097 dnl
3098 AC_ARG_ENABLE(svg,
3099   [  --enable-svg            SVG support (default disabled)])
3100 if test "${enable_svg}" == "yes"
3101 then
3102   PKG_CHECK_MODULES(SVG, 
3103         librsvg-2.0 >= 2.5.0,
3104         [
3105           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3106           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3107           VLC_ADD_PLUGINS([svg]) ],
3108         [AC_MSG_WARN(SVG library not found)])
3109 fi
3110
3111 dnl
3112 dnl  Qt Embedded module
3113 dnl  (disabled by default)
3114 dnl
3115 AC_ARG_ENABLE(qte,
3116   [  --enable-qte            QT Embedded support (default disabled)])
3117 if test "${enable_qte}" = "yes"
3118 then
3119   AC_ARG_WITH(qte,
3120   [    --with-qte=PATH       Qt Embedded headers and libraries])
3121   if test "${with_qte}" != "no" -a -n "${with_qte}"
3122   then
3123     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3124     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])
3125   else
3126     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3127     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3128   fi
3129   VLC_ADD_PLUGINS([qte])
3130   NEED_QTE_MAIN=yes
3131   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3132   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3133     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3134   ] )
3135   CPPFLAGS="${CPPFLAGS_save}"
3136 fi
3137
3138 dnl
3139 dnl  Qt Video output module
3140 dnl  (disabled by default)
3141 dnl
3142 dnl AC_ARG_ENABLE(qt_video,
3143 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3144 dnl if test "${enable_qt_video}" = "yes"
3145 dnl then
3146 dnl  VLC_ADD_PLUGINS([qt_video])
3147 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3148 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3149 dnl   AC_CHECK_LIB(qt-mt,main,[
3150 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3151 dnl  ],[
3152 dnl    AC_CHECK_LIB(qt,main,[
3153 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3154 dnl    ])
3155 dnl  ])
3156 dnl  NEED_QTE_MAIN=yes
3157 dnl  LDFLAGS="${LDFLAGS_save}"
3158 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3159 dnl fi
3160
3161 dnl
3162 dnl Roku HD1000 Video output module
3163 dnl
3164 AC_ARG_ENABLE(hd1000v,
3165   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3166 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3167   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3168    test "${enable_hd1000v}" = "yes"); then
3169   AC_LANG_PUSH([C++])
3170   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3171   [
3172     can_build_roku="yes"
3173   ],
3174   [
3175     can_build_roku="no"
3176     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3177   ])
3178   if test "$can_build_roku" = "yes"
3179   then
3180     VLC_ADD_PLUGINS([hd1000v])
3181     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3182   fi
3183   AC_LANG_POP([C++])
3184 fi
3185
3186 dnl
3187 dnl  Windows DirectX module
3188 dnl
3189 AC_ARG_ENABLE(directx,
3190   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3191 if test "${enable_directx}" != "no"
3192 then
3193   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3194   then
3195     AC_ARG_WITH(directx,
3196     [    --with-directx=PATH   Win32 DirectX headers])
3197     if test -z "${with_directx}"
3198     then
3199       AC_CHECK_HEADERS(ddraw.h,
3200       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3201         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3202         dnl to be moved when dependance is removed
3203         AC_CHECK_HEADERS(GL/gl.h, [
3204             VLC_ADD_PLUGINS([glwin32])
3205             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3206         ]) ])
3207     else
3208       AC_MSG_CHECKING(for directX headers in ${with_directx})
3209       if test -f ${with_directx}/ddraw.h
3210       then
3211         VLC_ADD_PLUGINS([vout_directx aout_directx])
3212         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3213         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3214         AC_MSG_RESULT(yes)
3215       else
3216         AC_MSG_RESULT(no)
3217         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3218       fi
3219     fi
3220   fi
3221 fi
3222
3223 dnl
3224 dnl  Linux framebuffer module
3225 dnl
3226 AC_ARG_ENABLE(fb,
3227   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3228     if test "${enable_fb}" != "no"
3229     then
3230       AC_CHECK_HEADERS(linux/fb.h, [
3231         VLC_ADD_PLUGINS([fb])
3232       ])
3233     fi
3234
3235 dnl
3236 dnl  Linux MGA module
3237 dnl
3238 AC_ARG_ENABLE(mga,
3239   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3240   [ if test "${enable_mga}" = "yes"
3241     then
3242       VLC_ADD_PLUGINS([mga])
3243     fi ])
3244
3245 dnl
3246 dnl  SVGAlib module
3247 dnl
3248 AC_ARG_ENABLE(svgalib,
3249   [  --enable-svgalib        SVGAlib support (default disabled)])
3250 if test "${enable_svgalib}" = "yes"
3251 then
3252   VLC_ADD_PLUGINS([svgalib])
3253   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3254 fi
3255
3256 dnl
3257 dnl  GGI module
3258 dnl
3259 AC_ARG_ENABLE(ggi,
3260   [  --enable-ggi            GGI support (default disabled)])
3261 if test "${enable_ggi}" = "yes"
3262 then
3263   VLC_ADD_PLUGINS([ggi])
3264   VLC_ADD_LDFLAGS([ggi],[-lggi])
3265   AC_ARG_WITH(ggi,
3266     [    --with-ggi=PATH       path to libggi],
3267     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3268       then
3269         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3270         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3271       fi ])
3272 fi
3273
3274 dnl
3275 dnl  Glide module
3276 dnl
3277 AC_ARG_ENABLE(glide,
3278   [  --enable-glide          Glide (3dfx) support (default disabled)])
3279 if test "${enable_glide}" = "yes"
3280 then
3281   VLC_ADD_PLUGINS([glide])
3282   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3283   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3284   AC_ARG_WITH(glide,
3285     [    --with-glide=PATH     path to libglide],
3286     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3287       then
3288         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3289         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3290       fi ])
3291 fi
3292
3293 dnl
3294 dnl  AA plugin
3295 dnl
3296 AC_ARG_ENABLE(aa,
3297   [  --enable-aa             aalib output (default disabled)])
3298 if test "${enable_aa}" = "yes"
3299 then
3300   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3301   if test "${have_aa}" = "true"
3302   then
3303     VLC_ADD_PLUGINS([aa])
3304     VLC_ADD_LDFLAGS([aa],[-laa])
3305   fi
3306 fi
3307
3308 dnl
3309 dnl  libcaca plugin
3310 dnl
3311 AC_ARG_ENABLE(caca,
3312   [  --enable-caca           libcaca output (default disabled)])
3313 if test "${enable_caca}" = "yes"
3314 then
3315   CACA_PATH="${PATH}"
3316   AC_ARG_WITH(caca-config-path,
3317     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3318     [ if test "${with_caca_config_path}" != "no"
3319       then
3320         CACA_PATH="${with_caca_config_path}:${PATH}"
3321       fi ])
3322   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3323   if test "${CACA_CONFIG}" != "no"
3324   then
3325     VLC_ADD_PLUGINS([caca])
3326     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3327     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3328   fi
3329 fi
3330
3331 dnl
3332 dnl  win32 GDI plugin
3333 dnl
3334 AC_ARG_ENABLE(wingdi,
3335   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3336 if test "${enable_wingdi}" != "no"; then
3337   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3338     VLC_ADD_PLUGINS([wingdi])
3339     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3340   fi
3341   if test "${SYS}" = "mingwce"; then
3342     VLC_ADD_PLUGINS([wingdi wingapi])
3343   fi
3344 fi
3345
3346 dnl
3347 dnl  Audio plugins
3348 dnl
3349
3350 AC_ARG_WITH(,[Audio plugins:])
3351
3352 dnl
3353 dnl  OSS /dev/dsp module (enabled by default except on win32)
3354 dnl
3355 AC_ARG_ENABLE(oss,
3356   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3357
3358 if test "${enable_oss}" != "no" &&
3359   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3360    test "${enable_oss}" = "yes")
3361 then
3362   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3363     VLC_ADD_PLUGINS([oss])
3364     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3365   ])
3366 fi
3367
3368 dnl
3369 dnl  Esound module
3370 dnl
3371 AC_ARG_ENABLE(esd,
3372   [  --enable-esd            Esound library support (default disabled)],
3373   [if test "${enable_esd}" = "yes"
3374    then
3375      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3376      if test "${ESD_CONFIG}" != "no"
3377      then
3378        VLC_ADD_PLUGINS([esd])
3379        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3380        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3381      fi
3382    fi])
3383
3384 dnl
3385 dnl  Portaudio module
3386 dnl
3387 AC_ARG_ENABLE(portaudio,
3388   [  --enable-portaudio      Portaudio library support (default disabled)],
3389   [if test "${enable_portaudio}" = "yes"
3390    then
3391      VLC_ADD_PLUGINS([portaudio])
3392      VLC_ADD_CXXFLAGS([portaudio],[])
3393      if test "${SYS}" = "mingw32"; then
3394         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3395      else
3396         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3397      fi
3398    fi])
3399
3400 dnl
3401 dnl  aRts module
3402 dnl
3403 AC_ARG_ENABLE(arts,
3404   [  --enable-arts           aRts sound server (default disabled)],
3405   [if test "${enable_arts}" = "yes"
3406    then
3407      AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3408      if test "${ARTS_CONFIG}" != "no"
3409      then
3410        VLC_ADD_PLUGINS([arts])
3411        VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3412        VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3413      fi
3414    fi])
3415
3416 dnl
3417 dnl  ALSA module
3418 dnl
3419 AC_ARG_ENABLE(alsa,
3420   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3421 if test "${enable_alsa}" != "no"
3422 then
3423   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3424   if test "${have_alsa}" = "true"
3425   then
3426     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
3427                     #define ALSA_PCM_NEW_SW_PARAMS_API
3428                     #include <alsa/asoundlib.h>],
3429        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
3430         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
3431     VLC_ADD_PLUGINS([alsa])
3432     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
3433   else
3434     if test "${enable_alsa}" = "yes"; then
3435       AC_MSG_ERROR([Could not find ALSA development headers])
3436     fi
3437   fi
3438 fi
3439
3440 dnl
3441 dnl  win32 waveOut plugin
3442 dnl
3443 AC_ARG_ENABLE(waveout,
3444   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
3445 if test "${enable_waveout}" != "no"; then
3446   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3447     VLC_ADD_PLUGINS([waveout])
3448     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
3449   fi
3450   if test "${SYS}" = "mingwce"; then
3451     VLC_ADD_PLUGINS([waveout])
3452   fi
3453 fi
3454
3455 dnl
3456 dnl  CoreAudio plugin
3457 dnl
3458 AC_ARG_ENABLE(coreaudio,
3459   [  --enable-coreaudio      CoreAudio module (default enabled on MacOS X)])
3460 if test "${enable_coreaudio}" != "no" &&
3461   (test "${SYS}" = "darwin" || test "${enable_coreaudio}" = "yes")
3462 then
3463   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
3464     [ VLC_ADD_BUILTINS([coreaudio auhal])
3465       VLC_ADD_LDFLAGS([coreaudio auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
3466     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
3467 fi
3468
3469 dnl
3470 dnl  Roku HD1000 audio
3471 dnl
3472 AC_ARG_ENABLE(hd1000a,
3473   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
3474 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
3475   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3476    test "${enable_hd1000a}" = "yes")
3477 then
3478   AC_LANG_PUSH([C++])
3479   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
3480     VLC_ADD_PLUGINS([hd1000a])
3481     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
3482   AC_LANG_POP([C++])
3483 fi
3484
3485 dnl
3486 dnl  CyberLink for C++ UPnP stack
3487 dnl
3488 AC_ARG_ENABLE(cyberlink,
3489   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
3490 if test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no"); then
3491   AC_ARG_WITH(cyberlink-tree,
3492     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
3493
3494   dnl
3495   dnl test for --with-cyberlink-tree
3496   dnl
3497   if test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""; then
3498     AC_LANG_PUSH(C++)
3499     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
3500     if test -z "${real_cyberlink_tree}"
3501     then
3502       dnl  The given directory can't be found
3503       AC_MSG_RESULT(no)
3504       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
3505     fi
3506     CXXFLAGS_save="${CXXFLAGS}"
3507     CXXFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
3508     CXXFLAGS="${CXXFLAGS} ${CXXFLAGS_cyberlink}"
3509     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
3510       [ VLC_ADD_CXXFLAGS([upnp], [${CXXFLAGS_cyberlink}])
3511         VLC_ADD_PLUGINS([upnp]) 
3512       ],[
3513         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
3514       ])
3515     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
3516     if test -f "${real_cyberlink_tree}/lib/unix/libclink.a"
3517     then
3518       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
3519       VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lexpat])
3520     else
3521       AC_MSG_RESULT(no)
3522        AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
3523     fi
3524     CXXFLAGS="${CXXFLAGS_save}"
3525     AC_LANG_POP([C++])
3526   fi
3527 fi
3528
3529 dnl
3530 dnl  Interface plugins
3531 dnl
3532
3533 AC_ARG_WITH(,[Interface plugins:])
3534
3535 dnl special case for BeOS
3536 if test "${SYS}" = "beos"
3537 then
3538     VLC_ADD_BUILTINS([beos])
3539 fi
3540
3541 dnl
3542 dnl Skins2 module
3543 dnl
3544 AC_ARG_ENABLE(skins2,
3545   [  --enable-skins2         Skins2 interface module (experimental)])
3546 if test "${enable_skins2}" = "yes" ||
3547   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
3548    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
3549
3550   dnl test for the required libraries
3551   skins2_missing_lib="no"
3552
3553   dnl freetype
3554   if test "${FREETYPE_CONFIG}" != "no"; then
3555     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
3556     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
3557   else
3558     skins2_missing_lib="yes"
3559     if test "${enable_skins2}" = "yes"; then
3560       AC_MSG_ERROR([Could not find freetype (required for skins2)])
3561     fi
3562   fi
3563
3564   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
3565     VLC_ADD_PLUGINS([skins2])
3566     ALIASES="${ALIASES} svlc"
3567     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
3568     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3569     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
3570
3571   else if test "${skins2_missing_lib}" = "no"; then
3572     VLC_ADD_PLUGINS([skins2])
3573     ALIASES="${ALIASES} svlc"
3574     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 -I${x_includes} -DX11_SKINS])
3575     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
3576     VLC_ADD_LDFLAGS([skins2],[-L${x_libraries} -lXext -lX11])
3577   fi fi
3578 fi
3579
3580
3581 dnl dnl
3582 dnl dnl  Gtk+ module
3583 dnl dnl
3584 dnl AC_ARG_ENABLE(gtk,
3585 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
3586 dnl if test "${enable_gtk}" != "no"
3587 dnl then
3588 dnl   GTK_PATH="${PATH}"
3589 dnl   AC_ARG_WITH(gtk-config-path,
3590 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
3591 dnl     [ if test "${with_gtk_config_path}" != "no"
3592 dnl       then
3593 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
3594 dnl       fi ])
3595 dnl   # look for gtk-config
3596 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
3597 dnl   GTK_CONFIG=${GTK12_CONFIG}
3598 dnl   if test "${GTK_CONFIG}" = "no"
3599 dnl   then
3600 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
3601 dnl   fi
3602 dnl   if test "${GTK_CONFIG}" != "no"
3603 dnl   then
3604 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
3605 dnl     then
3606 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.])
3607 dnl     fi
3608 dnl     if test "${SYS}" != "mingw32"; then
3609 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
3610 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
3611 dnl     else
3612 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
3613 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
3614 dnl     fi
3615 dnl     # now look for the gtk.h header
3616 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
3617 dnl     ac_cv_gtk_headers=yes
3618 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
3619 dnl       ac_cv_gtk_headers=no
3620 dnl       echo "Cannot find gtk development headers."
3621 dnl     ])
3622 dnl     if test "${ac_cv_gtk_headers}" = "yes"
3623 dnl     then
3624 dnl       VLC_ADD_PLUGINS([gtk])
3625 dnl       if test "${SYS}" != "mingw32"; then
3626 dnl         NEED_GTK_MAIN=yes
3627 dnl       fi
3628 dnl       ALIASES="${ALIASES} gvlc"
3629 dnl     fi
3630 dnl     CPPFLAGS="${CPPFLAGS_save}"
3631 dnl   fi
3632 dnl fi
3633 dnl 
3634 dnl
3635 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
3636 dnl
3637 dnl AC_ARG_ENABLE(gtk2,
3638 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
3639 dnl if test "${enable_gtk2}" = "yes"
3640 dnl then
3641 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3642 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3643 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3644 dnl   VLC_ADD_PLUGINS([gtk2])
3645 dnl   if test "${SYS}" != "mingw32"; then
3646 dnl     NEED_GTK2_MAIN=yes
3647 dnl   fi
3648 dnl fi
3649
3650 dnl
3651 dnl  PDA Gtk+2 module
3652 dnl
3653 AC_ARG_ENABLE(pda,
3654   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
3655 if test "${enable_pda}" = "yes"
3656 then
3657   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
3658   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
3659   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
3660   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
3661   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
3662   VLC_ADD_PLUGINS([pda])
3663   if test "${SYS}" != "mingw32"; then
3664     NEED_GTK2_MAIN=yes
3665   fi
3666 fi
3667
3668 dnl dnl
3669 dnl dnl  Gnome module
3670 dnl dnl
3671 dnl AC_ARG_ENABLE(gnome,
3672 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
3673 dnl   [if test "${enable_gnome}" = "yes"; then
3674 dnl     # look for gnome-config
3675 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
3676 dnl     if test -x ${GNOME_CONFIG}
3677 dnl     then
3678 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
3679 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
3680 dnl     fi
3681 dnl     # now look for the gnome.h header
3682 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
3683 dnl     AC_CHECK_HEADERS(gnome.h, [
3684 dnl       VLC_ADD_PLUGINS([gnome])
3685 dnl       NEED_GTK_MAIN=yes
3686 dnl       NEED_GNOME_MAIN=yes
3687 dnl       ALIASES="${ALIASES} gnome-vlc"
3688 dnl       dnl We need this because of some moronic gnomesupport.h flavours
3689 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
3690 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
3691 dnl         AC_MSG_RESULT(yes)
3692 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
3693 dnl                   Define if <gnome.h> defines strndup.)],[
3694 dnl         AC_MSG_RESULT(no)])
3695 dnl      ],[
3696 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
3697 dnl developement tools or remove the --enable-gnome option])
3698 dnl      ])
3699 dnl     CPPFLAGS="${CPPFLAGS_save}"
3700 dnl   fi])
3701
3702 dnl
3703 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
3704 dnl
3705 dnl AC_ARG_ENABLE(gnome2,
3706 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
3707 dnl if test "${enable_gnome2}" = "yes"
3708 dnl then
3709 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
3710 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
3711 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
3712 dnl   VLC_ADD_PLUGINS([gnome2])
3713 dnl   if test "${SYS}" != "mingw32"; then
3714 dnl     NEED_GNOME2_MAIN=yes
3715 dnl   fi
3716 dnl fi
3717
3718 dnl
3719 dnl  wxWidgets module
3720 dnl
3721 AC_ARG_ENABLE(wxwidgets,
3722   [  --enable-wxwidgets      wxWidgets support (default enabled)])
3723 if test "${enable_wxwindows}" 
3724 then
3725   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
3726 fi
3727
3728 if test "${enable_wxwindows}" = "no"
3729 then
3730   enable_wxwidgets="no"
3731 fi
3732 if test "${enable_wxwidgets}" != "no"
3733 then
3734   WXWIDGETS_PATH="${PATH}"
3735   AC_ARG_WITH(wx-config-path,
3736     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
3737     [ if test "${with_wx_config_path}" != "no"
3738       then
3739         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
3740       fi ])
3741   WXWIDGETS_NAME="wx-config"
3742   AC_ARG_WITH(wx-config,
3743     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
3744     [ if test "${with_wx_config}" != "no"
3745       then
3746         WXWIDGETS_NAME="${with_wx_config}"
3747       fi ])
3748   # look for wx-config
3749   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
3750   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
3751   then
3752     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
3753     then
3754       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.])
3755     fi
3756     AC_LANG_PUSH(C++)
3757     # Turn this error:
3758     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
3759     # into a warning. However better would be to fix playlist.cpp
3760     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
3761         [ac_cv_cxx_fpermissive],
3762         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
3763          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
3764                         ac_cv_cxx_fpermissive=no)])
3765     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
3766       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
3767     fi
3768     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
3769     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
3770     if test "$have_libcdio" = "yes"
3771     then 
3772       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
3773       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
3774     else 
3775       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
3776     fi
3777
3778     if test "$have_libvcdinfo" = "yes"
3779     then 
3780       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
3781       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
3782     else 
3783       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
3784     fi
3785
3786     # now look for the wxprec.h header
3787     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
3788     ac_cv_wx_headers=yes
3789     AC_CHECK_HEADERS(wx/wxprec.h, , [
3790       ac_cv_wx_headers=no
3791       echo "Cannot find wxWidgets development headers."
3792     ])
3793     if test "${ac_cv_wx_headers}" = "yes"
3794     then
3795       VLC_ADD_PLUGINS([wxwidgets])
3796       ALIASES="${ALIASES} wxvlc"
3797     fi
3798     CPPFLAGS="${CPPFLAGS_save}"
3799     AC_LANG_POP(C++)
3800   fi
3801 fi
3802
3803 dnl
3804 dnl  WinCE GUI module
3805 dnl
3806 if test "${SYS}" = "mingwce"; then
3807   VLC_ADD_BUILTINS([wince])
3808   VLC_ADD_CXXFLAGS([wince],[])
3809   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
3810   dnl Gross hack
3811   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3812 elif test "${SYS}" = "mingw32"; then
3813   VLC_ADD_CXXFLAGS([wince],[])
3814   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
3815   dnl Gross hack
3816   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3817 fi
3818
3819 dnl
3820 dnl Simple test for skins2 dependency
3821 dnl
3822 if test "${enable_skins2}" != "no"
3823 then
3824   if test "${WX_CONFIG}" = "no"
3825   then
3826     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.])
3827   fi
3828 fi
3829
3830 dnl dnl
3831 dnl dnl  Qt module
3832 dnl dnl
3833 dnl AC_ARG_ENABLE(qt,
3834 dnl   [  --enable-qt             Qt interface support (default disabled)],
3835 dnl   [if test "${enable_qt}" = "yes"; then
3836 dnl      VLC_ADD_PLUGINS([qt])
3837 dnl      ALIASES="${ALIASES} qvlc"
3838 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
3839 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
3840 dnl      AC_CHECK_LIB(qt-mt,main,[
3841 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
3842 dnl      ],[
3843 dnl        AC_CHECK_LIB(qt,main,[
3844 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
3845 dnl        ])
3846 dnl      ])
3847 dnl      LDFLAGS="${LDFLAGS_save}"
3848 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3849 dnl      if test -x ${QTDIR}/bin/moc
3850 dnl      then
3851 dnl        MOC=${QTDIR}/bin/moc
3852 dnl      else
3853 dnl        MOC=moc
3854 dnl      fi
3855 dnl    fi])
3856 dnl 
3857 dnl dnl
3858 dnl dnl  KDE module
3859 dnl dnl
3860 dnl AC_ARG_ENABLE(kde,
3861 dnl   [  --enable-kde            KDE interface support (default disabled)],
3862 dnl   [if test "${enable_kde}" = "yes"; then
3863 dnl      VLC_ADD_PLUGINS([kde])
3864 dnl      ALIASES="${ALIASES} kvlc"
3865 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
3866 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
3867 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3868 dnl      AC_CHECK_LIB(kfile,main,[
3869 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
3870 dnl      ])
3871 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3872 dnl      AC_CHECK_LIB(kdeui,main,[
3873 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
3874 dnl      ])
3875 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3876 dnl      AC_CHECK_LIB(kio,main,[
3877 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
3878 dnl      ])
3879 dnl      LDFLAGS="${LDFLAGS_save}"
3880 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
3881 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
3882 dnl      if test -x ${QTDIR}/bin/moc
3883 dnl      then
3884 dnl        MOC=${QTDIR}/bin/moc
3885 dnl      else
3886 dnl        MOC=moc
3887 dnl      fi
3888 dnl    fi])
3889
3890 dnl
3891 dnl  Opie QT embedded module
3892 dnl
3893 AC_ARG_ENABLE(opie,
3894   [  --enable-opie           Qt embedded interface support (default disabled)],
3895   [if test "${enable_opie}" = "yes"; then
3896      AC_ARG_WITH(qte,
3897      [    --with-qte=PATH       Qt Embedded headers and libraries])
3898      if test "${with_qte}" != "no" -a -n "${with_qte}"
3899      then
3900        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3901        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])
3902      else
3903        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
3904        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
3905      fi
3906      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3907      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3908        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3909      ] )
3910      CPPFLAGS="${CPPFLAGS_save}"
3911
3912      VLC_ADD_PLUGINS([opie])
3913      NEED_QTE_MAIN=yes
3914      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
3915      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
3916      if test "${with_qte}" != "no" -a -n "${with_qte}"
3917      then
3918        MOC=${with_qte}/bin/moc
3919      else
3920        MOC=${QTDIR}/bin/moc
3921      fi
3922    fi])
3923
3924 dnl
3925 dnl  MacOS X module
3926 dnl
3927 AC_ARG_ENABLE(macosx,
3928   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
3929   [if test "${enable_macosx}" = "yes"
3930    then
3931      VLC_ADD_BUILTINS([macosx])
3932      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3933    fi],
3934   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
3935      VLC_ADD_BUILTINS([macosx])
3936      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3937    )])
3938
3939 dnl
3940 dnl  QNX RTOS module
3941 dnl
3942 AC_ARG_ENABLE(qnx,
3943   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
3944     if test "${enable_qnx}" != "no"
3945     then
3946       AC_CHECK_HEADERS(Ph.h, [
3947         VLC_ADD_PLUGINS([qnx])
3948         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
3949       ])
3950     fi
3951
3952 dnl
3953 dnl  ncurses module
3954 dnl
3955 AC_ARG_ENABLE(ncurses,
3956   [  --enable-ncurses        ncurses interface support (default disabled)],
3957   [if test "${enable_ncurses}" = "yes"; then
3958      VLC_ADD_PLUGINS([ncurses])
3959      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
3960    fi])
3961
3962 dnl
3963 dnl  XOSD plugin
3964 dnl
3965 AC_ARG_ENABLE(xosd,
3966   [  --enable-xosd           xosd interface support (default disabled)])
3967 if test "${enable_xosd}" = "yes"
3968 then
3969   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
3970   AC_CHECK_LIB(xosd,xosd_set_offset,
3971       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
3972     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
3973         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
3974       AC_TRY_COMPILE([#include <xosd.h>],
3975          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
3976           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
3977   if test "${have_xosd}" = "true"
3978   then
3979     VLC_ADD_PLUGINS([xosd])
3980     VLC_ADD_LDFLAGS([xosd],[-lxosd])
3981   fi
3982 fi
3983
3984 dnl
3985 dnl Visualisation plugin
3986 dnl
3987 AC_ARG_ENABLE(visual,
3988   [  --enable-visual         visualisation plugin (default enabled)])
3989 if test "${enable_visual}" != "no"
3990 then
3991     VLC_ADD_PLUGINS([visual])
3992 fi
3993
3994 dnl
3995 dnl OpenGL visualisation plugin
3996 dnl
3997 AC_ARG_ENABLE(galaktos,
3998   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
3999 if test "${enable_galaktos}" = "yes"
4000 then
4001   AC_CHECK_HEADERS(GL/gl.h, [
4002     VLC_ADD_PLUGINS([galaktos])
4003     if test "${SYS}" != "mingw32"; then
4004       VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
4005     else
4006       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4007     fi
4008   ])
4009 fi
4010
4011 dnl
4012 dnl  goom visualization plugin
4013 dnl
4014 AC_ARG_ENABLE(goom,
4015 [  --enable-goom           goom visualisation plugin (default disabled)])
4016 if test "${enable_goom}" = "yes"
4017 then
4018   AC_ARG_WITH(goom-tree,
4019     [    --with-goom-tree=PATH goom tree for static linking (required)])
4020
4021   dnl
4022   dnl test for --with-goom-tree
4023   dnl
4024   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4025     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4026     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4027     if test -z "${real_goom_tree}"; then
4028       dnl  The given directory can't be found
4029       AC_MSG_RESULT(no)
4030       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4031     fi
4032     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4033       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4034       VLC_ADD_BUILTINS([goom])
4035       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4036       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4037     else
4038       dnl  The given libgoom2 wasn't built, try to look for the old goom
4039       AC_MSG_RESULT(no)
4040       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4041       if test -f "${real_goom_tree}/libgoom.a"; then
4042         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4043         VLC_ADD_BUILTINS([goom])
4044         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
4045         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4046       else
4047         dnl  The given libgoom wasn't built
4048         AC_MSG_RESULT(no)
4049         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4050       fi
4051     fi
4052   else
4053     AC_CHECK_HEADERS(goom/goom.h, [
4054       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
4055       AC_CHECK_LIB(goom2, goom_init, [
4056         VLC_ADD_PLUGINS([goom])
4057         VLC_ADD_LDFLAGS([goom],[-lgoom2])
4058       ],[
4059         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4060       ])
4061       LDFLAGS="${LDFLAGS_save}"
4062     ])
4063   fi
4064 fi
4065
4066 dnl
4067 dnl  SLP access plugin
4068 dnl
4069 AC_ARG_ENABLE(slp,
4070   [  --enable-slp            SLP service discovery support (default disabled)])
4071 if test "${enable_slp}" = "yes"
4072 then
4073   AC_ARG_WITH(slp,
4074   [    --with-slp=PATH       libslp headers and libraries])
4075   if test -z "${with_slp}"
4076   then
4077     AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
4078     if test "${have_slp}" = "true"
4079     then
4080       VLC_ADD_PLUGINS([slp])
4081       VLC_ADD_LDFLAGS([slp],[-lslp])
4082       VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
4083     fi
4084   else
4085     AC_MSG_CHECKING(for slp headers in ${with_slp})
4086     if test -f ${with_slp}/slp.h
4087     then
4088       dnl  Use ${with_slp}/libslp/slp.h
4089       AC_MSG_RESULT(yes)
4090       VLC_ADD_PLUGINS([slp])
4091       VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
4092       VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
4093       VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
4094       AC_DEFINE(HAVE_SLP_H)
4095     else
4096       dnl  No libslp could be found, sorry
4097       AC_MSG_RESULT(no)
4098       AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
4099     fi
4100   fi
4101 fi
4102
4103 dnl
4104 dnl DAAP access plugin and services discovery 
4105 dnl
4106 AC_ARG_ENABLE(daap,
4107   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4108 if test "$enable_daap" != "no"
4109 then
4110    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4111       [ VLC_ADD_PLUGINS([daap])
4112        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4113        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4114       [AC_MSG_WARN(DAAP library not found)])
4115 fi
4116
4117 dnl
4118 dnl  Lirc plugin
4119 dnl
4120 AC_ARG_ENABLE(lirc,
4121   [  --enable-lirc           lirc support (default disabled)])
4122 if test "${enable_lirc}" = "yes"
4123 then
4124   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4125   if test "${have_lirc}" = "true"
4126   then
4127     VLC_ADD_PLUGINS([lirc])
4128     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4129   fi
4130 fi
4131
4132 dnl 
4133 dnl  Joystick plugin
4134 dnl
4135 AC_ARG_ENABLE(joystick,
4136   [  --enable-joystick       joystick control (default enabled)])
4137 if test "${enable_joystick}" = "yes"; then
4138   AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
4139 fi
4140
4141 dnl
4142 dnl corba (ORBit) plugin
4143 dnl
4144 dnl Default: do not enable corba
4145 enablecorba=false
4146 AC_ARG_ENABLE(corba,
4147   [  --enable-corba          corba interface support (default disabled)])
4148 if test "${enable_corba}" = "yes"; then
4149       GLIB_VERSION=2.3.2
4150       PKG_CHECK_MODULES(CORBA, 
4151         ORBit-2.0 >= 2.8.0 \
4152         glib-2.0 >= $GLIB_VERSION \
4153         gobject-2.0 >= $GLIB_VERSION \
4154         gthread-2.0 >= $GLIB_VERSION,
4155         [
4156           enablecorba=true
4157           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4158           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4159           VLC_ADD_PLUGINS([corba snapshot]) ],
4160         [ enablecorba=false
4161           AC_MSG_WARN(corba library not found) ])
4162 fi
4163 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4164
4165 AC_ARG_WITH(,[Misc options:])
4166
4167 dnl
4168 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4169 dnl
4170 dnl  We give the user the opportunity to specify
4171 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4172 dnl
4173 AC_ARG_WITH(words,
4174   [    --with-words=endianness set endianness (big or little)])
4175   case "${with_words}" in
4176     big)
4177       ac_cv_c_bigendian=yes
4178       ;;
4179     little)
4180       ac_cv_c_bigendian=no
4181       ;;
4182     *)
4183       dnl  Try to guess endianness by matching patterns on a compiled
4184       dnl  binary, by looking for an ASCII or EBCDIC string
4185       AC_CACHE_CHECK([whether the byte order is big-endian],
4186         [ac_cv_c_bigendian],
4187         [ac_cv_c_bigendian="unknown"
4188         [cat >conftest.c <<EOF
4189         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4190         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4191         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4192         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4193         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4194         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4195         int main(void) { _a(); _e(); return 0; }
4196 EOF
4197         ]
4198         if test -f conftest.c
4199         then
4200           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4201               && test -f conftest.o
4202           then
4203             if test "`strings conftest.o | grep BIGenDianSyS`"
4204             then
4205               ac_cv_c_bigendian="yes"
4206             fi
4207             if test "`strings conftest.o | grep LiTTleEnDian`"
4208             then
4209               ac_cv_c_bigendian="no"
4210             fi
4211           fi
4212         fi
4213       ])
4214       if test "${ac_cv_c_bigendian}" = "unknown"
4215       then
4216         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4217       fi
4218       ;;
4219   esac
4220 dnl  Now we know what to use for endianness, just put it in the header
4221 if test "${ac_cv_c_bigendian}" = "yes"
4222 then
4223   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4224 fi
4225
4226 dnl
4227 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4228 dnl
4229 loader=false
4230 AC_ARG_ENABLE(loader,
4231   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4232 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4233 AS_IF([test "${enable_loader}" = "yes"],
4234   [ VLC_ADD_PLUGINS([dmo quicktime])
4235     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4236     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4237     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4238     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4239   ])
4240
4241 dnl
4242 dnl  Microsoft ActiveX support
4243 dnl
4244 activex=false
4245 AC_ARG_ENABLE(activex,
4246   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4247 if test "${enable_activex}" != "no"
4248 then
4249   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4250   then
4251     AC_CHECK_PROGS(MIDL, [midl widl], no)
4252     AC_CHECK_HEADERS(ole2.h olectl.h,
4253       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4254         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4255         AC_CHECK_HEADERS(objsafe.h,
4256           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
4257         )
4258         activex=:
4259       ],
4260       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4261     )
4262   fi
4263 fi
4264 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4265 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4266 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4267
4268 dnl
4269 dnl  Mozilla plugin
4270 dnl
4271 mozilla=false
4272 AC_ARG_ENABLE(mozilla,
4273   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4274 if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
4275 then
4276   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4277   if test "${MOZILLA_CONFIG}" = "no"
4278   then
4279     AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4280   else
4281     if test "${SYS}" != "mingw32"; then
4282       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
4283       AC_CHECK_LIB(Xt,XtStrings,
4284        [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
4285        [],
4286        [[-L${x_libraries} -lX11 -lSM -lICE]
4287       ])
4288       LDFLAGS="${LDFLAGS_save}"
4289     fi
4290     mozilla=:
4291     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4292     VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4293     VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4294     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4295     AC_CHECK_HEADERS(mozilla-config.h)
4296     CPPFLAGS="${CPPFLAGS_save}"
4297   fi
4298
4299 dnl special case for mingw32
4300 elif test "${enable_mozilla}" = "yes"
4301 then
4302   AC_CHECK_TOOL(CYGPATH, cygpath, "")
4303   AC_ARG_WITH(mozilla-sdk-path,
4304     [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
4305     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4306     CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
4307     AC_CHECK_HEADERS(mozilla-config.h, [
4308       mozilla=:
4309       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])
4310       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])
4311       XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
4312       if test -n "${CYGPATH}"; then
4313         XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
4314         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4315         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
4316       fi ])
4317     CPPFLAGS="${CPPFLAGS_save}"
4318   ])
4319 fi
4320
4321 dnl Not necessarily in ${PATH}
4322 if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
4323   XPIDL="/usr/lib/mozilla/xpidl"
4324 fi
4325 AS_IF([test "${MOZILLA_CONFIG}"], [
4326   if test -z "${XPIDL_INCL}"; then
4327     XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
4328     `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
4329   fi
4330 ])
4331 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4332
4333 dnl
4334 dnl  test plugins
4335 dnl
4336 AC_ARG_ENABLE(testsuite,
4337   [  --enable-testsuite      build test modules (default disabled)])
4338 if test "${enable_testsuite}" = "yes"
4339 then
4340   TESTS="test1 test2 test3 test4"
4341
4342   dnl  we define those so that bootstrap sets the right linker
4343   VLC_ADD_CXXFLAGS([test2],[])
4344   VLC_ADD_OBJCFLAGS([test3],[])
4345   dnl  this one is needed until automake knows what to do
4346   VLC_ADD_LDFLAGS([test3],[-lobjc])
4347
4348   VLC_ADD_PLUGINS([${TESTS}])
4349   #VLC_ADD_BUILTINS([${TESTS}])
4350 fi
4351
4352 dnl
4353 dnl  gtk_main plugin
4354 dnl
4355 if test "${NEED_GTK_MAIN}" != "no"
4356 then
4357     VLC_ADD_PLUGINS([gtk_main])
4358     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4359     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4360 fi
4361
4362 if test "${NEED_GNOME_MAIN}" != "no"
4363 then
4364     VLC_ADD_PLUGINS([gnome_main])
4365     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4366     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4367 fi
4368
4369 if test "${NEED_GTK2_MAIN}" != "no"
4370 then
4371     VLC_ADD_PLUGINS([gtk2_main])
4372     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4373     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4374     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4375     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4376 fi
4377
4378 if test "${NEED_GNOME2_MAIN}" != "no"
4379 then
4380     VLC_ADD_PLUGINS([gnome2_main])
4381     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
4382     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
4383 fi
4384
4385 dnl
4386 dnl  qte_main plugin
4387 dnl
4388 if test "${NEED_QTE_MAIN}" != "no"
4389 then
4390     VLC_ADD_PLUGINS([qte_main])
4391     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4392     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4393     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4394 fi
4395
4396
4397 dnl
4398 dnl  Plugin and builtin checks
4399 dnl
4400 builtin_support=false
4401 plugin_support=:
4402
4403 dnl Support for plugins - this must be AT THE END
4404 AC_ARG_ENABLE(plugins,
4405   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
4406   [if test "${enable_plugins}" = "no"
4407    then
4408      plugin_support=false
4409    fi])
4410
4411 dnl Automagically disable plugins if there is no system support for
4412 dnl dynamically loadable files (.so, .dll, .dylib).
4413 dnl don't forget vlc-win32 still can load .dll as plugins
4414 if test "${ac_cv_have_plugins}" = "no"
4415 then
4416   echo "*** Your system doesn't have plugin support. All plugins will be built"
4417   echo "statically."
4418   plugin_support=false
4419 fi
4420
4421 dnl Export automake variables
4422 if ${plugin_support}
4423 then
4424   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
4425   for plugin in `echo ${PLUGINS}`
4426   do
4427     eval "${plugin}_p=yes"
4428   done
4429 else
4430   VLC_ADD_BUILTINS([${PLUGINS}])
4431   PLUGINS=""
4432 fi
4433 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
4434
4435 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
4436 then
4437   builtin_support=:
4438   for builtin in `echo ${BUILTINS}`
4439   do
4440     eval "${builtin}_b=yes"
4441   done
4442 fi]
4443 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
4444
4445 dnl Import conditional variables generated by bootstrap
4446 VLC_CONDITIONALS
4447
4448 dnl
4449 dnl  Stuff used by the program
4450 dnl
4451 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
4452 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 the VideoLAN team", [Copyright string])
4453 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4454 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
4455 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
4456 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
4457 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
4458
4459 dnl Old definitions for version-dependant plugins
4460 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
4461 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
4462 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
4463
4464 dnl New definitions with value matching 0.8.2 release
4465 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__0_8_2", [String suffix for module functions])
4466 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, 0_8_2, [Symbol suffix for module functions])
4467
4468 dnl Version number for ActiveX INF
4469 VERSION32="`echo -n ${VERSION} | sed -e 's/@<:@a-z\-@:>@//g' | sed -e 'y/./,/'`"
4470 VERSION32="`echo -n ${VERSION32}',0'`"
4471 AC_SUBST(VERSION32)
4472
4473 DATA_PATH="${ac_tool_prefix}/share/vlc"
4474 AC_SUBST(DATA_PATH)
4475 PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
4476 AC_SUBST(PLUGIN_PATH)
4477
4478 dnl
4479 dnl  Handle substvars that use $(top_srcdir)
4480 dnl
4481 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4482 AC_SUBST(VLC_CONFIG)
4483 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
4484
4485 dnl
4486 dnl  Restore *FLAGS
4487 dnl
4488 VLC_RESTORE_FLAGS
4489
4490 dnl
4491 dnl  Create the vlc-config script
4492 dnl
4493 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
4494 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
4495
4496 dnl
4497 dnl  Configuration is finished
4498 dnl
4499 AC_SUBST(SYS)
4500 AC_SUBST(ARCH)
4501 AC_SUBST(ALIASES)
4502 AC_SUBST(ASM)
4503 AC_SUBST(MOC)
4504 AC_SUBST(WINDRES)
4505 AC_SUBST(XPIDL)
4506 AC_SUBST(XPIDL_INCL)
4507 AC_SUBST(LIBEXT)
4508 AC_SUBST(INCLUDES)
4509 AC_SUBST(ALL_LINGUAS)
4510
4511 dnl Import substitutions generated by bootstrap
4512 VLC_SUBSTS
4513
4514 dnl Create vlc-config.in
4515 VLC_OUTPUT_VLC_CONFIG_IN
4516
4517 AC_CONFIG_FILES([
4518   Makefile
4519   activex/Makefile
4520   activex/axvlc.inf
4521   debian/Makefile
4522   doc/Makefile
4523   intl/Makefile
4524   ipkg/Makefile
4525   lib/Makefile
4526   loader/Makefile
4527   modules/Makefile
4528   mozilla/Makefile
4529   m4/Makefile
4530   po/Makefile.in
4531   share/Makefile
4532   src/Makefile
4533 ])
4534
4535 AC_CONFIG_FILES([
4536   modules/access/Makefile
4537   modules/access/dshow/Makefile
4538   modules/access/dvb/Makefile
4539   modules/access/mms/Makefile
4540   modules/access/pvr/Makefile
4541   modules/access/v4l/Makefile
4542   modules/access/cdda/Makefile
4543   modules/access/vcd/Makefile
4544   modules/access/vcdx/Makefile
4545   modules/access/screen/Makefile
4546   modules/access_filter/Makefile
4547   modules/access_output/Makefile
4548   modules/audio_filter/Makefile
4549   modules/audio_filter/channel_mixer/Makefile
4550   modules/audio_filter/converter/Makefile
4551   modules/audio_filter/resampler/Makefile
4552   modules/audio_mixer/Makefile
4553   modules/audio_output/Makefile
4554   modules/codec/Makefile
4555   modules/codec/cmml/Makefile
4556   modules/codec/dmo/Makefile
4557   modules/codec/ffmpeg/Makefile
4558   modules/codec/spudec/Makefile
4559   modules/control/Makefile
4560   modules/control/corba/Makefile
4561   modules/demux/Makefile
4562   modules/demux/asf/Makefile
4563   modules/demux/avi/Makefile
4564   modules/demux/mp4/Makefile
4565   modules/demux/mpeg/Makefile
4566   modules/demux/playlist/Makefile
4567   modules/demux/util/Makefile
4568   modules/gui/Makefile
4569   modules/gui/beos/Makefile
4570   modules/gui/pda/Makefile
4571   modules/gui/gtk/Makefile
4572   modules/gui/gtk2/Makefile
4573   modules/gui/kde/Makefile
4574   modules/gui/macosx/Makefile
4575   modules/gui/qnx/Makefile
4576   modules/gui/qt/Makefile
4577   modules/gui/skins2/Makefile
4578   modules/gui/wxwidgets/Makefile
4579   modules/gui/wince/Makefile
4580   modules/misc/Makefile
4581   modules/misc/dummy/Makefile
4582   modules/misc/memcpy/Makefile
4583   modules/misc/network/Makefile
4584   modules/misc/testsuite/Makefile
4585   modules/misc/playlist/Makefile
4586   modules/misc/xml/Makefile
4587   modules/mux/Makefile
4588   modules/mux/mpeg/Makefile
4589   modules/packetizer/Makefile
4590   modules/services_discovery/Makefile
4591   modules/stream_out/Makefile
4592   modules/stream_out/transrate/Makefile
4593   modules/video_chroma/Makefile
4594   modules/video_filter/Makefile
4595   modules/video_filter/swscale/Makefile
4596   modules/video_output/Makefile
4597   modules/video_output/directx/Makefile
4598   modules/video_output/qte/Makefile
4599   modules/video_output/x11/Makefile
4600   modules/visualization/Makefile
4601   modules/visualization/visual/Makefile
4602   modules/visualization/galaktos/Makefile
4603 ])
4604
4605 dnl Generate makefiles
4606 AC_OUTPUT
4607
4608 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4609 # not provided with the source
4610 ${SHELL} ./config.status --file=vlc-config
4611 chmod 0755 vlc-config
4612
4613 dnl echo "Enabled builtin modules :"
4614 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
4615
4616 dnl echo "Enabled plugin modules :"
4617 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
4618
4619 printf "
4620 vlc configuration
4621 --------------------
4622 vlc version           : ${VERSION}
4623 system                : ${SYS}
4624 architecture          : ${ARCH}
4625 build flavour         : "
4626 test "${enable_debug}" = "yes" && printf "debug "
4627 test "${enable_cprof}" = "yes" && printf "cprof "
4628 test "${enable_gprof}" = "yes" && printf "gprof "
4629 test "${enable_optimizations}" = "yes" && printf "optim "
4630 test "${enable_release}" = "yes" && printf "release " || printf "devel "
4631 echo "
4632 vlc aliases           :${ALIASES}
4633
4634 You can tune the compiler flags in vlc-config.
4635 To build vlc and its plugins, type \`make'.
4636 "
4637