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