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