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