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