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