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