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