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