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