]> git.sesse.net Git - vlc/blob - configure.ac
cdda/info.c: changes for libcddb 1.1.0 API
[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     PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.71,
3649      [
3650       AC_DEFINE(HAVE_LIBCDIO, [], [Define for the CD-DA plugin using libcdio])
3651       VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags` $LIBCDIO_CFLAGS])
3652       VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`] $LIBCDIO_LIBS)], 
3653      [AC_MSG_WARN(libcdio library not found - Probe disc disabled)
3654       VLC_ADD_CXXFLAGS([wxwindows],[`${WX_CONFIG} --cxxflags`])
3655       VLC_ADD_LDFLAGS([wxwindows],[`${WX_CONFIG} --libs`])
3656       HAVE_LIBCDIO=no])
3657
3658     # now look for the wxprec.h header
3659     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwindows}"
3660     ac_cv_wx_headers=yes
3661     AC_CHECK_HEADERS(wx/wxprec.h, , [
3662       ac_cv_wx_headers=no
3663       echo "Cannot find wxWindows development headers."
3664     ])
3665     if test "${ac_cv_wx_headers}" = "yes"
3666     then
3667       VLC_ADD_PLUGINS([wxwindows])
3668       ALIASES="${ALIASES} wxvlc"
3669     fi
3670     CPPFLAGS="${CPPFLAGS_save}"
3671     AC_LANG_POP(C++)
3672   fi
3673 fi
3674
3675 dnl
3676 dnl  WinCE GUI module
3677 dnl
3678 if test "${SYS}" = "mingwce"; then
3679   VLC_ADD_BUILTINS([wince])
3680   VLC_ADD_CXXFLAGS([wince],[])
3681   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
3682   dnl Gross hack
3683   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3684 elif test "${SYS}" = "mingw32"; then
3685   VLC_ADD_CXXFLAGS([wince],[])
3686   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
3687   dnl Gross hack
3688   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
3689 fi
3690
3691 dnl
3692 dnl Simple test for skins2 dependency
3693 dnl
3694 if test "${enable_skins2}" != "no"
3695 then
3696   if test "${WX_CONFIG}" = "no"
3697   then
3698     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.])
3699   fi
3700 fi
3701
3702 dnl dnl
3703 dnl dnl  Qt module
3704 dnl dnl
3705 dnl AC_ARG_ENABLE(qt,
3706 dnl   [  --enable-qt             Qt interface support (default disabled)],
3707 dnl   [if test "${enable_qt}" = "yes"; then
3708 dnl      VLC_ADD_PLUGINS([qt])
3709 dnl      ALIASES="${ALIASES} qvlc"
3710 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
3711 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
3712 dnl      AC_CHECK_LIB(qt-mt,main,[
3713 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
3714 dnl      ],[
3715 dnl        AC_CHECK_LIB(qt,main,[
3716 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
3717 dnl        ])
3718 dnl      ])
3719 dnl      LDFLAGS="${LDFLAGS_save}"
3720 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3721 dnl      if test -x ${QTDIR}/bin/moc
3722 dnl      then
3723 dnl        MOC=${QTDIR}/bin/moc
3724 dnl      else
3725 dnl        MOC=moc
3726 dnl      fi
3727 dnl    fi])
3728 dnl 
3729 dnl dnl
3730 dnl dnl  KDE module
3731 dnl dnl
3732 dnl AC_ARG_ENABLE(kde,
3733 dnl   [  --enable-kde            KDE interface support (default disabled)],
3734 dnl   [if test "${enable_kde}" = "yes"; then
3735 dnl      VLC_ADD_PLUGINS([kde])
3736 dnl      ALIASES="${ALIASES} kvlc"
3737 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
3738 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
3739 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3740 dnl      AC_CHECK_LIB(kfile,main,[
3741 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
3742 dnl      ])
3743 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3744 dnl      AC_CHECK_LIB(kdeui,main,[
3745 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
3746 dnl      ])
3747 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
3748 dnl      AC_CHECK_LIB(kio,main,[
3749 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
3750 dnl      ])
3751 dnl      LDFLAGS="${LDFLAGS_save}"
3752 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
3753 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
3754 dnl      if test -x ${QTDIR}/bin/moc
3755 dnl      then
3756 dnl        MOC=${QTDIR}/bin/moc
3757 dnl      else
3758 dnl        MOC=moc
3759 dnl      fi
3760 dnl    fi])
3761
3762 dnl
3763 dnl  Opie QT embedded module
3764 dnl
3765 AC_ARG_ENABLE(opie,
3766   [  --enable-opie           Qt embedded interface support (default disabled)],
3767   [if test "${enable_opie}" = "yes"; then
3768      AC_ARG_WITH(qte,
3769      [    --with-qte=PATH       Qt Embedded headers and libraries])
3770      if test "${with_qte}" != "no" -a -n "${with_qte}"
3771      then
3772        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3773        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])
3774      else
3775        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
3776        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
3777      fi
3778      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3779      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3780        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3781      ] )
3782      CPPFLAGS="${CPPFLAGS_save}"
3783
3784      VLC_ADD_PLUGINS([opie])
3785      NEED_QTE_MAIN=yes
3786      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
3787      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
3788      if test "${with_qte}" != "no" -a -n "${with_qte}"
3789      then
3790        MOC=${with_qte}/bin/moc
3791      else
3792        MOC=${QTDIR}/bin/moc
3793      fi
3794    fi])
3795
3796 dnl
3797 dnl  MacOS X module
3798 dnl
3799 AC_ARG_ENABLE(macosx,
3800   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
3801   [if test "${enable_macosx}" = "yes"
3802    then
3803      VLC_ADD_BUILTINS([macosx])
3804      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3805    fi],
3806   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
3807      VLC_ADD_BUILTINS([macosx])
3808      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
3809    )])
3810
3811 dnl
3812 dnl  QNX RTOS module
3813 dnl
3814 AC_ARG_ENABLE(qnx,
3815   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
3816     if test "${enable_qnx}" != "no"
3817     then
3818       AC_CHECK_HEADERS(Ph.h, [
3819         VLC_ADD_PLUGINS([qnx])
3820         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
3821       ])
3822     fi
3823
3824 dnl
3825 dnl  ncurses module
3826 dnl
3827 AC_ARG_ENABLE(ncurses,
3828   [  --enable-ncurses        ncurses interface support (default disabled)],
3829   [if test "${enable_ncurses}" = "yes"; then
3830      VLC_ADD_PLUGINS([ncurses])
3831      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
3832    fi])
3833
3834 dnl
3835 dnl  XOSD plugin
3836 dnl
3837 AC_ARG_ENABLE(xosd,
3838   [  --enable-xosd           xosd interface support (default disabled)])
3839 if test "${enable_xosd}" = "yes"
3840 then
3841   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
3842   AC_CHECK_LIB(xosd,xosd_set_offset,
3843       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
3844     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
3845         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
3846       AC_TRY_COMPILE([#include <xosd.h>],
3847          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
3848           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
3849   if test "${have_xosd}" = "true"
3850   then
3851     VLC_ADD_PLUGINS([xosd])
3852     VLC_ADD_LDFLAGS([xosd],[-lxosd])
3853   fi
3854 fi
3855
3856 dnl
3857 dnl Visualisation plugin
3858 dnl
3859 AC_ARG_ENABLE(visual,
3860   [  --enable-visual         visualisation plugin (default enabled)])
3861 if test "${enable_visual}" != "no"
3862 then
3863     VLC_ADD_PLUGINS([visual])
3864 fi
3865
3866 dnl
3867 dnl OpenGL visualisation plugin
3868 dnl
3869 AC_ARG_ENABLE(galaktos,
3870   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
3871 if test "${enable_galaktos}" = "yes"
3872 then
3873   AC_CHECK_HEADERS(GL/gl.h, [
3874     VLC_ADD_PLUGINS([galaktos])
3875     if test "${SYS}" != "mingw32"; then
3876       VLC_ADD_LDFLAGS([galaktos],[-L${x_libraries} -lGL -lGLU])
3877     else
3878       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
3879     fi
3880   ])
3881 fi
3882
3883 dnl
3884 dnl  goom visualization plugin
3885 dnl
3886 AC_ARG_ENABLE(goom,
3887 [  --enable-goom           goom visualisation plugin (default disabled)])
3888 if test "${enable_goom}" = "yes"
3889 then
3890   AC_ARG_WITH(goom-tree,
3891     [    --with-goom-tree=PATH goom tree for static linking (required)])
3892
3893   dnl
3894   dnl test for --with-goom-tree
3895   dnl
3896   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
3897     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
3898     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
3899     if test -z "${real_goom_tree}"; then
3900       dnl  The given directory can't be found
3901       AC_MSG_RESULT(no)
3902       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
3903     fi
3904     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
3905       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
3906       VLC_ADD_BUILTINS([goom])
3907       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
3908       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
3909     else
3910       dnl  The given libgoom2 wasn't built, try to look for the old goom
3911       AC_MSG_RESULT(no)
3912       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
3913       if test -f "${real_goom_tree}/libgoom.a"; then
3914         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
3915         VLC_ADD_BUILTINS([goom])
3916         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
3917         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
3918       else
3919         dnl  The given libgoom wasn't built
3920         AC_MSG_RESULT(no)
3921         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
3922       fi
3923     fi
3924   else
3925     AC_CHECK_HEADERS(goom/goom.h, [
3926       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
3927       AC_CHECK_LIB(goom2, goom_init, [
3928         VLC_ADD_PLUGINS([goom])
3929         VLC_ADD_LDFLAGS([goom],[-lgoom2])
3930       ],[
3931         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
3932       ])
3933       LDFLAGS="${LDFLAGS_save}"
3934     ])
3935   fi
3936 fi
3937
3938 dnl
3939 dnl  SLP access plugin
3940 dnl
3941 AC_ARG_ENABLE(slp,
3942   [  --enable-slp            SLP service discovery support (default disabled)])
3943 if test "${enable_slp}" = "yes"
3944 then
3945   AC_ARG_WITH(slp,
3946   [    --with-slp=PATH       libslp headers and libraries])
3947   if test -z "${with_slp}"
3948   then
3949     AC_CHECK_HEADERS(slp.h, have_slp="true", have_slp="false")
3950     if test "${have_slp}" = "true"
3951     then
3952       VLC_ADD_PLUGINS([slp])
3953       VLC_ADD_LDFLAGS([slp],[-lslp])
3954       VLC_ADD_LDFLAGS([stream_out_standard],[-lslp])
3955     fi
3956   else
3957     AC_MSG_CHECKING(for slp headers in ${with_slp})
3958     if test -f ${with_slp}/slp.h
3959     then
3960       dnl  Use ${with_slp}/libslp/slp.h
3961       AC_MSG_RESULT(yes)
3962       VLC_ADD_PLUGINS([slp])
3963       VLC_ADD_LDFLAGS([slp],[-L${with_slp} -lslp])
3964       VLC_ADD_LDFLAGS([stream_out_standard],[-L${with_slp} -lslp])
3965       VLC_ADD_CPPFLAGS([slp],[-I${with_slp}])
3966       AC_DEFINE(HAVE_SLP_H)
3967     else
3968       dnl  No libslp could be found, sorry
3969       AC_MSG_RESULT(no)
3970       AC_MSG_ERROR([cannot find ${with_slp}/slp.h])
3971     fi
3972   fi
3973 fi
3974
3975 dnl
3976 dnl DAAP access plugin and services discovery 
3977 dnl
3978 AC_ARG_ENABLE(daap,
3979   [  --enable-daap                DAAP shares services discovery support (default enabled)])
3980 if test "$enable_daap" != "no"
3981 then
3982    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
3983       [ VLC_ADD_PLUGINS([daap])
3984        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
3985        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
3986       [AC_MSG_WARN(DAAP library not found)])
3987 fi
3988
3989 dnl
3990 dnl  Lirc plugin
3991 dnl
3992 AC_ARG_ENABLE(lirc,
3993   [  --enable-lirc           lirc support (default disabled)])
3994 if test "${enable_lirc}" = "yes"
3995 then
3996   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
3997   if test "${have_lirc}" = "true"
3998   then
3999     VLC_ADD_PLUGINS([lirc])
4000     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4001   fi
4002 fi
4003
4004 dnl 
4005 dnl  Joystick plugin
4006 dnl
4007 AC_ARG_ENABLE(joystick,
4008   [  --enable-joystick       joystick control (default enabled)])
4009 if test "${enable_joystick}" = "yes"; then
4010   AC_CHECK_HEADER(linux/joystick.h, [VLC_ADD_PLUGINS([joystick])])
4011 fi
4012
4013 dnl
4014 dnl corba (ORBit) plugin
4015 dnl
4016 dnl Default: do not enable corba
4017 enablecorba=false
4018 AC_ARG_ENABLE(corba,
4019   [  --enable-corba          corba interface support (default disabled)])
4020 if test "${enable_corba}" = "yes"; then
4021       GLIB_VERSION=2.3.2
4022       PKG_CHECK_MODULES(CORBA, 
4023         ORBit-2.0 >= 2.8.0 \
4024         glib-2.0 >= $GLIB_VERSION \
4025         gobject-2.0 >= $GLIB_VERSION \
4026         gthread-2.0 >= $GLIB_VERSION,
4027         [
4028           enablecorba=true
4029           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4030           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4031           VLC_ADD_PLUGINS([corba snapshot]) ],
4032         [ enablecorba=false
4033           AC_MSG_WARN(corba library not found) ])
4034 fi
4035 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4036
4037 AC_ARG_WITH(,[Misc options:])
4038
4039 dnl
4040 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4041 dnl
4042 dnl  We give the user the opportunity to specify
4043 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4044 dnl
4045 AC_ARG_WITH(words,
4046   [    --with-words=endianness set endianness (big or little)])
4047   case "${with_words}" in
4048     big)
4049       ac_cv_c_bigendian=yes
4050       ;;
4051     little)
4052       ac_cv_c_bigendian=no
4053       ;;
4054     *)
4055       dnl  Try to guess endianness by matching patterns on a compiled
4056       dnl  binary, by looking for an ASCII or EBCDIC string
4057       AC_CACHE_CHECK([whether the byte order is big-endian],
4058         [ac_cv_c_bigendian],
4059         [ac_cv_c_bigendian="unknown"
4060         [cat >conftest.c <<EOF
4061         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4062         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4063         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4064         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4065         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4066         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4067         int main(void) { _a(); _e(); return 0; }
4068 EOF
4069         ]
4070         if test -f conftest.c
4071         then
4072           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4073               && test -f conftest.o
4074           then
4075             if test "`strings conftest.o | grep BIGenDianSyS`"
4076             then
4077               ac_cv_c_bigendian="yes"
4078             fi
4079             if test "`strings conftest.o | grep LiTTleEnDian`"
4080             then
4081               ac_cv_c_bigendian="no"
4082             fi
4083           fi
4084         fi
4085       ])
4086       if test "${ac_cv_c_bigendian}" = "unknown"
4087       then
4088         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4089       fi
4090       ;;
4091   esac
4092 dnl  Now we know what to use for endianness, just put it in the header
4093 if test "${ac_cv_c_bigendian}" = "yes"
4094 then
4095   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4096 fi
4097
4098 dnl
4099 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4100 dnl
4101 loader=false
4102 AC_ARG_ENABLE(loader,
4103   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4104 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4105 AS_IF([test "${enable_loader}" = "yes"],
4106   [ VLC_ADD_PLUGINS([dmo quicktime])
4107     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4108     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4109     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4110     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4111   ])
4112
4113 dnl
4114 dnl  Microsoft ActiveX support
4115 dnl
4116 activex=false
4117 AC_ARG_ENABLE(activex,
4118   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4119 if test "${enable_activex}" != "no"
4120 then
4121   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4122   then
4123     AC_CHECK_PROGS(MIDL, [midl widl], no)
4124     AC_CHECK_HEADERS(ole2.h olectl.h,
4125       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4126         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4127         AC_CHECK_HEADERS(objsafe.h,
4128           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER])
4129         )
4130         activex=:
4131       ],
4132       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4133     )
4134   fi
4135 fi
4136 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4137 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4138 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4139
4140 dnl
4141 dnl  Mozilla plugin
4142 dnl
4143 mozilla=false
4144 AC_ARG_ENABLE(mozilla,
4145   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4146 if test "${enable_mozilla}" = "yes" -a "${SYS}" != "mingw32"
4147 then
4148   AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4149   if test "${MOZILLA_CONFIG}" = "no"
4150   then
4151     AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4152   else
4153     if test "${SYS}" != "mingw32"; then
4154       LDFLAGS="${LDFLAGS_save} -L${x_libraries}"
4155       AC_CHECK_LIB(Xt,XtStrings,
4156        [VLC_ADD_LDFLAGS([mozilla],[-L${x_libraries} -lXt -lX11 -lSM -lICE])],
4157        [],
4158        [[-L${x_libraries} -lX11 -lSM -lICE]
4159       ])
4160       LDFLAGS="${LDFLAGS_save}"
4161     fi
4162     mozilla=:
4163     dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4164     VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4165     VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4166     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4167     AC_CHECK_HEADERS(mozilla-config.h)
4168     CPPFLAGS="${CPPFLAGS_save}"
4169   fi
4170
4171 dnl special case for mingw32
4172 elif test "${enable_mozilla}" = "yes"
4173 then
4174   AC_CHECK_TOOL(CYGPATH, cygpath, "")
4175   AC_ARG_WITH(mozilla-sdk-path,
4176     [    --with-mozilla-sdk-path=PATH path to win32 mozilla sdk], [
4177     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4178     CPPFLAGS="${CPPFLAGS_save} ${real_mozilla_sdk}"
4179     AC_CHECK_HEADERS(mozilla-config.h, [
4180       mozilla=:
4181       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])
4182       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])
4183       XPIDL_INCL="-I${real_mozilla_sdk}/xpcom/idl"
4184       if test -n "${CYGPATH}"; then
4185         XPIDL="${real_mozilla_sdk}/xpcom/bin/xpidl"
4186         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4187         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}/xpcom/idl\""
4188       fi ])
4189     CPPFLAGS="${CPPFLAGS_save}"
4190   ])
4191 fi
4192
4193 dnl Not necessarily in ${PATH}
4194 if test -z "${XPIDL}" -o ! -x "${XPIDL}"; then
4195   XPIDL="/usr/lib/mozilla/xpidl"
4196 fi
4197 AS_IF([test "${MOZILLA_CONFIG}"], [
4198   if test -z "${XPIDL_INCL}"; then
4199     XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
4200     `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
4201   fi
4202 ])
4203 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4204
4205 dnl
4206 dnl  test plugins
4207 dnl
4208 AC_ARG_ENABLE(testsuite,
4209   [  --enable-testsuite      build test modules (default disabled)])
4210 if test "${enable_testsuite}" = "yes"
4211 then
4212   TESTS="test1 test2 test3 test4"
4213
4214   dnl  we define those so that bootstrap sets the right linker
4215   VLC_ADD_CXXFLAGS([test2],[])
4216   VLC_ADD_OBJCFLAGS([test3],[])
4217   dnl  this one is needed until automake knows what to do
4218   VLC_ADD_LDFLAGS([test3],[-lobjc])
4219
4220   VLC_ADD_PLUGINS([${TESTS}])
4221   #VLC_ADD_BUILTINS([${TESTS}])
4222 fi
4223
4224 dnl
4225 dnl  gtk_main plugin
4226 dnl
4227 if test "${NEED_GTK_MAIN}" != "no"
4228 then
4229     VLC_ADD_PLUGINS([gtk_main])
4230     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
4231     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
4232 fi
4233
4234 if test "${NEED_GNOME_MAIN}" != "no"
4235 then
4236     VLC_ADD_PLUGINS([gnome_main])
4237     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
4238     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
4239 fi
4240
4241 if test "${NEED_GTK2_MAIN}" != "no"
4242 then
4243     VLC_ADD_PLUGINS([gtk2_main])
4244     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
4245     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
4246     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
4247     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
4248 fi
4249
4250 if test "${NEED_GNOME2_MAIN}" != "no"
4251 then
4252     VLC_ADD_PLUGINS([gnome2_main])
4253     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
4254     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
4255 fi
4256
4257 dnl
4258 dnl  qte_main plugin
4259 dnl
4260 if test "${NEED_QTE_MAIN}" != "no"
4261 then
4262     VLC_ADD_PLUGINS([qte_main])
4263     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
4264     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
4265     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
4266 fi
4267
4268
4269 dnl
4270 dnl  Plugin and builtin checks
4271 dnl
4272 builtin_support=false
4273 plugin_support=:
4274
4275 dnl Support for plugins - this must be AT THE END
4276 AC_ARG_ENABLE(plugins,
4277   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
4278   [if test "${enable_plugins}" = "no"
4279    then
4280      plugin_support=false
4281    fi])
4282
4283 dnl Automagically disable plugins if there is no system support for
4284 dnl dynamically loadable files (.so, .dll, .dylib).
4285 dnl don't forget vlc-win32 still can load .dll as plugins
4286 if test "${ac_cv_have_plugins}" = "no"
4287 then
4288   echo "*** Your system doesn't have plugin support. All plugins will be built"
4289   echo "statically."
4290   plugin_support=false
4291 fi
4292
4293 dnl Export automake variables
4294 if ${plugin_support}
4295 then
4296   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
4297   for plugin in `echo ${PLUGINS}`
4298   do
4299     eval "${plugin}_p=yes"
4300   done
4301 else
4302   VLC_ADD_BUILTINS([${PLUGINS}])
4303   PLUGINS=""
4304 fi
4305 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
4306
4307 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
4308 then
4309   builtin_support=:
4310   for builtin in `echo ${BUILTINS}`
4311   do
4312     eval "${builtin}_b=yes"
4313   done
4314 fi]
4315 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
4316
4317 dnl Import conditional variables generated by bootstrap
4318 VLC_CONDITIONALS
4319
4320 dnl
4321 dnl  Stuff used by the program
4322 dnl
4323 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
4324 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2005 the VideoLAN team", [Copyright string])
4325 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
4326
4327 dnl Old definitions for version-dependant plugins
4328 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
4329 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
4330 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
4331
4332 dnl New definitions with value matching 0.8.2 release
4333 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__0_8_2", [String suffix for module functions])
4334 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, 0_8_2, [Symbol suffix for module functions])
4335
4336 dnl Version number for ActiveX INF
4337 VERSION32="`echo -n ${VERSION} | sed -e 's/@<:@a-z\-@:>@//g' | sed -e 'y/./,/'; echo ',0'`"
4338 AC_SUBST(VERSION32)
4339
4340 DATA_PATH="${ac_tool_prefix}/share/vlc"
4341 AC_SUBST(DATA_PATH)
4342 PLUGIN_PATH="${ac_tool_prefix}/lib/vlc"
4343 AC_SUBST(PLUGIN_PATH)
4344
4345 dnl
4346 dnl  Handle substvars that use $(top_srcdir)
4347 dnl
4348 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
4349 AC_SUBST(VLC_CONFIG)
4350 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
4351
4352 dnl
4353 dnl  Restore *FLAGS
4354 dnl
4355 VLC_RESTORE_FLAGS
4356
4357 dnl
4358 dnl  Create the vlc-config script
4359 dnl
4360 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
4361 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
4362
4363 dnl
4364 dnl  Configuration is finished
4365 dnl
4366 AC_SUBST(SYS)
4367 AC_SUBST(ARCH)
4368 AC_SUBST(ALIASES)
4369 AC_SUBST(ASM)
4370 AC_SUBST(MOC)
4371 AC_SUBST(WINDRES)
4372 AC_SUBST(XPIDL)
4373 AC_SUBST(XPIDL_INCL)
4374 AC_SUBST(LIBEXT)
4375 AC_SUBST(INCLUDES)
4376 AC_SUBST(ALL_LINGUAS)
4377
4378 dnl Import substitutions generated by bootstrap
4379 VLC_SUBSTS
4380
4381 dnl Create vlc-config.in
4382 VLC_OUTPUT_VLC_CONFIG_IN
4383
4384 AC_CONFIG_FILES([
4385   Makefile
4386   activex/Makefile
4387   activex/axvlc.inf
4388   debian/Makefile
4389   doc/Makefile
4390   intl/Makefile
4391   ipkg/Makefile
4392   lib/Makefile
4393   loader/Makefile
4394   modules/Makefile
4395   mozilla/Makefile
4396   m4/Makefile
4397   po/Makefile.in
4398   share/Makefile
4399   src/Makefile
4400 ])
4401
4402 AC_CONFIG_FILES([
4403   modules/access/Makefile
4404   modules/access/dshow/Makefile
4405   modules/access/dvb/Makefile
4406   modules/access/mms/Makefile
4407   modules/access/pvr/Makefile
4408   modules/access/satellite/Makefile
4409   modules/access/v4l/Makefile
4410   modules/access/cdda/Makefile
4411   modules/access/vcd/Makefile
4412   modules/access/vcdx/Makefile
4413   modules/access/screen/Makefile
4414   modules/access_filter/Makefile
4415   modules/access_output/Makefile
4416   modules/audio_filter/Makefile
4417   modules/audio_filter/channel_mixer/Makefile
4418   modules/audio_filter/converter/Makefile
4419   modules/audio_filter/resampler/Makefile
4420   modules/audio_mixer/Makefile
4421   modules/audio_output/Makefile
4422   modules/codec/Makefile
4423   modules/codec/cmml/Makefile
4424   modules/codec/dmo/Makefile
4425   modules/codec/ffmpeg/Makefile
4426   modules/codec/spudec/Makefile
4427   modules/control/Makefile
4428   modules/control/corba/Makefile
4429   modules/demux/Makefile
4430   modules/demux/asf/Makefile
4431   modules/demux/avi/Makefile
4432   modules/demux/mp4/Makefile
4433   modules/demux/mpeg/Makefile
4434   modules/demux/playlist/Makefile
4435   modules/demux/util/Makefile
4436   modules/gui/Makefile
4437   modules/gui/beos/Makefile
4438   modules/gui/pda/Makefile
4439   modules/gui/gtk/Makefile
4440   modules/gui/gtk2/Makefile
4441   modules/gui/kde/Makefile
4442   modules/gui/macosx/Makefile
4443   modules/gui/qnx/Makefile
4444   modules/gui/qt/Makefile
4445   modules/gui/skins2/Makefile
4446   modules/gui/wxwindows/Makefile
4447   modules/gui/wince/Makefile
4448   modules/misc/Makefile
4449   modules/misc/dummy/Makefile
4450   modules/misc/memcpy/Makefile
4451   modules/misc/network/Makefile
4452   modules/misc/testsuite/Makefile
4453   modules/misc/playlist/Makefile
4454   modules/misc/xml/Makefile
4455   modules/mux/Makefile
4456   modules/mux/mpeg/Makefile
4457   modules/packetizer/Makefile
4458   modules/services_discovery/Makefile
4459   modules/stream_out/Makefile
4460   modules/stream_out/transrate/Makefile
4461   modules/video_chroma/Makefile
4462   modules/video_filter/Makefile
4463   modules/video_filter/swscale/Makefile
4464   modules/video_output/Makefile
4465   modules/video_output/directx/Makefile
4466   modules/video_output/qte/Makefile
4467   modules/video_output/x11/Makefile
4468   modules/visualization/Makefile
4469   modules/visualization/visual/Makefile
4470   modules/visualization/galaktos/Makefile
4471 ])
4472
4473 dnl Generate makefiles
4474 AC_OUTPUT
4475
4476 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
4477 # not provided with the source
4478 ${SHELL} ./config.status --file=vlc-config
4479 chmod 0755 vlc-config
4480
4481 dnl echo "Enabled builtin modules :"
4482 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
4483
4484 dnl echo "Enabled plugin modules :"
4485 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
4486
4487 printf "
4488 vlc configuration
4489 --------------------
4490 vlc version           : ${VERSION}
4491 system                : ${SYS}
4492 architecture          : ${ARCH}
4493 build flavour         : "
4494 test "${enable_debug}" = "yes" && printf "debug "
4495 test "${enable_cprof}" = "yes" && printf "cprof "
4496 test "${enable_gprof}" = "yes" && printf "gprof "
4497 test "${enable_optimizations}" = "yes" && printf "optim "
4498 test "${enable_release}" = "yes" && printf "release " || printf "devel "
4499 echo "
4500 vlc aliases           :${ALIASES}
4501
4502 You can tune the compiler flags in vlc-config.
4503 To build vlc and its plugins, type \`make'.
4504 "
4505