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