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