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