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