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