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