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