]> git.sesse.net Git - vlc/blob - configure.ac
Remove superfluous dep
[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], [nsl], [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  Input plugins
1470 dnl
1471
1472 AC_ARG_WITH(,[Input plugins:])
1473
1474 dnl  live.com input
1475 dnl
1476 AC_ARG_ENABLE(livedotcom,
1477 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1478 if test "${enable_livedotcom}" = "yes"; then
1479   AC_ARG_WITH(livedotcom-tree,
1480     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1481
1482   dnl
1483   dnl test for --with-livedotcom-tree
1484   dnl
1485   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1486     AC_LANG_PUSH(C++)
1487     CPPFLAGS_save="${CPPFLAGS}"
1488     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1489     if test "${SYS}" = "solaris"; then
1490       CPPFLAGS_livedotcom="${CPPFLAGS_livedotcom} -DSOLARIS"
1491     fi
1492     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1493     AC_CHECK_HEADERS(liveMedia.hh, [
1494       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1495       AC_CHECK_LIB(liveMedia_pic, main, [
1496         # We have -lliveMedia_pic, build plugins
1497         VLC_ADD_PLUGINS([livedotcom])
1498         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1499       ], [
1500         AC_CHECK_LIB(liveMedia, main, [
1501           # We only have -lliveMedia, do builtins
1502           VLC_ADD_BUILTINS([livedotcom])
1503           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1504         ])
1505       ])
1506       if test "${SYS}" = "mingw32"; then
1507         # add ws2_32 for closesocket, select, recv
1508         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1509       fi
1510     ])
1511     CPPFLAGS="${CPPFLAGS_save}"
1512     AC_LANG_POP(C++)
1513   else
1514     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1515     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1516     if test -z "${real_livedotcom_tree}"; then
1517       dnl  The given directory can't be found
1518       AC_MSG_RESULT(no)
1519       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1520     fi
1521     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1522       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1523
1524       VLC_ADD_BUILTINS([livedotcom])
1525
1526       if test "${SYS}" = "mingw32"; then
1527         # add ws2_32 for closesocket, select, recv
1528         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1529       fi
1530
1531       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1532       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1533       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1534       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1535
1536       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1537       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1538       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1539       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1540       if test "${SYS}" = "solaris"; then
1541         VLC_ADD_CXXFLAGS([livedotcom],[-DSOLARIS])
1542       fi
1543     else
1544       dnl  The given live.com wasn't built
1545       AC_MSG_RESULT(no)
1546       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1547     fi
1548   fi
1549 fi
1550
1551 dnl
1552 dnl dv module: digital video module check for libraw1394
1553 dnl
1554 AC_ARG_ENABLE(dv,
1555 [  --enable-dv             dv input module (default disabled)])
1556 if test "${enable_dv}" = "yes"
1557 then
1558   AC_ARG_WITH(dv-raw1394,
1559   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1560   AC_ARG_WITH(dv-raw1394-tree,
1561   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1562
1563   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1564   then
1565     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1566     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1567     then
1568       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1569       AC_MSG_RESULT(yes)
1570       VLC_ADD_PLUGINS([access_dv])
1571       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1572       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1573     else
1574       dnl  No libraw1394 could be found, sorry
1575       AC_MSG_RESULT(no)
1576       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1577     fi
1578   else
1579     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1580     [ VLC_ADD_PLUGINS([access_dv])
1581         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1582     ],[
1583         if test -n "${enable_dv}"
1584         then
1585           AC_MSG_ERROR([cannot find libraw1394 headers])
1586         fi
1587     ])
1588   fi
1589
1590   dnl Check for static linking of libraw1394
1591   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1592   then
1593     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1594     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1595     if test -z "${real_dv_raw1394_tree}"
1596     then
1597       dnl  The given directory can't be found
1598       AC_MSG_RESULT(no)
1599       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1600     fi
1601     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1602     then
1603       dnl  Use a custom libraw1394
1604       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1605       VLC_ADD_BUILTINS([access_dv])
1606       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1607       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1608     else
1609       dnl  The given libraw1394 wasn't built
1610       AC_MSG_RESULT(no)
1611       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1612     fi
1613   fi
1614
1615   dnl
1616   dnl Check for libavc1394
1617   dnl
1618
1619   AC_ARG_WITH(dv-avc1394,
1620   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1621   AC_ARG_WITH(dv-avc1394-tree,
1622   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1623
1624   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1625   then
1626     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1627     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1628     then
1629       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1630       AC_MSG_RESULT(yes)
1631       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1632       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1633     else
1634       dnl  No libavc1394 could be found, sorry
1635       AC_MSG_RESULT(no)
1636       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1637     fi
1638   else
1639     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1640     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1641     ],[
1642         if test -n "${enable_dv}"
1643         then
1644           AC_MSG_ERROR([cannot find libavc1394 headers])
1645         fi
1646     ])
1647   fi
1648
1649   dnl Check for static linking of libavc1394
1650   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1651   then
1652     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1653     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1654     if test -z "${real_dv_avc1394_tree}"
1655     then
1656       dnl  The given directory can't be found
1657       AC_MSG_RESULT(no)
1658       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1659     fi
1660     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1661     then
1662       dnl  Use a custom libavc1394
1663       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1664       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1665       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1666     else
1667       dnl  The given libavc1394 wasn't built
1668       AC_MSG_RESULT(no)
1669       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1670     fi
1671   fi
1672 fi
1673
1674 dnl
1675 dnl dvdread module: check for libdvdread
1676 dnl
1677 AC_ARG_ENABLE(dvdread,
1678 [  --enable-dvdread        dvdread input module (default disabled)])
1679 if test "${enable_dvdread}" != "no"
1680 then
1681   AC_ARG_WITH(dvdread,
1682   [    --with-dvdread=PATH   libdvdread headers and libraries])
1683   AC_ARG_WITH(dvdread-tree,
1684   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1685
1686   dnl Temporary hack (yeah, sure ;)
1687   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1688       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1689   fi
1690
1691   if test -z "${with_dvdread}"
1692   then
1693     if test -z "${with_dvdread_tree}"
1694     then
1695       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1696         [ VLC_ADD_PLUGINS([dvdread])
1697           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1698         ],[
1699           if test -n "${enable_dvdread}"
1700           then
1701             AC_MSG_ERROR([cannot find libdvdread headers])
1702           fi
1703         ])
1704     else
1705       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1706       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1707       if test -z "${real_dvdread_tree}"
1708       then
1709         dnl  The given directory can't be found
1710         AC_MSG_RESULT(no)
1711         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1712       fi
1713       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1714       then
1715         dnl  Use a custom libdvdread
1716         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1717         VLC_ADD_BUILTINS([dvdread])
1718         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1719         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1720       else
1721         dnl  The given libdvdread wasn't built
1722         AC_MSG_RESULT(no)
1723         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1724       fi
1725     fi
1726   else
1727     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1728     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1729     then
1730       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1731       AC_MSG_RESULT(yes)
1732       VLC_ADD_PLUGINS([dvdread])
1733       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1734       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1735     else
1736       dnl  No libdvdread could be found, sorry
1737       AC_MSG_RESULT(no)
1738       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1739     fi
1740   fi
1741 fi
1742
1743 dnl
1744 dnl  libdvdnav plugin
1745 dnl
1746 AC_ARG_ENABLE(dvdnav,
1747   [  --enable-dvdnav         dvdnav input module (default enabled)])
1748 if test "${enable_dvdnav}" != "no"
1749 then
1750   dnl Same hack than dvdread
1751   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1752       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1753   fi
1754
1755   DVDNAV_PATH="${PATH}"
1756   AC_ARG_WITH(dvdnav-config-path,
1757     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1758     [ if test "${with_dvdnav_config_path}" != "no"
1759       then
1760         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1761       fi ])
1762   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1763   if test "${DVDNAV_CONFIG}" != "no"
1764   then
1765     VLC_ADD_PLUGINS([dvdnav])
1766     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1767     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1768   fi
1769 fi
1770
1771 dnl
1772 dnl  Windows DirectShow access module
1773 dnl
1774 AC_ARG_ENABLE(dshow,
1775   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1776 if test "${enable_dshow}" != "no"
1777 then
1778   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1779   then
1780     AC_LANG_PUSH(C++)
1781       AC_CHECK_HEADERS(dshow.h,
1782       [ VLC_ADD_PLUGINS([dshow])
1783         VLC_ADD_CXXFLAGS([dshow],[])
1784         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1785     AC_LANG_POP(C++)
1786   fi
1787 fi
1788
1789 dnl
1790 dnl  libsmbclient plugin
1791 dnl
1792 AC_ARG_ENABLE(smb,
1793   [  --enable-smb            smb input module (default enabled)])
1794 if test "${enable_smb}" != "no"; then
1795   AC_CHECK_HEADERS(libsmbclient.h,
1796     [ VLC_ADD_PLUGINS([access_smb])
1797       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1798     [ if test -n "${enable_smb}"; then
1799         AC_MSG_ERROR([cannot find libsmbclient headers])
1800      fi ])
1801   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1802     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1803     [#include <libsmbclient.h>])
1804 fi
1805
1806 dnl
1807 dnl  libdvbpsi ts demux/mux
1808 dnl
1809 AC_ARG_ENABLE(dvbpsi,
1810   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1811 if test "${enable_dvbpsi}" != "no"
1812 then
1813   AC_ARG_WITH(dvbpsi,
1814   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1815   AC_ARG_WITH(dvbpsi,
1816   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1817   case "${with_dvbpsi}" in
1818   ""|yes)
1819     if test -z "${with_dvbpsi_tree}"
1820     then
1821       AC_CHECK_HEADERS(dvbpsi/dr.h,
1822         [ VLC_ADD_PLUGINS([ts])
1823           if test "${enable_sout}" != "no"; then
1824             VLC_ADD_BUILTINS([mux_ts])
1825           fi
1826           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1827         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1828         [#if defined( HAVE_STDINT_H )
1829 #   include <stdint.h>
1830 #elif defined( HAVE_INTTYPES_H )
1831 #   include <inttypes.h>
1832 #endif
1833 #include <dvbpsi/dvbpsi.h>
1834 #include <dvbpsi/descriptor.h>
1835 #include <dvbpsi/pat.h>
1836 #include <dvbpsi/pmt.h>])
1837     else
1838       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1839       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1840       if test -z "${real_dvbpsi_tree}"
1841       then
1842         dnl  The given directory can't be found
1843         AC_MSG_RESULT(no)
1844         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1845       fi
1846       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1847       then
1848         dnl  Use a custom libdvbpsi
1849         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1850         VLC_ADD_BUILTINS([ts])
1851         if test "${enable_sout}" != "no"; then
1852           VLC_ADD_BUILTINS([mux_ts])
1853         fi
1854         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1855         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1856       else
1857         dnl  The given libdvbpsi wasn't built
1858         AC_MSG_RESULT(no)
1859         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1860       fi
1861     fi
1862   ;;
1863   no)
1864     dnl  Compile without dvbpsi
1865   ;;
1866   *)
1867     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1868     if test -z "${with_dvbpsi}"
1869     then
1870       LDFLAGS_test=""
1871       CPPFLAGS_test=""
1872     else
1873       LDFLAGS_test="-L${with_dvbpsi}/lib"
1874       CPPFLAGS_test="-I${with_dvbpsi}/include"
1875     fi
1876     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1877     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1878       VLC_ADD_PLUGINS([ts])
1879       if test "${enable_sout}" != "no"; then
1880         VLC_ADD_PLUGINS([mux_ts])
1881       fi
1882       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1883       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1884
1885     ],[
1886       if test -n "${enable_dvbpsi}"
1887       then
1888         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])
1889       fi
1890     ])
1891     CPPFLAGS="${CPPFLAGS_save}"
1892   ;;
1893   esac
1894   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1895     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1896   ], [], [${LDFLAGS_ts}])
1897
1898 fi
1899
1900 dnl
1901 dnl  Video4Linux plugin
1902 dnl
1903 AC_ARG_ENABLE(v4l,
1904   [  --enable-v4l            Video4Linux input support (default disabled)])
1905 if test "${enable_v4l}" = "yes"
1906 then
1907   AC_ARG_WITH(v4l,
1908     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1909   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1910   then
1911     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1912   fi
1913
1914   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1915   AC_CHECK_HEADERS(linux/videodev.h, [
1916     VLC_ADD_PLUGINS([v4l])
1917   ],[])
1918   CPPFLAGS="${CPPFLAGS_save}"
1919 fi
1920
1921 dnl
1922 dnl  special access module for Hauppauge PVR cards
1923 dnl
1924 AC_ARG_ENABLE(pvr,
1925   [  --enable-pvr            PVR cards access module (default disabled)])
1926 if test "${enable_pvr}" = "yes"
1927 then
1928   VLC_ADD_PLUGINS([pvr])
1929 fi
1930
1931 dnl
1932 dnl  gnomeVFS access module
1933 dnl
1934 AC_ARG_ENABLE(gnomevfs,
1935   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1936 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1937 then
1938   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1939     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1940     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1941     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1942     VLC_ADD_PLUGINS([access_gnomevfs]),
1943     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1944 fi
1945
1946 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1947 AC_ARG_ENABLE(libcdio,
1948   [  --enable-libcdio        CD input and control library support (default enabled)])
1949
1950
1951 have_libcdio=no
1952 have_libvcdinfo=no
1953 if test "${enable_libcdio}" != "no"
1954 then
1955   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1956      have_libcdio=yes
1957      AC_DEFINE(HAVE_LIBCDIO, [], 
1958      [Define if you have libcdio 0.72 or greater installed]),
1959      [AC_MSG_WARN(CD Reading and information library not found)])
1960
1961   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1962      [have_libvcdinfo=yes
1963      AC_DEFINE(HAVE_VCDINFO, [], 
1964      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1965      [AC_MSG_WARN(VCD information library not found)])
1966 fi
1967
1968 dnl
1969 dnl  VCDX and CDDAX modules
1970 dnl
1971 AC_ARG_ENABLE(cddax,
1972   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1973  
1974 AC_ARG_ENABLE(libcddb,
1975   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1976  
1977 if test "${enable_cddax}" = "yes"
1978 then
1979   if test "$have_libcdio" = "yes"
1980   then
1981     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1982     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1983     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1984     VLC_ADD_PLUGINS([cddax])
1985     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1986     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1987     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1988   else 
1989     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1990     HAVE_CDDAX=no
1991   fi
1992
1993   if test "$enable_libcddb" != "no"; then
1994     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1995       HAVE_LIBCDDB=yes 
1996       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1997       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
1998       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
1999       ],
2000       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2001       HAVE_LIBCDDB=no])
2002   fi
2003  
2004 fi
2005
2006 AC_ARG_ENABLE(vcdx,
2007   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2008  
2009 if test "${enable_vcdx}" = "yes"
2010 then
2011   if test "${have_libvcdinfo}" = "yes"
2012   then
2013     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2014     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2015   else 
2016     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2017     HAVE_VCDX=no
2018   fi
2019
2020   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2021    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2022     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2023     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2024     HAVE_VCDX=no])
2025
2026   if test "$have_libvcdinfo" = "yes"
2027   then
2028     AC_DEFINE(HAVE_VCDX, [], 
2029     [Define for the VCD plugin using libcdio/libvcdinfo])
2030     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2031     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2032     VLC_ADD_PLUGINS([vcdx])
2033   else 
2034     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2035     HAVE_VCDX=no
2036   fi
2037 fi
2038
2039 dnl
2040 dnl  Built-in CD-DA and VCD module
2041 dnl
2042 AC_ARG_ENABLE(cdda,           
2043   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2044  
2045 AC_ARG_ENABLE(vcd,
2046   [  --enable-vcd            built-in VCD (default enabled)])
2047
2048 if test "${enable_vcd}" != "no"
2049 then
2050   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2051   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2052     AC_MSG_RESULT(yes)
2053     VLC_ADD_PLUGINS([vcd cdda])
2054   ],[
2055     AC_MSG_RESULT(no)
2056   ])
2057
2058   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2059   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2060     AC_MSG_RESULT(yes)
2061     VLC_ADD_PLUGINS([vcd cdda])
2062     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2063   ],[
2064     AC_MSG_RESULT(no)
2065   ])
2066
2067   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2068   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2069     AC_MSG_RESULT(yes)
2070     VLC_ADD_PLUGINS([vcd cdda])
2071     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2072   ],[
2073     AC_MSG_RESULT(no)
2074   ])
2075
2076   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2077   then
2078     VLC_ADD_PLUGINS([vcd cdda])
2079   fi
2080
2081   if test "${SYS}" = "darwin"
2082   then
2083     VLC_ADD_PLUGINS([vcd cdda])
2084     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2085     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2086   fi
2087
2088   if test "$enable_libcddb" != "no"; then
2089     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2090       HAVE_LIBCDDB=yes 
2091       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2092       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2093       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2094       ],:
2095       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2096       HAVE_LIBCDDB=no])
2097   fi
2098 fi
2099
2100 dnl
2101 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2102 dnl
2103 AC_ARG_ENABLE(dvb,
2104   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2105
2106 if test "${enable_dvb}" = "yes"
2107 then
2108   AC_ARG_WITH(dvb,
2109   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2110   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2111   then
2112     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2113   fi
2114   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2115   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2116     if test -z "${with_dvbpsi_tree}"
2117     then
2118       VLC_ADD_PLUGINS([dvb])
2119     else
2120       VLC_ADD_BUILTINS([dvb])
2121     fi
2122   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2123   CPPFLAGS="${CPPFLAGS_save}"
2124 fi
2125
2126 dnl
2127 dnl  Screen capture module
2128 dnl
2129 AC_ARG_ENABLE(screen,
2130   [  --enable-screen         Screen capture support (default enabled)])
2131 if test "${enable_screen}" != "no"; then
2132   if test "${SYS}" = "darwin"; then
2133     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2134       VLC_ADD_PLUGINS([screen])
2135       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2136     ])
2137   elif test "${SYS}" = "mingw32"; then
2138     VLC_ADD_PLUGINS([screen])
2139     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2140   elif test "${SYS}" = "mingwce"; then
2141     CPPFLAGS="${CPPFLAGS_save}"
2142   elif test "${SYS}" = "beos"; then
2143     VLC_ADD_PLUGINS([screen])
2144     VLC_ADD_CXXFLAGS([screen],[])
2145     VLC_ADD_LDFLAGS([screen],[-lbe])
2146   else
2147     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2148     AC_CHECK_HEADERS(X11/Xlib.h, [
2149       VLC_ADD_PLUGINS([screen])
2150       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2151       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2152     ])
2153     CPPFLAGS="${CPPFLAGS_save}"
2154   fi
2155 fi
2156
2157 dnl
2158 dnl  ipv6 plugin - not for QNX yet
2159 dnl
2160 have_ipv6=no
2161 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2162   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2163 ])
2164
2165 AS_IF([test "${have_ipv6}" = "yes"], [
2166   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2167
2168 if test "${SYS}" != "nto" &&
2169    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2170 then
2171   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2172   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2173     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2174   AS_IF([test "${have_ipv6}" != "no"], [
2175     VLC_ADD_PLUGINS([ipv6])])
2176 fi
2177 if test "${SYS}" = "mingw32"
2178 then
2179   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2180   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2181     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2182 fi
2183
2184 dnl
2185 dnl  ogg demux plugin
2186 dnl
2187 AC_ARG_ENABLE(ogg,
2188   [  --enable-ogg            Ogg demux support (default enabled)])
2189 if test "${enable_ogg}" != "no"
2190 then
2191   AC_ARG_WITH(ogg-tree,
2192   [    --with-ogg-tree=PATH  ogg tree for static linking])
2193   if test -n "${with_ogg_tree}"
2194   then
2195     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2196     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2197     if test -z "${real_ogg_tree}"
2198     then
2199       dnl  The given directory can't be found
2200       AC_MSG_RESULT(no)
2201       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2202     fi
2203     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2204     then
2205       dnl  Use a custom ogg
2206       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2207       VLC_ADD_PLUGINS([ogg])
2208       if test "${enable_sout}" != "no"; then
2209         VLC_ADD_PLUGINS([mux_ogg])
2210       fi
2211       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2212       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2213     else
2214       dnl  The given ogg wasn't built
2215       AC_MSG_RESULT(no)
2216       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2217     fi
2218   else
2219     AC_CHECK_HEADERS(ogg/ogg.h, [
2220       AC_CHECK_LIB( ogg, oggpack_read, [
2221         VLC_ADD_PLUGINS([ogg])
2222         if test "${enable_sout}" != "no"; then
2223           VLC_ADD_PLUGINS([mux_ogg])
2224         fi
2225         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2226      ],[])
2227   fi
2228 fi
2229
2230 dnl
2231 dnl  matroska demux plugin
2232 dnl
2233 AC_ARG_ENABLE(mkv,
2234   [  --enable-mkv            Matroska demux support (default enabled)])
2235 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2236   AC_LANG_PUSH(C++)
2237   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2238     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2239     AC_EGREP_CPP(yes,
2240       [#include <ebml/EbmlVersion.h>
2241        #ifdef LIBEBML_VERSION
2242        #if LIBEBML_VERSION >= 0x000706
2243        yes
2244        #endif
2245        #endif],
2246       [AC_MSG_RESULT([yes])
2247         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2248           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2249           AC_EGREP_CPP(yes,
2250             [#include <matroska/KaxVersion.h>
2251              #ifdef LIBMATROSKA_VERSION
2252              #if LIBMATROSKA_VERSION >= 0x000705
2253              yes
2254              #endif
2255              #endif],
2256             [AC_MSG_RESULT([yes])
2257               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2258               VLC_ADD_CXXFLAGS([mkv],[])
2259               if test "${SYS}" = "darwin"; then
2260                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2261               fi
2262               AC_CHECK_LIB(ebml_pic, main, [
2263                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2264                 VLC_ADD_PLUGINS([mkv])
2265                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2266               ], [
2267                 AC_CHECK_LIB(ebml, main, [
2268                   # We only have libebml, make mkv.a a builtin
2269                   VLC_ADD_BUILTINS([mkv])
2270                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2271                 ])
2272               ])
2273             ],
2274             [AC_MSG_RESULT([no])
2275               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.])
2276           ])
2277         ])
2278       ],
2279       [AC_MSG_RESULT([no])
2280         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.])
2281     ])
2282   ])
2283   AC_LANG_POP(C++)
2284 fi
2285
2286 dnl
2287 dnl  modplug demux plugin
2288 dnl
2289 AC_ARG_ENABLE(mod,
2290   [  --enable-mod            Mod demux support (default enabled)])
2291 if test "${enable_mod}" != "no"
2292 then
2293   AC_ARG_WITH(mod-tree,
2294   [    --with-mod-tree=PATH mod tree for static linking])
2295   if test -n "${with_mod_tree}"
2296   then
2297     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2298     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2299     if test -z "${real_mod_tree}"
2300     then
2301       dnl  The given directory can't be found
2302       AC_MSG_RESULT(no)
2303       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2304     fi
2305     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2306     then
2307       dnl  Use a custom mod
2308       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2309       VLC_ADD_PLUGINS([mod])
2310       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2311       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2312     else
2313       dnl  The given mod wasn't built
2314       AC_MSG_RESULT(no)
2315       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2316     fi
2317   else
2318     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2319       VLC_ADD_PLUGINS([mod])
2320       VLC_ADD_CXXFLAGS([mod],[])
2321       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2322   fi
2323 fi
2324
2325 dnl
2326 dnl  mpc demux plugin
2327 dnl
2328 AC_ARG_ENABLE(mpc,
2329   [  --enable-mpc            Mpc demux support (default enabled)])
2330 if test "${enable_mpc}" != "no"
2331 then
2332   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2333     VLC_ADD_PLUGINS([mpc])
2334     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2335 fi
2336
2337
2338 dnl
2339 dnl  Codec plugins
2340 dnl
2341
2342 AC_ARG_WITH(,[Codec plugins:])
2343
2344 dnl
2345 dnl  mad plugin
2346 dnl
2347 AC_ARG_ENABLE(mad,
2348   [  --enable-mad            libmad module (default enabled)])
2349 if test "${enable_mad}" != "no"
2350 then
2351   AC_ARG_WITH(mad,
2352     [    --with-mad=PATH       path to libmad],[],[])
2353   if test "${with_mad}" != "no" -a -n "${with_mad}"
2354   then
2355     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2356     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2357   fi
2358
2359   AC_ARG_WITH(mad-tree,
2360     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2361   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2362   then
2363     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2364     if test -z "${real_mad_tree}"
2365     then
2366       dnl  The given directory can't be found
2367       AC_MSG_RESULT(no)
2368       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2369     fi
2370     dnl  Use a custom libmad
2371     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2372     if test -f ${real_mad_tree}/mad.h
2373     then
2374       AC_MSG_RESULT(yes)
2375       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2376       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2377       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2378       AC_CHECK_LIB(mad, mad_bit_init, [
2379         VLC_ADD_BUILTINS([mpgatofixed32])
2380         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2381         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2382       ],[])
2383       LDFLAGS="${LDFLAGS_save}"
2384     else
2385       AC_MSG_RESULT(no)
2386       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2387     fi
2388   else
2389     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2390     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2391     AC_CHECK_HEADERS(mad.h, ,
2392       [ 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.]) ])
2393     AC_CHECK_LIB(mad, mad_bit_init, [
2394       VLC_ADD_PLUGINS([mpgatofixed32])
2395       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2396       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2397     CPPFLAGS="${CPPFLAGS_save}"
2398     LDFLAGS="${LDFLAGS_save}"
2399   fi
2400 fi
2401
2402 dnl
2403 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2404 dnl
2405 AC_CHECK_HEADERS(id3tag.h, [
2406   AC_CHECK_HEADERS(zlib.h, [
2407     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2408     VLC_ADD_PLUGINS([id3tag])]) ])
2409
2410 dnl
2411 dnl  ffmpeg decoder/demuxer plugin
2412 dnl
2413 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2414 dnl                             4- default place, 
2415
2416 AC_ARG_ENABLE(ffmpeg,
2417 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2418 if test "${enable_ffmpeg}" != "no"
2419 then
2420
2421 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2422
2423  AC_ARG_WITH(ffmpeg-mp3lame,
2424    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2425    [
2426      if test "$with_ffmpeg_mp3lame" = "yes";    then
2427         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2428      fi])
2429
2430  AC_ARG_WITH(ffmpeg-faac,
2431    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2432    [
2433      if test "$with_ffmpeg_faac" = "yes"; then
2434         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2435      fi])
2436
2437  AC_ARG_WITH(ffmpeg-dts,
2438    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2439    [
2440      if test "$with_ffmpeg_dts" = "yes"; then
2441              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2442              AC_CHECK_LIB(dts_pic, dts_free, 
2443                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2444                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2445              LDFLAGS="${LDFLAGS_save}"
2446      fi])
2447
2448  AC_ARG_WITH(ffmpeg-vorbis,
2449    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2450    [
2451      if test "$with_ffmpeg_vorbis" = "yes"; then
2452         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2453      fi])
2454
2455  AC_ARG_WITH(ffmpeg-theora,
2456    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2457    [
2458      if test "$with_ffmpeg_theora" = "yes"; then
2459         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2460      fi])
2461
2462  AC_ARG_WITH(ffmpeg-ogg,
2463    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2464    [
2465      if test "$with_ffmpeg_ogg" = "yes"; then
2466         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2467      fi])
2468
2469  AC_ARG_WITH(ffmpeg-zlib,
2470    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2471    [
2472      if test "$with_ffmpeg_zlib" = "yes"; then
2473                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2474      fi])
2475
2476  dnl
2477  dnl test for --with-ffmpeg-tree
2478  dnl
2479  AC_ARG_WITH(ffmpeg-tree,
2480    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2481
2482  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2483    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2484    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2485    if test -z "${real_ffmpeg_tree}"; then
2486      dnl  The given directory can't be found
2487      AC_MSG_RESULT(no)
2488      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2489    fi
2490    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2491      dnl  The given libavcodec wasn't built
2492      AC_MSG_RESULT(no)
2493      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2494    fi
2495    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2496      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2497        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2498      else
2499        dnl  The given libavcodec wasn't built with --enable-pp
2500        AC_MSG_RESULT(no)
2501        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2502      fi
2503    fi
2504    dnl  Use a custom libffmpeg
2505    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2506
2507    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2508      if test "${with_ffmpeg_zlib}" != "yes"; then
2509        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2510      fi
2511    fi
2512    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2513      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2514        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2515      fi
2516    fi
2517    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2518      if test "${with_ffmpeg_faac}" != "yes"; then
2519        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2520      fi
2521    fi
2522    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2523      if test "${with_ffmpeg_dts}" != "yes"; then
2524        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2525        AC_CHECK_LIB(dts_pic, dts_free, 
2526          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2527          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2528        LDFLAGS="${LDFLAGS_save}"
2529      fi
2530    fi
2531    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2532      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2533    fi
2534    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2535      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2536    fi
2537    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2538      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2539    fi
2540
2541    VLC_ADD_BUILTINS([ffmpeg])
2542    if test "${enable_sout}" != "no"; then
2543      VLC_ADD_BUILTINS([stream_out_switcher])
2544    fi
2545
2546    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2547      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2548      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2549    fi
2550
2551    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2552    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2553
2554    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2555      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2556      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2557      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2558    fi
2559 else    
2560     
2561 dnl Look for a ffmpeg-config (we are on debian )
2562  
2563   FFMPEG_PATH="${PATH}"
2564   AC_ARG_WITH(ffmpeg-config-path,
2565     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2566     [ if test "${with_ffmpeg_config_path}" != "no"
2567       then
2568         FFMPEG_PATH="${with_ffmpeg_config_path}"
2569       fi ])
2570   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2571   if test "${FFMPEG_CONFIG}" != "no"
2572   then
2573     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2574     AC_CHECK_HEADERS(postproc/postprocess.h)
2575     VLC_ADD_PLUGINS([ffmpeg])
2576     if test "${enable_sout}" != "no"; then
2577         VLC_ADD_PLUGINS([stream_out_switcher])
2578     fi
2579     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2580     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2581  
2582  else
2583
2584 dnl Trying with pkg-config
2585    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2586     [
2587      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2588      AC_CHECK_HEADERS(postproc/postprocess.h)
2589      VLC_ADD_BUILTINS([ffmpeg])
2590      if test "${enable_sout}" != "no"; then
2591          VLC_ADD_BUILTINS([stream_out_switcher])
2592      fi
2593      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2594      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2595      dnl newer ffmpeg have a separate libpostproc
2596      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2597        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2598        ],[ true ])
2599     ],[
2600      
2601     dnl
2602     dnl last chance: at the default place
2603     dnl
2604       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2605       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2606       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2607       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2608
2609       AC_CHECK_LIB(avutil, av_add_i, [
2610         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2611         LDAVUTIL="-lavutil"])
2612
2613       AC_CHECK_LIB(postproc, pp_postprocess, [
2614         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2615
2616       AC_CHECK_LIB(avcodec, avcodec_init, [
2617         VLC_ADD_BUILTINS([ffmpeg])
2618         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2619         if test "${enable_sout}" != "no"; then
2620             VLC_ADD_BUILTINS([stream_out_switcher])
2621         fi],
2622          [ 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])
2623       AC_CHECK_LIB(avformat, av_open_input_stream, [
2624         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2625         [Define if you have ffmpeg's libavformat.])
2626         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2627       LDFLAGS="${LDFLAGS_save}"
2628       CPPFLAGS="${CPPFLAGS_save}"
2629     ])
2630   fi
2631  fi 
2632 fi
2633
2634 dnl
2635 dnl  ffmpegaltivec plugin
2636 dnl
2637 AC_ARG_ENABLE(ffmpegaltivec,
2638 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2639 if test "${enable_ffmpegaltivec}" = "yes"
2640 then
2641   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2642     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2643     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2644     if test -z "${real_ffmpeg_tree}"; then
2645       dnl  The given directory can't be found
2646       AC_MSG_RESULT(no)
2647       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2648     fi
2649     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2650       dnl  The given libavcodecaltivec wasn't built
2651       AC_MSG_RESULT(no)
2652       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2653     fi
2654     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2655       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2656       AC_MSG_RESULT(no)
2657       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2658     fi
2659     dnl  Use a custom libffmpeg
2660     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2661     VLC_ADD_BUILTINS([ffmpegaltivec])
2662     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2663     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2664     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2665
2666     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2667       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2668       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2669       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2670     fi
2671     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2672     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2673   fi
2674 fi
2675
2676 dnl
2677 dnl  faad decoder plugin
2678 dnl
2679 AC_ARG_ENABLE(faad,
2680 [  --enable-faad           faad codec (default disabled)])
2681 if test "${enable_faad}" = "yes"
2682 then
2683   AC_ARG_WITH(faad-tree,
2684   [    --with-faad-tree=PATH faad tree for static linking])
2685   if test -n "${with_faad_tree}"
2686   then
2687     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2688     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2689     if test -z "${real_faad_tree}"
2690     then
2691       dnl  The given directory can't be found
2692       AC_MSG_RESULT(no)
2693       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2694     fi
2695     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2696     then
2697       dnl  Use a custom faad
2698       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2699       VLC_ADD_BUILTINS([faad])
2700       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2701       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2702     else
2703       dnl  The given libfaad wasn't built
2704       AC_MSG_RESULT(no)
2705       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2706     fi
2707   else
2708     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2709     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2710     AC_CHECK_HEADERS(faad.h, ,
2711       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2712     AC_CHECK_LIB(faad, faacDecOpen, [
2713       VLC_ADD_PLUGINS([faad])
2714       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2715       AC_CHECK_LIB(faad, NeAACDecOpen, [
2716         VLC_ADD_PLUGINS([faad])
2717         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2718         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2719     LDFLAGS="${LDFLAGS_save}"
2720     CPPFLAGS="${CPPFLAGS_save}"
2721   fi
2722 fi
2723
2724 dnl
2725 dnl twolame encoder plugin
2726 dnl
2727 AC_ARG_ENABLE(twolame,
2728 [  --enable-twolame        twolame codec (default disabled)])
2729 if test "${enable_twolame}" = "yes"
2730 then
2731   AC_ARG_WITH(twolame-tree,
2732   [    --with-twolame-tree=PATH twolame tree for static linking])
2733   if test -n "${with_twolame_tree}"
2734   then
2735     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2736     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2737     if test -z "${real_twolame_tree}"
2738     then
2739       dnl  The given directory can't be found
2740       AC_MSG_RESULT(no)
2741       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2742     fi
2743     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2744     then
2745       dnl  Use a custom twolame
2746       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2747       VLC_ADD_BUILTINS([twolame])
2748       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2749       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2750     else
2751       dnl  The given libtwolame wasn't built
2752       AC_MSG_RESULT(no)
2753       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2754     fi
2755   else
2756     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2757     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2758     AC_CHECK_HEADERS(twolame.h, ,
2759       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2760     AC_CHECK_LIB(twolame, twolame_init, [
2761       VLC_ADD_PLUGINS([twolame])
2762       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2763         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2764     LDFLAGS="${LDFLAGS_save}"  
2765     CPPFLAGS="${CPPFLAGS_save}"
2766   fi
2767 fi
2768
2769 dnl
2770 dnl  QuickTime plugin
2771 dnl
2772 AC_ARG_ENABLE(quicktime,
2773   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2774 if test "${enable_quicktime}" != "no" &&
2775   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2776 then
2777   if test "${SYS}" = "mingw32"; then
2778     VLC_ADD_BUILTINS([quicktime])
2779   else
2780   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2781     [ VLC_ADD_BUILTINS([quicktime])
2782       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2783     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2784   fi
2785 fi
2786
2787 dnl
2788 dnl  Real plugin
2789 dnl
2790 AC_ARG_ENABLE(real,
2791   [  --enable-real           Real audio module (default disabled)])
2792 if test "${enable_real}" = "yes"; then
2793   VLC_ADD_PLUGINS([realaudio])
2794 fi
2795
2796 dnl
2797 dnl  Real RTSP plugin
2798 dnl
2799 AC_ARG_ENABLE(realrtsp,
2800   [  --enable-realrtsp       Real RTSP module (default disabled)])
2801 if test "${enable_realrtsp}" = "yes"; then
2802   VLC_ADD_PLUGINS([access_realrtsp])
2803 fi
2804
2805 dnl
2806 dnl MP4 module
2807 dnl
2808 AC_CHECK_HEADERS(zlib.h, [
2809   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2810 ] )
2811
2812 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2813   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2814 ] )
2815
2816 dnl
2817 dnl skins2 module
2818 dnl
2819 AC_CHECK_HEADERS(libtar.h, [
2820   VLC_ADD_LDFLAGS([skins2],[-ltar])
2821 ] )
2822
2823
2824
2825 dnl
2826 dnl A52/AC3 decoder plugin
2827 dnl
2828 AC_ARG_ENABLE(a52,
2829   [  --enable-a52            A/52 support with liba52 (default enabled)])
2830 if test "${enable_a52}" != "no"
2831 then
2832   AC_ARG_WITH(a52,
2833     [    --with-a52=PATH       a52 headers and libraries])
2834   AC_ARG_WITH(a52-tree,
2835     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2836   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2837   then
2838     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2839     if test -z "${real_a52_tree}"
2840     then
2841       dnl  The given directory can't be found
2842       AC_MSG_RESULT(no)
2843       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2844     fi
2845     dnl  Use a custom a52dec
2846     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2847     if test -f ${real_a52_tree}/include/a52.h
2848     then
2849       AC_MSG_RESULT(yes)
2850       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2851       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2852       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2853       AC_CHECK_LIB(a52, a52_free, [
2854         VLC_ADD_BUILTINS([a52tofloat32])
2855         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2856         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2857         ],[
2858         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2859         then
2860           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2861         else
2862           AC_MSG_ERROR([the specified tree hasn't been compiled])
2863         fi
2864       ])
2865       LDFLAGS="${LDFLAGS_save}"
2866     else
2867       AC_MSG_RESULT(no)
2868       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2869     fi
2870   else
2871     if test -z "${with_a52}"
2872     then
2873       LDFLAGS_test=""
2874       CPPFLAGS_test=""
2875     else
2876       LDFLAGS_test="-L${with_a52}/lib"
2877       CPPFLAGS_test="-I${with_a52}/include"
2878     fi
2879     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2880     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2881     AC_CHECK_HEADERS(a52dec/a52.h, [
2882       AC_CHECK_LIB(a52, a52_free, [
2883         VLC_ADD_PLUGINS([a52tofloat32])
2884         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2885         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2886       ],[
2887         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.])
2888       ])
2889     ])
2890     CPPFLAGS="${CPPFLAGS_save}"
2891     LDFLAGS="${LDFLAGS_save}"
2892   fi
2893 fi
2894
2895 AC_ARG_WITH(a52-fixed,
2896       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2897       [
2898         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2899
2900 dnl
2901 dnl DTS Coherent Acoustics decoder plugin
2902 dnl
2903 AC_ARG_ENABLE(dts,
2904   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2905 if test "${enable_dts}" != "no"; then
2906   AC_ARG_WITH(dts-tree,
2907     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2908   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2909   then
2910     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2911     if test -z "${real_dts_tree}"
2912     then
2913       dnl  The given directory can't be found
2914       AC_MSG_RESULT(no)
2915       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2916     fi
2917     dnl  Use a custom libdts
2918     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2919     if test -f ${real_dts_tree}/include/dts.h
2920     then
2921       AC_MSG_RESULT(yes)
2922       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2923       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2924       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2925       AC_CHECK_LIB(dts_pic, dts_free, [
2926         VLC_ADD_PLUGINS([dtstofloat32])
2927         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2928         ],[
2929         AC_CHECK_LIB(dts, dts_free, [
2930           VLC_ADD_BUILTINS([dtstofloat32])
2931           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2932           ],[
2933           if test -f ${real_dts_tree}/libdts/libdts.a
2934           then
2935             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2936           else
2937             AC_MSG_ERROR([the specified tree hasn't been compiled])
2938           fi
2939         ])
2940       ])
2941       LDFLAGS="${LDFLAGS_save}"
2942     else
2943       AC_MSG_RESULT(no)
2944       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2945     fi
2946   else
2947     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2948     AC_CHECK_HEADERS(dts.h, [
2949       AC_CHECK_LIB(dts_pic, dts_free, [
2950         VLC_ADD_PLUGINS([dtstofloat32])
2951         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2952       ],[
2953         AC_CHECK_LIB(dts, dts_free, [
2954           VLC_ADD_BUILTINS([dtstofloat32])
2955           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2956         ],[
2957           if test "${enable_dts}" = "yes"; then
2958             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2959           fi
2960         ])
2961       ])
2962     ])
2963     LDFLAGS="${LDFLAGS_save}"
2964   fi
2965 fi
2966
2967 dnl
2968 dnl  Flac plugin
2969 dnl
2970 AC_ARG_ENABLE(flac,
2971   [  --enable-flac           flac decoder support (default disabled)])
2972 if test "${enable_flac}" = "yes"
2973 then
2974   AC_ARG_WITH(flac-tree,
2975   [    --with-flac-tree=PATH flac tree for static linking])
2976   if test -n "${with_flac_tree}"
2977   then
2978     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2979     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2980     if test -z "${real_flac_tree}"
2981     then
2982       dnl  The given directory can't be found
2983       AC_MSG_RESULT(no)
2984       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2985     fi
2986     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2987     then
2988       dnl  Use a custom flac
2989       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2990       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2991       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2992       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2993     else
2994       dnl  The given flac wasn't built
2995       AC_MSG_RESULT(no)
2996       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2997     fi
2998   else
2999     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3000       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3001      ],[])
3002   fi
3003 fi
3004
3005 dnl
3006 dnl  Libmpeg2 plugin
3007 dnl
3008 AC_ARG_ENABLE(libmpeg2,
3009   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3010 if test "${enable_libmpeg2}" != "no"
3011 then
3012   AC_ARG_WITH(libmpeg2-tree,
3013   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3014   if test -n "${with_libmpeg2_tree}"
3015   then
3016     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3017     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3018     if test -z "${real_libmpeg2_tree}"
3019     then
3020       dnl  The given directory can't be found
3021       AC_MSG_RESULT(no)
3022       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3023     fi
3024     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3025     then
3026       dnl  Use a custom libmpeg2
3027       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3028       VLC_ADD_BUILTINS([libmpeg2])
3029       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3030       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3031       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3032     else
3033       dnl  The given libmpeg2 wasn't built
3034       AC_MSG_RESULT(no)
3035       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3036     fi
3037   else
3038     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3039       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3040       AC_EGREP_CPP(yes,
3041         [#include <mpeg2dec/mpeg2.h>
3042          #ifdef MPEG2_RELEASE
3043          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3044          yes
3045          #endif
3046          #endif],
3047         [AC_MSG_RESULT([yes])
3048           VLC_ADD_PLUGINS([libmpeg2])
3049           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3050         [AC_MSG_RESULT([no])
3051           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.])])],
3052
3053       [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.])]
3054     )
3055   fi
3056 fi
3057
3058 dnl
3059 dnl  Vorbis plugin
3060 dnl
3061 AC_ARG_ENABLE(vorbis,
3062   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3063 if test "${enable_vorbis}" != "no"
3064 then
3065   AC_ARG_WITH(vorbis-tree,
3066   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3067   if test -n "${with_vorbis_tree}"
3068   then
3069     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3070     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3071     if test -z "${real_vorbis_tree}"
3072     then
3073       dnl  The given directory can't be found
3074       AC_MSG_RESULT(no)
3075       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3076     fi
3077     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3078     then
3079       dnl  Use a custom vorbis 
3080       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3081       VLC_ADD_PLUGINS([vorbis])
3082       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3083       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3084     else
3085       dnl  The given vorbis wasn't built
3086       AC_MSG_RESULT(no)
3087       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3088     fi
3089   else
3090     AC_CHECK_HEADERS(vorbis/codec.h, [
3091       VLC_ADD_PLUGINS([vorbis])
3092       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3093
3094     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3095       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3096   fi
3097 fi
3098
3099 dnl
3100 dnl  Tremor plugin
3101 dnl
3102 AC_ARG_ENABLE(tremor,
3103   [  --enable-tremor         Tremor decoder support (default disabled)])
3104 if test "${enable_tremor}" = "yes"
3105 then
3106   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3107     VLC_ADD_PLUGINS([tremor])
3108     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3109    ],[])
3110 fi
3111
3112 dnl
3113 dnl  Speex plugin
3114 dnl
3115 AC_ARG_ENABLE(speex,
3116   [  --enable-speex          Speex decoder support (default enabled)])
3117 if test "${enable_speex}" != "no"
3118 then
3119   AC_ARG_WITH(speex-tree,
3120   [    --with-speex-tree=PATH speex tree for static linking])
3121   if test -n "${with_speex_tree}"
3122   then
3123     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3124     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3125     if test -z "${real_speex_tree}"
3126     then
3127       dnl  The given directory can't be found
3128       AC_MSG_RESULT(no)
3129       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3130     fi
3131     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3132     then
3133       dnl  Use a custom speex
3134       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3135       VLC_ADD_PLUGINS([speex])
3136       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3137       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3138     else
3139       dnl  The given speex wasn't built
3140       AC_MSG_RESULT(no)
3141       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3142     fi
3143   else
3144     AC_CHECK_HEADERS(speex/speex.h, [
3145       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3146       AC_CHECK_LIB(speex, speex_decode_int, [
3147         VLC_ADD_PLUGINS([speex])
3148         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3149         [ AC_MSG_RESULT([no])
3150           AC_MSG_WARN([Your libspeex is too old, please get the development
3151                        version.]) ],[])
3152       LDFLAGS="${LDFLAGS_save}"
3153       ],[])
3154   fi
3155 fi
3156
3157 dnl
3158 dnl  tarkin decoder plugin
3159 dnl
3160 AC_ARG_ENABLE(tarkin,
3161 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3162 if test "${enable_tarkin}" = "yes"
3163 then
3164   AC_ARG_WITH(tarkin-tree,
3165   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3166   if test -n "${with_tarkin_tree}"
3167   then
3168     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3169     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3170     if test -f "${real_tarkin_tree}/tarkin.o"
3171     then
3172       VLC_ADD_BUILTINS([tarkin])
3173       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3174       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])
3175       AC_MSG_RESULT(yes)
3176     else
3177       dnl  The given tarkin tree wasn't built
3178       AC_MSG_RESULT(no)
3179       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3180                     make sure you compiled tarkin in ${with_tarkin_tree}])
3181     fi
3182   fi
3183 fi
3184
3185 dnl
3186 dnl  theora decoder plugin
3187 dnl
3188 AC_ARG_ENABLE(theora,
3189 [  --enable-theora         experimental theora codec (default disabled)])
3190 if test "${enable_theora}" = "yes"
3191 then
3192   AC_CHECK_HEADERS(theora/theora.h, [
3193     AC_CHECK_LIB(theora, theora_granule_time, [
3194       if test "${SYS}" = "mingw32"; then
3195         VLC_ADD_PLUGINS([theora])
3196       else
3197         VLC_ADD_BUILTINS([theora])
3198       fi
3199       theora_libs="-ltheora -logg"
3200       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3201       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3202 You also need to check that you have a libogg posterior to the 1.0 release.])],
3203       [-logg])
3204   ])
3205 fi
3206
3207 dnl
3208 dnl  dirac decoder plugin
3209 dnl
3210 AC_ARG_ENABLE(dirac,
3211 [  --enable-dirac          experimental dirac codec (default disabled)])
3212 if test "${enable_dirac}" = "yes"; then
3213   PKG_CHECK_MODULES(DIRAC,dirac, [
3214       VLC_ADD_PLUGINS([dirac])
3215       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3216       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3217       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3218   ])
3219 fi
3220
3221 dnl  libvc1 decoder plugin
3222 dnl
3223 AC_ARG_ENABLE(libvc1,
3224 [  --enable-libvc1         VC-1 codec (default disabled)])
3225 if test "${enable_libvc1}" = "yes"
3226 then
3227   AC_ARG_WITH(libvc1-tree,
3228   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3229   if test -n "${with_libvc1_tree}"
3230   then
3231     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3232     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3233     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3234     then
3235       VLC_ADD_BUILTINS([libvc1])
3236       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3237       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3238       AC_MSG_RESULT(yes)
3239     else
3240       dnl  The given libvc1 tree wasn't built
3241       AC_MSG_RESULT(no)
3242       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3243                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3244     fi
3245   fi
3246 fi
3247
3248 dnl
3249 dnl  PNG decoder module
3250 dnl
3251 AC_ARG_ENABLE(png,
3252   [  --enable-png            PNG support (default enabled)])
3253 if test "${enable_png}" != "no"; then
3254 AC_CHECK_HEADERS(png.h, [
3255   LDFLAGS="${LDFLAGS_save} -lz"
3256   AC_CHECK_LIB(png, png_set_rows, [
3257     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3258     VLC_ADD_PLUGINS([png])
3259     VLC_ADD_PLUGINS([osdmenu])
3260     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3261     [],[-lz])
3262   LDFLAGS="${LDFLAGS_save}"
3263   ])
3264 fi
3265
3266 dnl
3267 dnl H264 encoder plugin (using libx264)
3268 dnl
3269 AC_ARG_ENABLE(x264,
3270   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3271 if test "${enable_x264}" != "no"; then
3272   AC_ARG_WITH(x264-tree,
3273     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3274   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3275   then
3276     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3277     if test -z "${real_x264_tree}"
3278     then
3279       dnl  The given directory can't be found
3280       AC_MSG_RESULT(no)
3281       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3282     fi
3283     dnl  Use a custom libx264
3284     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3285     if test -f ${real_x264_tree}/x264.h
3286     then
3287       AC_MSG_RESULT(yes)
3288       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3289       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3290       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3291       AC_CHECK_LIB(x264, x264_encoder_open, [
3292         VLC_ADD_BUILTINS([x264])
3293         VLC_ADD_LDFLAGS([x264],[-lx264])
3294       ],[
3295         AC_MSG_ERROR([the specified tree hasn't been compiled])
3296       ])
3297       LDFLAGS="${LDFLAGS_save}"
3298     else
3299       AC_MSG_RESULT(no)
3300       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3301     fi
3302   else
3303     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3304     AC_CHECK_HEADERS(x264.h, [
3305       AC_CHECK_LIB(x264, x264_encoder_open, [
3306         VLC_ADD_PLUGINS([x264])
3307         VLC_ADD_LDFLAGS([x264],[-lx264])
3308       ],[
3309         if test "${enable_x264}" = "yes"; then
3310             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3311           fi
3312       ])
3313     ])
3314     LDFLAGS="${LDFLAGS_save}"
3315   fi
3316 fi
3317
3318 dnl
3319 dnl  CMML plugin
3320 dnl
3321 AC_ARG_ENABLE(cmml,
3322   [  --enable-cmml           CMML support (default enabled)])
3323 if test "${enable_cmml}" != "no"
3324 then
3325   VLC_ADD_PLUGINS([cmml])
3326 fi
3327
3328
3329 dnl
3330 dnl  Video plugins
3331 dnl
3332
3333 AC_ARG_WITH(,[Video plugins:])
3334
3335 dnl Check for DPMS
3336 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3337   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3338   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3339     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3340     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3341       AC_MSG_RESULT(yes)
3342       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3343                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3344     ],[
3345       AC_MSG_RESULT(no)
3346     ])
3347   ],,[
3348     #include <X11/Xlib.h>
3349   ])
3350   CPPFLAGS="${CPPFLAGS_save}"
3351 fi
3352
3353 dnl
3354 dnl  X11 module
3355 dnl  (enabled by default except on win32)
3356 dnl
3357 AC_ARG_ENABLE(x11,
3358   [  --enable-x11            X11 support (default enabled)])
3359 if test "${enable_x11}" != "no" &&
3360   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3361    test "${enable_x11}" = "yes"); then
3362   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3363   AC_CHECK_HEADERS(X11/Xlib.h, [
3364     VLC_ADD_PLUGINS([x11])
3365     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3366     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3367   ])
3368   CPPFLAGS="${CPPFLAGS_save}"
3369 fi
3370
3371 dnl
3372 dnl  XVideo module
3373 dnl  (enabled by default except on win32)
3374 dnl
3375 AC_ARG_ENABLE(xvideo,
3376   [  --enable-xvideo         XVideo support (default enabled)])
3377 if test "${enable_xvideo}" != "no" &&
3378   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3379    test "${enable_xvideo}" = "yes"); then
3380   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3381   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3382     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3383     AC_CHECK_LIB(Xv,XvPutImage,[
3384       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3385       # test for libXv_pic.
3386       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3387         VLC_ADD_PLUGINS([xvideo])
3388         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3389         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3390       else
3391         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3392           VLC_ADD_PLUGINS([xvideo])
3393           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3394           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3395         ],[
3396           VLC_ADD_BUILTINS([xvideo])
3397           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3398           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3399         ])
3400       fi
3401     ])
3402     CFLAGS="${CFLAGS_save}"
3403   ]
3404   CPPFLAGS="${CPPFLAGS_save}")
3405 fi
3406
3407 dnl
3408 dnl  GLX module
3409 dnl  (enabled by default except on win32)
3410 dnl
3411 AC_ARG_ENABLE(glx,
3412   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3413 if test "${enable_glx}" != "no" &&
3414   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3415    test "${enable_glx}" = "yes"); then
3416   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3417   AC_CHECK_HEADERS(X11/Xlib.h, [
3418     AC_CHECK_HEADERS(GL/glx.h, [
3419       VLC_ADD_PLUGINS([glx])
3420       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3421       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3422   ]) ])
3423   CPPFLAGS="${CPPFLAGS_save}"
3424 fi
3425
3426 dnl
3427 dnl  Check for the Xinerama extension
3428 dnl
3429 AC_ARG_ENABLE(xinerama,
3430   [  --enable-xinerama       Xinerama support (default enabled)])
3431 if test "${enable_xvideo}" != "no" && test "${enable_xinerama}" != "no" &&
3432   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3433    test "${enable_xvideo}" = "yes"); then
3434   ac_cv_have_xinerama="no"
3435   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3436   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3437   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3438     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3439       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3440       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3441       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3442       ac_cv_have_xinerama="yes"
3443     ],[
3444       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3445         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3446         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3447         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3448         ac_cv_have_xinerama="yes"
3449       ])
3450     ])
3451   ])
3452   if test "${ac_cv_have_xinerama}" = "yes"; then
3453     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3454   fi
3455   CFLAGS="${CFLAGS_save}"
3456   CPPFLAGS="${CPPFLAGS_save}"
3457
3458 dnl
3459 dnl  Check for XF86VidMode extension
3460 dnl
3461   ac_cv_have_xf86vidmode="no"
3462   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3463   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3464   AC_CHECK_HEADERS(X11/extensions/xf86vmode.h,[
3465     AC_CHECK_LIB(Xxf86vm_pic, XF86VidModeGetViewPort,[
3466       VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm_pic])
3467       VLC_ADD_LDFLAGS([x11],[-lXxf86vm_pic])
3468       VLC_ADD_LDFLAGS([glx],[-lXxf86vm_pic])
3469       ac_cv_have_xf86vidmode="yes"
3470     ],[
3471       AC_CHECK_LIB(Xxf86vm, XF86VidModeGetViewPort,[
3472         VLC_ADD_LDFLAGS([xvideo],[-lXxf86vm])
3473         VLC_ADD_LDFLAGS([x11],[-lXxf86vm])
3474         VLC_ADD_LDFLAGS([glx],[-lXxf86vm])
3475         ac_cv_have_xf86vidmode="yes"
3476       ])
3477     ])
3478   ],[true],
3479 [#ifdef HAVE_X11_XLIB_H
3480 # include <X11/Xlib.h>
3481 #endif]
3482    )
3483   AS_IF([test "${ac_cv_have_xf86vidmode}" = "yes"],
3484     [AC_DEFINE(HAVE_XF86VIDMODE, 1, [Define this if you have libXxf86vm installed])
3485   ])
3486   CFLAGS="${CFLAGS_save}"
3487   CPPFLAGS="${CPPFLAGS_save}"
3488
3489 fi
3490
3491 dnl
3492 dnl  OpenGL module
3493 dnl  (enabled by default except on beos)
3494 dnl
3495 AC_ARG_ENABLE(opengl,
3496   [  --enable-opengl         OpenGL support (default enabled)])
3497 if test "${enable_opengl}" != "no" &&
3498    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3499   if test "${SYS}" != "darwin"; then
3500     AC_CHECK_HEADERS(GL/gl.h, [
3501       VLC_ADD_PLUGINS([opengl])
3502       if test "${SYS}" != "mingw32"; then
3503         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3504       else
3505         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3506       fi
3507     ])
3508   else
3509     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3510     VLC_ADD_PLUGINS([opengl])
3511     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3512   fi
3513 fi
3514
3515 dnl
3516 dnl  SDL module
3517 dnl
3518 AC_ARG_ENABLE(sdl,
3519   [  --enable-sdl            SDL support (default enabled)])
3520 if test "${enable_sdl}" != "no"
3521 then
3522   SDL_PATH="${PATH}"
3523   AC_ARG_WITH(sdl-config-path,
3524     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3525     [ if test "${with_sdl_config_path}" != "no"
3526       then
3527         SDL_PATH="${with_sdl_config_path}:${PATH}"
3528       fi ])
3529   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3530   SDL_CONFIG="${SDL12_CONFIG}"
3531   SDL_HEADER="SDL12/SDL.h"
3532   SDL_IMAGE="SDL12/SDL_image.h"
3533   if test "${SDL_CONFIG}" = "no"
3534   then
3535     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3536     SDL_CONFIG=${SDL11_CONFIG}
3537     SDL_HEADER="SDL11/SDL.h"
3538     SDL_IMAGE="SDL11/SDL_image.h"
3539   fi
3540   if test "${SDL_CONFIG}" = "no"
3541   then
3542     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3543     SDL_HEADER="SDL/SDL.h"
3544     SDL_IMAGE="SDL/SDL_image.h"
3545   fi
3546   # check for cross-compiling
3547   SDL_PREFIX=
3548   AC_ARG_WITH(sdl-prefix,
3549     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3550                                e.g use as:
3551                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3552   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3553   then
3554     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3555   fi
3556   if test "${SDL_CONFIG}" != "no"
3557   then
3558     # SDL on Darwin is heavily patched and can only run SDL_image
3559     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3560       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3561     fi
3562     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3563     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3564     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3565     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3566       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3567       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3568           As a last resort we also test for SDL.h presence),
3569       [ AC_MSG_ERROR([The development package for SDL is not installed.
3570 Please install it and try again. Alternatively you can also configure with
3571 --disable-sdl.])
3572       ])])
3573     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3574       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3575       VLC_ADD_PLUGINS([sdl_image])
3576       AC_CHECK_LIB(png, png_set_rows,
3577         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3578       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3579         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3580       AC_CHECK_LIB(tiff, TIFFClientOpen,
3581         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3582       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3583       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3584           As a last resort we also test for SDL_image.h presence),
3585       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3586 You should install it alongside your SDL package.])
3587       ])])
3588     CPPFLAGS="${CPPFLAGS_save}"
3589     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3590     then
3591       AC_MSG_ERROR([The development package for SDL is not installed.
3592 Please install it and try again. Alternatively you can also configure with
3593 --disable-sdl.])
3594     fi
3595
3596   elif test "${enable_sdl}" =  "yes"
3597   then
3598     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3599 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3600     ])
3601   fi
3602 fi
3603
3604 dnl
3605 dnl  freetype module
3606 dnl
3607 AC_ARG_ENABLE(freetype,
3608   [  --enable-freetype       freetype support (default enabled)])
3609 AC_ARG_ENABLE(fribidi,
3610   [  --enable-fribidi        fribidi support (default enabled)])
3611 if test "${enable_freetype}" != "no"
3612 then
3613   FREETYPE_PATH="${PATH}"
3614   AC_ARG_WITH(freetype-config-path,
3615     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3616     [ if test "${with_freetype_config_path}" != "no"
3617       then
3618         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3619       fi ])
3620   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3621
3622   if test "${FREETYPE_CONFIG}" != "no"
3623   then
3624     VLC_ADD_PLUGINS([freetype])
3625     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3626     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3627     AC_CHECK_HEADERS(Carbon/Carbon.h,
3628       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3629   elif test "${enable_freetype}" =  "yes"
3630   then
3631     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3632 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3633     ])
3634   fi
3635
3636   dnl fribidi support
3637   if test "${enable_fribidi}" != "no"
3638   then
3639     FRIBIDI_PATH="${PATH}"
3640     AC_ARG_WITH(fribidi-config-path,
3641       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3642       [ if test "${with_fribidi_config_path}" != "no"
3643         then
3644           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3645         fi ])
3646     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3647
3648     if test "${FRIBIDI_CONFIG}" != "no"
3649     then
3650       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3651       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3652       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3653       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3654     fi
3655   fi
3656 fi
3657
3658 dnl
3659 dnl  libxml2 module
3660 dnl
3661 AC_ARG_ENABLE(libxml2,
3662   [  --enable-libxml2        libxml2 support (default enabled)])
3663 if test "${enable_libxml2}" != "no"
3664 then
3665   XML2_PATH="${PATH}"
3666   AC_ARG_WITH(xml2-config-path,
3667     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3668     [ if test "${with_xml2_config_path}" != "no"; then
3669         XML2_PATH="${with_xml2_config_path}:${PATH}"
3670       fi ])
3671   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3672   if test "${XML2_CONFIG}" != "no"; then
3673     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3674     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3675     dnl depends on the xmlTextReader extension
3676     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3677     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3678     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3679       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3680         VLC_ADD_PLUGINS([xml]) ],[
3681           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3682           if test "${enable_xml2}" = "yes"; then
3683             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3684           fi])
3685        ],[
3686       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3687       if test "${enable_xml2}" = "yes"; then
3688         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3689       fi])
3690     LDFLAGS="${LDFLAGS_save}"
3691     CPPFLAGS="${CPPFLAGS_save}"
3692   else
3693     if test "${enable_xml2}" = "yes"; then
3694       AC_MSG_ERROR([Could not find libxml2])
3695     fi
3696   fi
3697 fi
3698
3699 dnl
3700 dnl  SVG module
3701 dnl
3702 AC_ARG_ENABLE(svg,
3703   [  --enable-svg            SVG support (default disabled)])
3704 if test "${enable_svg}" = "yes"
3705 then
3706   PKG_CHECK_MODULES(SVG, 
3707         librsvg-2.0 >= 2.5.0,
3708         [
3709           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3710           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3711           VLC_ADD_PLUGINS([svg]) ],
3712         [AC_MSG_WARN(SVG library not found)])
3713 fi
3714
3715 dnl
3716 dnl Snapshot vout module (with cache)
3717 dnl
3718 AC_ARG_ENABLE(snapshot,
3719   [  --enable-snapshot       snapshot module (default disabled)])
3720 if test "${enable_snapshot}" = "yes"
3721 then
3722   VLC_ADD_PLUGINS([snapshot])
3723 fi
3724
3725 dnl
3726 dnl  Qt Embedded module
3727 dnl  (disabled by default)
3728 dnl
3729 AC_ARG_ENABLE(qte,
3730   [  --enable-qte            QT Embedded support (default disabled)])
3731 if test "${enable_qte}" = "yes"
3732 then
3733   AC_ARG_WITH(qte,
3734   [    --with-qte=PATH       Qt Embedded headers and libraries])
3735   if test "${with_qte}" != "no" -a -n "${with_qte}"
3736   then
3737     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3738     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])
3739   else
3740     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3741     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3742   fi
3743   VLC_ADD_PLUGINS([qte])
3744   NEED_QTE_MAIN=yes
3745   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3746   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3747     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3748   ] )
3749   CPPFLAGS="${CPPFLAGS_save}"
3750 fi
3751
3752 dnl
3753 dnl  Qt Video output module
3754 dnl  (disabled by default)
3755 dnl
3756 dnl AC_ARG_ENABLE(qt_video,
3757 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3758 dnl if test "${enable_qt_video}" = "yes"
3759 dnl then
3760 dnl  VLC_ADD_PLUGINS([qt_video])
3761 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3762 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3763 dnl   AC_CHECK_LIB(qt-mt,main,[
3764 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3765 dnl  ],[
3766 dnl    AC_CHECK_LIB(qt,main,[
3767 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3768 dnl    ])
3769 dnl  ])
3770 dnl  NEED_QTE_MAIN=yes
3771 dnl  LDFLAGS="${LDFLAGS_save}"
3772 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3773 dnl fi
3774
3775 dnl
3776 dnl Roku HD1000 Video output module
3777 dnl
3778 AC_ARG_ENABLE(hd1000v,
3779   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3780 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3781   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3782    test "${enable_hd1000v}" = "yes"); then
3783   AC_LANG_PUSH([C++])
3784   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3785   [
3786     can_build_roku="yes"
3787   ],
3788   [
3789     can_build_roku="no"
3790     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3791   ])
3792   if test "$can_build_roku" = "yes"
3793   then
3794     VLC_ADD_PLUGINS([hd1000v])
3795     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3796   fi
3797   AC_LANG_POP([C++])
3798 fi
3799
3800 dnl
3801 dnl  Windows DirectX module
3802 dnl
3803 AC_ARG_ENABLE(directx,
3804   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3805 if test "${enable_directx}" != "no"
3806 then
3807   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3808   then
3809     AC_ARG_WITH(directx,
3810     [    --with-directx=PATH   Win32 DirectX headers])
3811     if test -z "${with_directx}"
3812     then
3813       AC_CHECK_HEADERS(ddraw.h,
3814       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3815         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3816         dnl to be moved when dependance is removed
3817         AC_CHECK_HEADERS(GL/gl.h, [
3818             VLC_ADD_PLUGINS([glwin32])
3819             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3820         ]) ])
3821     else
3822       AC_MSG_CHECKING(for directX headers in ${with_directx})
3823       if test -f ${with_directx}/ddraw.h
3824       then
3825         VLC_ADD_PLUGINS([vout_directx aout_directx])
3826         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3827         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3828         AC_MSG_RESULT(yes)
3829       else
3830         AC_MSG_RESULT(no)
3831         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3832       fi
3833     fi
3834   fi
3835 fi
3836
3837 dnl
3838 dnl  Linux framebuffer module
3839 dnl
3840 AC_ARG_ENABLE(fb,
3841   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3842     if test "${enable_fb}" != "no"
3843     then
3844       AC_CHECK_HEADERS(linux/fb.h, [
3845         VLC_ADD_PLUGINS([fb])
3846       ])
3847     fi
3848
3849 dnl
3850 dnl  Linux MGA module
3851 dnl
3852 AC_ARG_ENABLE(mga,
3853   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3854   [ if test "${enable_mga}" = "yes"
3855     then
3856       VLC_ADD_PLUGINS([mga])
3857     fi ])
3858
3859 dnl
3860 dnl  SVGAlib module
3861 dnl
3862 AC_ARG_ENABLE(svgalib,
3863   [  --enable-svgalib        SVGAlib support (default disabled)])
3864 if test "${enable_svgalib}" = "yes"
3865 then
3866   VLC_ADD_PLUGINS([svgalib])
3867   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3868 fi
3869
3870 dnl
3871 dnl  DirectFB module
3872 dnl
3873 AC_ARG_ENABLE(directfb,
3874   [  --enable-directfb       DirectFB support (default disabled)])
3875 if test "${enable_directfb}" = "yes"
3876 then
3877   if test "${with_directfb}" = "no"
3878   then
3879     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3880     if test "${have_directfb}"= "true"
3881     then
3882         VLC_ADD_PLUGINS([directfb])
3883         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3884         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
3885     else
3886         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
3887     fi
3888   else
3889     CPPFLAGS_save="${CPPFLAGS}"
3890     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
3891     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3892     CPPFLAGS="${CPPFLAGS_save}"
3893     AC_ARG_WITH(directfb,
3894         [    --with-directfb=PATH  path to directfb],
3895         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
3896         then
3897             VLC_ADD_PLUGINS([directfb])
3898             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
3899             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3900         fi ],
3901         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
3902   fi
3903 fi
3904
3905 dnl
3906 dnl  GGI module
3907 dnl
3908 AC_ARG_ENABLE(ggi,
3909   [  --enable-ggi            GGI support (default disabled)])
3910 if test "${enable_ggi}" = "yes"
3911 then
3912   VLC_ADD_PLUGINS([ggi])
3913   VLC_ADD_LDFLAGS([ggi],[-lggi])
3914   AC_ARG_WITH(ggi,
3915     [    --with-ggi=PATH       path to libggi],
3916     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3917       then
3918         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3919         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3920       fi ])
3921 fi
3922
3923 dnl
3924 dnl  Glide module
3925 dnl
3926 AC_ARG_ENABLE(glide,
3927   [  --enable-glide          Glide (3dfx) support (default disabled)])
3928 if test "${enable_glide}" = "yes"
3929 then
3930   CFLAGS_save="${CFLAGS}"
3931   AC_ARG_WITH(glide,
3932     [    --with-glide=PATH     path to libglide],
3933     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3934       then
3935         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3936         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3937         CFLAGS="$CFLAGS -I${with_glide}/include"
3938     fi ])
3939    CFLAGS="$CFLAGS -I/usr/include/glide"
3940    AC_CHECK_HEADER(glide.h,[   
3941       VLC_ADD_PLUGINS([glide])
3942       VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3943       VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3944     ],[
3945       AC_MSG_ERROR([You don't have libglide. Install it or do not use --enable-glide])
3946      ])
3947    CFAGS="${CFLAGS_save}"
3948 fi
3949
3950 dnl
3951 dnl  AA plugin
3952 dnl
3953 AC_ARG_ENABLE(aa,
3954   [  --enable-aa             aalib output (default disabled)])
3955 if test "${enable_aa}" = "yes"
3956 then
3957   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3958   if test "${have_aa}" = "true"
3959   then
3960     VLC_ADD_PLUGINS([aa])
3961     VLC_ADD_LDFLAGS([aa],[-laa])
3962   fi
3963 fi
3964
3965 dnl
3966 dnl  libcaca plugin
3967 dnl
3968 AC_ARG_ENABLE(caca,
3969   [  --enable-caca           libcaca output (default disabled)])
3970 if test "${enable_caca}" = "yes"
3971 then
3972   CACA_PATH="${PATH}"
3973   AC_ARG_WITH(caca-config-path,
3974     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3975     [ if test "${with_caca_config_path}" != "no"
3976       then
3977         CACA_PATH="${with_caca_config_path}:${PATH}"
3978       fi ])
3979   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3980   if test "${CACA_CONFIG}" != "no"
3981   then
3982     VLC_ADD_PLUGINS([caca])
3983     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3984     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3985   fi
3986 fi
3987
3988 dnl
3989 dnl  win32 GDI plugin
3990 dnl
3991 AC_ARG_ENABLE(wingdi,
3992   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3993 if test "${enable_wingdi}" != "no"; then
3994   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3995     VLC_ADD_PLUGINS([wingdi])
3996     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3997   fi
3998   if test "${SYS}" = "mingwce"; then
3999     VLC_ADD_PLUGINS([wingdi wingapi])
4000   fi
4001 fi
4002
4003 dnl
4004 dnl  Audio plugins
4005 dnl
4006
4007 AC_ARG_WITH(,[Audio plugins:])
4008
4009 dnl
4010 dnl  OSS /dev/dsp module (enabled by default except on win32)
4011 dnl
4012 AC_ARG_ENABLE(oss,
4013   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
4014
4015 if test "${enable_oss}" != "no" &&
4016   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4017    test "${enable_oss}" = "yes")
4018 then
4019   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
4020     VLC_ADD_PLUGINS([oss])
4021     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
4022   ])
4023 fi
4024
4025 dnl
4026 dnl  Esound module
4027 dnl
4028 AC_ARG_ENABLE(esd,
4029   [  --enable-esd            Esound library support (default disabled)],
4030   [if test "${enable_esd}" = "yes"
4031    then
4032      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
4033      if test "${ESD_CONFIG}" != "no"
4034      then
4035        VLC_ADD_PLUGINS([esd])
4036        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
4037        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
4038      fi
4039    fi])
4040
4041 dnl
4042 dnl  Portaudio module
4043 dnl
4044 AC_ARG_ENABLE(portaudio,
4045   [  --enable-portaudio      Portaudio library support (default disabled)],
4046   [if test "${enable_portaudio}" = "yes"
4047    then
4048      VLC_ADD_PLUGINS([portaudio])
4049      VLC_ADD_CXXFLAGS([portaudio],[])
4050      if test "${SYS}" = "mingw32"; then
4051         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
4052      else
4053         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
4054      fi
4055    fi])
4056
4057 dnl
4058 dnl  aRts module -- broken (freeze wxWidgets)
4059 dnl
4060 AC_ARG_ENABLE(arts,
4061  [  --enable-arts           aRts sound server (default disabled)],
4062  [if test "${enable_arts}" = "yes"
4063   then
4064     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
4065     if test "${ARTS_CONFIG}" != "no"
4066     then
4067       VLC_ADD_PLUGINS([arts])
4068       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
4069       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
4070     fi
4071   fi])
4072
4073 dnl
4074 dnl  ALSA module
4075 dnl
4076 AC_ARG_ENABLE(alsa,
4077   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
4078 if test "${enable_alsa}" != "no"
4079 then
4080   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
4081   if test "${have_alsa}" = "true"
4082   then
4083     CFLAGS="${CFLAGS_save}"
4084     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4085                     #define ALSA_PCM_NEW_SW_PARAMS_API
4086                     #include <alsa/asoundlib.h>],
4087        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
4088         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4089     VLC_ADD_PLUGINS([alsa])
4090     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4091   else
4092     if test "${enable_alsa}" = "yes"; then
4093       AC_MSG_ERROR([Could not find ALSA development headers])
4094     fi
4095   fi
4096 fi
4097
4098 dnl
4099 dnl  win32 waveOut plugin
4100 dnl
4101 AC_ARG_ENABLE(waveout,
4102   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4103 if test "${enable_waveout}" != "no"; then
4104   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4105     VLC_ADD_PLUGINS([waveout])
4106     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4107   fi
4108   if test "${SYS}" = "mingwce"; then
4109     VLC_ADD_PLUGINS([waveout])
4110   fi
4111 fi
4112
4113 dnl
4114 dnl  CoreAudio plugin
4115 dnl
4116 AC_ARG_ENABLE(macosx-audio,
4117   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4118 if test "${enable_macosx-audio}" != "no" &&
4119   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4120 then
4121   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4122     [ VLC_ADD_BUILTINS([auhal])
4123       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4124     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4125 fi
4126
4127 dnl
4128 dnl  Roku HD1000 audio
4129 dnl
4130 AC_ARG_ENABLE(hd1000a,
4131   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4132 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4133   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4134    test "${enable_hd1000a}" = "yes")
4135 then
4136   AC_LANG_PUSH([C++])
4137   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4138     VLC_ADD_PLUGINS([hd1000a])
4139     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4140   AC_LANG_POP([C++])
4141 fi
4142
4143 dnl
4144 dnl  JACK module
4145 dnl
4146 AC_ARG_ENABLE(jack,
4147  [  --enable-jack           JACK audio module (default disabled)],
4148  [if test "${enable_jack}" = "yes"
4149   then
4150     AC_CHECK_HEADERS(jack/jack.h, [
4151       VLC_ADD_PLUGINS([jack])
4152       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4153   fi])
4154
4155 dnl
4156 dnl  CyberLink for C++ UPnP stack
4157 dnl
4158 AC_ARG_ENABLE(cyberlink,
4159   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4160 AS_IF([test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no")], [
4161   AC_ARG_WITH(cyberlink-tree,
4162     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4163
4164   dnl
4165   dnl test for --with-cyberlink-tree
4166   dnl
4167   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4168     AC_LANG_PUSH(C++)
4169     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4170     AS_IF([test -z "${real_cyberlink_tree}"], [
4171       dnl  The given directory can't be found
4172       AC_MSG_RESULT(no)
4173       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4174     ])
4175     CPPFLAGS_save="${CPPFLAGS}"
4176     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4177     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4178     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4179       [ VLC_ADD_CXXFLAGS([upnp_cc], [${CPPFLAGS_cyberlink}])
4180         VLC_ADD_PLUGINS([upnp_cc]) 
4181       ],[
4182         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4183       ])
4184     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4185     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4186       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4187       dnl The mere fact that we have to make such an ugly check sucks
4188       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4189       LIBS_save="$LIBS"
4190       LIBS_cclink="no"
4191       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4192         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4193         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4194 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4195 using namespace CyberLink;
4196
4197 class testclass : public SearchResponseListener, public MediaPlayer
4198 {
4199     virtual void deviceSearchResponseReceived( SSDPPacket *)
4200     {
4201     }
4202
4203     public:
4204       testclass (void)
4205       {
4206         addSearchResponseListener (this);
4207         start ();
4208       }
4209 };
4210 ],[testclass l;])],[LIBS_cclink="$l"])
4211       done
4212       LIBS="${LIBS_save}"
4213       dnl should not happen - otherwise this needs fixing - hence FAILURE
4214       AS_IF([test "${LIBS_cclink}" == "no"],
4215         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4216       AC_MSG_RESULT([${LIBS_cclink}])
4217       VLC_ADD_LDFLAGS([upnp_cc], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4218     ], [
4219       AC_MSG_RESULT(no)
4220       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4221     ])
4222     CPPFLAGS="${CPPFLAGS_save}"
4223     AC_LANG_POP([C++])
4224   ])
4225 ])
4226
4227 dnl
4228 dnl UPnP Plugin (Intel SDK)
4229 dnl
4230 AC_ARG_ENABLE(upnp,
4231   [  --enable-upnp           Intel UPnP SDK (default auto)])
4232
4233 VLC_ADD_CXXFLAGS([upnp_intel], [ ])
4234 AS_IF([test "x${enable_upnp}" != "xno"], [
4235   AC_CHECK_LIB([upnp], [UpnpInit], [has_upnp="yes"], [has_upnp="no"], [-lpthread])
4236   AS_IF([test "x${enable_upnp}" != "x" && test "${has_upnp}" == "no"], [
4237     AC_MSG_ERROR([cannot find Intel UPnP SDK (libupnp)])
4238   ])
4239   AS_IF([test "${has_upnp}" == "yes"], [
4240     VLC_ADD_LDFLAGS([upnp_intel], [-lupnp])
4241   ])
4242 ], [
4243   has_upnp="no"
4244 ])
4245
4246 AS_IF([test "${has_upnp}" == "yes"], [
4247   VLC_ADD_PLUGINS([upnp_intel])
4248 ])
4249
4250
4251 dnl
4252 dnl  Interface plugins
4253 dnl
4254
4255 AC_ARG_WITH(,[Interface plugins:])
4256
4257 dnl special case for BeOS
4258 if test "${SYS}" = "beos"
4259 then
4260     VLC_ADD_BUILTINS([beos])
4261 fi
4262
4263 dnl
4264 dnl Skins2 module
4265 dnl
4266 AC_ARG_ENABLE(skins2,
4267   [  --enable-skins2         Skins2 interface module (experimental)])
4268 if test "${enable_skins2}" = "yes" ||
4269   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4270    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4271
4272   dnl test for the required libraries
4273   skins2_missing_lib="no"
4274
4275   dnl freetype
4276   if test "${FREETYPE_CONFIG}" != "no"; then
4277     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4278     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4279   else
4280     skins2_missing_lib="yes"
4281     if test "${enable_skins2}" = "yes"; then
4282       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4283     fi
4284   fi
4285
4286   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4287     VLC_ADD_PLUGINS([skins2])
4288     ALIASES="${ALIASES} svlc"
4289     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4290     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4291     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4292
4293   else if test "${skins2_missing_lib}" = "no"; then
4294     VLC_ADD_PLUGINS([skins2])
4295     ALIASES="${ALIASES} svlc"
4296     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4297     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4298     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4299   fi fi
4300 fi
4301
4302
4303 dnl dnl
4304 dnl dnl  Gtk+ module
4305 dnl dnl
4306 dnl AC_ARG_ENABLE(gtk,
4307 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4308 dnl if test "${enable_gtk}" != "no"
4309 dnl then
4310 dnl   GTK_PATH="${PATH}"
4311 dnl   AC_ARG_WITH(gtk-config-path,
4312 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4313 dnl     [ if test "${with_gtk_config_path}" != "no"
4314 dnl       then
4315 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4316 dnl       fi ])
4317 dnl   # look for gtk-config
4318 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4319 dnl   GTK_CONFIG=${GTK12_CONFIG}
4320 dnl   if test "${GTK_CONFIG}" = "no"
4321 dnl   then
4322 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4323 dnl   fi
4324 dnl   if test "${GTK_CONFIG}" != "no"
4325 dnl   then
4326 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4327 dnl     then
4328 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.])
4329 dnl     fi
4330 dnl     if test "${SYS}" != "mingw32"; then
4331 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4332 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4333 dnl     else
4334 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4335 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4336 dnl     fi
4337 dnl     # now look for the gtk.h header
4338 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4339 dnl     ac_cv_gtk_headers=yes
4340 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4341 dnl       ac_cv_gtk_headers=no
4342 dnl       echo "Cannot find gtk development headers."
4343 dnl     ])
4344 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4345 dnl     then
4346 dnl       VLC_ADD_PLUGINS([gtk])
4347 dnl       if test "${SYS}" != "mingw32"; then
4348 dnl         NEED_GTK_MAIN=yes
4349 dnl       fi
4350 dnl       ALIASES="${ALIASES} gvlc"
4351 dnl     fi
4352 dnl     CPPFLAGS="${CPPFLAGS_save}"
4353 dnl   fi
4354 dnl fi
4355 dnl 
4356 dnl
4357 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4358 dnl
4359 dnl AC_ARG_ENABLE(gtk2,
4360 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4361 dnl if test "${enable_gtk2}" = "yes"
4362 dnl then
4363 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4364 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4365 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4366 dnl   VLC_ADD_PLUGINS([gtk2])
4367 dnl   if test "${SYS}" != "mingw32"; then
4368 dnl     NEED_GTK2_MAIN=yes
4369 dnl   fi
4370 dnl fi
4371
4372 dnl
4373 dnl  PDA Gtk+2 module
4374 dnl
4375 AC_ARG_ENABLE(pda,
4376   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4377 if test "${enable_pda}" = "yes"
4378 then
4379   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4380   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4381   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4382   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4383   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4384   VLC_ADD_PLUGINS([pda])
4385   if test "${SYS}" != "mingw32"; then
4386     NEED_GTK2_MAIN=yes
4387   fi
4388 fi
4389
4390 dnl dnl
4391 dnl dnl  Gnome module
4392 dnl dnl
4393 dnl AC_ARG_ENABLE(gnome,
4394 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4395 dnl   [if test "${enable_gnome}" = "yes"; then
4396 dnl     # look for gnome-config
4397 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4398 dnl     if test -x ${GNOME_CONFIG}
4399 dnl     then
4400 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4401 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4402 dnl     fi
4403 dnl     # now look for the gnome.h header
4404 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4405 dnl     AC_CHECK_HEADERS(gnome.h, [
4406 dnl       VLC_ADD_PLUGINS([gnome])
4407 dnl       NEED_GTK_MAIN=yes
4408 dnl       NEED_GNOME_MAIN=yes
4409 dnl       ALIASES="${ALIASES} gnome-vlc"
4410 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4411 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4412 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4413 dnl         AC_MSG_RESULT(yes)
4414 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4415 dnl                   Define if <gnome.h> defines strndup.)],[
4416 dnl         AC_MSG_RESULT(no)])
4417 dnl      ],[
4418 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4419 dnl developement tools or remove the --enable-gnome option])
4420 dnl      ])
4421 dnl     CPPFLAGS="${CPPFLAGS_save}"
4422 dnl   fi])
4423
4424 dnl
4425 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4426 dnl
4427 dnl AC_ARG_ENABLE(gnome2,
4428 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4429 dnl if test "${enable_gnome2}" = "yes"
4430 dnl then
4431 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4432 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4433 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4434 dnl   VLC_ADD_PLUGINS([gnome2])
4435 dnl   if test "${SYS}" != "mingw32"; then
4436 dnl     NEED_GNOME2_MAIN=yes
4437 dnl   fi
4438 dnl fi
4439
4440 dnl
4441 dnl  wxWidgets module
4442 dnl
4443 AC_ARG_ENABLE(wxwidgets,
4444   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4445 if test "${enable_wxwindows}" 
4446 then
4447   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4448 fi
4449
4450 if test "${enable_wxwindows}" = "no"
4451 then
4452   enable_wxwidgets="no"
4453 fi
4454 if test "${enable_wxwidgets}" != "no"
4455 then
4456   WXWIDGETS_PATH="${PATH}"
4457   AC_ARG_WITH(wx-config-path,
4458     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4459     [ if test "${with_wx_config_path}" != "no"
4460       then
4461         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4462       fi ])
4463   WXWIDGETS_NAME="wx-config"
4464   AC_ARG_WITH(wx-config,
4465     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4466     [ if test "${with_wx_config}" != "no"
4467       then
4468         WXWIDGETS_NAME="${with_wx_config}"
4469       fi ])
4470   # look for wx-config
4471   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4472   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4473   then
4474     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
4475     then
4476       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.])
4477     fi
4478     AC_LANG_PUSH(C++)
4479     # Turn this error:
4480     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4481     # into a warning. However better would be to fix playlist.cpp
4482     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4483         [ac_cv_cxx_fpermissive],
4484         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4485          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4486                         ac_cv_cxx_fpermissive=no)])
4487     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4488       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4489     fi
4490     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4491     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4492     if ${WX_CONFIG} --unicode
4493     then 
4494       # wxwidgets should provide the following flags but does not
4495       # the following is required to compile for win32
4496       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4497     fi
4498     if test "$have_libcdio" = "yes"
4499     then 
4500       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4501       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4502     else 
4503       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4504     fi
4505
4506     if test "$have_libvcdinfo" = "yes"
4507     then 
4508       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4509       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4510     else 
4511       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4512     fi
4513
4514     # now look for the wxprec.h header
4515     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4516     ac_cv_wx_headers=yes
4517     AC_CHECK_HEADERS(wx/wxprec.h, , [
4518       ac_cv_wx_headers=no
4519       echo "Cannot find wxWidgets development headers."
4520     ])
4521     if test "${ac_cv_wx_headers}" = "yes"
4522     then
4523       VLC_ADD_PLUGINS([wxwidgets])
4524       ALIASES="${ALIASES} wxvlc"
4525     fi
4526     CPPFLAGS="${CPPFLAGS_save}"
4527     AC_LANG_POP(C++)
4528   fi
4529 fi
4530
4531 dnl
4532 dnl  WinCE GUI module
4533 dnl
4534 if test "${SYS}" = "mingwce"; then
4535   VLC_ADD_BUILTINS([wince])
4536   VLC_ADD_CXXFLAGS([wince],[])
4537   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4538   dnl Gross hack
4539   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4540 elif test "${SYS}" = "mingw32"; then
4541   VLC_ADD_CXXFLAGS([wince],[])
4542   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4543   dnl Gross hack
4544   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4545 fi
4546
4547 dnl
4548 dnl Simple test for skins2 dependency
4549 dnl
4550 if test "${enable_skins2}" != "no"
4551 then
4552   if test "${WX_CONFIG}" = "no"
4553   then
4554     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.])
4555   fi
4556 fi
4557
4558 dnl dnl
4559 dnl dnl  Qt module
4560 dnl dnl
4561 dnl AC_ARG_ENABLE(qt,
4562 dnl   [  --enable-qt             Qt interface support (default disabled)],
4563 dnl   [if test "${enable_qt}" = "yes"; then
4564 dnl      VLC_ADD_PLUGINS([qt])
4565 dnl      ALIASES="${ALIASES} qvlc"
4566 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4567 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4568 dnl      AC_CHECK_LIB(qt-mt,main,[
4569 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4570 dnl      ],[
4571 dnl        AC_CHECK_LIB(qt,main,[
4572 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4573 dnl        ])
4574 dnl      ])
4575 dnl      LDFLAGS="${LDFLAGS_save}"
4576 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4577 dnl      if test -x ${QTDIR}/bin/moc
4578 dnl      then
4579 dnl        MOC=${QTDIR}/bin/moc
4580 dnl      else
4581 dnl        MOC=moc
4582 dnl      fi
4583 dnl    fi])
4584 dnl 
4585 dnl dnl
4586 dnl dnl  KDE module
4587 dnl dnl
4588 dnl AC_ARG_ENABLE(kde,
4589 dnl   [  --enable-kde            KDE interface support (default disabled)],
4590 dnl   [if test "${enable_kde}" = "yes"; then
4591 dnl      VLC_ADD_PLUGINS([kde])
4592 dnl      ALIASES="${ALIASES} kvlc"
4593 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4594 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4595 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4596 dnl      AC_CHECK_LIB(kfile,main,[
4597 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4598 dnl      ])
4599 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4600 dnl      AC_CHECK_LIB(kdeui,main,[
4601 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4602 dnl      ])
4603 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4604 dnl      AC_CHECK_LIB(kio,main,[
4605 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4606 dnl      ])
4607 dnl      LDFLAGS="${LDFLAGS_save}"
4608 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4609 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4610 dnl      if test -x ${QTDIR}/bin/moc
4611 dnl      then
4612 dnl        MOC=${QTDIR}/bin/moc
4613 dnl      else
4614 dnl        MOC=moc
4615 dnl      fi
4616 dnl    fi])
4617
4618 dnl
4619 dnl  Opie QT embedded module
4620 dnl
4621 AC_ARG_ENABLE(opie,
4622   [  --enable-opie           Qt embedded interface support (default disabled)],
4623   [if test "${enable_opie}" = "yes"; then
4624      AC_ARG_WITH(qte,
4625      [    --with-qte=PATH       Qt Embedded headers and libraries])
4626      if test "${with_qte}" != "no" -a -n "${with_qte}"
4627      then
4628        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4629        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])
4630      else
4631        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4632        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4633      fi
4634      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4635      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4636        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4637      ] )
4638      CPPFLAGS="${CPPFLAGS_save}"
4639
4640      VLC_ADD_PLUGINS([opie])
4641      NEED_QTE_MAIN=yes
4642      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4643      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4644      if test "${with_qte}" != "no" -a -n "${with_qte}"
4645      then
4646        MOC=${with_qte}/bin/moc
4647      else
4648        MOC=${QTDIR}/bin/moc
4649      fi
4650    fi])
4651
4652 dnl
4653 dnl  MacOS X module
4654 dnl
4655 AC_ARG_ENABLE(macosx,
4656   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4657   [if test "${enable_macosx}" = "yes"
4658    then
4659      VLC_ADD_BUILTINS([macosx])
4660      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4661    fi],
4662   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4663      VLC_ADD_BUILTINS([macosx])
4664      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4665    )])
4666
4667 dnl
4668 dnl  QNX RTOS module
4669 dnl
4670 AC_ARG_ENABLE(qnx,
4671   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4672     if test "${enable_qnx}" != "no"
4673     then
4674       AC_CHECK_HEADERS(Ph.h, [
4675         VLC_ADD_PLUGINS([qnx])
4676         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4677       ])
4678     fi
4679
4680 dnl
4681 dnl  ncurses module
4682 dnl
4683 AC_ARG_ENABLE(ncurses,
4684   [  --enable-ncurses        ncurses interface support (default disabled)],
4685   [if test "${enable_ncurses}" = "yes"; then
4686      VLC_ADD_PLUGINS([ncurses])
4687      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4688    fi])
4689
4690 dnl
4691 dnl  XOSD plugin
4692 dnl
4693 AC_ARG_ENABLE(xosd,
4694   [  --enable-xosd           xosd interface support (default disabled)])
4695 if test "${enable_xosd}" = "yes"
4696 then
4697   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4698   AC_CHECK_LIB(xosd,xosd_set_offset,
4699       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4700     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4701         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4702       AC_TRY_COMPILE([#include <xosd.h>],
4703          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
4704           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4705   if test "${have_xosd}" = "true"
4706   then
4707     VLC_ADD_PLUGINS([xosd])
4708     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4709   fi
4710 fi
4711
4712 dnl
4713 dnl Visualisation plugin
4714 dnl
4715 AC_ARG_ENABLE(visual,
4716   [  --enable-visual         visualisation plugin (default enabled)])
4717 if test "${enable_visual}" != "no"
4718 then
4719     VLC_ADD_PLUGINS([visual])
4720 fi
4721
4722 dnl
4723 dnl OpenGL visualisation plugin
4724 dnl
4725 AC_ARG_ENABLE(galaktos,
4726   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4727 if test "${enable_galaktos}" = "yes"
4728 then
4729   AC_CHECK_HEADERS(GL/gl.h, [
4730     VLC_ADD_PLUGINS([galaktos])
4731     if test "${SYS}" != "mingw32"; then
4732       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
4733     else
4734       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4735     fi
4736   ])
4737 fi
4738
4739 dnl
4740 dnl  goom visualization plugin
4741 dnl
4742 AC_ARG_ENABLE(goom,
4743 [  --enable-goom           goom visualisation plugin (default disabled)])
4744 if test "${enable_goom}" = "yes"
4745 then
4746   AC_ARG_WITH(goom-tree,
4747     [    --with-goom-tree=PATH goom tree for static linking (required)])
4748
4749   dnl
4750   dnl test for --with-goom-tree
4751   dnl
4752   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4753     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4754     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4755     if test -z "${real_goom_tree}"; then
4756       dnl  The given directory can't be found
4757       AC_MSG_RESULT(no)
4758       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4759     fi
4760     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4761       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4762       VLC_ADD_BUILTINS([goom])
4763       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4764       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4765     else
4766       dnl  The given libgoom2 wasn't built, try to look for the old goom
4767       AC_MSG_RESULT(no)
4768       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4769       if test -f "${real_goom_tree}/libgoom.a"; then
4770         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4771         VLC_ADD_BUILTINS([goom])
4772         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
4773         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4774       else
4775         dnl  The given libgoom wasn't built
4776         AC_MSG_RESULT(no)
4777         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4778       fi
4779     fi
4780   else
4781     AC_CHECK_HEADERS(goom/goom.h, [
4782       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
4783       AC_CHECK_LIB(goom2, goom_init, [
4784         VLC_ADD_PLUGINS([goom])
4785         VLC_ADD_LDFLAGS([goom],[-lgoom2])
4786       ],[
4787         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4788       ])
4789       LDFLAGS="${LDFLAGS_save}"
4790     ])
4791   fi
4792 fi
4793
4794 dnl
4795 dnl DAAP access plugin and services discovery 
4796 dnl
4797 AC_ARG_ENABLE(daap,
4798   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4799 if test "$enable_daap" != "no"
4800 then
4801    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4802       [ VLC_ADD_PLUGINS([daap])
4803        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4804        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4805       [AC_MSG_WARN(DAAP library not found)])
4806 fi
4807
4808 dnl
4809 dnl  Bonjour services discovery
4810 dnl
4811 AC_ARG_ENABLE(bonjour,
4812   [  --enable-bonjour        Bonjour services discovery (default enabled)])
4813 if test "${enable_bonjour}" != "no"
4814 then
4815   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
4816     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
4817        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
4818       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
4819       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
4820       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
4821       VLC_ADD_PLUGINS([bonjour]) ],
4822     [AC_MSG_WARN(avahi-client library not found)])
4823 fi
4824
4825 dnl
4826 dnl  Lirc plugin
4827 dnl
4828 AC_ARG_ENABLE(lirc,
4829   [  --enable-lirc           lirc support (default disabled)])
4830 if test "${enable_lirc}" = "yes"
4831 then
4832   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4833   if test "${have_lirc}" = "true"
4834   then
4835     VLC_ADD_PLUGINS([lirc])
4836     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4837   fi
4838 fi
4839
4840
4841 dnl
4842 dnl corba (ORBit) plugin
4843 dnl
4844 dnl Default: do not enable corba
4845 enablecorba=false
4846 AC_ARG_ENABLE(corba,
4847   [  --enable-corba          corba interface support (default disabled)])
4848 if test "${enable_corba}" = "yes"; then
4849       GLIB_VERSION=2.3.2
4850       PKG_CHECK_MODULES(CORBA, 
4851         ORBit-2.0 >= 2.8.0 \
4852         glib-2.0 >= $GLIB_VERSION \
4853         gobject-2.0 >= $GLIB_VERSION \
4854         gthread-2.0 >= $GLIB_VERSION,
4855         [
4856           enablecorba=true
4857           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4858           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4859           VLC_ADD_PLUGINS([corba snapshot]) ],
4860         [ enablecorba=false
4861           AC_MSG_WARN(corba library not found) ])
4862 fi
4863 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4864
4865 AC_ARG_WITH(,[Misc options:])
4866
4867 dnl
4868 dnl TLS/SSL
4869 dnl
4870 AC_ARG_ENABLE(gnutls,
4871   [  --enable-gnutls         gnutls TLS/SSL support (default enabled)])
4872 AC_ARG_WITH(x509-ca-bunble,
4873   [  --with-x509-ca-bundle   x509 PEM certificate bundle path (no default)])
4874
4875 AS_IF([test "${enable_gnutls}" != "no"], [
4876   gcrypt_LIBS="-lgpg-error"
4877   AS_IF([test "${SYS}" = "mingw32"], [
4878     gcrypt_LIBS="${gcrypt_LIBS} -lws2_32"
4879     VLC_ADD_LDFLAGS([gnutls],[-lws2_32])
4880   ])
4881
4882   gnutls_LIBS="-lgcrypt -lz ${gcrypt_LIBS}"
4883
4884   AC_CHECK_HEADER(gcrypt.h, [
4885     AC_CHECK_LIB(gcrypt, gcry_control, [
4886       AC_CHECK_HEADER(gnutls/gnutls.h, [
4887         AC_CHECK_LIB(gnutls, gnutls_certificate_verify_peers2,
4888           [have_gnutls="yes"],[old_gnutls="yes"],[${gnutls_LIBS}])
4889       ])
4890     ],,[${gcrypt_LIBS}])
4891   ])
4892
4893   AS_IF([test "${have_gnutls}" = "yes"], [
4894     VLC_ADD_PLUGINS([gnutls])
4895     VLC_ADD_LDFLAGS([gnutls], [-lgnutls ${gnutls_LIBS}])
4896
4897     AC_MSG_CHECKING([for root CA certificates path])
4898     AS_IF([test -z "${with_x509_ca_bundle}"], [
4899       AC_MSG_RESULT([not specified])
4900       AC_MSG_WARN([No root CA certificates for gnutls])
4901       AS_IF([test "${enable_gnutls}"], [
4902         AC_MSG_ERROR([Use --with-x509-ca-bundle=... (or --without-x509-ca-bundle though gnutls won't work properly).])
4903       ])
4904     ], [
4905       AS_IF([test "${with_x509_ca_bundle}" != "no"], [
4906         AC_MSG_RESULT([${with_x509_ca_bundle}])
4907         AC_CHECK_FILE([${with_x509_ca_bundle}],,[
4908           AC_MSG_WARN([${with_x509_ca_bundle} does not exist (are you cross-compiling?)])
4909         ])
4910         AC_DEFINE_UNQUOTED(X509_CA_BUNDLE, ["${with_x509_ca_bundle}"],
4911           [Define to the path of the host's root CA PEM certificates bundle file])
4912       ], [
4913         AC_MSG_RESULT([none])
4914       ])
4915     ])
4916   ], [
4917     AS_IF([test "${enable_gnutls}" = "yes"], [
4918       AC_MSG_ERROR([gnutls not present or too old (version 1.0.17 required)])
4919     ])
4920   ])
4921 ])
4922
4923
4924 dnl
4925 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4926 dnl
4927 dnl  We give the user the opportunity to specify
4928 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4929 dnl
4930 AC_ARG_WITH(words,
4931   [    --with-words=endianness set endianness (big or little)])
4932   case "${with_words}" in
4933     big)
4934       ac_cv_c_bigendian=yes
4935       ;;
4936     little)
4937       ac_cv_c_bigendian=no
4938       ;;
4939     *)
4940       dnl  Try to guess endianness by matching patterns on a compiled
4941       dnl  binary, by looking for an ASCII or EBCDIC string
4942       AC_CACHE_CHECK([whether the byte order is big-endian],
4943         [ac_cv_c_bigendian],
4944         [ac_cv_c_bigendian="unknown"
4945         [cat >conftest.c <<EOF
4946         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4947         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4948         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4949         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4950         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4951         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4952         int main(void) { _a(); _e(); return 0; }
4953 EOF
4954         ]
4955         if test -f conftest.c
4956         then
4957           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4958               && test -f conftest.o
4959           then
4960             if test "`strings conftest.o | grep BIGenDianSyS`"
4961             then
4962               ac_cv_c_bigendian="yes"
4963             fi
4964             if test "`strings conftest.o | grep LiTTleEnDian`"
4965             then
4966               ac_cv_c_bigendian="no"
4967             fi
4968           fi
4969         fi
4970       ])
4971       if test "${ac_cv_c_bigendian}" = "unknown"
4972       then
4973         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4974       fi
4975       ;;
4976   esac
4977 dnl  Now we know what to use for endianness, just put it in the header
4978 if test "${ac_cv_c_bigendian}" = "yes"
4979 then
4980   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4981 fi
4982
4983 dnl
4984 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4985 dnl
4986 loader=false
4987 AC_ARG_ENABLE(loader,
4988   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4989 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4990 AS_IF([test "${enable_loader}" = "yes"],
4991   [ VLC_ADD_PLUGINS([dmo quicktime])
4992     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4993     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4994     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4995     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4996     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
4997     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.a])
4998   ])
4999
5000 dnl
5001 dnl  Microsoft ActiveX support
5002 dnl
5003 activex=false
5004 AC_ARG_ENABLE(activex,
5005   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
5006 if test "${enable_activex}" != "no"
5007 then
5008   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5009   then
5010     AC_CHECK_PROGS(MIDL, [midl widl], no)
5011     AC_LANG_PUSH(C++)
5012     AC_CHECK_HEADERS(ole2.h olectl.h,
5013       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
5014         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
5015         AC_CHECK_HEADERS(objsafe.h,
5016           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
5017           [#if HAVE_OLE2_H
5018            #   include <ole2.h>
5019            #endif]
5020         )
5021         activex=:
5022       ],
5023       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
5024     )
5025     AC_LANG_POP(C++)
5026   fi
5027 fi
5028 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
5029 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
5030 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
5031
5032 dnl
5033 dnl  Mozilla plugin
5034 dnl
5035 mozilla=false
5036 AC_ARG_ENABLE(mozilla,
5037   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
5038 AC_ARG_WITH(mozilla-sdk-path,
5039   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
5040
5041 if test "${enable_mozilla}" = "yes" 
5042 then
5043   if test "${with_mozilla_sdk_path}" = ""
5044   then
5045     AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
5046     if test "${MOZILLA_CONFIG}" = "no"
5047     then
5048       AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
5049     else
5050       if test "${SYS}" != "mingw32"; then
5051         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5052         AC_CHECK_LIB(Xt,XtStrings,
5053          [VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])],
5054          [],
5055          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5056         ])
5057         LDFLAGS="${LDFLAGS_save}"
5058       fi
5059       mozilla=:
5060       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5061       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5062       VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5063       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5064       AC_CHECK_HEADERS(mozilla-config.h)
5065       CPPFLAGS="${CPPFLAGS_save}"
5066       XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
5067       `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
5068       xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
5069     fi
5070   else
5071     dnl special case for mingw32
5072     if test "${SYS}" = "mingw32"
5073     then
5074       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5075       dnl latest gecko sdk does not have an xpcom directory
5076       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5077           mozilla_sdk_xpcom="/xpcom"
5078       fi
5079     fi
5080   
5081     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5082     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5083     AC_CHECK_HEADERS(mozilla-config.h, [
5084       mozilla=:
5085       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])
5086       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])
5087       if test "${SYS}" = "mingw32"; then
5088         LDFLAGS="${LDFLAGS_save}"
5089         dnl latest gecko sdk does not have embedstring
5090         if test -d "${real_mozilla_sdk}/embedstring/bin"
5091         then
5092           VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5093         fi
5094       fi
5095   
5096       XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
5097       xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
5098   
5099       if test -n "${CYGPATH}"; then
5100         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5101         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
5102       fi ])
5103     CPPFLAGS="${CPPFLAGS_save}"
5104   fi
5105   
5106   if test "${mozilla}" != "false"
5107   then
5108     build_pic=yes
5109     AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path} /usr/lib/mozilla)
5110     if test "${XPIDL}" = "no"; then
5111       AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
5112     fi
5113   fi
5114 fi
5115 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5116
5117 dnl
5118 dnl  Mediacontrol Python bindings
5119 dnl
5120 AC_ARG_ENABLE(mediacontrol-python-bindings,
5121   [  --enable-mediacontrol-python-bindings    Enable Python bindings for MediaControl (default disabled)])
5122 dnl TODO: look for python dev headers
5123 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_mediacontrol_python_bindings}" = "yes"])
5124 if test "${enable_mediacontrol_python_bindings}" = "yes"
5125 then
5126   build_pic=yes
5127 fi
5128
5129 dnl
5130 dnl  Java bindings
5131 dnl
5132 AC_ARG_ENABLE(java-bindings,
5133   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5134 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5135 if test "${enable_java_bindings}" = "yes"
5136 then
5137   build_pic=yes
5138 fi
5139
5140
5141 dnl
5142 dnl  test plugins
5143 dnl
5144 AC_ARG_ENABLE(testsuite,
5145   [  --enable-testsuite      build test modules (default disabled)])
5146 if test "${enable_testsuite}" = "yes"
5147 then
5148   TESTS="test1 test2 test3 test4"
5149
5150   dnl  we define those so that bootstrap sets the right linker
5151   VLC_ADD_CXXFLAGS([test2],[])
5152   VLC_ADD_OBJCFLAGS([test3],[])
5153   dnl  this one is needed until automake knows what to do
5154   VLC_ADD_LDFLAGS([test3],[-lobjc])
5155
5156   VLC_ADD_PLUGINS([${TESTS}])
5157   #VLC_ADD_BUILTINS([${TESTS}])
5158 fi
5159
5160 dnl
5161 dnl  gtk_main plugin
5162 dnl
5163 if test "${NEED_GTK_MAIN}" != "no"
5164 then
5165     VLC_ADD_PLUGINS([gtk_main])
5166     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5167     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5168 fi
5169
5170 if test "${NEED_GNOME_MAIN}" != "no"
5171 then
5172     VLC_ADD_PLUGINS([gnome_main])
5173     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5174     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5175 fi
5176
5177 if test "${NEED_GTK2_MAIN}" != "no"
5178 then
5179     VLC_ADD_PLUGINS([gtk2_main])
5180     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5181     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5182     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5183     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5184 fi
5185
5186 if test "${NEED_GNOME2_MAIN}" != "no"
5187 then
5188     VLC_ADD_PLUGINS([gnome2_main])
5189     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5190     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5191 fi
5192
5193 dnl
5194 dnl  qte_main plugin
5195 dnl
5196 if test "${NEED_QTE_MAIN}" != "no"
5197 then
5198     VLC_ADD_PLUGINS([qte_main])
5199     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5200     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5201     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5202 fi
5203
5204
5205 dnl
5206 dnl  Plugin and builtin checks
5207 dnl
5208 builtin_support=false
5209 plugin_support=:
5210
5211 dnl Support for plugins - this must be AT THE END
5212 AC_ARG_ENABLE(plugins,
5213   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5214   [if test "${enable_plugins}" = "no"
5215    then
5216      plugin_support=false
5217    fi])
5218
5219 dnl Automagically disable plugins if there is no system support for
5220 dnl dynamically loadable files (.so, .dll, .dylib).
5221 dnl don't forget vlc-win32 still can load .dll as plugins
5222 if test "${ac_cv_have_plugins}" = "no"
5223 then
5224   echo "*** Your system doesn't have plugin support. All plugins will be built"
5225   echo "statically."
5226   plugin_support=false
5227 fi
5228
5229 dnl Export automake variables
5230 if ${plugin_support}
5231 then
5232   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5233   for plugin in `echo ${PLUGINS}`
5234   do
5235     eval "${plugin}_p=yes"
5236   done
5237 else
5238   VLC_ADD_BUILTINS([${PLUGINS}])
5239   PLUGINS=""
5240 fi
5241 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
5242
5243 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
5244 then
5245   builtin_support=:
5246   for builtin in `echo ${BUILTINS}`
5247   do
5248     eval "${builtin}_b=yes"
5249   done
5250 fi]
5251 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
5252
5253 dnl
5254 dnl Pic and shared libvlc stuff
5255 dnl
5256 AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no])
5257 AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"])
5258 AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [
5259   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5260 ])
5261
5262 pic=no
5263 AS_IF([test "${build_pic}" = "yes"], [pic=pic])
5264 AS_IF([test "${SYS}" = "mingw32"], [pic=no])
5265 AS_IF([test "${pic}" = "no"], [pic=])
5266 AC_SUBST(pic)
5267
5268 AM_CONDITIONAL(BUILD_PIC, [test "${build_pic}" = "yes" && test "x${pic}" = "xpic"])
5269
5270 dnl Import conditional variables generated by bootstrap
5271 VLC_CONDITIONALS
5272
5273 dnl
5274 dnl  Stuff used by the program
5275 dnl
5276 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5277 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5278 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5279 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5280 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5281 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5282 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5283 AC_SUBST(VERSION_MAJOR)
5284 AC_SUBST(VERSION_MINOR)
5285 AC_SUBST(VERSION_REVISION)
5286 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5287 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5288 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5289 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5290
5291 dnl Old definitions for version-dependant plugins
5292 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5293 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5294 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5295
5296 dnl New definitions with value matching 0.8.4 release
5297 module_symbol="0_8_4"
5298 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5299 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5300 VLC_ENTRY="vlc_entry__${module_symbol}"
5301 AC_SUBST(VLC_ENTRY)
5302
5303 dnl
5304 dnl  Handle substvars that use $(top_srcdir)
5305 dnl
5306 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5307 AC_SUBST(VLC_CONFIG)
5308 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5309
5310 dnl
5311 dnl  Restore *FLAGS
5312 dnl
5313 VLC_RESTORE_FLAGS
5314
5315 dnl
5316 dnl  Create the vlc-config script
5317 dnl
5318 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
5319 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5320
5321 dnl
5322 dnl  Configuration is finished
5323 dnl
5324 AC_SUBST(SYS)
5325 AC_SUBST(ARCH)
5326 AC_SUBST(ALIASES)
5327 AC_SUBST(ASM)
5328 AC_SUBST(MOC)
5329 AC_SUBST(WINDRES)
5330 AC_SUBST(XPIDL)
5331 AC_SUBST(XPIDL_INCL)
5332 AC_SUBST(LIBEXT)
5333 AC_SUBST(INCLUDES)
5334 AC_SUBST(ALL_LINGUAS)
5335 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5336
5337 dnl Import substitutions generated by bootstrap
5338 VLC_SUBSTS
5339
5340 dnl Create vlc-config.in
5341 VLC_OUTPUT_VLC_CONFIG_IN
5342
5343 AC_CONFIG_FILES([
5344   Makefile
5345   activex/Makefile
5346   activex/axvlc.inf
5347   bindings/Makefile
5348   bindings/java/Makefile
5349   bindings/mediacontrol-python/Makefile
5350   debian/Makefile
5351   doc/Makefile
5352   intl/Makefile
5353   ipkg/Makefile
5354   loader/Makefile
5355   modules/Makefile
5356   mozilla/Makefile
5357   m4/Makefile
5358   po/Makefile.in
5359   share/Makefile
5360   src/Makefile
5361 ])
5362
5363 AC_CONFIG_FILES([
5364   modules/access/Makefile
5365   modules/access/dshow/Makefile
5366   modules/access/dvb/Makefile
5367   modules/access/mms/Makefile
5368   modules/access/pvr/Makefile
5369   modules/access/v4l/Makefile
5370   modules/access/cdda/Makefile
5371   modules/access/rtsp/Makefile
5372   modules/access/vcd/Makefile
5373   modules/access/vcdx/Makefile
5374   modules/access/screen/Makefile
5375   modules/access_filter/Makefile
5376   modules/access_output/Makefile
5377   modules/audio_filter/Makefile
5378   modules/audio_filter/channel_mixer/Makefile
5379   modules/audio_filter/converter/Makefile
5380   modules/audio_filter/resampler/Makefile
5381   modules/audio_mixer/Makefile
5382   modules/audio_output/Makefile
5383   modules/codec/Makefile
5384   modules/codec/cmml/Makefile
5385   modules/codec/dmo/Makefile
5386   modules/codec/ffmpeg/Makefile
5387   modules/codec/spudec/Makefile
5388   modules/control/Makefile
5389   modules/control/http/Makefile
5390   modules/control/corba/Makefile
5391   modules/demux/Makefile
5392   modules/demux/asf/Makefile
5393   modules/demux/avi/Makefile
5394   modules/demux/mp4/Makefile
5395   modules/demux/mpeg/Makefile
5396   modules/demux/playlist/Makefile
5397   modules/demux/util/Makefile
5398   modules/gui/Makefile
5399   modules/gui/beos/Makefile
5400   modules/gui/pda/Makefile
5401   modules/gui/macosx/Makefile
5402   modules/gui/qnx/Makefile
5403   modules/gui/skins2/Makefile
5404   modules/gui/wxwidgets/Makefile
5405   modules/gui/wince/Makefile
5406   modules/misc/Makefile
5407   modules/misc/dummy/Makefile
5408   modules/misc/memcpy/Makefile
5409   modules/misc/network/Makefile
5410   modules/misc/testsuite/Makefile
5411   modules/misc/playlist/Makefile
5412   modules/misc/xml/Makefile
5413   modules/mux/Makefile
5414   modules/mux/mpeg/Makefile
5415   modules/packetizer/Makefile
5416   modules/services_discovery/Makefile
5417   modules/stream_out/Makefile
5418   modules/stream_out/transrate/Makefile
5419   modules/video_chroma/Makefile
5420   modules/video_filter/Makefile
5421   modules/video_filter/swscale/Makefile
5422   modules/video_output/Makefile
5423   modules/video_output/directx/Makefile
5424   modules/video_output/qte/Makefile
5425   modules/video_output/x11/Makefile
5426   modules/visualization/Makefile
5427   modules/visualization/visual/Makefile
5428   modules/visualization/galaktos/Makefile
5429 ])
5430
5431 dnl Generate makefiles
5432 AC_OUTPUT
5433
5434 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5435 # not provided with the source
5436 ${SHELL} ./config.status --file=vlc-config
5437 chmod 0755 vlc-config
5438
5439 dnl echo "Enabled builtin modules :"
5440 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5441
5442 dnl echo "Enabled plugin modules :"
5443 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5444
5445 dnl Shortcut to nice compile message
5446 rm -f compile
5447 echo '#! /bin/sh' >compile
5448
5449 echo "PATH=$PATH LANG=C make \$* 2>&1| \\" >> compile
5450 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5451 chmod a+x compile
5452
5453 printf "
5454 vlc configuration
5455 --------------------
5456 vlc version           : ${VERSION}
5457 system                : ${SYS}
5458 architecture          : ${ARCH}
5459 build flavour         : "
5460 test "${enable_debug}" = "yes" && printf "debug "
5461 test "${enable_cprof}" = "yes" && printf "cprof "
5462 test "${enable_gprof}" = "yes" && printf "gprof "
5463 test "${enable_optimizations}" = "yes" && printf "optim "
5464 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5465 echo "
5466 vlc aliases           :${ALIASES}
5467
5468 You can tune the compiler flags in vlc-config.
5469 To build vlc and its plugins, type \`./compile' or \`make'.
5470 "
5471