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