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