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