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