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