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