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