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