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