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