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