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