]> git.sesse.net Git - vlc/blob - configure.ac
* ALL: extention -> extension
[vlc] / configure.ac
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.8.5-test2)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="8"
6 VERSION_REVISION="5"
7 VERSION_EXTRA="test2"
8
9 CONFIGURE_LINE="$0 $*"
10 CODENAME="Janus"
11
12 AC_PREREQ(2.50)
13 AC_CONFIG_SRCDIR(src/libvlc.c)
14 AC_CONFIG_AUX_DIR(autotools)
15 AC_CANONICAL_SYSTEM
16
17 dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
18 dnl them. And we need the comma otherwize automake will choke on it.
19 AM_INIT_AUTOMAKE(vlc,0.8.5-test2)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30
31 dnl HA! HA!
32 AM_MAINTAINER_MODE
33
34 dnl
35 dnl  Save *FLAGS
36 dnl
37 VLC_SAVE_FLAGS
38
39 dnl
40 dnl Check for tools
41 dnl
42 AC_PROG_CC
43 AM_PROG_CC_C_O
44 AC_PROG_CPP
45 AC_PROG_CXX
46 eval "${CXX} --version" >/dev/null 2>&1 || CXX=""
47 if test "${CXX}" != ""; then
48   AC_PROG_CXXCPP
49 fi
50 AC_PROG_MAKE_SET
51 AC_PROG_INSTALL
52 AM_PROG_AS
53
54 dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
55 dnl now otherwise it might be set in an obscure if statement.
56 AC_EGREP_CPP(foo,foo)
57
58 dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
59 AC_MSG_CHECKING(for an Objective-C compiler)
60 OBJC="${CXX}"
61 AC_SUBST(OBJC)
62 OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
63 AC_SUBST(OBJCFLAGS)
64 dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
65 #OBJCDEPMODE="depmode=gcc3"
66 #AC_SUBST(OBJCDEPMODE)
67 _AM_DEPENDENCIES(OBJC)
68 AC_MSG_RESULT(not implemented yet)
69
70 dnl Find the right ranlib, even when cross-compiling
71 AC_CHECK_TOOL(RANLIB, ranlib, :)
72 AC_CHECK_TOOL(STRIP, strip, :)
73 AC_CHECK_TOOL(AR, ar, :)
74 AC_CHECK_TOOL(LD, ld, :)
75
76 AC_DISABLE_STATIC
77 AC_LIBTOOL_DLOPEN
78 AC_LIBTOOL_WIN32_DLL
79 AC_PROG_LIBTOOL
80
81 AC_ARG_ENABLE(libtool,
82     [  --enable-libtool        use libtool (default disabled, EXPERIMENTAL)],
83     [],[enable_libtool="no"])
84 AM_CONDITIONAL(USE_LIBTOOL, [test "${enable_libtool}" != "no"])
85
86 dnl Check for compiler properties
87 AC_C_CONST
88 AC_C_INLINE
89
90 dnl
91 dnl  Check for the contrib directory
92 dnl
93 AC_ARG_WITH(contrib,
94     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
95   if test "${with_contrib}" != "no"; then 
96
97     topdir="`dirname $0`"
98     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
99        topdir="`pwd`/$topdir"
100     fi
101
102   if test -d ${topdir}/extras/contrib/lib; then
103     export PATH=${topdir}/extras/contrib/bin:$PATH
104     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
105     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
106     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
107     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
108     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
109     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
110     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
111     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
112     if test $build = $host -o $PKG_CONFIG_LIBDIR; then
113         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
114     else
115         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
116     fi
117     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
118     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
119
120 dnl kludge because only the debian package provides a ffmpeg-config
121     if test -z $with_ffmpeg_config_path; then 
122        with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
123     fi
124     if test -z $with_livedotcom_tree; then
125        with_livedotcom_tree=${topdir}/extras/contrib/src/live
126     fi
127     if test -z $with_goom_tree; then
128       with_goom_tree=${topdir}/extras/contrib/src/goom
129     fi
130     if test -z $with_mozilla_sdk_path; then
131        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
132     fi
133     if test -z $with_cyberlink_tree; then
134        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
135     fi
136
137     if test ".`uname -s`" = ".Darwin"; then
138       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
139       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
140     elif test ".`uname -s`" = ".BeOS"; then
141       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
142       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
143     fi
144   fi
145 fi
146 dnl
147 dnl  Set default values
148 dnl
149 LDFLAGS_vlc="${LDFLAGS}"
150
151 dnl
152 dnl  Check the operating system
153 dnl
154 case "${target_os}" in
155   "")
156     SYS=unknown
157     ;;
158   linux*)
159     SYS=linux
160     ;;
161   bsdi*)
162     SYS=bsdi
163     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
164     VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
165     ;;
166   *bsd*)
167     SYS="${target_os}"
168     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
169     case "${target_os}" in
170       freebsd*)
171         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
172         CPPFLAGS="${CPPFLAGS_save}"
173         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
174         LDFLAGS="${LDLFAGS_save}"
175         ;;
176     esac
177     ;;
178   darwin1.[0123])
179     dnl Mac OS X < 10.3
180     SYS=darwin
181     CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
182     CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
183     OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
184     VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
185     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
186     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
187     VLC_ADD_CFLAGS([vlc],[-x objective-c])
188     VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
189     ;;
190   darwin*)
191     SYS=darwin
192     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
193     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
194     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
195     VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
196     VLC_ADD_CFLAGS([libvlc],[-x objective-c])
197     VLC_ADD_CFLAGS([vlc],[-x objective-c])
198     ;;
199   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
200     AC_CHECK_TOOL(WINDRES, windres, :)
201
202     case "${target_os}" in
203       *mingw32*)
204         SYS=mingw32
205         ;;
206       *cygwin*)
207         dnl Check if we are using the mno-cygwin mode in which case we are
208         dnl actually dealing with a mingw32 compiler.
209         AC_EGREP_CPP(yes,
210             [#ifdef WIN32
211              yes
212              #endif],
213             SYS=mingw32, SYS=cygwin)
214         ;;
215       *wince* | *mingwce* | *pe*)
216         SYS=mingwce
217         ;;
218     esac
219
220     if test "${SYS}" = "mingw32"; then
221         # add ws2_32 for closesocket, select, recv
222         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
223         VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
224         VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
225         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync growl],[-lws2_32])
226     fi
227     if test "${SYS}" = "mingwce"; then
228         # add ws2 for closesocket, select, recv
229         CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
230         VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
231         VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
232         VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
233    fi
234     ;;
235   *nto*)
236     SYS=nto
237     VLC_ADD_LDFLAGS([x11 xvideo],[-lsocket])
238     ;;
239   solaris*)
240     SYS=solaris
241     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
242     # Perhaps it is useful other places as well? 
243     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
244     ;;
245   hpux*)
246     SYS=hpux
247     ;;
248   beos)
249     SYS=beos
250     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
251     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
252     VLC_ADD_CXXFLAGS([beos],[])
253     VLC_ADD_LDFLAGS([vlc logger],[-lbe])
254     VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
255
256     dnl Check for BONE
257     if test -f /boot/beos/system/lib/libbind.so; then
258         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket])
259     else
260         VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet])
261     fi
262
263     dnl Ugly check for Zeta
264     if test -f /boot/beos/system/lib/libzeta.so; then
265         VLC_ADD_LDFLAGS([beos],[-lzeta])
266     fi
267     ;;
268   *)
269     SYS="${target_os}"
270     ;;
271 esac
272 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
273 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
274 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
275 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
276
277 dnl
278 dnl  Check for Mac OS X SDK settings
279 dnl
280 AC_ARG_WITH(macosx-sdk,
281    [  --with-macosx-sdk       compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
282 if test "${with_macosx_sdk}" != "no" ; then
283   CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
284   CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
285   OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
286   LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
287   export MACOSX_DEPLOYMENT_TARGET=10.3
288   MACOSX_DEPLOYMENT_TARGET="10.3"
289 fi
290
291 dnl
292 dnl Gettext stuff
293 dnl
294 ALL_LINGUAS="ca da de en_GB es fr it ja ka ko nl oc pt_BR ro ru sv tr zh_CN zh_TW"
295 AM_GNU_GETTEXT_VERSION(0.11.5)
296 AM_GNU_GETTEXT
297 if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
298   AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
299   INCLUDES="${INCLUDES} -I\$(top_builddir)/intl"
300   AS_IF([test "${enable_libtool}" != "no"], [
301     INCLUDED_LIBINTL="${LTLIBINTL}"
302   ],[
303     INCLUDED_LIBINTL="${LIBINTL}"
304   ])
305 else
306   VLC_ADD_LDFLAGS([vlc],[${LIBINTL}])
307   INCLUDED_LIBINTL=
308 fi
309 AC_SUBST(INCLUDED_LIBINTL)
310 XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
311
312 dnl
313 dnl Iconv stuff
314 dnl
315 if test "${SYS}" != "mingwce"; then
316 AS_IF([test "$am_cv_func_iconv" != "yes"],
317         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
318 fi
319 VLC_ADD_CFLAGS([vlc],[${INCICONV}])
320 AS_IF([test "${enable_libtool}" != "no"], [
321   VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
322 ],[
323   VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
324 ])
325
326 dnl Check for the need to include the mingwex lib for mingw32
327 if test "${SYS}" = "mingw32"
328 then
329     AC_CHECK_LIB(mingwex,opendir,
330         AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
331             [VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
332     )
333 fi
334
335 dnl Check for fnative-struct or mms-bitfields support for mingw32
336 if test "${SYS}" = "mingw32"
337 then
338     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
339         [ac_cv_c_mms_bitfields],
340         [CFLAGS="${CFLAGS_save} -mms-bitfields"
341          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
342     if test "${ac_cv_c_mms_bitfields}" != "no"; then
343         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
344         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
345     else
346         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
347             [ac_cv_c_fnative_struct],
348             [CFLAGS="${CFLAGS_save} -fnative-struct"
349              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
350         if test "${ac_cv_c_fnative_struct}" != "no"; then
351             CFLAGS_save="${CFLAGS_save} -fnative-struct";
352             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
353         fi
354     fi
355
356     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
357 fi
358
359 dnl Check for fvtable-thunks support for mingw32
360 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
361 then
362 AC_LANG_PUSH(C++)
363     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
364         [ac_cv_cxx_fvtable_thunks],
365         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
366          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
367                         ac_cv_cxx_fvtable_thunks=no)])
368     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
369         CXXFLAGS_mingw32_special="-fvtable-thunks"
370     fi
371
372     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
373 AC_LANG_POP(C++)
374 fi
375
376 dnl Plugin compilation stuff
377
378 VLC_LIBRARY_SUFFIX
379
380 VLC_SYMBOL_PREFIX
381 AC_SUBST(SYMPREF)
382
383 AS_IF([test "${enable_libtool}" = "no"], [
384 case "${SYS}" in
385   mingw32|cygwin)
386     VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
387     VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
388     VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
389     ;;
390   mingwce)
391     ;;
392   *)
393     VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
394     VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
395     VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
396     VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
397     ;;
398 esac
399 ])
400
401 dnl The -DSYS_FOO flag
402 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
403
404 dnl Check for system libs needed
405 need_libc=false
406
407 AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat)
408
409 dnl Check for usual libc functions
410 AC_CHECK_FUNCS(strdup strndup atof)
411 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
412 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
413 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
414
415 dnl Check for setlocal and langinfo
416 AC_CHECK_FUNCS(setlocale)
417 AC_CHECK_HEADERS(langinfo.h)
418 AC_CHECK_FUNCS(nl_langinfo)
419
420 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
421   [AC_TRY_LINK([#include <langinfo.h>],
422     [char* cs = nl_langinfo(CODESET);],
423     ac_cv_langinfo_codeset=yes,
424     ac_cv_langinfo_codeset=no)
425   ])
426 if test ${ac_cv_langinfo_codeset} = yes; then
427   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
428     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
429 fi
430
431 AC_CHECK_FUNCS(connect,,[
432   AC_CHECK_LIB(socket,connect,[
433     VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lsocket)
434     LIBS_socket="-lsocket"
435   ])
436 ])
437
438 AC_CHECK_FUNCS(send,,[
439   AC_CHECK_LIB(socket,send,[
440     VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
441   ])
442 ])
443
444 AC_CHECK_FUNCS(gethostbyname,,[
445   AC_CHECK_LIB(nsl,gethostbyname,[
446     VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl])
447   ],[
448     AC_CHECK_LIB(bind,gethostbyname,[
449       VLC_ADD_LDFLAGS([ipv4 access_mms],[-lbind])
450     ])
451   ])
452 ])
453
454 dnl Check for socklen_t
455 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
456   [AC_TRY_COMPILE(
457      [#include <sys/types.h>
458       #include <sys/socket.h>],
459      [socklen_t len = 42; return len;],
460      ac_cv_type_socklen_t=yes,
461      ac_cv_type_socklen_t=no)])
462 if test "${ac_cv_type_socklen_t}" != "no"; then
463   AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
464 fi
465
466 dnl Check for struct sockaddr_storage
467 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
468 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
469 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
470   [AC_TRY_COMPILE(
471     [#include <sys/types.h>
472      #if defined( UNDER_CE )
473      # include <winsock.h>
474      #elif defined( WIN32 )
475      # include <winsock2.h>
476      #else
477      # include <sys/socket.h>
478      #endif], [struct sockaddr_storage addr;],
479      ac_cv_struct_sockaddr_storage=yes,
480      ac_cv_struct_sockaddr_storage=no)])
481 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
482   AC_DEFINE(sockaddr_storage, sockaddr)
483   AC_DEFINE(ss_family, sa_family)
484 ])
485
486 dnl getaddrinfo, getnameinfo and gai_strerror check
487 dnl  -lnsl and -lsocket are needed on Solaris;
488 dnl  we purposedly make the test fail on Windows
489 LIBS_save="${LIBS}"
490 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
491 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
492
493 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
494 dnl are
495 LIBS="${LIBS_gai}"
496 AC_CHECK_FUNCS([getnameinfo gai_strerror])
497 LIBS="${LIBS_save}"
498
499 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
500 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
501 [#include <sys/types.h>
502 #if defined( WIN32 ) || defined( UNDER_CE )
503 # if defined(UNDER_CE) && defined(sockaddr_storage)
504 #  undef sockaddr_storage
505 # endif
506 # include <winsock2.h>
507 # include <ws2tcpip.h>
508 #else
509 # include <netdb.h>
510 #endif])
511
512 dnl Check for va_copy
513 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
514   AC_TRY_LINK(
515     [#include <stdarg.h>],
516     [va_list ap1, ap2; va_copy(ap1,ap2);],
517     [ac_cv_c_va_copy="yes"],
518     [ac_cv_c_va_copy="no"]))
519 if test "${ac_cv_c_va_copy}" = "yes"; then
520   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
521 fi
522 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
523   AC_TRY_LINK(
524     [#include <stdarg.h>],
525     [va_list ap1, ap2; __va_copy(ap1,ap2);],
526     [ac_cv_c___va_copy="yes"],
527     [ac_cv_c___va_copy="no"]))
528 if test "${ac_cv_c___va_copy}" = "yes"; then
529   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
530 fi
531
532 AC_CHECK_FUNCS(inet_aton,,[
533   AC_CHECK_LIB(resolv,inet_aton,[
534     VLC_ADD_LDFLAGS([ipv4 vlc],[-lresolv])
535   ])
536 ])
537
538 dnl Check for getopt (always use builtin one on win32)
539 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
540 need_getopt=:
541 else
542 need_getopt=false
543 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
544 [ # FreeBSD has a gnugetopt library for this:
545   AC_CHECK_LIB([gnugetopt],[getopt_long],
546     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
547      VLC_ADD_LDFLAGS([vlc],[-lgnugetopt])],
548     [need_getopt=:])])
549 fi
550 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
551
552 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
553 AC_TYPE_SIGNAL
554 AC_CHECK_LIB(m,cos,[
555   VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32 x264 goom],[-lm])
556 ])
557 AC_CHECK_LIB(m,pow,[
558   VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc],[-lm])
559 ])
560 AC_CHECK_LIB(m,sqrt,[
561   VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
562 ])
563 AC_CHECK_LIB(mx,sqrtf,[
564   VLC_ADD_LDFLAGS([x264],[-lmx])
565 ])
566 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
567
568 dnl Check for dynamic plugins
569 ac_cv_have_plugins=no
570
571 # OS X style
572 AC_CHECK_HEADERS(mach-o/dyld.h,
573   [AC_CHECK_FUNCS(NSLinkModule,
574     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
575      ac_cv_have_plugins=yes])])
576
577 # HP-UX style
578 if test "${ac_cv_have_plugins}" = "no"; then
579   AC_CHECK_HEADERS(dl.h)
580   ac_cv_my_have_shl_load=no
581   AC_CHECK_FUNC(shl_load,
582    [ac_cv_my_have_shl_load=yes,
583     AC_CHECK_LIB(dld, shl_load,
584      [ac_cv_my_have_shl_load=yes
585       VLC_ADD_LDFLAGS([vlc],[-ldld])])])
586   if test "${ac_cv_my_have_shl_load}" = "yes"; then
587     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
588     ac_cv_have_plugins=yes
589   fi
590 fi
591
592 # Whatever style
593 if test "${ac_cv_have_plugins}" = "no"; then
594   AC_CHECK_LIB(dld, dld_link,
595    [VLC_ADD_LDFLAGS([vlc],[-ldld])
596     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
597     ac_cv_have_plugins=yes])
598 fi
599
600 # Win32 style
601 if test "${ac_cv_have_plugins}" = "no"; then
602   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
603     AC_CHECK_LIB(kernel32, main,
604      [VLC_ADD_LDFLAGS([vlc],[-lkernel32])
605       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
606       ac_cv_have_plugins=yes])
607   fi
608 fi
609
610 # WinCE style
611 if test "${ac_cv_have_plugins}" = "no"; then
612   if test "${SYS}" = "mingwce"; then
613     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
614     ac_cv_have_plugins=yes
615   fi
616 fi
617
618 # BeOS style
619 if test "${ac_cv_have_plugins}" = "no"; then
620   AC_CHECK_HEADERS(image.h)
621   AC_CHECK_FUNCS(load_add_on,
622    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
623     ac_cv_have_plugins=yes])
624 fi
625
626 # Only test for dlopen() if the others didn't work
627 if test "${ac_cv_have_plugins}" = "no"; then
628   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
629   ac_cv_my_have_dlopen=no
630   AC_CHECK_FUNC(dlopen,
631     ac_cv_my_have_dlopen=yes,
632     AC_CHECK_LIB(dl, dlopen,
633       ac_cv_my_have_dlopen=yes
634       VLC_ADD_LDFLAGS([vlc],[-ldl]),
635       AC_CHECK_LIB(svld, dlopen,
636         ac_cv_my_have_dlopen=yes
637         VLC_ADD_LDFLAGS([vlc],[-lsvld]))))
638   if test "${ac_cv_my_have_dlopen}" = "yes"; then
639     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
640     ac_cv_have_plugins=yes
641   fi
642 fi
643
644 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
645 dnl Check for pthreads - borrowed from XMMS
646 THREAD_LIB=error
647 if test "${THREAD_LIB}" = "error"; then
648   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
649 fi
650 if test "${THREAD_LIB}" = "error"; then
651   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
652 fi
653 if test "${THREAD_LIB}" = "error"; then
654   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
655 fi
656 if test "${THREAD_LIB}" = "error"; then
657   AC_CHECK_FUNCS(pthread_mutex_lock)
658   THREAD_LIB=""
659 fi
660
661 dnl Check for cthreads under GNU/Hurd for instance
662 AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
663
664 dnl
665 dnl  GNU portable threads
666 dnl
667 AC_ARG_ENABLE(pth,
668   [  --enable-pth            GNU Pth support (default disabled)],
669   [ if test "${enable_pth}" = "yes"; then
670     AC_CHECK_LIB(pth,pth_init)
671     AC_MSG_CHECKING(for pth_init in pth.h)
672     AC_EGREP_HEADER(pth_init,pth.h,[
673       AC_MSG_RESULT(yes)
674       AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
675                 Define if <pth.h> defines pth_init)
676       THREAD_LIB="-lpth"
677     ],[
678       AC_MSG_RESULT(no)
679     ])
680     fi
681 ])
682
683 dnl
684 dnl  State Threads
685 dnl
686 AC_ARG_ENABLE(st,
687   [  --enable-st             State Threads (default disabled)],
688   [ if test "${enable_st}" = "yes"; then
689     AC_CHECK_LIB(st,st_init)
690     AC_MSG_CHECKING(for st_init in st.h)
691     AC_EGREP_HEADER(st_init,st.h,[
692       AC_MSG_RESULT(yes)
693       AC_DEFINE(ST_INIT_IN_ST_H, 1,
694                 Define if <st.h> defines st_init)
695       THREAD_LIB="-lst"
696     ],[
697       AC_MSG_RESULT(yes)
698     ])
699     fi
700 ])
701
702 VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
703
704 dnl Don't link with rt when using GNU-pth
705 if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then
706   dnl HP/UX port
707   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
708
709   have_nanosleep=false
710   AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
711     AC_CHECK_LIB(rt,nanosleep,
712       [VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
713       [AC_CHECK_LIB(posix4,nanosleep,
714           [VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
715     )
716   ])
717   if ${have_nanosleep}; then
718     AC_DEFINE(HAVE_NANOSLEEP, 1,
719               Define if nanosleep is available.)
720   fi
721 fi
722
723 dnl Check for misc headers
724 AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
725 AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
726   AC_MSG_RESULT(yes)
727   AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
728             Define if <pthread.h> defines pthread_cond_t.)],[
729   AC_MSG_RESULT(no)])
730
731 AC_MSG_CHECKING(for pthread_once in pthread.h)
732 AC_EGREP_HEADER(pthread_once,pthread.h,[
733   AC_MSG_RESULT(yes)
734   AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
735             Define if <pthread.h> defines pthread_once.)],[
736   AC_MSG_RESULT(no)])
737 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
738
739 AC_MSG_CHECKING(for strncasecmp in strings.h)
740 AC_EGREP_HEADER(strncasecmp,strings.h,[
741   AC_MSG_RESULT(yes)
742   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
743             Define if <strings.h> defines strncasecmp.)],[
744   AC_MSG_RESULT(no)])
745
746 dnl Check for headers
747 AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
748 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
749 AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
750 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
751 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
752 AC_CHECK_HEADERS(linux/version.h)
753 AC_CHECK_HEADERS(syslog.h)
754 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
755
756 AC_HEADER_TIME
757
758 dnl Check for dirent
759 need_dirent=false
760 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
761 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
762
763 dnl Mac OS X and other OSes don't have declaration for nanosleep
764 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
765 AC_MSG_CHECKING(for nanosleep in time.h)
766 AC_EGREP_HEADER(nanosleep,time.h,[
767   AC_MSG_RESULT(yes)
768   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
769             Define if <time.h> defines nanosleep.)
770 ],[
771   AC_MSG_RESULT(no)
772 ])
773 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
774
775 dnl Make sure we have timespecs
776 AC_MSG_CHECKING(for timespec in sys/time.h)
777 AC_EGREP_HEADER(timespec,sys/time.h,[
778   AC_MSG_RESULT(yes)
779   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
780             Define if <sys/time.h> defines struct timespec.)
781 ],[
782   AC_MSG_RESULT(no)
783 ])
784
785 dnl Check for threads library
786 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
787 AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)
788 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
789
790 dnl Find where are the X headers and libraries
791 AC_PATH_XTRA()
792
793 dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
794
795 PKG_PROG_PKG_CONFIG()
796
797 dnl Check for hal
798 AC_ARG_ENABLE(hal,
799   [  --enable-hal            Linux HAL services discovery (default enabled)])
800  
801 if test "${enable_hal}" != "no" -a "${SYS}" = "linux"
802 then
803   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
804     [ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
805       AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
806       VLC_ADD_PLUGINS([hal]) 
807       VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
808       VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],   
809     dnl No hal 0.5 Test for 0.2
810     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97, 
811        [AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
812         VLC_ADD_PLUGINS([hal])
813         VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
814         VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
815        [AC_MSG_WARN(HAL library not found)])
816     ]
817   )
818 fi
819
820 dnl Build the gtk_main plugins?
821 NEED_GTK_MAIN=no
822 NEED_GNOME_MAIN=no
823 NEED_GTK2_MAIN=no
824 NEED_GNOME2_MAIN=no
825
826 dnl build the qte plugin ?
827 NEED_QTE_MAIN=no
828
829 dnl Check for ntohl, etc.
830 AC_CACHE_CHECK([for ntohl in sys/param.h],
831     [ac_cv_c_ntohl_sys_param_h],
832     [CFLAGS="${CFLAGS_save} -Wall -Werror"
833      AC_TRY_COMPILE([#include <sys/param.h>],
834         [void foo() { int meuh; ntohl(meuh); }],
835         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
836 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
837     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
838 fi
839
840 # XXX: do this with an M4 macro?
841 #dnl Check for various -W flags
842 #for flag in "" all unreachable-code conversion sign-compare disabled-optimization
843 #do
844 #    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
845 #        [ac_cv_c_W${flag}],
846 #        [CFLAGS="-W${flag} ${CFLAGS_save}"
847 #         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
848 #    if test "${ac_cv_c_W${flag}}" != "no"; then
849 #        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
850 #        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
851 #        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
852 #    fi
853 #done
854
855 AC_CACHE_CHECK([if \$CC accepts -Wall],
856     [ac_cv_c_Wall],
857     [CFLAGS="-Wall ${CFLAGS_save}"
858      AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])
859
860 AC_CACHE_CHECK([if \$CC accepts -Wconversion],
861     [ac_cv_c_Wconversion],
862     [CFLAGS="-Wconversion ${CFLAGS_save}"
863      AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])
864
865 AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
866     [ac_cv_c_Wunreachable_code],
867     [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
868      AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])
869
870 AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
871     [ac_cv_c_Wsign_compare],
872     [CFLAGS="-Wsign-compare ${CFLAGS_save}"
873      AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])
874
875 if test "${ac_cv_c_Wall}" != "no"; then
876     CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
877     CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
878     OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
879 fi
880
881 if test "${ac_cv_c_Wsign_compare}" != "no"; then
882     CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
883     CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
884     OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
885 fi
886
887 dnl Check for -pipe
888 AC_CACHE_CHECK([if \$CC accepts -pipe],
889     [ac_cv_c_pipe],
890     [CFLAGS="${CFLAGS_save} -pipe"
891      AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
892 if test "${ac_cv_c_pipe}" != "no"; then
893     CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
894     CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
895     OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
896 fi
897
898 dnl Check for various optimization flags
899 AC_CACHE_CHECK([if \$CC accepts -Os],
900     [ac_cv_c_os],
901     [CFLAGS="${CFLAGS_save} -Os"
902      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
903 if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
904     CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
905 fi
906
907 AC_CACHE_CHECK([if \$CC accepts -O3],
908     [ac_cv_c_o3],
909     [CFLAGS="${CFLAGS_save} -O3"
910      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
911 if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
912     CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
913 fi
914
915 AC_CACHE_CHECK([if \$CC accepts -O2],
916     [ac_cv_c_o2],
917     [CFLAGS="${CFLAGS_save} -O2"
918      AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
919 if test "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
920     if test "${ac_cv_c_o3}" = "no"; then
921         CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
922     fi
923     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
924 else 
925     AC_CACHE_CHECK([if \$CC accepts -O],
926         [ac_cv_c_o],
927         [CFLAGS="${CFLAGS_save} -O"
928          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
929     if test "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
930         if test "${ac_cv_c_o3}" = "no"; then
931             CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
932         fi
933         CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
934     fi
935 fi
936
937 dnl Check for -ffast-math
938 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
939     [ac_cv_c_fast_math],
940     [CFLAGS="${CFLAGS_save} -ffast-math"
941      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
942 if test "${ac_cv_c_fast_math}" != "no"; then
943     CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
944 fi
945
946 dnl Check for -funroll-loops
947 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
948 if test "${SYS}" != "beos"
949 then
950   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
951       [ac_cv_c_unroll_loops],
952       [CFLAGS="${CFLAGS_save} -funroll-loops"
953        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
954   if test "${ac_cv_c_unroll_loops}" != "no"; then
955       CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
956   fi
957 fi
958
959 dnl Check for -fomit-frame-pointer
960 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
961     [ac_cv_c_omit_frame_pointer],
962     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
963      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
964 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
965     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
966     # this plugin does not compile without -fomit-frame-pointer, damn gcc!
967     VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
968 fi
969
970 dnl Check for -mdynamic-no-pic
971 AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
972     [ac_cv_c_dynamic_no_pic],
973     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
974      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
975 AS_IF([test "${enable_libtool}" = "no" && test "${ac_cv_c_dynamic_no_pic}" != "no"], [
976     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
977     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
978 ])
979
980 dnl Check for Darwin plugin linking flags
981 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
982     [ac_cv_ld_darwin],
983     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
984      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
985 if test "${ac_cv_ld_darwin}" != "no"; then
986     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
987 fi
988
989 dnl Check for standard plugin linking flags
990 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
991 if test "${SYS}" = "beos"; then
992   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
993 else
994   AC_CACHE_CHECK([if \$CC accepts -shared],
995       [ac_cv_ld_plugins],
996       [CFLAGS="${CFLAGS_save} -shared"
997        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
998   if test "${ac_cv_ld_plugins}" != "no"; then
999     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1000   fi
1001 fi
1002
1003 dnl Check for variadic macros
1004 AC_CACHE_CHECK([for variadic cpp macros],
1005     [ac_cv_cpp_variadic_macros],
1006     [CFLAGS="${CFLAGS_save}"
1007      AC_TRY_COMPILE(
1008          [#include <stdio.h>
1009           #define a(b,c...) printf(b,##c)],
1010          [a("foo");a("%s","bar");a("%s%s","baz","quux");],
1011          ac_cv_cpp_variadic_macros=yes,
1012          ac_cv_cpp_variadic_macros=no)])
1013 if test "${ac_cv_cpp_variadic_macros}" != "no"; then
1014     AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
1015 fi
1016
1017 dnl Checks for __attribute__(aligned()) directive
1018 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1019     [ac_cv_c_attribute_aligned],
1020     [ac_cv_c_attribute_aligned=0
1021         CFLAGS="${CFLAGS_save} -Werror"
1022     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1023         AC_TRY_COMPILE([],
1024         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1025         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1026     done
1027         CFLAGS="${CFLAGS_save}"])
1028 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1029     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1030         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1031 fi
1032
1033 dnl Checks for __attribute__(format()) directive
1034 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1035     [ac_cv_c_attribute_format],
1036     [ac_cv_c_attribute_format=no
1037         CFLAGS="${CFLAGS_save} -Werror"
1038         AC_TRY_COMPILE([],
1039         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1040         [ac_cv_c_attribute_format=yes])
1041         CFLAGS="${CFLAGS_save}"])
1042 if test "${ac_cv_c_attribute_format}" != "no"; then
1043     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1044 fi
1045
1046 dnl Check for __attribute__(())
1047 AC_CACHE_CHECK([for __attribute__((packed))],
1048   [ac_cv_c_attribute_packed],
1049   [ac_cv_c_attribute_packed=no
1050    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1051                     [ac_cv_c_attribute_packed=yes])])
1052 if test "${ac_cv_c_attribute_packed}" != "no"; then
1053   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1054 fi
1055
1056 dnl
1057 dnl  Check the CPU
1058 dnl
1059 case "${target_cpu}" in
1060   "")
1061     ARCH=unknown
1062     ;;
1063   *)
1064     ARCH="${target_cpu}"
1065     ;;
1066 esac
1067
1068 dnl
1069 dnl  Enable profiling
1070 dnl
1071 AC_ARG_ENABLE(gprof,
1072 [  --enable-gprof          gprof profiling (default disabled)])
1073 AC_ARG_ENABLE(cprof,
1074 [  --enable-cprof          cprof profiling (default disabled)])
1075 test "${enable_gprof}" != "yes" && enable_gprof="no"
1076 test "${enable_cprof}" != "yes" && enable_cprof="no"
1077
1078 dnl
1079 dnl  default modules
1080 dnl
1081 VLC_ADD_PLUGINS([dummy logger memcpy])
1082 VLC_ADD_PLUGINS([mpgv mpga m4v m4a h264 ps pva avi asf mp4 rawdv nsv real aiff mjpeg demuxdump flac])
1083 VLC_ADD_PLUGINS([cvdsub svcdsub spudec subsdec dvbsub mpeg_audio lpcm a52 dts cinepak flacdec])
1084 VLC_ADD_PLUGINS([deinterlace invert adjust transform distort motionblur rv32])
1085 VLC_ADD_PLUGINS([fixed32tos16 s16tofixed32 u8tofixed32])
1086 VLC_ADD_PLUGINS([trivial_resampler ugly_resampler])
1087 VLC_ADD_PLUGINS([trivial_channel_mixer trivial_mixer])
1088 VLC_ADD_PLUGINS([playlist export sgimb m3u nsc xtag])
1089 VLC_ADD_PLUGINS([i420_rgb rawvideo blend scale image logo magnify])
1090 VLC_ADD_PLUGINS([wav araw subtitle vobsub adpcm a52sys dtssys au ty voc xa nuv])
1091 VLC_ADD_PLUGINS([access_directory access_file access_udp access_tcp])
1092 VLC_ADD_PLUGINS([access_http access_mms access_ftp ipv4])
1093 VLC_ADD_PLUGINS([packetizer_mpegvideo packetizer_h264])
1094 VLC_ADD_PLUGINS([packetizer_mpeg4video packetizer_mpeg4audio])
1095
1096 if test "${SYS}" != "mingwce"; then
1097 dnl  VLC_ADD_PLUGINS([externrun])
1098   VLC_ADD_PLUGINS([access_fake access_filter_timeshift access_filter_record])
1099   VLC_ADD_PLUGINS([gestures rc telnet hotkeys netsync showintf time marq podcast shout sap fake])
1100   VLC_ADD_PLUGINS([rss mosaic wall motiondetect clone crop])
1101   VLC_ADD_PLUGINS([i420_yuy2 i422_yuy2 i420_ymga])
1102   VLC_ADD_PLUGINS([aout_file linear_resampler bandlimited_resampler])
1103   VLC_ADD_PLUGINS([float32_mixer spdif_mixer simple_channel_mixer])
1104   VLC_ADD_PLUGINS([dolby_surround_decoder headphone_channel_mixer normvol equalizer param_eq])
1105   VLC_ADD_PLUGINS([fixed32tofloat32 float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32 audio_format])
1106 fi
1107
1108 dnl
1109 dnl  Switch to enable a version of VLC where most modules will be builtin
1110 dnl
1111 AC_ARG_ENABLE(mostly-builtin,
1112 [  --enable-mostly-builtin most modules will be built-in (default disabled)])
1113 if test "${enable_mostly_builtin}" = "yes"; then
1114   VLC_ADD_BUILTINS([${PLUGINS}])
1115   PLUGINS=""
1116 fi
1117
1118 dnl
1119 dnl Some plugins aren't useful on some platforms
1120 dnl
1121 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1122     VLC_ADD_PLUGINS([screensaver])
1123 elif test "${SYS}" != "mingwce"; then
1124     VLC_ADD_PLUGINS([ntservice access_smb dmo msn])
1125     VLC_ADD_LDFLAGS([dmo],[-lole32])
1126 else
1127     VLC_ADD_PLUGINS([win32text])
1128 fi
1129
1130 dnl
1131 dnl  Accelerated modules
1132 dnl
1133 MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
1134 #MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
1135 MMXEXT_MODULES="memcpymmxext"
1136 #MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
1137 THREEDNOW_MODULES="memcpy3dn"
1138 SSE_MODULES=""
1139 ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
1140 #ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
1141
1142 if test "${enable_gprof}" != "yes"
1143 then
1144   MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
1145 fi
1146
1147 AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
1148     [ac_cv_mmx_inline],
1149     [CFLAGS="${CFLAGS_save}"
1150      AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
1151                     ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
1152 if test "${ac_cv_mmx_inline}" != "no"; then
1153   AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
1154   ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
1155 fi
1156
1157 dnl  Check for fully workin MMX intrinsics
1158 dnl  We need support for -mmmx, we need <mmintrin.h>, and we also need a
1159 dnl  working compiler (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23963)
1160 AC_CACHE_CHECK([if \$CC groks MMX intrinsics],
1161     [ac_cv_c_mmx_intrinsics],
1162     [CFLAGS="${CFLAGS_save} -O -mmmx"
1163      AC_TRY_COMPILE([#include <mmintrin.h>
1164                      #include <stdint.h>
1165                      uint64_t frobzor;],
1166                     [__m64 a, b, c;
1167                      a = b = c = (__m64)frobzor;
1168                      a = _mm_slli_pi16(a, 3);
1169                      a = _mm_adds_pi16(a, b);
1170                      c = _mm_srli_pi16(c, 8);
1171                      c = _mm_slli_pi16(c, 3);
1172                      b = _mm_adds_pi16(b, c);
1173                      a = _mm_unpacklo_pi8(a, b);
1174                      frobzor = (uint64_t)a;],
1175                     [ac_cv_c_mmx_intrinsics=yes],
1176                     [ac_cv_c_mmx_intrinsics=no])])
1177 if test "${ac_cv_c_mmx_intrinsics}" != "no"; then
1178   AC_DEFINE(HAVE_MMX_INTRINSICS, 1, Define if MMX intrinsics are available.)
1179   VLC_ADD_CFLAGS([i420_rgb_mmx],[-mmmx])
1180 fi
1181
1182 AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
1183     [ac_cv_mmxext_inline],
1184     [CFLAGS="${CFLAGS_save}"
1185      AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
1186                     ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
1187 if test "${ac_cv_mmxext_inline}" != "no"; then
1188   AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
1189   ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
1190 fi
1191
1192 AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
1193     [ac_cv_3dnow_inline],
1194     [CFLAGS="${CFLAGS_save}"
1195      AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
1196                     ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
1197 if test "${ac_cv_3dnow_inline}" != "no"; then
1198   AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
1199   ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
1200 fi
1201
1202 AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
1203     [ac_cv_sse_inline],
1204     [CFLAGS="${CFLAGS_save}"
1205      AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
1206                     ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
1207 if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "solaris"; then
1208   AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
1209   ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
1210 fi
1211
1212 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
1213 AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
1214     [ac_cv_altivec_inline],
1215     [CFLAGS="${CFLAGS_save}"
1216      AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1217          ac_cv_altivec_inline=yes,
1218          [CFLAGS="${CFLAGS_save} -Wa,-m7400"
1219           AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
1220             [ac_cv_altivec_inline="-Wa,-m7400"],
1221             ac_cv_altivec_inline=no)
1222          ])])
1223 if test "${ac_cv_altivec_inline}" != "no"; then
1224   AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
1225   if test "${ac_cv_altivec_inline}" != "yes"; then
1226     VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
1227     VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])
1228     VLC_ADD_CFLAGS([memcpyaltivec],[${ac_cv_altivec_inline}])
1229     VLC_ADD_CFLAGS([i420_yuy2_altivec],[${ac_cv_altivec_inline}])
1230     VLC_ADD_CFLAGS([vlc],[${ac_cv_altivec_inline}])
1231   fi
1232   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1233 fi
1234
1235 dnl The AltiVec C extensions
1236 dnl
1237 dnl There are several possible cases:
1238 dnl - OS X PPC, gcc 4.x: use -mpim-altivec -force_cpusubtype_ALL, don't
1239 dnl                      need <altivec.h>
1240 dnl - OS X PPC, gcc 3.x: need -faltivec, don't need <altivec.h>
1241 dnl - Linux PPC, gcc 3.4, 4.x: need <altivec.h> which requires -maltivec
1242 dnl - Linux PPC, gcc 3.3: need <altivec.h> and -maltivec -mabi=altivec
1243 dnl - Linux PPC, gcc 3.x: need <altivec.h> and -fvec
1244 dnl - Others: test should fail
1245 AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
1246   [ac_cv_c_altivec],
1247   [# OS X/PPC test (gcc 4.x)
1248    CFLAGS="${CFLAGS_save} -mpim-altivec -force_cpusubtype_ALL"
1249    AC_TRY_COMPILE([],
1250      [vec_ld(0, (unsigned char *)0);],
1251      [ac_cv_c_altivec="-mpim-altivec -force_cpusubtype_ALL"],
1252      [# OS X/PPC test (gcc 3.x)
1253       CFLAGS="${CFLAGS_save} -faltivec"
1254       AC_TRY_COMPILE([],
1255         [vec_ld(1 * sizeof(vector float), (unsigned char *)0);],
1256         [ac_cv_c_altivec="-faltivec"],
1257         dnl Below this are the Linux tests
1258         [# Linux/PPC test (gcc 4.x)
1259          CFLAGS="${CFLAGS_save} -maltivec"
1260          AC_TRY_COMPILE([#include <altivec.h>],
1261            [vec_ld(0, (unsigned char *)0);],
1262            [ac_cv_c_altivec="-maltivec"],
1263            [# Linux/PPC test (gcc 3.3)
1264             CFLAGS="${CFLAGS_save} -maltivec -mabi=altivec"
1265             AC_TRY_COMPILE([#include <altivec.h>],
1266               [vec_ld(0, (unsigned char *)0);],
1267               [ac_cv_c_altivec=""
1268                ac_cv_c_altivec_abi="-maltivec -mabi=altivec"],
1269               [# Linux/PPC test (gcc 3.3)
1270                CFLAGS="${CFLAGS_save} -fvec"
1271                AC_TRY_COMPILE([#include <altivec.h>],
1272                  [vec_ld(0, (unsigned char *)0);],
1273                  [ac_cv_c_altivec="-fvec"],
1274                  [ac_cv_c_altivec=no])
1275               ])
1276            ])
1277         ])
1278      ])
1279    CFLAGS="${CFLAGS_save}"
1280   ])
1281
1282 if test "${ac_cv_c_altivec}" != "no"; then
1283   CPPFLAGS="${CPPFLAGS_save} ${ac_cv_c_altivec}"
1284 fi
1285 AC_CHECK_HEADERS(altivec.h)
1286 CPPFLAGS="${CPPFLAGS_save}"
1287
1288 if test "${ac_cv_c_altivec}" != "no"; then
1289   AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
1290   VLC_ADD_CFLAGS([vlc],[${ac_cv_c_altivec}])
1291   VLC_ADD_CFLAGS([idctaltivec motionaltivec],[${ac_cv_c_altivec}])
1292   VLC_ADD_CFLAGS([i420_yuy2_altivec memcpyaltivec deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])
1293   ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
1294 fi
1295
1296 AC_CACHE_CHECK([if linker needs -framework vecLib],
1297     [ac_cv_ld_altivec],
1298     [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
1299      AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
1300      LDFLAGS="${LDFLAGS_save}"
1301     ])
1302 if test "${ac_cv_ld_altivec}" != "no"; then
1303   VLC_ADD_LDFLAGS([vlc idctaltivec motionaltivec memcpyaltivec],[-framework vecLib])
1304 fi
1305 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
1306
1307 AC_ARG_WITH(,[])
1308 AC_ARG_WITH(,[Optimization options:])
1309
1310 dnl
1311 dnl  Special arch tuning
1312 dnl
1313 AC_ARG_WITH(tuning,
1314 [  --with-tuning=ARCH      enable special tuning for an architecture
1315                           (default Pentium 2 on IA-32 and 750 on PPC)])
1316 if test -n "${with_tuning}"; then
1317     if test "${with_tuning}" != "no"; then
1318         CFLAGS_TUNING="-mtune=${with_tuning}"
1319     fi
1320 else
1321     if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "i486" -o "${target_cpu}" = "i386"; then
1322         CFLAGS_TUNING="-mtune=pentium2"
1323     elif test "${target_cpu}" = "x86_64"; then
1324         CFLAGS_TUNING="-mtune=athlon64"
1325     elif test "${target_cpu}" = "powerpc"; then
1326         CFLAGS_TUNING="-mtune=750";
1327     fi
1328 fi
1329
1330 dnl NOTE: this can't be cached cleanly
1331 AS_IF([test "${CFLAGS_TUNING}"],
1332    [CFLAGS_save="${CFLAGS}"
1333     CFLAGS="${CFLAGS} ${CFLAGS_TUNING}"
1334
1335     AC_MSG_CHECKING([whether $CC accepts ${CFLAGS_TUNING}])
1336     AC_COMPILE_IFELSE([ ],
1337                       [tuning="yes"],
1338                       [CFLAGS_TUNING=""; tuning="no"
1339                        AS_IF([test "${with_tuning}"],
1340                              [AC_MSG_ERROR([requested tuning not supported])])])
1341
1342     AC_MSG_RESULT([$tuning])
1343     CFLAGS="${CFLAGS_save}"
1344 ])
1345
1346 dnl
1347 dnl  x86 accelerations
1348 dnl
1349 if test "${target_cpu}" = "i686" -o "${target_cpu}" = "i586" -o "${target_cpu}" = "x86" -o "${target_cpu}" = "i386" -o "${target_cpu}" = "x86_64"
1350 then
1351     ARCH="${ARCH} mmx"
1352     VLC_ADD_BUILTINS([${ACCEL_MODULES}])
1353 fi
1354
1355 dnl
1356 dnl  Memory usage
1357 dnl
1358 AC_ARG_ENABLE(optimize-memory,
1359 [  --enable-optimize-memory      optimize memory usage over performance])
1360 if test "${enable_optimize_memory}" = "yes"; then
1361   AC_DEFINE(OPTIMIZE_MEMORY, 1, Define if you want to optimize memory usage over performance)
1362 fi
1363
1364 dnl
1365 dnl  Enable/disable optimizations
1366 dnl
1367 AC_ARG_ENABLE(optimizations,
1368 [  --disable-optimizations disable compiler optimizations (default enabled)])
1369 test "${enable_optimizations}" != "no" && enable_optimizations="yes"
1370
1371 dnl
1372 dnl  AltiVec acceleration
1373 dnl
1374 AC_ARG_ENABLE(altivec,
1375 [  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
1376 [ if test "${enable_altivec}" = "yes"; then ARCH="${ARCH} altivec";
1377     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ],
1378 [ if test "${target_cpu}" = "powerpc"; then ARCH="${ARCH} altivec";
1379     VLC_ADD_BUILTINS([${ACCEL_MODULES}]) fi ])
1380
1381 dnl
1382 dnl  Debugging mode
1383 dnl
1384 AC_ARG_ENABLE(debug,
1385 [  --enable-debug          debug mode (default disabled)])
1386 test "${enable_debug}" != "yes" && enable_debug="no"
1387 AH_TEMPLATE(NDEBUG,
1388             [Define to 1 if debug code should NOT be compiled])
1389 AS_IF([test "x${enable_debug}" == "xno"], [AC_DEFINE(NDEBUG)])
1390
1391 dnl
1392 dnl  Enable release-specific flags
1393 dnl
1394 AC_ARG_ENABLE(release,
1395 [  --enable-release        activate extra optimizations (default disabled)])
1396 test "${enable_release}" != "yes" && enable_release="no"
1397
1398 dnl
1399 dnl  Is the shared libvlc forced ?
1400 dnl
1401 build_pic=no
1402 AC_ARG_ENABLE(shared-libvlc,
1403   [  --enable-shared-libvlc  Win32 libvlc.dll build (default disabled)])
1404 AS_IF([test "${enable_libtool}" != "no" && test "${enable_shared_libvlc}"], [
1405   AC_MSG_ERROR([--enable-shared-libvlc and --enable-libtool are mutually exclusive])
1406 ])
1407
1408 dnl
1409 dnl Stream output
1410 dnl
1411 AC_ARG_ENABLE(sout,
1412   [  --enable-sout           Stream output modules (default enabled)])
1413 if test "${enable_sout}" != "no"
1414 then
1415   VLC_ADD_PLUGINS([access_output_dummy access_output_udp access_output_file access_output_http])
1416   VLC_ADD_PLUGINS([mux_ps mux_avi mux_mp4 mux_asf mux_dummy mux_wav mux_mpjpeg])
1417   VLC_ADD_PLUGINS([packetizer_copy])
1418
1419   VLC_ADD_PLUGINS([stream_out_dummy stream_out_standard stream_out_es stream_out_rtp stream_out_description vod_rtsp])
1420   VLC_ADD_PLUGINS([stream_out_duplicate stream_out_gather stream_out_display stream_out_transcode stream_out_bridge stream_out_mosaic_bridge])
1421 #  VLC_ADD_PLUGINS([stream_out_transrate])
1422
1423   AC_DEFINE(ENABLE_SOUT, 1, Define if you want the stream output support)
1424 fi
1425
1426 dnl Check for libshout
1427 AC_ARG_ENABLE(shout,
1428   [  --enable-shout          libshout output plugin (default disabled)])
1429 if test "${enable_shout}" = "yes"; then
1430   PKG_CHECK_MODULES(SHOUT, shout >= 2.1,
1431     [AC_DEFINE(HAVE_SHOUT, [], [Define if you have the libshout library])
1432      VLC_ADD_PLUGINS([access_output_shout])
1433      VLC_ADD_LDFLAGS([vlc access_output_shout],[$SHOUT_LIBS])
1434      VLC_ADD_CFLAGS([vlc access_output_shout],[$SHOUT_CFLAGS])],
1435     [AC_MSG_WARN(libshout library not found)])
1436 fi
1437
1438 dnl
1439 dnl HTTP daemon
1440 dnl
1441 AC_ARG_ENABLE(httpd,
1442   [  --enable-httpd          HTTP daemon (default enabled)])
1443 if test "${enable_httpd}" != "no"
1444 then
1445   VLC_ADD_PLUGINS([http])
1446   AC_DEFINE(ENABLE_HTTPD, 1, Define if you want the HTTP dameon support)
1447 fi
1448
1449 dnl
1450 dnl VideoLAN manager
1451 dnl
1452 AC_ARG_ENABLE(vlm,
1453   [  --enable-vlm            VideoLAN manager (default enabled)])
1454 if test "${enable_vlm}" != "no"
1455 then
1456   AC_DEFINE(ENABLE_VLM, 1, Define if you want the VideoLAN manager support)
1457 fi
1458
1459 dnl
1460 dnl Growl notification plugin
1461 dnl
1462 AC_ARG_ENABLE(growl,
1463   [  --enable-growl         growl notification plugin (default enabled)])
1464 AS_IF([test "${enable_growl}" != "no"], [
1465     VLC_ADD_PLUGINS([growl])
1466   ]
1467 )
1468
1469
1470 dnl
1471 dnl  Input plugins
1472 dnl
1473
1474 AC_ARG_WITH(,[Input plugins:])
1475
1476 dnl  live.com input
1477 dnl
1478 AC_ARG_ENABLE(livedotcom,
1479 [  --enable-livedotcom     live.com RTSP input plugin (default disabled)])
1480 if test "${enable_livedotcom}" = "yes"; then
1481   AC_ARG_WITH(livedotcom-tree,
1482     [    --with-livedotcom-tree=PATH live.com tree for static linking])
1483
1484   dnl
1485   dnl test for --with-livedotcom-tree
1486   dnl
1487   if test -z "${with_livedotcom_tree}" -a "${CXX}" != ""; then
1488     AC_LANG_PUSH(C++)
1489     CPPFLAGS_save="${CPPFLAGS}"
1490     CPPFLAGS_livedotcom="-I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment"
1491     if test "${SYS}" = "solaris"; then
1492       CPPFLAGS_livedotcom="${CPPFLAGS_livedotcom} -DSOLARIS"
1493     fi
1494     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_livedotcom}"
1495     AC_CHECK_HEADERS(liveMedia.hh, [
1496       VLC_ADD_CXXFLAGS([livedotcom], [${CPPFLAGS_livedotcom}])
1497       AC_CHECK_LIB(liveMedia_pic, main, [
1498         # We have -lliveMedia_pic, build plugins
1499         VLC_ADD_PLUGINS([livedotcom])
1500         VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia_pic -lgroupsock_pic -lBasicUsageEnvironment_pic -lUsageEnvironment_pic])
1501       ], [
1502         AC_CHECK_LIB(liveMedia, main, [
1503           # We only have -lliveMedia, do builtins
1504           VLC_ADD_BUILTINS([livedotcom])
1505           VLC_ADD_LDFLAGS([livedotcom], [-lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment])
1506         ])
1507       ])
1508       if test "${SYS}" = "mingw32"; then
1509         # add ws2_32 for closesocket, select, recv
1510         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1511       fi
1512     ])
1513     CPPFLAGS="${CPPFLAGS_save}"
1514     AC_LANG_POP(C++)
1515   else
1516     AC_MSG_CHECKING(for liveMedia/libliveMedia.a in ${with_livedotcom_tree})
1517     real_livedotcom_tree="`cd ${with_livedotcom_tree} 2>/dev/null && pwd`"
1518     if test -z "${real_livedotcom_tree}"; then
1519       dnl  The given directory can't be found
1520       AC_MSG_RESULT(no)
1521       AC_MSG_ERROR([cannot cd to ${with_livedotcom_tree}])
1522     fi
1523     if test -f "${real_livedotcom_tree}/liveMedia/libliveMedia.a"; then
1524       AC_MSG_RESULT(${real_livedotcom_tree}/liveMedia/libliveMedia.a)
1525
1526       VLC_ADD_BUILTINS([livedotcom])
1527
1528       if test "${SYS}" = "mingw32"; then
1529         # add ws2_32 for closesocket, select, recv
1530         VLC_ADD_LDFLAGS([livedotcom],[-lws2_32])
1531       fi
1532
1533       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/liveMedia -lliveMedia])
1534       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/BasicUsageEnvironment -lBasicUsageEnvironment])
1535       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/groupsock -lgroupsock])
1536       VLC_ADD_LDFLAGS([livedotcom],[-L${real_livedotcom_tree}/UsageEnvironment -lUsageEnvironment])
1537
1538       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/BasicUsageEnvironment/include])
1539       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/groupsock/include])
1540       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/liveMedia/include])
1541       VLC_ADD_CXXFLAGS([livedotcom],[-I${real_livedotcom_tree}/UsageEnvironment/include ])
1542       if test "${SYS}" = "solaris"; then
1543         VLC_ADD_CXXFLAGS([livedotcom],[-DSOLARIS])
1544       fi
1545     else
1546       dnl  The given live.com wasn't built
1547       AC_MSG_RESULT(no)
1548       AC_MSG_ERROR([cannot find ${real_livedotcom_tree}/liveMedia/libliveMedia.a, make sure you compiled live.com in ${with_livedotcom_tree}])
1549     fi
1550   fi
1551 fi
1552
1553 dnl
1554 dnl dv module: digital video module check for libraw1394
1555 dnl
1556 AC_ARG_ENABLE(dv,
1557 [  --enable-dv             dv input module (default disabled)])
1558 if test "${enable_dv}" = "yes"
1559 then
1560   AC_ARG_WITH(dv-raw1394,
1561   [    --with-dv-raw1394=PATH   libraw1394 headers and libraries])
1562   AC_ARG_WITH(dv-raw1394-tree,
1563   [    --with-dv-raw1394=PATH   libraw1394 tree for static linking])
1564
1565   if test -z "${with_dv_raw1394}" -a "${with_dv_raw1394}" != ""
1566   then
1567     AC_MSG_CHECKING(for raw1394 headers in ${with_dv_raw1394})
1568     if test -f ${with_dv_raw1394}/include/libraw1394/raw1394.h
1569     then
1570       dnl  Use ${with_dv_raw1394}/include/libraw1394/raw1394.h
1571       AC_MSG_RESULT(yes)
1572       VLC_ADD_PLUGINS([access_dv])
1573       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_raw1394}/lib -lraw1394 -lpthread])
1574       VLC_ADD_CPPFLAGS([access_dv],[-I${with_dv_raw1394}/include])
1575     else
1576       dnl  No libraw1394 could be found, sorry
1577       AC_MSG_RESULT(no)
1578       AC_MSG_ERROR([cannot find ${with_dv_raw1394}/include/libraw1394/raw1394.h])
1579     fi
1580   else
1581     AC_CHECK_HEADERS(libraw1394/raw1394.h,
1582     [ VLC_ADD_PLUGINS([access_dv])
1583         VLC_ADD_LDFLAGS([access_dv],[-lraw1394 -lavc1394])
1584     ],[
1585         if test -n "${enable_dv}"
1586         then
1587           AC_MSG_ERROR([cannot find libraw1394 headers])
1588         fi
1589     ])
1590   fi
1591
1592   dnl Check for static linking of libraw1394
1593   if test -z "${with_dv_raw1394_tree}" -a "${with_dv_raw1394_tree}" != ""
1594   then
1595     AC_MSG_CHECKING(for libraw1394.a in ${with_dv_raw1394_tree})
1596     real_dv_raw1394_tree="`cd ${with_dv_raw1394_tree} 2>/dev/null && pwd`"
1597     if test -z "${real_dv_raw1394_tree}"
1598     then
1599       dnl  The given directory can't be found
1600       AC_MSG_RESULT(no)
1601       AC_MSG_ERROR([cannot cd to ${real_dv_raw1394_tree}])
1602     fi
1603     if test -f "${real_dv_raw1394_tree}/src/.libs/libraw1394.a"
1604     then
1605       dnl  Use a custom libraw1394
1606       AC_MSG_RESULT(${real_dv_raw1394_tree}/src/.libs/libraw1394.a)
1607       VLC_ADD_BUILTINS([access_dv])
1608       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_raw1394_tree}/src/.libs -lraw1394])
1609       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_raw1394_tree}])
1610     else
1611       dnl  The given libraw1394 wasn't built
1612       AC_MSG_RESULT(no)
1613       AC_MSG_ERROR([cannot find ${real_dv_raw1394_tree}/src/.libs/libraw1394.a, make sure you compiled libraw1394 in ${with_dv_raw1394_tree}])
1614     fi
1615   fi
1616
1617   dnl
1618   dnl Check for libavc1394
1619   dnl
1620
1621   AC_ARG_WITH(dv-avc1394,
1622   [    --with-dv-avc1394=PATH   libavc1394 headers and libraries])
1623   AC_ARG_WITH(dv-avc1394-tree,
1624   [    --with-dv-avc1394=PATH   libavc1394 tree for static linking])
1625
1626   if test -z "${with_dv_avc1394}" -a "${with_dv_avc1394}" != ""
1627   then
1628     AC_MSG_CHECKING(for avc1394 headers in ${with_dv_avc1394})
1629     if test -f ${with_dv_avc1394}/include/libavc1394/avc1394.h
1630     then
1631       dnl  Use ${with_dv_avc1394}/include/libavc1394/avc1394.h
1632       AC_MSG_RESULT(yes)
1633       VLC_ADD_LDFLAGS([access_dv],[-L${with_dv_avc1394}/lib -lavc1394 -lrom1394 -lpthread])
1634       VLC_ADD_CPPFLAGS([access_dv],[-I${with_avc1394}/include])
1635     else
1636       dnl  No libavc1394 could be found, sorry
1637       AC_MSG_RESULT(no)
1638       AC_MSG_ERROR([cannot find ${with_dv_avc1394}/include/libavc1394/avc1394.h])
1639     fi
1640   else
1641     AC_CHECK_HEADERS(libavc1394/avc1394.h,
1642     [ VLC_ADD_LDFLAGS([access_dv],[-lavc1394 -lrom1394 -lpthread])
1643     ],[
1644         if test -n "${enable_dv}"
1645         then
1646           AC_MSG_ERROR([cannot find libavc1394 headers])
1647         fi
1648     ])
1649   fi
1650
1651   dnl Check for static linking of libavc1394
1652   if test -z "${with_dv_avc1394_tree}" -a "${with_dv_avc1394_tree}" != ""
1653   then
1654     AC_MSG_CHECKING(for libavc1394.a in ${with_dv_avc1394_tree})
1655     real_dv_avc1394_tree="`cd ${with_dv_avc1394_tree} 2>/dev/null && pwd`"
1656     if test -z "${real_dv_avc1394_tree}"
1657     then
1658       dnl  The given directory can't be found
1659       AC_MSG_RESULT(no)
1660       AC_MSG_ERROR([cannot cd to ${real_dv_avc1394_tree}])
1661     fi
1662     if test -f "${real_dv_avc1394_tree}/src/.libs/libavc1394.a"
1663     then
1664       dnl  Use a custom libavc1394
1665       AC_MSG_RESULT(${real_dv_avc1394_tree}/src/.libs/libavc1394.a)
1666       VLC_ADD_LDFLAGS([access_dv],[-L${real_dv_avc1394_tree}/src/.libs -lavc1394 -lrom1394 -lpthread])
1667       VLC_ADD_CPPFLAGS([access_dv],[-I${real_dv_avc1394_tree}])
1668     else
1669       dnl  The given libavc1394 wasn't built
1670       AC_MSG_RESULT(no)
1671       AC_MSG_ERROR([cannot find ${real_dv_avc1394_tree}/src/.libs/libavc1394.a, make sure you compiled libavc1394 in ${with_dv_avc1394_tree}])
1672     fi
1673   fi
1674 fi
1675
1676 dnl
1677 dnl dvdread module: check for libdvdread
1678 dnl
1679 AC_ARG_ENABLE(dvdread,
1680 [  --enable-dvdread        dvdread input module (default disabled)])
1681 if test "${enable_dvdread}" != "no"
1682 then
1683   AC_ARG_WITH(dvdread,
1684   [    --with-dvdread=PATH   libdvdread headers and libraries])
1685   AC_ARG_WITH(dvdread-tree,
1686   [    --with-dvdread-tree=PATH libdvdread tree for static linking])
1687
1688   dnl Temporary hack (yeah, sure ;)
1689   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1690       VLC_ADD_LDFLAGS([dvdread],[-ldvdcss])
1691   fi
1692
1693   if test -z "${with_dvdread}"
1694   then
1695     if test -z "${with_dvdread_tree}"
1696     then
1697       AC_CHECK_HEADERS(dvdread/dvd_reader.h,
1698         [ VLC_ADD_PLUGINS([dvdread])
1699           VLC_ADD_LDFLAGS([dvdread],[-ldvdread ${LDFLAGS_dvdcss}])
1700         ],[
1701           if test -n "${enable_dvdread}"
1702           then
1703             AC_MSG_ERROR([cannot find libdvdread headers])
1704           fi
1705         ])
1706     else
1707       AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
1708       real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
1709       if test -z "${real_dvdread_tree}"
1710       then
1711         dnl  The given directory can't be found
1712         AC_MSG_RESULT(no)
1713         AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
1714       fi
1715       if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
1716       then
1717         dnl  Use a custom libdvdread
1718         AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
1719         VLC_ADD_BUILTINS([dvdread])
1720         VLC_ADD_LDFLAGS([dvdread],[-L${real_dvdread_tree}/dvdread/.libs -ldvdread ${LDFLAGS_dvdcss}])
1721         VLC_ADD_CPPFLAGS([dvdread],[-I${real_dvdread_tree}])
1722       else
1723         dnl  The given libdvdread wasn't built
1724         AC_MSG_RESULT(no)
1725         AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
1726       fi
1727     fi
1728   else
1729     AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
1730     if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1731     then
1732       dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1733       AC_MSG_RESULT(yes)
1734       VLC_ADD_PLUGINS([dvdread])
1735       VLC_ADD_LDFLAGS([dvdread],[-L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}])
1736       VLC_ADD_CPPFLAGS([dvdread],[-I${with_dvdread}/include])
1737     else
1738       dnl  No libdvdread could be found, sorry
1739       AC_MSG_RESULT(no)
1740       AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1741     fi
1742   fi
1743 fi
1744
1745 dnl
1746 dnl  libdvdnav plugin
1747 dnl
1748 AC_ARG_ENABLE(dvdnav,
1749   [  --enable-dvdnav         dvdnav input module (default enabled)])
1750 if test "${enable_dvdnav}" != "no"
1751 then
1752   dnl Same hack than dvdread
1753   if test "${SYS}" = "mingw32" || test "${SYS}" = "darwin" || test "${SYS}" = "beos" ; then
1754       VLC_ADD_LDFLAGS([dvdnav],[-ldvdcss])
1755   fi
1756
1757   DVDNAV_PATH="${PATH}"
1758   AC_ARG_WITH(dvdnav-config-path,
1759     [    --with-dvdnav-config-path=PATH dvdnav-config path (default search in \$PATH)],
1760     [ if test "${with_dvdnav_config_path}" != "no"
1761       then
1762         DVDNAV_PATH="${with_dvdnav_config_path}:${PATH}"
1763       fi ])
1764   AC_PATH_PROG(DVDNAV_CONFIG, dvdnav-config, no, ${DVDNAV_PATH})
1765   if test "${DVDNAV_CONFIG}" != "no"
1766   then
1767     VLC_ADD_PLUGINS([dvdnav])
1768     VLC_ADD_CFLAGS([dvdnav],[`${DVDNAV_CONFIG} --cflags`])
1769     VLC_ADD_LDFLAGS([dvdnav],[`${DVDNAV_CONFIG} --libs`])
1770   fi
1771 fi
1772
1773 dnl
1774 dnl  Windows DirectShow access module
1775 dnl
1776 AC_ARG_ENABLE(dshow,
1777   [  --enable-dshow          Win32 DirectShow support (default enabled on Win32)])
1778 if test "${enable_dshow}" != "no"
1779 then
1780   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
1781   then
1782     AC_LANG_PUSH(C++)
1783       AC_CHECK_HEADERS(dshow.h,
1784       [ VLC_ADD_PLUGINS([dshow])
1785         VLC_ADD_CXXFLAGS([dshow],[])
1786         VLC_ADD_LDFLAGS([dshow],[-lole32 -loleaut32 -luuid]) ])
1787     AC_LANG_POP(C++)
1788   fi
1789 fi
1790
1791 dnl
1792 dnl  libsmbclient plugin
1793 dnl
1794 AC_ARG_ENABLE(smb,
1795   [  --enable-smb            smb input module (default enabled)])
1796 if test "${enable_smb}" != "no"; then
1797   AC_CHECK_HEADERS(libsmbclient.h,
1798     [ VLC_ADD_PLUGINS([access_smb])
1799       VLC_ADD_LDFLAGS([access_smb],[-lsmbclient]) ],
1800     [ if test -n "${enable_smb}"; then
1801         AC_MSG_ERROR([cannot find libsmbclient headers])
1802      fi ])
1803   AC_CHECK_MEMBER([struct _SMBCCTX.close_fn],
1804     AC_DEFINE([HAVE__SMBCCTX_CLOSE_FN], [1], [Define if samba has _SMBCCTX.close_fn]),,
1805     [#include <libsmbclient.h>])
1806 fi
1807
1808 dnl
1809 dnl  libdvbpsi ts demux/mux
1810 dnl
1811 AC_ARG_ENABLE(dvbpsi,
1812   [  --enable-dvbpsi         dvbpsi ts mux and demux module (default enabled)])
1813 if test "${enable_dvbpsi}" != "no"
1814 then
1815   AC_ARG_WITH(dvbpsi,
1816   [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
1817   AC_ARG_WITH(dvbpsi,
1818   [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
1819   case "${with_dvbpsi}" in
1820   ""|yes)
1821     if test -z "${with_dvbpsi_tree}"
1822     then
1823       AC_CHECK_HEADERS(dvbpsi/dr.h,
1824         [ VLC_ADD_PLUGINS([ts])
1825           if test "${enable_sout}" != "no"; then
1826             VLC_ADD_BUILTINS([mux_ts])
1827           fi
1828           VLC_ADD_LDFLAGS([mux_ts ts dvb],[-ldvbpsi]) ],
1829         [  AC_MSG_WARN([cannot find libdvbpsi headers]) ],
1830         [#if defined( HAVE_STDINT_H )
1831 #   include <stdint.h>
1832 #elif defined( HAVE_INTTYPES_H )
1833 #   include <inttypes.h>
1834 #endif
1835 #include <dvbpsi/dvbpsi.h>
1836 #include <dvbpsi/descriptor.h>
1837 #include <dvbpsi/pat.h>
1838 #include <dvbpsi/pmt.h>])
1839     else
1840       AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
1841       real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
1842       if test -z "${real_dvbpsi_tree}"
1843       then
1844         dnl  The given directory can't be found
1845         AC_MSG_RESULT(no)
1846         AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
1847       fi
1848       if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
1849       then
1850         dnl  Use a custom libdvbpsi
1851         AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
1852         VLC_ADD_BUILTINS([ts])
1853         if test "${enable_sout}" != "no"; then
1854           VLC_ADD_BUILTINS([mux_ts])
1855         fi
1856         VLC_ADD_CPPFLAGS([mux_ts ts dvb],[-I${real_dvbpsi_tree}/src])
1857         VLC_ADD_LDFLAGS([mux_ts ts dvb],[${real_dvbpsi_tree}/src/.libs/libdvbpsi.a])
1858       else
1859         dnl  The given libdvbpsi wasn't built
1860         AC_MSG_RESULT(no)
1861         AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
1862       fi
1863     fi
1864   ;;
1865   no)
1866     dnl  Compile without dvbpsi
1867   ;;
1868   *)
1869     AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
1870     if test -z "${with_dvbpsi}"
1871     then
1872       LDFLAGS_test=""
1873       CPPFLAGS_test=""
1874     else
1875       LDFLAGS_test="-L${with_dvbpsi}/lib"
1876       CPPFLAGS_test="-I${with_dvbpsi}/include"
1877     fi
1878     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
1879     AC_CHECK_HEADERS([dvbpsi/dr.h],[
1880       VLC_ADD_PLUGINS([ts])
1881       if test "${enable_sout}" != "no"; then
1882         VLC_ADD_PLUGINS([mux_ts])
1883       fi
1884       VLC_ADD_CPPFLAGS([mux_ts ts dvb],[${CPPFLAGS_test}])
1885       VLC_ADD_LDFLAGS([mux_ts ts dvb],[${LDFLAGS_test} -ldvbpsi])
1886
1887     ],[
1888       if test -n "${enable_dvbpsi}"
1889       then
1890         AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
1891       fi
1892     ])
1893     CPPFLAGS="${CPPFLAGS_save}"
1894   ;;
1895   esac
1896   AC_CHECK_LIB(dvbpsi, dvbpsi_GenSDTSections, [
1897     AC_DEFINE(HAVE_DVBPSI_SDT, 1, [Define if you have dvbpsi_GenSDTSections.])
1898   ], [], [${LDFLAGS_ts}])
1899
1900 fi
1901
1902 dnl
1903 dnl  Video4Linux plugin
1904 dnl
1905 AC_ARG_ENABLE(v4l,
1906   [  --enable-v4l            Video4Linux input support (default disabled)])
1907 if test "${enable_v4l}" = "yes"
1908 then
1909   AC_ARG_WITH(v4l,
1910     [    --with-v4l=PATH       path to a v4l-enabled kernel tree],[],[])
1911   if test "${with_v4l}" != "no" -a -n "${with_v4l}"
1912   then
1913     VLC_ADD_CPPFLAGS([v4l],[-I${with_v4l}/include])
1914   fi
1915
1916   CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_v4l}"
1917   AC_CHECK_HEADERS(linux/videodev.h, [
1918     VLC_ADD_PLUGINS([v4l])
1919   ],[])
1920   CPPFLAGS="${CPPFLAGS_save}"
1921 fi
1922
1923 dnl
1924 dnl  special access module for Hauppauge PVR cards
1925 dnl
1926 AC_ARG_ENABLE(pvr,
1927   [  --enable-pvr            PVR cards access module (default disabled)])
1928 if test "${enable_pvr}" = "yes"
1929 then
1930   VLC_ADD_PLUGINS([pvr])
1931 fi
1932
1933 dnl
1934 dnl  gnomeVFS access module
1935 dnl
1936 AC_ARG_ENABLE(gnomevfs,
1937   [  --enable-gnomevfs       GnomeVFS access module (default enabled)])
1938 if test "${enable_gnomevfs}" != "no" -a  "${SYS}" = "linux" 
1939 then
1940   PKG_CHECK_MODULES(GNOMEVFS, gnome-vfs-2.0,
1941     VLC_ADD_LDFLAGS([access_gnomevfs],[$GNOMEVFS_LIBS])
1942     VLC_ADD_CPPFLAGS([access_gnomevfs],[$GNOMEVFS_CPPFLAGS])
1943     VLC_ADD_CFLAGS([access_gnomevfs],[$GNOMEVFS_CFLAGS])
1944     VLC_ADD_PLUGINS([access_gnomevfs]),
1945     AC_MSG_WARN([GnomeVFS support disabled because GnomeVFS development headers not found]))
1946 fi
1947
1948 dnl Need to test libcdio and libvcdinfo for a number of things. Do it now.
1949 AC_ARG_ENABLE(libcdio,
1950   [  --enable-libcdio        CD input and control library support (default enabled)])
1951
1952
1953 have_libcdio=no
1954 have_libvcdinfo=no
1955 if test "${enable_libcdio}" != "no"
1956 then
1957   PKG_CHECK_MODULES(LIBCDIO, libcdio >= 0.72,
1958      have_libcdio=yes
1959      AC_DEFINE(HAVE_LIBCDIO, [], 
1960      [Define if you have libcdio 0.72 or greater installed]),
1961      [AC_MSG_WARN(CD Reading and information library not found)])
1962
1963   PKG_CHECK_MODULES(VCDINFO, libvcdinfo >= 0.7.21,
1964      [have_libvcdinfo=yes
1965      AC_DEFINE(HAVE_VCDINFO, [], 
1966      [Define if you have libvcdinfo 0.7.21 or greater installed])],
1967      [AC_MSG_WARN(VCD information library not found)])
1968 fi
1969
1970 dnl
1971 dnl  VCDX and CDDAX modules
1972 dnl
1973 AC_ARG_ENABLE(cddax,
1974   [  --enable-cddax          audio CD plugin with CD Text and CD paranoia via libcdio (default disabled)])
1975  
1976 AC_ARG_ENABLE(libcddb,
1977   [  --enable-libcddb        CDDB support for libcdio audio CD (default enabled)])
1978  
1979 if test "${enable_cddax}" = "yes"
1980 then
1981   if test "$have_libcdio" = "yes"
1982   then
1983     AC_DEFINE(HAVE_CDDAX, [], [Define for the audio CD plugin using libcdio])
1984     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_LIBS])
1985     VLC_ADD_CFLAGS([cddax],[$LIBCDIO_CFLAGS])
1986     VLC_ADD_PLUGINS([cddax])
1987     PKG_CHECK_MODULES(LIBCDIO_PARANOIA, libcdio_paranoia >= 0.72, [
1988     VLC_ADD_LDFLAGS([cddax],[$LIBCDIO_CDDA_LIBS $LIBCDIO_CDDA_LIBS $LIBCDIO_PARANOIA_LIBS])],
1989     AC_MSG_WARN([CD Paranoia support disabled because no libcdio >= 0.72 found]))
1990   else 
1991     AC_MSG_WARN([cddax plugin disabled because ok libcdio library not found or disabled])
1992     HAVE_CDDAX=no
1993   fi
1994
1995   if test "$enable_libcddb" != "no"; then
1996     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
1997       HAVE_LIBCDDB=yes 
1998       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
1999       VLC_ADD_LDFLAGS([cddax],[$LIBCDDB_LIBS])
2000       VLC_ADD_CFLAGS([cddax],[$LIBCDDB_CFLAGS])
2001       ],
2002       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2003       HAVE_LIBCDDB=no])
2004   fi
2005  
2006 fi
2007
2008 AC_ARG_ENABLE(vcdx,
2009   [  --enable-vcdx           VCD with navigation via libvcdinfo (default disabled)])
2010  
2011 if test "${enable_vcdx}" = "yes"
2012 then
2013   if test "${have_libvcdinfo}" = "yes"
2014   then
2015     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2016     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2017   else 
2018     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found or disabled])
2019     HAVE_VCDX=no
2020   fi
2021
2022   PKG_CHECK_MODULES(LIBCDIO, libiso9660 >= 0.72,
2023    [VLC_ADD_LDFLAGS([vcdx],[$LIBISO9660_LIBS])
2024     VLC_ADD_CFLAGS([vcdx],[$LIBISO9660_CFLAGS])],
2025     [AC_MSG_WARN([vcdx plugin disabled because ok libiso9660 library not found])
2026     HAVE_VCDX=no])
2027
2028   if test "$have_libvcdinfo" = "yes"
2029   then
2030     AC_DEFINE(HAVE_VCDX, [], 
2031     [Define for the VCD plugin using libcdio/libvcdinfo])
2032     VLC_ADD_LDFLAGS([vcdx],[$VCDINFO_LIBS])
2033     VLC_ADD_CFLAGS([vcdx],[$VCDINFO_CFLAGS])
2034     VLC_ADD_PLUGINS([vcdx])
2035   else 
2036     AC_MSG_WARN([vcdx plugin disabled because ok libvcdinfo library not found])
2037     HAVE_VCDX=no
2038   fi
2039 fi
2040
2041 dnl
2042 dnl  Built-in CD-DA and VCD module
2043 dnl
2044 AC_ARG_ENABLE(cdda,           
2045   [  --enable-cdda           audio CD via built-in VCD (default enabled)])
2046  
2047 AC_ARG_ENABLE(vcd,
2048   [  --enable-vcd            built-in VCD (default enabled)])
2049
2050 if test "${enable_vcd}" != "no"
2051 then
2052   AC_MSG_CHECKING(for cdrom_msf0 in linux/cdrom.h)
2053   AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
2054     AC_MSG_RESULT(yes)
2055     VLC_ADD_PLUGINS([vcd cdda])
2056   ],[
2057     AC_MSG_RESULT(no)
2058   ])
2059
2060   AC_MSG_CHECKING(for scsireq in sys/scsiio.h)
2061   AC_EGREP_HEADER(scsireq,sys/scsiio.h,[
2062     AC_MSG_RESULT(yes)
2063     VLC_ADD_PLUGINS([vcd cdda])
2064     AC_DEFINE(HAVE_SCSIREQ_IN_SYS_SCSIIO_H, 1, For NetBSD VCD support)
2065   ],[
2066     AC_MSG_RESULT(no)
2067   ])
2068
2069   AC_MSG_CHECKING(for ioc_toc_header in sys/cdio.h)
2070   AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
2071     AC_MSG_RESULT(yes)
2072     VLC_ADD_PLUGINS([vcd cdda])
2073     AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
2074   ],[
2075     AC_MSG_RESULT(no)
2076   ])
2077
2078   if test "${SYS}" = "bsdi" -o "${SYS}" = "mingw32"
2079   then
2080     VLC_ADD_PLUGINS([vcd cdda])
2081   fi
2082
2083   if test "${SYS}" = "darwin"
2084   then
2085     VLC_ADD_PLUGINS([vcd cdda])
2086     VLC_ADD_LDFLAGS([vcd vcdx cdda cddax],[-framework IOKit -framework CoreFoundation])
2087     VLC_ADD_LDFLAGS([vcdx cddax cdda],[-liconv])
2088   fi
2089
2090   if test "$enable_libcddb" != "no"; then
2091     PKG_CHECK_MODULES(LIBCDDB, libcddb >= 0.9.5, [
2092       HAVE_LIBCDDB=yes 
2093       AC_DEFINE(HAVE_LIBCDDB, [], [Define this if you have libcddb installed])
2094       VLC_ADD_LDFLAGS([cdda],[$LIBCDDB_LIBS])
2095       VLC_ADD_CFLAGS([cdda],[$LIBCDDB_CFLAGS])
2096       ],:
2097       [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled) 
2098       HAVE_LIBCDDB=no])
2099   fi
2100 fi
2101
2102 dnl
2103 dnl  DVB-S/DVB-T/DVB-C satellite/teresterial/cable input using v4l2
2104 dnl
2105 AC_ARG_ENABLE(dvb,
2106   [  --enable-dvb            DVB-S/T/C card support (default disabled)])
2107
2108 if test "${enable_dvb}" = "yes"
2109 then
2110   AC_ARG_WITH(dvb,
2111   [    --with-dvb=PATH       path to a dvb- and v4l2-enabled kernel tree],[],[])
2112   if test "${with_dvb}" != "no" -a -n "${with_dvb}"
2113   then
2114     VLC_ADD_CFLAGS([dvb],[-I${with_dvb}/include])
2115   fi
2116   CPPFLAGS="${CPPFLAGS_save} -I${with_dvb}/include"
2117   AC_CHECK_HEADERS(linux/dvb/version.h linux/dvb/frontend.h, [
2118     if test -z "${with_dvbpsi_tree}"
2119     then
2120       VLC_ADD_PLUGINS([dvb])
2121     else
2122       VLC_ADD_BUILTINS([dvb])
2123     fi
2124   ],[AC_MSG_WARN(linux-dvb headers not found, dvb disabled)])
2125   CPPFLAGS="${CPPFLAGS_save}"
2126 fi
2127
2128 dnl
2129 dnl  Screen capture module
2130 dnl
2131 AC_ARG_ENABLE(screen,
2132   [  --enable-screen         Screen capture support (default enabled)])
2133 if test "${enable_screen}" != "no"; then
2134   if test "${SYS}" = "darwin"; then
2135     AC_CHECK_HEADERS(ApplicationServices/ApplicationServices.h, [
2136       VLC_ADD_PLUGINS([screen])
2137       VLC_ADD_LDFLAGS([screen],[-framework ApplicationServices])
2138     ])
2139   elif test "${SYS}" = "mingw32"; then
2140     VLC_ADD_PLUGINS([screen])
2141     VLC_ADD_LDFLAGS([screen],[-lgdi32])
2142   elif test "${SYS}" = "mingwce"; then
2143     CPPFLAGS="${CPPFLAGS_save}"
2144   elif test "${SYS}" = "beos"; then
2145     VLC_ADD_PLUGINS([screen])
2146     VLC_ADD_CXXFLAGS([screen],[])
2147     VLC_ADD_LDFLAGS([screen],[-lbe])
2148   else
2149     CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
2150     AC_CHECK_HEADERS(X11/Xlib.h, [
2151       VLC_ADD_PLUGINS([screen])
2152       VLC_ADD_LDFLAGS([screen],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
2153       VLC_ADD_CPPFLAGS([screen],[${X_CFLAGS}])
2154     ])
2155     CPPFLAGS="${CPPFLAGS_save}"
2156   fi
2157 fi
2158
2159 dnl
2160 dnl  ipv6 plugin - not for QNX yet
2161 dnl
2162 have_ipv6=no
2163 AC_CHECK_FUNCS(inet_pton,[have_ipv6=yes],[
2164   AC_CHECK_LIB(nsl,inet_pton, [have_ipv6=yes])
2165 ])
2166
2167 AS_IF([test "${have_ipv6}" = "yes"], [
2168   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have inet_pton().])])
2169
2170 if test "${SYS}" != "nto" &&
2171    test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
2172 then
2173   AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
2174   AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
2175     [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=no])
2176   AS_IF([test "${have_ipv6}" != "no"], [
2177     VLC_ADD_PLUGINS([ipv6])])
2178 fi
2179 if test "${SYS}" = "mingw32"
2180 then
2181   AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
2182   AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
2183     VLC_ADD_PLUGINS([ipv6])],[AC_MSG_RESULT(no)])
2184 fi
2185
2186 dnl
2187 dnl  ogg demux plugin
2188 dnl
2189 AC_ARG_ENABLE(ogg,
2190   [  --enable-ogg            Ogg demux support (default enabled)])
2191 if test "${enable_ogg}" != "no"
2192 then
2193   AC_ARG_WITH(ogg-tree,
2194   [    --with-ogg-tree=PATH  ogg tree for static linking])
2195   if test -n "${with_ogg_tree}"
2196   then
2197     AC_MSG_CHECKING(for libogg.a in ${with_ogg_tree})
2198     real_ogg_tree="`cd ${with_ogg_tree} 2>/dev/null && pwd`"
2199     if test -z "${real_ogg_tree}"
2200     then
2201       dnl  The given directory can't be found
2202       AC_MSG_RESULT(no)
2203       AC_MSG_ERROR([cannot cd to ${with_ogg_tree}])
2204     fi
2205     if test -f "${real_ogg_tree}/src/.libs/libogg.a"
2206     then
2207       dnl  Use a custom ogg
2208       AC_MSG_RESULT(${real_ogg_tree}/src/.libs/libogg.a)
2209       VLC_ADD_PLUGINS([ogg])
2210       if test "${enable_sout}" != "no"; then
2211         VLC_ADD_PLUGINS([mux_ogg])
2212       fi
2213       VLC_ADD_LDFLAGS([ogg mux_ogg speex vorbis],[${real_ogg_tree}/src/.libs/libogg.a])
2214       VLC_ADD_CFLAGS([ogg mux_ogg speex vorbis],[-I${real_ogg_tree}/include])
2215     else
2216       dnl  The given ogg wasn't built
2217       AC_MSG_RESULT(no)
2218       AC_MSG_ERROR([cannot find ${real_ogg_tree}/src/.libs/libogg.a, make sure you compiled ogg in ${with_ogg_tree}])
2219     fi
2220   else
2221     AC_CHECK_HEADERS(ogg/ogg.h, [
2222       AC_CHECK_LIB( ogg, oggpack_read, [
2223         VLC_ADD_PLUGINS([ogg])
2224         if test "${enable_sout}" != "no"; then
2225           VLC_ADD_PLUGINS([mux_ogg])
2226         fi
2227         VLC_ADD_LDFLAGS([ogg mux_ogg],[-logg])])
2228      ],[])
2229   fi
2230 fi
2231
2232 dnl
2233 dnl  matroska demux plugin
2234 dnl
2235 AC_ARG_ENABLE(mkv,
2236   [  --enable-mkv            Matroska demux support (default enabled)])
2237 if test "${enable_mkv}" != "no" -a "${CXX}" != ""; then
2238   AC_LANG_PUSH(C++)
2239   AC_CHECK_HEADERS(ebml/EbmlVersion.h, [
2240     AC_MSG_CHECKING(for libebml version >= 0.7.6)
2241     AC_EGREP_CPP(yes,
2242       [#include <ebml/EbmlVersion.h>
2243        #ifdef LIBEBML_VERSION
2244        #if LIBEBML_VERSION >= 0x000706
2245        yes
2246        #endif
2247        #endif],
2248       [AC_MSG_RESULT([yes])
2249         AC_CHECK_HEADERS(matroska/KaxVersion.h, [
2250           AC_MSG_CHECKING(for libmatroska version >= 0.7.5)
2251           AC_EGREP_CPP(yes,
2252             [#include <matroska/KaxVersion.h>
2253              #ifdef LIBMATROSKA_VERSION
2254              #if LIBMATROSKA_VERSION >= 0x000705
2255              yes
2256              #endif
2257              #endif],
2258             [AC_MSG_RESULT([yes])
2259               AC_CHECK_HEADERS(matroska/KaxAttachments.h)
2260               VLC_ADD_CXXFLAGS([mkv],[])
2261               if test "${SYS}" = "darwin"; then
2262                 VLC_ADD_CXXFLAGS([mkv],[-O1])
2263               fi
2264               AC_CHECK_LIB(ebml_pic, main, [
2265                 # We have ebml_pic, that's good, we can build an mkv.so plugin !
2266                 VLC_ADD_PLUGINS([mkv])
2267                 VLC_ADD_LDFLAGS([mkv],[-lmatroska_pic -lebml_pic])
2268               ], [
2269                 AC_CHECK_LIB(ebml, main, [
2270                   # We only have libebml, make mkv.a a builtin
2271                   VLC_ADD_BUILTINS([mkv])
2272                   VLC_ADD_LDFLAGS([mkv],[-lmatroska -lebml])
2273                 ])
2274               ])
2275             ],
2276             [AC_MSG_RESULT([no])
2277               AC_MSG_ERROR([Your libmatroska is too old: you may get a more recent one from http://dl.matroska.org/downloads/libmatroska/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2278           ])
2279         ])
2280       ],
2281       [AC_MSG_RESULT([no])
2282         AC_MSG_ERROR([Your libebml is too old: you may get a more recent one from http://dl.matroska.org/downloads/libebml/. Alternatively you can use --disable-mkv to disable the matroska plugin.])
2283     ])
2284   ])
2285   AC_LANG_POP(C++)
2286 fi
2287
2288 dnl
2289 dnl  modplug demux plugin
2290 dnl
2291 AC_ARG_ENABLE(mod,
2292   [  --enable-mod            Mod demux support (default enabled)])
2293 if test "${enable_mod}" != "no"
2294 then
2295   AC_ARG_WITH(mod-tree,
2296   [    --with-mod-tree=PATH mod tree for static linking])
2297   if test -n "${with_mod_tree}"
2298   then
2299     AC_MSG_CHECKING(for libmodplug.a in ${with_mod_tree})
2300     real_mod_tree="`cd ${with_mod_tree} 2>/dev/null && pwd`"
2301     if test -z "${real_mod_tree}"
2302     then
2303       dnl  The given directory can't be found
2304       AC_MSG_RESULT(no)
2305       AC_MSG_ERROR([cannot cd to ${with_mod_tree}])
2306     fi
2307     if test -f "${real_mod_tree}/src/.libs/libmodplug.a"
2308     then
2309       dnl  Use a custom mod
2310       AC_MSG_RESULT(${real_mod_tree}/src/.libs/libmodplug.a)
2311       VLC_ADD_PLUGINS([mod])
2312       VLC_ADD_LDFLAGS([mod],[${real_mod_tree}/src/.libs/libmodplug.a])
2313       VLC_ADD_CFLAGS([mod],[-I${real_mod_tree}/include])
2314     else
2315       dnl  The given mod wasn't built
2316       AC_MSG_RESULT(no)
2317       AC_MSG_ERROR([cannot find ${real_mod_tree}/src/.libs/libmodplug.a, make sure you compiled mod in ${with_mod_tree}])
2318     fi
2319   else
2320     AC_CHECK_HEADERS(libmodplug/modplug.h, [
2321       VLC_ADD_PLUGINS([mod])
2322       VLC_ADD_CXXFLAGS([mod],[])
2323       VLC_ADD_LDFLAGS([mod],[-lmodplug])])
2324   fi
2325 fi
2326
2327 dnl
2328 dnl  mpc demux plugin
2329 dnl
2330 AC_ARG_ENABLE(mpc,
2331   [  --enable-mpc            Mpc demux support (default enabled)])
2332 if test "${enable_mpc}" != "no"
2333 then
2334   AC_CHECK_HEADERS(mpcdec/mpcdec.h, [
2335     VLC_ADD_PLUGINS([mpc])
2336     VLC_ADD_LDFLAGS([mpc],[-lmpcdec])])
2337 fi
2338
2339
2340 dnl
2341 dnl  Codec plugins
2342 dnl
2343
2344 AC_ARG_WITH(,[Codec plugins:])
2345
2346 dnl
2347 dnl  mad plugin
2348 dnl
2349 AC_ARG_ENABLE(mad,
2350   [  --enable-mad            libmad module (default enabled)])
2351 if test "${enable_mad}" != "no"
2352 then
2353   AC_ARG_WITH(mad,
2354     [    --with-mad=PATH       path to libmad],[],[])
2355   if test "${with_mad}" != "no" -a -n "${with_mad}"
2356   then
2357     VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${with_mad}/include])
2358     VLC_ADD_LDFLAGS([mpgatofixed32],[-L${with_mad}/lib])
2359   fi
2360
2361   AC_ARG_WITH(mad-tree,
2362     [    --with-mad-tree=PATH   mad tree for static linking],[],[])
2363   if test "${with_mad_tree}" != "no" -a -n "${with_mad_tree}"
2364   then
2365     real_mad_tree="`cd ${with_mad_tree} 2>/dev/null && pwd`"
2366     if test -z "${real_mad_tree}"
2367     then
2368       dnl  The given directory can't be found
2369       AC_MSG_RESULT(no)
2370       AC_MSG_ERROR([${with_mad_tree} directory doesn't exist])
2371     fi
2372     dnl  Use a custom libmad
2373     AC_MSG_CHECKING(for mad.h in ${real_mad_tree})
2374     if test -f ${real_mad_tree}/mad.h
2375     then
2376       AC_MSG_RESULT(yes)
2377       VLC_ADD_CPPFLAGS([mpgatofixed32],[-I${real_mad_tree}])
2378       VLC_ADD_LDFLAGS([mpgatofixed32],[-L${real_mad_tree}/.libs])
2379       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2380       AC_CHECK_LIB(mad, mad_bit_init, [
2381         VLC_ADD_BUILTINS([mpgatofixed32])
2382         VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])
2383         ],[ AC_MSG_ERROR([the specified tree hasn't been compiled ])
2384       ],[])
2385       LDFLAGS="${LDFLAGS_save}"
2386     else
2387       AC_MSG_RESULT(no)
2388       AC_MSG_ERROR([the specified tree doesn't have mad.h])
2389     fi
2390   else
2391     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mpgatofixed32}"
2392     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_mpgatofixed32}"
2393     AC_CHECK_HEADERS(mad.h, ,
2394       [ AC_MSG_ERROR([Could not find libmad on your system: you may get it from http://www.underbit.com/products/mad/. Alternatively you can use --disable-mad to disable the mad plugin.]) ])
2395     AC_CHECK_LIB(mad, mad_bit_init, [
2396       VLC_ADD_PLUGINS([mpgatofixed32])
2397       VLC_ADD_LDFLAGS([mpgatofixed32],[-lmad])],
2398       [ AC_MSG_ERROR([Cannot find libmad library...]) ])
2399     CPPFLAGS="${CPPFLAGS_save}"
2400     LDFLAGS="${LDFLAGS_save}"
2401   fi
2402 fi
2403
2404 dnl
2405 dnl   libid3tag support (FIXME!!! doesn't work with new input)
2406 dnl
2407 AC_CHECK_HEADERS(id3tag.h, [
2408   AC_CHECK_HEADERS(zlib.h, [
2409     VLC_ADD_LDFLAGS([id3tag],[-lid3tag -lz])
2410     VLC_ADD_PLUGINS([id3tag])]) ])
2411
2412 dnl
2413 dnl  ffmpeg decoder/demuxer plugin
2414 dnl
2415 dnl we try to find ffmpeg using : 1- given tree 2- ffmpeg-config, 3- pkg-config
2416 dnl                             4- default place, 
2417
2418 AC_ARG_ENABLE(ffmpeg,
2419 [  --enable-ffmpeg         ffmpeg codec (default enabled)])
2420 if test "${enable_ffmpeg}" != "no"
2421 then
2422
2423 dnl Those options have to be here because the .pc can be bogus for ffmpeg previous nov 05
2424
2425  AC_ARG_WITH(ffmpeg-mp3lame,
2426    [    --with-ffmpeg-mp3lame specify if ffmpeg has been compiled with mp3lame support],
2427    [
2428      if test "$with_ffmpeg_mp3lame" = "yes";    then
2429         VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2430      fi])
2431
2432  AC_ARG_WITH(ffmpeg-faac,
2433    [    --with-ffmpeg-faac    specify if ffmpeg has been compiled with faac support],
2434    [
2435      if test "$with_ffmpeg_faac" = "yes"; then
2436         VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2437      fi])
2438
2439  AC_ARG_WITH(ffmpeg-dts,
2440    [    --with-ffmpeg-dts     specify if ffmpeg has been compiled with dts support],
2441    [
2442      if test "$with_ffmpeg_dts" = "yes"; then
2443              LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2444              AC_CHECK_LIB(dts_pic, dts_free, 
2445                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2446                [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2447              LDFLAGS="${LDFLAGS_save}"
2448      fi])
2449
2450  AC_ARG_WITH(ffmpeg-vorbis,
2451    [    --with-ffmpeg-vorbis    specify if ffmpeg has been compiled with vorbis support],
2452    [
2453      if test "$with_ffmpeg_vorbis" = "yes"; then
2454         VLC_ADD_LDFLAGS([ffmpeg],[-lvorbisenc -lvorbis])
2455      fi])
2456
2457  AC_ARG_WITH(ffmpeg-theora,
2458    [    --with-ffmpeg-theora    specify if ffmpeg has been compiled with theora support],
2459    [
2460      if test "$with_ffmpeg_theora" = "yes"; then
2461         VLC_ADD_LDFLAGS([ffmpeg],[-ltheora])
2462      fi])
2463
2464  AC_ARG_WITH(ffmpeg-ogg,
2465    [    --with-ffmpeg-ogg    specify if ffmpeg has been compiled with ogg support],
2466    [
2467      if test "$with_ffmpeg_ogg" = "yes"; then
2468         VLC_ADD_LDFLAGS([ffmpeg],[-logg])
2469      fi])
2470
2471  AC_ARG_WITH(ffmpeg-zlib,
2472    [    --with-ffmpeg-zlib    specify if ffmpeg has been compiled with zlib support],
2473    [
2474      if test "$with_ffmpeg_zlib" = "yes"; then
2475                 VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2476      fi])
2477
2478  dnl
2479  dnl test for --with-ffmpeg-tree
2480  dnl
2481  AC_ARG_WITH(ffmpeg-tree,
2482    [    --with-ffmpeg-tree=PATH ffmpeg tree for static linking])
2483
2484  if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2485    AC_MSG_CHECKING(for libavcodec.a in ${with_ffmpeg_tree})
2486    real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2487    if test -z "${real_ffmpeg_tree}"; then
2488      dnl  The given directory can't be found
2489      AC_MSG_RESULT(no)
2490      AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2491    fi
2492    if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2493      dnl  The given libavcodec wasn't built
2494      AC_MSG_RESULT(no)
2495      AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodec.a, make sure you compiled libavcodec in ${with_ffmpeg_tree}])
2496    fi
2497    if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodec.a"; then
2498      if test -f "${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a"; then
2499        VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec/libpostproc ${real_ffmpeg_tree}/libavcodec/libpostproc/libpostproc.a])        
2500      else
2501        dnl  The given libavcodec wasn't built with --enable-pp
2502        AC_MSG_RESULT(no)
2503        AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2504      fi
2505    fi
2506    dnl  Use a custom libffmpeg
2507    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2508
2509    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2510      if test "${with_ffmpeg_zlib}" != "yes"; then
2511        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2512      fi
2513    fi
2514    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2515      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2516        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2517      fi
2518    fi
2519    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2520      if test "${with_ffmpeg_faac}" != "yes"; then
2521        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2522      fi
2523    fi
2524    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2525      if test "${with_ffmpeg_dts}" != "yes"; then
2526        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2527        AC_CHECK_LIB(dts_pic, dts_free, 
2528          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2529          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2530        LDFLAGS="${LDFLAGS_save}"
2531      fi
2532    fi
2533    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2534      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2535    fi
2536    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2537      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2538    fi
2539    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2540      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2541    fi
2542
2543    VLC_ADD_BUILTINS([ffmpeg])
2544    if test "${enable_sout}" != "no"; then
2545      VLC_ADD_BUILTINS([stream_out_switcher])
2546    fi
2547
2548    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2549      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2550      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2551    fi
2552
2553    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2554    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2555
2556    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2557      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2558      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2559      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2560    fi
2561 else    
2562     
2563 dnl Look for a ffmpeg-config (we are on debian )
2564  
2565   FFMPEG_PATH="${PATH}"
2566   AC_ARG_WITH(ffmpeg-config-path,
2567     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2568     [ if test "${with_ffmpeg_config_path}" != "no"
2569       then
2570         FFMPEG_PATH="${with_ffmpeg_config_path}"
2571       fi ])
2572   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2573   if test "${FFMPEG_CONFIG}" != "no"
2574   then
2575     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2576     AC_CHECK_HEADERS(postproc/postprocess.h)
2577     VLC_ADD_PLUGINS([ffmpeg])
2578     if test "${enable_sout}" != "no"; then
2579         VLC_ADD_PLUGINS([stream_out_switcher])
2580     fi
2581     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2582     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2583  
2584  else
2585
2586 dnl Trying with pkg-config
2587    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2588     [
2589      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2590      AC_CHECK_HEADERS(postproc/postprocess.h)
2591      VLC_ADD_BUILTINS([ffmpeg])
2592      if test "${enable_sout}" != "no"; then
2593          VLC_ADD_BUILTINS([stream_out_switcher])
2594      fi
2595      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2596      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2597      dnl newer ffmpeg have a separate libpostproc
2598      PKG_CHECK_MODULES(POSTPROC, libpostproc,[
2599        VLC_ADD_LDFLAGS([ffmpeg],[${POSTPROC_LIBS}]) 
2600        ],[ true ])
2601     ],[
2602      
2603     dnl
2604     dnl last chance: at the default place
2605     dnl
2606       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2607       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2608       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2609       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2610
2611       AC_CHECK_LIB(avutil, av_add_i, [
2612         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2613         LDAVUTIL="-lavutil"])
2614
2615       AC_CHECK_LIB(postproc, pp_postprocess, [
2616         VLC_ADD_LDFLAGS([ffmpeg],[-lpostproc])])
2617
2618       AC_CHECK_LIB(avcodec, avcodec_init, [
2619         VLC_ADD_BUILTINS([ffmpeg])
2620         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2621         if test "${enable_sout}" != "no"; then
2622             VLC_ADD_BUILTINS([stream_out_switcher])
2623         fi],
2624          [ 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])
2625       AC_CHECK_LIB(avformat, av_open_input_stream, [
2626         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2627         [Define if you have ffmpeg's libavformat.])
2628         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2629       LDFLAGS="${LDFLAGS_save}"
2630       CPPFLAGS="${CPPFLAGS_save}"
2631     ])
2632   fi
2633  fi 
2634 fi
2635
2636 dnl
2637 dnl  ffmpegaltivec plugin
2638 dnl
2639 AC_ARG_ENABLE(ffmpegaltivec,
2640 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2641 if test "${enable_ffmpegaltivec}" = "yes"
2642 then
2643   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2644     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2645     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2646     if test -z "${real_ffmpeg_tree}"; then
2647       dnl  The given directory can't be found
2648       AC_MSG_RESULT(no)
2649       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2650     fi
2651     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2652       dnl  The given libavcodecaltivec wasn't built
2653       AC_MSG_RESULT(no)
2654       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2655     fi
2656     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2657       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2658       AC_MSG_RESULT(no)
2659       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2660     fi
2661     dnl  Use a custom libffmpeg
2662     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2663     VLC_ADD_BUILTINS([ffmpegaltivec])
2664     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2665     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2666     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2667
2668     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2669       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2670       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2671       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2672     fi
2673     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2674     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2675   fi
2676 fi
2677
2678 dnl
2679 dnl  faad decoder plugin
2680 dnl
2681 AC_ARG_ENABLE(faad,
2682 [  --enable-faad           faad codec (default disabled)])
2683 if test "${enable_faad}" = "yes"
2684 then
2685   AC_ARG_WITH(faad-tree,
2686   [    --with-faad-tree=PATH faad tree for static linking])
2687   if test -n "${with_faad_tree}"
2688   then
2689     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2690     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2691     if test -z "${real_faad_tree}"
2692     then
2693       dnl  The given directory can't be found
2694       AC_MSG_RESULT(no)
2695       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2696     fi
2697     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2698     then
2699       dnl  Use a custom faad
2700       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2701       VLC_ADD_BUILTINS([faad])
2702       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2703       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2704     else
2705       dnl  The given libfaad wasn't built
2706       AC_MSG_RESULT(no)
2707       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2708     fi
2709   else
2710     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2711     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2712     AC_CHECK_HEADERS(faad.h, ,
2713       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2714     AC_CHECK_LIB(faad, faacDecOpen, [
2715       VLC_ADD_PLUGINS([faad])
2716       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2717       AC_CHECK_LIB(faad, NeAACDecOpen, [
2718         VLC_ADD_PLUGINS([faad])
2719         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2720         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2721     LDFLAGS="${LDFLAGS_save}"
2722     CPPFLAGS="${CPPFLAGS_save}"
2723   fi
2724 fi
2725
2726 dnl
2727 dnl twolame encoder plugin
2728 dnl
2729 AC_ARG_ENABLE(twolame,
2730 [  --enable-twolame        twolame codec (default disabled)])
2731 if test "${enable_twolame}" = "yes"
2732 then
2733   AC_ARG_WITH(twolame-tree,
2734   [    --with-twolame-tree=PATH twolame tree for static linking])
2735   if test -n "${with_twolame_tree}"
2736   then
2737     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2738     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2739     if test -z "${real_twolame_tree}"
2740     then
2741       dnl  The given directory can't be found
2742       AC_MSG_RESULT(no)
2743       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2744     fi
2745     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2746     then
2747       dnl  Use a custom twolame
2748       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2749       VLC_ADD_BUILTINS([twolame])
2750       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2751       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2752     else
2753       dnl  The given libtwolame wasn't built
2754       AC_MSG_RESULT(no)
2755       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2756     fi
2757   else
2758     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2759     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2760     AC_CHECK_HEADERS(twolame.h, ,
2761       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2762     AC_CHECK_LIB(twolame, twolame_init, [
2763       VLC_ADD_PLUGINS([twolame])
2764       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2765         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2766     LDFLAGS="${LDFLAGS_save}"  
2767     CPPFLAGS="${CPPFLAGS_save}"
2768   fi
2769 fi
2770
2771 dnl
2772 dnl  QuickTime plugin
2773 dnl
2774 AC_ARG_ENABLE(quicktime,
2775   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2776 if test "${enable_quicktime}" != "no" &&
2777   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2778 then
2779   if test "${SYS}" = "mingw32"; then
2780     VLC_ADD_BUILTINS([quicktime])
2781   else
2782   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2783     [ VLC_ADD_BUILTINS([quicktime])
2784       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2785     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2786   fi
2787 fi
2788
2789 dnl
2790 dnl  Real plugin
2791 dnl
2792 AC_ARG_ENABLE(real,
2793   [  --enable-real           Real audio module (default disabled)])
2794 if test "${enable_real}" = "yes"; then
2795   VLC_ADD_PLUGINS([realaudio])
2796 fi
2797
2798 dnl
2799 dnl  Real RTSP plugin
2800 dnl
2801 AC_ARG_ENABLE(realrtsp,
2802   [  --enable-realrtsp       Real RTSP module (default disabled)])
2803 if test "${enable_realrtsp}" = "yes"; then
2804   VLC_ADD_PLUGINS([access_realrtsp])
2805 fi
2806
2807 dnl
2808 dnl MP4 module
2809 dnl
2810 AC_CHECK_HEADERS(zlib.h, [
2811   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2812 ] )
2813
2814 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2815   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2816 ] )
2817
2818 dnl
2819 dnl skins2 module
2820 dnl
2821 AC_CHECK_HEADERS(libtar.h, [
2822   VLC_ADD_LDFLAGS([skins2],[-ltar])
2823 ] )
2824
2825
2826
2827 dnl
2828 dnl A52/AC3 decoder plugin
2829 dnl
2830 AC_ARG_ENABLE(a52,
2831   [  --enable-a52            A/52 support with liba52 (default enabled)])
2832 if test "${enable_a52}" != "no"
2833 then
2834   AC_ARG_WITH(a52,
2835     [    --with-a52=PATH       a52 headers and libraries])
2836   AC_ARG_WITH(a52-tree,
2837     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2838   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2839   then
2840     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2841     if test -z "${real_a52_tree}"
2842     then
2843       dnl  The given directory can't be found
2844       AC_MSG_RESULT(no)
2845       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2846     fi
2847     dnl  Use a custom a52dec
2848     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2849     if test -f ${real_a52_tree}/include/a52.h
2850     then
2851       AC_MSG_RESULT(yes)
2852       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2853       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2854       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2855       AC_CHECK_LIB(a52, a52_free, [
2856         VLC_ADD_BUILTINS([a52tofloat32])
2857         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2858         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2859         ],[
2860         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2861         then
2862           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2863         else
2864           AC_MSG_ERROR([the specified tree hasn't been compiled])
2865         fi
2866       ])
2867       LDFLAGS="${LDFLAGS_save}"
2868     else
2869       AC_MSG_RESULT(no)
2870       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2871     fi
2872   else
2873     if test -z "${with_a52}"
2874     then
2875       LDFLAGS_test=""
2876       CPPFLAGS_test=""
2877     else
2878       LDFLAGS_test="-L${with_a52}/lib"
2879       CPPFLAGS_test="-I${with_a52}/include"
2880     fi
2881     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2882     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2883     AC_CHECK_HEADERS(a52dec/a52.h, [
2884       AC_CHECK_LIB(a52, a52_free, [
2885         VLC_ADD_PLUGINS([a52tofloat32])
2886         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2887         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2888       ],[
2889         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.])
2890       ])
2891     ])
2892     CPPFLAGS="${CPPFLAGS_save}"
2893     LDFLAGS="${LDFLAGS_save}"
2894   fi
2895 fi
2896
2897 AC_ARG_WITH(a52-fixed,
2898       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2899       [
2900         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2901
2902 dnl
2903 dnl DTS Coherent Acoustics decoder plugin
2904 dnl
2905 AC_ARG_ENABLE(dts,
2906   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2907 if test "${enable_dts}" != "no"; then
2908   AC_ARG_WITH(dts-tree,
2909     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2910   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2911   then
2912     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2913     if test -z "${real_dts_tree}"
2914     then
2915       dnl  The given directory can't be found
2916       AC_MSG_RESULT(no)
2917       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2918     fi
2919     dnl  Use a custom libdts
2920     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2921     if test -f ${real_dts_tree}/include/dts.h
2922     then
2923       AC_MSG_RESULT(yes)
2924       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2925       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2926       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2927       AC_CHECK_LIB(dts_pic, dts_free, [
2928         VLC_ADD_PLUGINS([dtstofloat32])
2929         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2930         ],[
2931         AC_CHECK_LIB(dts, dts_free, [
2932           VLC_ADD_BUILTINS([dtstofloat32])
2933           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2934           ],[
2935           if test -f ${real_dts_tree}/libdts/libdts.a
2936           then
2937             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2938           else
2939             AC_MSG_ERROR([the specified tree hasn't been compiled])
2940           fi
2941         ])
2942       ])
2943       LDFLAGS="${LDFLAGS_save}"
2944     else
2945       AC_MSG_RESULT(no)
2946       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2947     fi
2948   else
2949     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2950     AC_CHECK_HEADERS(dts.h, [
2951       AC_CHECK_LIB(dts_pic, dts_free, [
2952         VLC_ADD_PLUGINS([dtstofloat32])
2953         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2954       ],[
2955         AC_CHECK_LIB(dts, dts_free, [
2956           VLC_ADD_BUILTINS([dtstofloat32])
2957           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2958         ],[
2959           if test "${enable_dts}" = "yes"; then
2960             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2961           fi
2962         ])
2963       ])
2964     ])
2965     LDFLAGS="${LDFLAGS_save}"
2966   fi
2967 fi
2968
2969 dnl
2970 dnl  Flac plugin
2971 dnl
2972 AC_ARG_ENABLE(flac,
2973   [  --enable-flac           flac decoder support (default disabled)])
2974 if test "${enable_flac}" = "yes"
2975 then
2976   AC_ARG_WITH(flac-tree,
2977   [    --with-flac-tree=PATH flac tree for static linking])
2978   if test -n "${with_flac_tree}"
2979   then
2980     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2981     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2982     if test -z "${real_flac_tree}"
2983     then
2984       dnl  The given directory can't be found
2985       AC_MSG_RESULT(no)
2986       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2987     fi
2988     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2989     then
2990       dnl  Use a custom flac
2991       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2992       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2993       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2994       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2995     else
2996       dnl  The given flac wasn't built
2997       AC_MSG_RESULT(no)
2998       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2999     fi
3000   else
3001     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
3002       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
3003      ],[])
3004   fi
3005 fi
3006
3007 dnl
3008 dnl  Libmpeg2 plugin
3009 dnl
3010 AC_ARG_ENABLE(libmpeg2,
3011   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
3012 if test "${enable_libmpeg2}" != "no"
3013 then
3014   AC_ARG_WITH(libmpeg2-tree,
3015   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
3016   if test -n "${with_libmpeg2_tree}"
3017   then
3018     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
3019     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
3020     if test -z "${real_libmpeg2_tree}"
3021     then
3022       dnl  The given directory can't be found
3023       AC_MSG_RESULT(no)
3024       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
3025     fi
3026     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
3027     then
3028       dnl  Use a custom libmpeg2
3029       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
3030       VLC_ADD_BUILTINS([libmpeg2])
3031       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
3032       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
3033       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
3034     else
3035       dnl  The given libmpeg2 wasn't built
3036       AC_MSG_RESULT(no)
3037       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
3038     fi
3039   else
3040     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
3041       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
3042       AC_EGREP_CPP(yes,
3043         [#include <mpeg2dec/mpeg2.h>
3044          #ifdef MPEG2_RELEASE
3045          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3046          yes
3047          #endif
3048          #endif],
3049         [AC_MSG_RESULT([yes])
3050           VLC_ADD_PLUGINS([libmpeg2])
3051           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3052         [AC_MSG_RESULT([no])
3053           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.])])],
3054
3055       [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.])]
3056     )
3057   fi
3058 fi
3059
3060 dnl
3061 dnl  Vorbis plugin
3062 dnl
3063 AC_ARG_ENABLE(vorbis,
3064   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3065 if test "${enable_vorbis}" != "no"
3066 then
3067   AC_ARG_WITH(vorbis-tree,
3068   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3069   if test -n "${with_vorbis_tree}"
3070   then
3071     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3072     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3073     if test -z "${real_vorbis_tree}"
3074     then
3075       dnl  The given directory can't be found
3076       AC_MSG_RESULT(no)
3077       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3078     fi
3079     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3080     then
3081       dnl  Use a custom vorbis 
3082       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3083       VLC_ADD_PLUGINS([vorbis])
3084       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3085       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3086     else
3087       dnl  The given vorbis wasn't built
3088       AC_MSG_RESULT(no)
3089       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3090     fi
3091   else
3092     AC_CHECK_HEADERS(vorbis/codec.h, [
3093       VLC_ADD_PLUGINS([vorbis])
3094       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3095
3096     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3097       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3098   fi
3099 fi
3100
3101 dnl
3102 dnl  Tremor plugin
3103 dnl
3104 AC_ARG_ENABLE(tremor,
3105   [  --enable-tremor         Tremor decoder support (default disabled)])
3106 if test "${enable_tremor}" = "yes"
3107 then
3108   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3109     VLC_ADD_PLUGINS([tremor])
3110     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3111    ],[])
3112 fi
3113
3114 dnl
3115 dnl  Speex plugin
3116 dnl
3117 AC_ARG_ENABLE(speex,
3118   [  --enable-speex          Speex decoder support (default enabled)])
3119 if test "${enable_speex}" != "no"
3120 then
3121   AC_ARG_WITH(speex-tree,
3122   [    --with-speex-tree=PATH speex tree for static linking])
3123   if test -n "${with_speex_tree}"
3124   then
3125     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3126     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3127     if test -z "${real_speex_tree}"
3128     then
3129       dnl  The given directory can't be found
3130       AC_MSG_RESULT(no)
3131       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3132     fi
3133     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3134     then
3135       dnl  Use a custom speex
3136       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3137       VLC_ADD_PLUGINS([speex])
3138       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3139       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3140     else
3141       dnl  The given speex wasn't built
3142       AC_MSG_RESULT(no)
3143       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3144     fi
3145   else
3146     AC_CHECK_HEADERS(speex/speex.h, [
3147       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3148       AC_CHECK_LIB(speex, speex_decode_int, [
3149         VLC_ADD_PLUGINS([speex])
3150         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3151         [ AC_MSG_RESULT([no])
3152           AC_MSG_WARN([Your libspeex is too old, please get the development
3153                        version.]) ],[])
3154       LDFLAGS="${LDFLAGS_save}"
3155       ],[])
3156   fi
3157 fi
3158
3159 dnl
3160 dnl  tarkin decoder plugin
3161 dnl
3162 AC_ARG_ENABLE(tarkin,
3163 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3164 if test "${enable_tarkin}" = "yes"
3165 then
3166   AC_ARG_WITH(tarkin-tree,
3167   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3168   if test -n "${with_tarkin_tree}"
3169   then
3170     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3171     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3172     if test -f "${real_tarkin_tree}/tarkin.o"
3173     then
3174       VLC_ADD_BUILTINS([tarkin])
3175       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3176       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])
3177       AC_MSG_RESULT(yes)
3178     else
3179       dnl  The given tarkin tree wasn't built
3180       AC_MSG_RESULT(no)
3181       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3182                     make sure you compiled tarkin in ${with_tarkin_tree}])
3183     fi
3184   fi
3185 fi
3186
3187 dnl
3188 dnl  theora decoder plugin
3189 dnl
3190 AC_ARG_ENABLE(theora,
3191 [  --enable-theora         experimental theora codec (default disabled)])
3192 if test "${enable_theora}" = "yes"
3193 then
3194   AC_CHECK_HEADERS(theora/theora.h, [
3195     AC_CHECK_LIB(theora, theora_granule_time, [
3196       if test "${SYS}" = "mingw32"; then
3197         VLC_ADD_PLUGINS([theora])
3198       else
3199         VLC_ADD_BUILTINS([theora])
3200       fi
3201       theora_libs="-ltheora -logg"
3202       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3203       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3204 You also need to check that you have a libogg posterior to the 1.0 release.])],
3205       [-logg])
3206   ])
3207 fi
3208
3209 dnl
3210 dnl  dirac decoder plugin
3211 dnl
3212 AC_ARG_ENABLE(dirac,
3213 [  --enable-dirac          experimental dirac codec (default disabled)])
3214 if test "${enable_dirac}" = "yes"; then
3215   PKG_CHECK_MODULES(DIRAC,dirac, [
3216       VLC_ADD_PLUGINS([dirac])
3217       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3218       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3219       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3220   ])
3221 fi
3222
3223 dnl  libvc1 decoder plugin
3224 dnl
3225 AC_ARG_ENABLE(libvc1,
3226 [  --enable-libvc1         VC-1 codec (default disabled)])
3227 if test "${enable_libvc1}" = "yes"
3228 then
3229   AC_ARG_WITH(libvc1-tree,
3230   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3231   if test -n "${with_libvc1_tree}"
3232   then
3233     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3234     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3235     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3236     then
3237       VLC_ADD_BUILTINS([libvc1])
3238       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3239       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3240       AC_MSG_RESULT(yes)
3241     else
3242       dnl  The given libvc1 tree wasn't built
3243       AC_MSG_RESULT(no)
3244       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3245                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3246     fi
3247   fi
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 "${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 test "${SYS}" != "mingw32"; then
5034         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
5035         AC_CHECK_LIB(Xt,XtStrings,
5036          [VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])],
5037          [],
5038          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
5039         ])
5040         LDFLAGS="${LDFLAGS_save}"
5041       fi
5042       mozilla=:
5043       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
5044       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
5045       VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
5046       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
5047       AC_CHECK_HEADERS(mozilla-config.h)
5048       CPPFLAGS="${CPPFLAGS_save}"
5049       MOZILLA_SDK_PATH="`${MOZILLA_CONFIG} --prefix`"
5050       XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
5051       `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
5052       xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
5053     fi
5054   else
5055     dnl special case for mingw32
5056     if test "${SYS}" = "mingw32"
5057     then
5058       AC_CHECK_TOOL(CYGPATH, cygpath, "")
5059       dnl latest gecko sdk does not have an xpcom directory
5060       if test -d "${with_mozilla_sdk_path}/xpcom"; then
5061           mozilla_sdk_xpcom="/xpcom"
5062       fi
5063     fi
5064   
5065     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
5066     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
5067     AC_CHECK_HEADERS(mozilla-config.h, [
5068       mozilla=:
5069       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])
5070       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])
5071       if test "${SYS}" = "mingw32"; then
5072         LDFLAGS="${LDFLAGS_save}"
5073         dnl latest gecko sdk does not have embedstring
5074         if test -d "${real_mozilla_sdk}/embedstring/bin"
5075         then
5076           VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
5077         fi
5078       fi
5079   
5080       MOZILLA_SDK_PATH="${real_mozilla_sdk}"
5081       XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
5082       xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
5083   
5084       if test -n "${CYGPATH}"; then
5085         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
5086         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
5087       fi ])
5088     CPPFLAGS="${CPPFLAGS_save}"
5089   fi
5090   
5091   if test "${mozilla}" != "false"
5092   then
5093     build_pic=yes
5094     AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path} /usr/lib/mozilla)
5095     if test "${XPIDL}" = "no"; then
5096       AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
5097     fi
5098   fi
5099 fi
5100 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
5101
5102 dnl
5103 dnl  Mediacontrol Python bindings
5104 dnl
5105 AC_ARG_ENABLE(mediacontrol-python-bindings,
5106   [  --enable-mediacontrol-python-bindings    Enable Python bindings for MediaControl (default disabled)])
5107 dnl TODO: look for python dev headers
5108 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_mediacontrol_python_bindings}" = "yes"])
5109 if test "${enable_mediacontrol_python_bindings}" = "yes"
5110 then
5111   build_pic=yes
5112 fi
5113
5114 dnl
5115 dnl  Java bindings
5116 dnl
5117 AC_ARG_ENABLE(java-bindings,
5118   [  --enable-java-bindings  Enable Java bindings (default disabled)])
5119 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
5120 if test "${enable_java_bindings}" = "yes"
5121 then
5122   build_pic=yes
5123 fi
5124
5125
5126 dnl
5127 dnl  test plugins
5128 dnl
5129 AC_ARG_ENABLE(testsuite,
5130   [  --enable-testsuite      build test modules (default disabled)])
5131 if test "${enable_testsuite}" = "yes"
5132 then
5133   TESTS="test1 test2 test3 test4"
5134
5135   dnl  we define those so that bootstrap sets the right linker
5136   VLC_ADD_CXXFLAGS([test2],[])
5137   VLC_ADD_OBJCFLAGS([test3],[])
5138   dnl  this one is needed until automake knows what to do
5139   VLC_ADD_LDFLAGS([test3],[-lobjc])
5140
5141   VLC_ADD_PLUGINS([${TESTS}])
5142   #VLC_ADD_BUILTINS([${TESTS}])
5143 fi
5144
5145 dnl
5146 dnl Microsoft Layer for Unicode for WIN9x/ME
5147 dnl
5148 if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
5149 then
5150     AC_CHECK_LIB(unicows, LoadUnicowsSymbol, [
5151         VLC_ADD_LDFLAGS([vlc],[-lunicows])
5152     ])
5153 fi
5154
5155 dnl
5156 dnl  gtk_main plugin
5157 dnl
5158 if test "${NEED_GTK_MAIN}" != "no"
5159 then
5160     VLC_ADD_PLUGINS([gtk_main])
5161     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5162     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5163 fi
5164
5165 if test "${NEED_GNOME_MAIN}" != "no"
5166 then
5167     VLC_ADD_PLUGINS([gnome_main])
5168     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5169     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5170 fi
5171
5172 if test "${NEED_GTK2_MAIN}" != "no"
5173 then
5174     VLC_ADD_PLUGINS([gtk2_main])
5175     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5176     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5177     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5178     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5179 fi
5180
5181 if test "${NEED_GNOME2_MAIN}" != "no"
5182 then
5183     VLC_ADD_PLUGINS([gnome2_main])
5184     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5185     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5186 fi
5187
5188 dnl
5189 dnl  qte_main plugin
5190 dnl
5191 if test "${NEED_QTE_MAIN}" != "no"
5192 then
5193     VLC_ADD_PLUGINS([qte_main])
5194     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5195     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5196     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5197 fi
5198
5199
5200 dnl
5201 dnl  Plugin and builtin checks
5202 dnl
5203 builtin_support=false
5204 plugin_support=:
5205
5206 dnl Support for plugins - this must be AT THE END
5207 AC_ARG_ENABLE(plugins,
5208   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5209   [if test "${enable_plugins}" = "no"
5210    then
5211      plugin_support=false
5212    fi])
5213
5214 dnl Automagically disable plugins if there is no system support for
5215 dnl dynamically loadable files (.so, .dll, .dylib).
5216 dnl don't forget vlc-win32 still can load .dll as plugins
5217 if test "${ac_cv_have_plugins}" = "no"
5218 then
5219   echo "*** Your system doesn't have plugin support. All plugins will be built"
5220   echo "statically."
5221   plugin_support=false
5222 fi
5223
5224 dnl Export automake variables
5225 if ${plugin_support}
5226 then
5227   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5228   for plugin in `echo ${PLUGINS}`
5229   do
5230     eval "${plugin}_p=yes"
5231   done
5232 else
5233   VLC_ADD_BUILTINS([${PLUGINS}])
5234   PLUGINS=""
5235 fi
5236 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
5237
5238 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
5239 then
5240   builtin_support=:
5241   for builtin in `echo ${BUILTINS}`
5242   do
5243     eval "${builtin}_b=yes"
5244   done
5245 fi]
5246 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
5247
5248 dnl
5249 dnl Pic and shared libvlc stuff
5250 dnl
5251 AS_IF([test "x${enable_shared_libvlc}" = "x"], [enable_shared_libvlc=no])
5252 AM_CONDITIONAL(BUILD_SHARED, [test "${enable_shared_libvlc}" != "no"])
5253 AS_IF([test "${enable_shared_libvlc}" != "no" || test "${enable_libtool}" != "no"], [
5254   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5255 ])
5256
5257 pic=no
5258 AS_IF([test "${build_pic}" = "yes"], [pic=pic])
5259 AS_IF([test "${SYS}" = "mingw32"], [pic=no])
5260 AS_IF([test "${pic}" = "no"], [pic=])
5261 AC_SUBST(pic)
5262
5263 AM_CONDITIONAL(BUILD_PIC, [test "${build_pic}" = "yes" && test "x${pic}" = "xpic"])
5264
5265 dnl Import conditional variables generated by bootstrap
5266 VLC_CONDITIONALS
5267
5268 dnl
5269 dnl  Stuff used by the program
5270 dnl
5271 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5272 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5273 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5274 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5275 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5276 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5277 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5278 AC_SUBST(VERSION_MAJOR)
5279 AC_SUBST(VERSION_MINOR)
5280 AC_SUBST(VERSION_REVISION)
5281 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5282 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5283 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5284 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5285
5286 dnl Old definitions for version-dependant plugins
5287 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5288 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5289 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5290
5291 dnl New definitions with value matching 0.8.4 release
5292 module_symbol="0_8_4"
5293 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5294 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5295 VLC_ENTRY="vlc_entry__${module_symbol}"
5296 AC_SUBST(VLC_ENTRY)
5297
5298 dnl
5299 dnl  Handle substvars that use $(top_srcdir)
5300 dnl
5301 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5302 AC_SUBST(VLC_CONFIG)
5303 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5304
5305 dnl
5306 dnl  Restore *FLAGS
5307 dnl
5308 VLC_RESTORE_FLAGS
5309
5310 dnl
5311 dnl  Create the vlc-config script
5312 dnl
5313 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
5314 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5315
5316 dnl
5317 dnl  Configuration is finished
5318 dnl
5319 AC_SUBST(SYS)
5320 AC_SUBST(ARCH)
5321 AC_SUBST(ALIASES)
5322 AC_SUBST(ASM)
5323 AC_SUBST(MOC)
5324 AC_SUBST(WINDRES)
5325 AC_SUBST(MOZILLA_SDK_PATH)
5326 AC_SUBST(XPIDL)
5327 AC_SUBST(XPIDL_INCL)
5328 AC_SUBST(LIBEXT)
5329 AC_SUBST(INCLUDES)
5330 AC_SUBST(ALL_LINGUAS)
5331 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5332
5333 dnl Import substitutions generated by bootstrap
5334 VLC_SUBSTS
5335
5336 dnl Create vlc-config.in
5337 VLC_OUTPUT_VLC_CONFIG_IN
5338
5339 AC_CONFIG_FILES([
5340   Makefile
5341   activex/Makefile
5342   activex/axvlc.inf
5343   bindings/Makefile
5344   bindings/java/Makefile
5345   bindings/mediacontrol-python/Makefile
5346   debian/Makefile
5347   doc/Makefile
5348   intl/Makefile
5349   ipkg/Makefile
5350   loader/Makefile
5351   modules/Makefile
5352   mozilla/Makefile
5353   m4/Makefile
5354   po/Makefile.in
5355   share/Makefile
5356   src/Makefile
5357 ])
5358
5359 AC_CONFIG_FILES([
5360   modules/access/Makefile
5361   modules/access/dshow/Makefile
5362   modules/access/dvb/Makefile
5363   modules/access/mms/Makefile
5364   modules/access/pvr/Makefile
5365   modules/access/v4l/Makefile
5366   modules/access/cdda/Makefile
5367   modules/access/rtsp/Makefile
5368   modules/access/vcd/Makefile
5369   modules/access/vcdx/Makefile
5370   modules/access/screen/Makefile
5371   modules/access_filter/Makefile
5372   modules/access_output/Makefile
5373   modules/audio_filter/Makefile
5374   modules/audio_filter/channel_mixer/Makefile
5375   modules/audio_filter/converter/Makefile
5376   modules/audio_filter/resampler/Makefile
5377   modules/audio_mixer/Makefile
5378   modules/audio_output/Makefile
5379   modules/codec/Makefile
5380   modules/codec/cmml/Makefile
5381   modules/codec/dmo/Makefile
5382   modules/codec/ffmpeg/Makefile
5383   modules/codec/spudec/Makefile
5384   modules/control/Makefile
5385   modules/control/http/Makefile
5386   modules/control/corba/Makefile
5387   modules/demux/Makefile
5388   modules/demux/asf/Makefile
5389   modules/demux/avi/Makefile
5390   modules/demux/mp4/Makefile
5391   modules/demux/mpeg/Makefile
5392   modules/demux/playlist/Makefile
5393   modules/demux/util/Makefile
5394   modules/gui/Makefile
5395   modules/gui/beos/Makefile
5396   modules/gui/pda/Makefile
5397   modules/gui/macosx/Makefile
5398   modules/gui/qnx/Makefile
5399   modules/gui/skins2/Makefile
5400   modules/gui/wxwidgets/Makefile
5401   modules/gui/wince/Makefile
5402   modules/misc/Makefile
5403   modules/misc/dummy/Makefile
5404   modules/misc/memcpy/Makefile
5405   modules/misc/network/Makefile
5406   modules/misc/testsuite/Makefile
5407   modules/misc/playlist/Makefile
5408   modules/misc/xml/Makefile
5409   modules/mux/Makefile
5410   modules/mux/mpeg/Makefile
5411   modules/mux/rtp/Makefile
5412   modules/packetizer/Makefile
5413   modules/services_discovery/Makefile
5414   modules/stream_out/Makefile
5415   modules/stream_out/transrate/Makefile
5416   modules/video_chroma/Makefile
5417   modules/video_filter/Makefile
5418   modules/video_filter/swscale/Makefile
5419   modules/video_output/Makefile
5420   modules/video_output/directx/Makefile
5421   modules/video_output/qte/Makefile
5422   modules/video_output/x11/Makefile
5423   modules/visualization/Makefile
5424   modules/visualization/visual/Makefile
5425   modules/visualization/galaktos/Makefile
5426 ])
5427
5428 dnl Generate makefiles
5429 AC_OUTPUT
5430
5431 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5432 # not provided with the source
5433 ${SHELL} ./config.status --file=vlc-config
5434 chmod 0755 vlc-config
5435
5436 dnl echo "Enabled builtin modules :"
5437 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5438
5439 dnl echo "Enabled plugin modules :"
5440 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5441
5442 dnl Shortcut to nice compile message
5443 rm -f compile
5444 echo '#! /bin/sh' >compile
5445
5446 echo "PATH=$PATH LANG=C make \$* 2>&1| \\" >> compile
5447 echo '`sed -ne "s/^top_srcdir *= *//p" < Makefile`/extras/make.pl' >> compile
5448 chmod a+x compile
5449
5450 printf "
5451 vlc configuration
5452 --------------------
5453 vlc version           : ${VERSION}
5454 system                : ${SYS}
5455 architecture          : ${ARCH}
5456 build flavour         : "
5457 test "${enable_debug}" = "yes" && printf "debug "
5458 test "${enable_cprof}" = "yes" && printf "cprof "
5459 test "${enable_gprof}" = "yes" && printf "gprof "
5460 test "${enable_optimizations}" = "yes" && printf "optim "
5461 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5462 echo "
5463 vlc aliases           :${ALIASES}
5464
5465 You can tune the compiler flags in vlc-config.
5466 To build vlc and its plugins, type \`./compile' or \`make'.
5467 "
5468