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