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