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