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