]> git.sesse.net Git - vlc/blob - configure.ac
More UTF8ication
[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 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      dnl  The given libavcodec wasn't built with --enable-pp
2463      AC_MSG_RESULT(no)
2464      AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2465    fi
2466    dnl  Use a custom libffmpeg
2467    AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodec.a)
2468
2469    if fgrep -s "CONFIG_ZLIB=yes" "${real_ffmpeg_tree}/config.mak"; then
2470      if test "${with_ffmpeg_zlib}" != "yes"; then
2471        VLC_ADD_LDFLAGS([ffmpeg],[-lz])
2472      fi
2473    fi
2474    if fgrep -s "CONFIG_MP3LAME=yes" "${real_ffmpeg_tree}/config.mak"; then
2475      if test "${with_ffmpeg_mp3lame}" != "yes"; then
2476        VLC_ADD_LDFLAGS([ffmpeg],[-lmp3lame])
2477      fi
2478    fi
2479    if fgrep -s "CONFIG_FAAC=yes" "${real_ffmpeg_tree}/config.mak"; then
2480      if test "${with_ffmpeg_faac}" != "yes"; then
2481        VLC_ADD_LDFLAGS([ffmpeg],[-lfaac])
2482      fi
2483    fi
2484    if fgrep -s "CONFIG_DTS=yes" "${real_ffmpeg_tree}/config.mak"; then
2485      if test "${with_ffmpeg_dts}" != "yes"; then
2486        LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2487        AC_CHECK_LIB(dts_pic, dts_free, 
2488          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts_pic]) ],
2489          [ VLC_ADD_LDFLAGS([ffmpeg],[-ldts]) ])
2490        LDFLAGS="${LDFLAGS_save}"
2491      fi
2492    fi
2493    if fgrep -s "CONFIG_VORBIS=yes" "${real_ffmpeg_tree}/config.mak"; then
2494      VLC_ADD_LDFLAGS([ffmpeg],[-lvorbis -lvorbisenc])
2495    fi
2496    if fgrep -s "CONFIG_FAAD=yes" "${real_ffmpeg_tree}/config.mak"; then
2497      VLC_ADD_LDFLAGS([ffmpeg],[-lfaad])
2498    fi
2499    if fgrep -s "CONFIG_XVID=yes" "${real_ffmpeg_tree}/config.mak"; then
2500      VLC_ADD_LDFLAGS([ffmpeg],[-lxvidcore])
2501    fi
2502
2503    VLC_ADD_BUILTINS([ffmpeg])
2504    if test "${enable_sout}" != "no"; then
2505      VLC_ADD_BUILTINS([stream_out_switcher])
2506    fi
2507
2508    if test -f "${real_ffmpeg_tree}/libavutil/libavutil.a"; then
2509      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavutil ${real_ffmpeg_tree}/libavutil/libavutil.a])
2510      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavutil])
2511    fi
2512
2513    VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavcodec ${real_ffmpeg_tree}/libavcodec/libavcodec.a])
2514    VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec])
2515
2516    if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2517      AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2518      VLC_ADD_LDFLAGS([ffmpeg],[-L${real_ffmpeg_tree}/libavformat ${real_ffmpeg_tree}/libavformat/libavformat.a])
2519      VLC_ADD_CPPFLAGS([ffmpeg stream_out_switcher],[-I${real_ffmpeg_tree}/libavformat])
2520    fi
2521 else    
2522     
2523 dnl Look for a ffmpeg-config (we are on debian )
2524  
2525   FFMPEG_PATH="${PATH}"
2526   AC_ARG_WITH(ffmpeg-config-path,
2527     [    --with-ffmpeg-config-path=PATH ffmpeg-config path (default search in \$PATH)],
2528     [ if test "${with_ffmpeg_config_path}" != "no"
2529       then
2530         FFMPEG_PATH="${with_ffmpeg_config_path}"
2531       fi ])
2532   AC_PATH_PROG(FFMPEG_CONFIG, ffmpeg-config, no, ${FFMPEG_PATH})
2533   if test "${FFMPEG_CONFIG}" != "no"
2534   then
2535     AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2536     AC_CHECK_HEADERS(postproc/postprocess.h)
2537     VLC_ADD_PLUGINS([ffmpeg])
2538     if test "${enable_sout}" != "no"; then
2539         VLC_ADD_PLUGINS([stream_out_switcher])
2540     fi
2541     VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --cflags`])
2542     VLC_ADD_LDFLAGS([ffmpeg stream_out_switcher],[`${FFMPEG_CONFIG} --plugin-libs avcodec avformat postproc`])
2543  
2544  else
2545
2546 dnl Trying with pkg-config
2547    PKG_CHECK_MODULES(FFMPEG,[libavcodec, libavformat],
2548     [
2549      AC_CHECK_HEADERS(ffmpeg/avcodec.h)
2550      AC_CHECK_HEADERS(postproc/postprocess.h)
2551      VLC_ADD_BUILTINS([ffmpeg])
2552      if test "${enable_sout}" != "no"; then
2553          VLC_ADD_BUILTINS([stream_out_switcher])
2554      fi
2555      VLC_ADD_CFLAGS([ffmpeg stream_out_switcher],[${FFMPEG_CFLAGS}])
2556      VLC_ADD_LDFLAGS([ffmpeg],[${FFMPEG_LIBS}])
2557
2558     ],[
2559      
2560     dnl
2561     dnl last chance: at the default place
2562     dnl
2563       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_ffmpeg}"
2564       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_ffmpeg}"
2565       AC_CHECK_HEADERS(ffmpeg/avcodec.h, [], [AC_MSG_ERROR([Missing header file ffmpeg/avcodec.h.])] )
2566       AC_CHECK_HEADERS(postproc/postprocess.h, [], [AC_MSG_ERROR([Missing header file postproc/postprocess.h.])] )
2567
2568       AC_CHECK_LIB(avutil, av_add_i, [
2569         VLC_ADD_LDFLAGS([ffmpeg],[-lavutil])
2570         LDAVUTIL="-lavutil"])
2571
2572       AC_CHECK_LIB(avcodec, avcodec_init, [
2573         VLC_ADD_BUILTINS([ffmpeg])
2574
2575
2576         VLC_ADD_LDFLAGS([ffmpeg],[-lavcodec])
2577         if test "${enable_sout}" != "no"; then
2578             VLC_ADD_BUILTINS([stream_out_switcher])
2579         fi],
2580          [ 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])
2581       AC_CHECK_LIB(avformat, av_open_input_stream, [
2582         AC_DEFINE(HAVE_LIBAVFORMAT, 1,
2583         [Define if you have ffmpeg's libavformat.])
2584         VLC_ADD_LDFLAGS([ffmpeg],[-lavformat -lz]) ], [], [-lavcodec -lz $LDAVUTIL])
2585       LDFLAGS="${LDFLAGS_save}"
2586       CPPFLAGS="${CPPFLAGS_save}"
2587     ])
2588   fi
2589  fi 
2590 fi
2591
2592 dnl
2593 dnl  ffmpegaltivec plugin
2594 dnl
2595 AC_ARG_ENABLE(ffmpegaltivec,
2596 [  --enable-ffmpegaltivec  ffmpegaltivec codec (DO NOT USE)])
2597 if test "${enable_ffmpegaltivec}" = "yes"
2598 then
2599   if test "${with_ffmpeg_tree}" != "no" -a -n "${with_ffmpeg_tree}"; then
2600     AC_MSG_CHECKING(for libavcodecaltivec.a in ${with_ffmpeg_tree})
2601     real_ffmpeg_tree="`cd ${with_ffmpeg_tree} 2>/dev/null && pwd`"
2602     if test -z "${real_ffmpeg_tree}"; then
2603       dnl  The given directory can't be found
2604       AC_MSG_RESULT(no)
2605       AC_MSG_ERROR([cannot cd to ${with_ffmpeg_tree}])
2606     fi
2607     if ! test -f "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2608       dnl  The given libavcodecaltivec wasn't built
2609       AC_MSG_RESULT(no)
2610       AC_MSG_ERROR([cannot find ${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a, make sure you compiled libavcodecaltivec in ${with_ffmpeg_tree}])
2611     fi
2612     if ! fgrep -s "pp_get_context" "${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a"; then
2613       dnl  The given libavcodecaltivec wasn't built with --enable-pp
2614       AC_MSG_RESULT(no)
2615       AC_MSG_ERROR([${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a was not compiled with postprocessing support, make sure you configured ffmpeg with --enable-pp])
2616     fi
2617     dnl  Use a custom libffmpeg
2618     AC_MSG_RESULT(${real_ffmpeg_tree}/libavcodec/libavcodecaltivec.a)
2619     VLC_ADD_BUILTINS([ffmpegaltivec])
2620     VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavcodec -lavcodecaltivec])
2621     VLC_ADD_CPPFLAGS([ffmpeg],[-DNO_ALTIVEC_IN_FFMPEG])
2622     VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2623
2624     if test -f "${real_ffmpeg_tree}/libavformat/libavformat.a"; then
2625       AC_DEFINE(HAVE_LIBAVFORMAT, 1, [Define if you have ffmpeg's libavformat.])
2626       VLC_ADD_LDFLAGS([ffmpegaltivec],[-L${real_ffmpeg_tree}/libavformat -lavformataltivec -lz])
2627       VLC_ADD_CPPFLAGS([ffmpegaltivec],[-I${real_ffmpeg_tree}/libavformat])
2628     fi
2629     VLC_ADD_LDFLAGS([stream_out_switcher],[-L${real_ffmpeg_tree}/libavcodec])
2630     VLC_ADD_CPPFLAGS([stream_out_switcher],[-I${real_ffmpeg_tree}/libavcodec -I${real_ffmpeg_tree}/libavformat])
2631   fi
2632 fi
2633
2634 dnl
2635 dnl  faad decoder plugin
2636 dnl
2637 AC_ARG_ENABLE(faad,
2638 [  --enable-faad           faad codec (default disabled)])
2639 if test "${enable_faad}" = "yes"
2640 then
2641   AC_ARG_WITH(faad-tree,
2642   [    --with-faad-tree=PATH faad tree for static linking])
2643   if test -n "${with_faad_tree}"
2644   then
2645     AC_MSG_CHECKING(for libfaad.a in ${with_faad_tree})
2646     real_faad_tree="`cd ${with_faad_tree} 2>/dev/null && pwd`"
2647     if test -z "${real_faad_tree}"
2648     then
2649       dnl  The given directory can't be found
2650       AC_MSG_RESULT(no)
2651       AC_MSG_ERROR([cannot cd to ${with_faad_tree}])
2652     fi
2653     if test -f "${real_faad_tree}/libfaad/.libs/libfaad.a"
2654     then
2655       dnl  Use a custom faad
2656       AC_MSG_RESULT(${real_faad_tree}/libfaad/.libs/libfaad.a)
2657       VLC_ADD_BUILTINS([faad])
2658       VLC_ADD_LDFLAGS([faad],[${real_faad_tree}/libfaad/.libs/libfaad.a])
2659       VLC_ADD_CPPFLAGS([faad],[-I${real_faad_tree}/include])
2660     else
2661       dnl  The given libfaad wasn't built
2662       AC_MSG_RESULT(no)
2663       AC_MSG_ERROR([cannot find ${real_faad_tree}/libfaad/.libs/libfaad.a, make sure you compiled libfaad in ${with_faad_tree}])
2664     fi
2665   else
2666     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_faad}"
2667     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_faad}"
2668     AC_CHECK_HEADERS(faad.h, ,
2669       [ AC_MSG_ERROR([Cannot find development headers for libfaad...]) ])
2670     AC_CHECK_LIB(faad, faacDecOpen, [
2671       VLC_ADD_PLUGINS([faad])
2672       VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2673       AC_CHECK_LIB(faad, NeAACDecOpen, [
2674         VLC_ADD_PLUGINS([faad])
2675         VLC_ADD_LDFLAGS([faad],[-lfaad]) ],
2676         [ AC_MSG_ERROR([Cannot find libfaad library...]) ]))
2677     LDFLAGS="${LDFLAGS_save}"
2678     CPPFLAGS="${CPPFLAGS_save}"
2679   fi
2680 fi
2681
2682 dnl
2683 dnl twolame encoder plugin
2684 dnl
2685 AC_ARG_ENABLE(twolame,
2686 [  --enable-twolame        twolame codec (default disabled)])
2687 if test "${enable_twolame}" = "yes"
2688 then
2689   AC_ARG_WITH(twolame-tree,
2690   [    --with-twolame-tree=PATH twolame tree for static linking])
2691   if test -n "${with_twolame_tree}"
2692   then
2693     AC_MSG_CHECKING(for libtwolame.a in ${with_twolame_tree})
2694     real_twolame_tree="`cd ${with_twolame_tree} 2>/dev/null && pwd`"
2695     if test -z "${real_twolame_tree}"
2696     then
2697       dnl  The given directory can't be found
2698       AC_MSG_RESULT(no)
2699       AC_MSG_ERROR([cannot cd to ${with_twolame_tree}])
2700     fi
2701     if test -f "${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a"
2702     then
2703       dnl  Use a custom twolame
2704       AC_MSG_RESULT(${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a)
2705       VLC_ADD_BUILTINS([twolame])
2706       VLC_ADD_LDFLAGS([twolame],[${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a])
2707       VLC_ADD_CPPFLAGS([twolame],[-I${real_twolame_tree}/src/libtwolame])
2708     else
2709       dnl  The given libtwolame wasn't built
2710       AC_MSG_RESULT(no)
2711       AC_MSG_ERROR([cannot find ${real_twolame_tree}/src/libtwolame/.libs/libtwolame.a, make sure you compiled libtwolame in ${with_twolame_tree}])
2712     fi
2713   else
2714     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_twolame}"
2715     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_twolame}"
2716     AC_CHECK_HEADERS(twolame.h, ,
2717       [ AC_MSG_ERROR([Cannot find development header for libtwolame...]) ])
2718     AC_CHECK_LIB(twolame, twolame_init, [
2719       VLC_ADD_PLUGINS([twolame])
2720       VLC_ADD_LDFLAGS([twolame],[-ltwolame]) ],
2721         [ AC_MSG_ERROR([Cannot find libtwolame library...]) ])
2722     LDFLAGS="${LDFLAGS_save}"  
2723     CPPFLAGS="${CPPFLAGS_save}"
2724   fi
2725 fi
2726
2727 dnl
2728 dnl  QuickTime plugin
2729 dnl
2730 AC_ARG_ENABLE(quicktime,
2731   [  --enable-quicktime      QuickTime module (default enabled on MacOS X)])
2732 if test "${enable_quicktime}" != "no" &&
2733   (test "${SYS}" = "darwin" || test "${enable_quicktime}" = "yes")
2734 then
2735   if test "${SYS}" = "mingw32"; then
2736     VLC_ADD_BUILTINS([quicktime])
2737   else
2738   AC_CHECK_HEADERS(QuickTime/QuickTime.h,
2739     [ VLC_ADD_BUILTINS([quicktime])
2740       VLC_ADD_LDFLAGS([quicktime],[-framework QuickTime -framework Carbon])
2741     ], [ AC_MSG_ERROR([cannot find QuickTime headers]) ])
2742   fi
2743 fi
2744
2745 dnl
2746 dnl  Real plugin
2747 dnl
2748 AC_ARG_ENABLE(real,
2749   [  --enable-real           Real audio module (default disabled)])
2750 if test "${enable_real}" = "yes"; then
2751   VLC_ADD_PLUGINS([realaudio])
2752 fi
2753
2754 dnl
2755 dnl  Real RTSP plugin
2756 dnl
2757 AC_ARG_ENABLE(realrtsp,
2758   [  --enable-realrtsp       Real RTSP module (default disabled)])
2759 if test "${enable_realrtsp}" = "yes"; then
2760   VLC_ADD_PLUGINS([access_realrtsp])
2761 fi
2762
2763 dnl
2764 dnl MP4 module
2765 dnl
2766 AC_CHECK_HEADERS(zlib.h, [
2767   VLC_ADD_LDFLAGS([mp4 skins2 sap mkv],[-lz])
2768 ] )
2769
2770 AC_CHECK_HEADERS(sysfs/libsysfs.h, [
2771   VLC_ADD_LDFLAGS([mp4 mkv],[-lsysfs])
2772 ] )
2773
2774 dnl
2775 dnl skins2 module
2776 dnl
2777 AC_CHECK_HEADERS(libtar.h, [
2778   VLC_ADD_LDFLAGS([skins2],[-ltar])
2779 ] )
2780
2781
2782
2783 dnl
2784 dnl A52/AC3 decoder plugin
2785 dnl
2786 AC_ARG_ENABLE(a52,
2787   [  --enable-a52            A/52 support with liba52 (default enabled)])
2788 if test "${enable_a52}" != "no"
2789 then
2790   AC_ARG_WITH(a52,
2791     [    --with-a52=PATH       a52 headers and libraries])
2792   AC_ARG_WITH(a52-tree,
2793     [    --with-a52-tree=PATH  a52dec tree for static linking ],[],[])
2794   if test "${with_a52_tree}" != "no" -a -n "${with_a52_tree}"
2795   then
2796     real_a52_tree="`cd ${with_a52_tree} 2>/dev/null && pwd`"
2797     if test -z "${real_a52_tree}"
2798     then
2799       dnl  The given directory can't be found
2800       AC_MSG_RESULT(no)
2801       AC_MSG_ERROR([${with_a52_tree} directory doesn't exist])
2802     fi
2803     dnl  Use a custom a52dec
2804     AC_MSG_CHECKING(for a52.h in ${real_a52_tree}/include)
2805     if test -f ${real_a52_tree}/include/a52.h
2806     then
2807       AC_MSG_RESULT(yes)
2808       VLC_ADD_CPPFLAGS([a52tofloat32],[-I${real_a52_tree}])
2809       VLC_ADD_LDFLAGS([a52tofloat32],[-L${real_a52_tree}/liba52/.libs])
2810       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_a52tofloat32}"
2811       AC_CHECK_LIB(a52, a52_free, [
2812         VLC_ADD_BUILTINS([a52tofloat32])
2813         VLC_ADD_CPPFLAGS([a52tofloat32],[-DUSE_A52DEC_TREE])
2814         VLC_ADD_LDFLAGS([a52tofloat32],[-la52])
2815         ],[
2816         if test -f ${real_a52_tree}/liba52/.libs/liba52.a
2817         then
2818           AC_MSG_ERROR([make sure you have at least a52dec-0.7.3])
2819         else
2820           AC_MSG_ERROR([the specified tree hasn't been compiled])
2821         fi
2822       ])
2823       LDFLAGS="${LDFLAGS_save}"
2824     else
2825       AC_MSG_RESULT(no)
2826       AC_MSG_ERROR([the specified tree doesn't have a52.h])
2827     fi
2828   else
2829     if test -z "${with_a52}"
2830     then
2831       LDFLAGS_test=""
2832       CPPFLAGS_test=""
2833     else
2834       LDFLAGS_test="-L${with_a52}/lib"
2835       CPPFLAGS_test="-I${with_a52}/include"
2836     fi
2837     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test} ${CPPFLAGS_a52tofloat32}"
2838     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_test} ${LDFLAGS_a52tofloat32}"
2839     AC_CHECK_HEADERS(a52dec/a52.h, [
2840       AC_CHECK_LIB(a52, a52_free, [
2841         VLC_ADD_PLUGINS([a52tofloat32])
2842         VLC_ADD_LDFLAGS([a52tofloat32],[${LDFLAGS_test} -la52])
2843         VLC_ADD_CPPFLAGS([a52tofloat32],[${CPPFLAGS_test}])
2844       ],[
2845         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.])
2846       ])
2847     ])
2848     CPPFLAGS="${CPPFLAGS_save}"
2849     LDFLAGS="${LDFLAGS_save}"
2850   fi
2851 fi
2852
2853 AC_ARG_WITH(a52-fixed,
2854       [    --with-a52-fixed      specify if liba52 has been compiled with fixed point support],
2855       [
2856         VLC_ADD_CPPFLAGS([a52tofloat32],[-DLIBA52_FIXED]) ])
2857
2858 dnl
2859 dnl DTS Coherent Acoustics decoder plugin
2860 dnl
2861 AC_ARG_ENABLE(dts,
2862   [  --enable-dts            DTS Coherent Acoustics support with libdts (default enabled)])
2863 if test "${enable_dts}" != "no"; then
2864   AC_ARG_WITH(dts-tree,
2865     [    --with-dts-tree=PATH  libdts tree for static linking ],[],[])
2866   if test "${with_dts_tree}" != "no" -a -n "${with_dts_tree}"
2867   then
2868     real_dts_tree="`cd ${with_dts_tree} 2>/dev/null && pwd`"
2869     if test -z "${real_dts_tree}"
2870     then
2871       dnl  The given directory can't be found
2872       AC_MSG_RESULT(no)
2873       AC_MSG_ERROR([${with_dts_tree} directory doesn't exist])
2874     fi
2875     dnl  Use a custom libdts
2876     AC_MSG_CHECKING(for dts.h in ${real_dts_tree}/include)
2877     if test -f ${real_dts_tree}/include/dts.h
2878     then
2879       AC_MSG_RESULT(yes)
2880       VLC_ADD_CPPFLAGS([dtstofloat32],[-I${real_dts_tree}/include])
2881       VLC_ADD_LDFLAGS([dtstofloat32],[-L${real_dts_tree}/libdts])
2882       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2883       AC_CHECK_LIB(dts_pic, dts_free, [
2884         VLC_ADD_PLUGINS([dtstofloat32])
2885         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2886         ],[
2887         AC_CHECK_LIB(dts, dts_free, [
2888           VLC_ADD_BUILTINS([dtstofloat32])
2889           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2890           ],[
2891           if test -f ${real_dts_tree}/libdts/libdts.a
2892           then
2893             AC_MSG_ERROR([make sure you have at least libdts-0.0.2])
2894           else
2895             AC_MSG_ERROR([the specified tree hasn't been compiled])
2896           fi
2897         ])
2898       ])
2899       LDFLAGS="${LDFLAGS_save}"
2900     else
2901       AC_MSG_RESULT(no)
2902       AC_MSG_ERROR([the specified tree doesn't have dts.h])
2903     fi
2904   else
2905     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_dtstofloat32}"
2906     AC_CHECK_HEADERS(dts.h, [
2907       AC_CHECK_LIB(dts_pic, dts_free, [
2908         VLC_ADD_PLUGINS([dtstofloat32])
2909         VLC_ADD_LDFLAGS([dtstofloat32],[-ldts_pic])
2910       ],[
2911         AC_CHECK_LIB(dts, dts_free, [
2912           VLC_ADD_BUILTINS([dtstofloat32])
2913           VLC_ADD_LDFLAGS([dtstofloat32],[-ldts])
2914         ],[
2915           if test "${enable_dts}" = "yes"; then
2916             AC_MSG_ERROR([Could not find libdts on your system: you may get it from http://www.videolan.org/dtsdec.html])
2917           fi
2918         ])
2919       ])
2920     ])
2921     LDFLAGS="${LDFLAGS_save}"
2922   fi
2923 fi
2924
2925 dnl
2926 dnl  Flac plugin
2927 dnl
2928 AC_ARG_ENABLE(flac,
2929   [  --enable-flac           flac decoder support (default disabled)])
2930 if test "${enable_flac}" = "yes"
2931 then
2932   AC_ARG_WITH(flac-tree,
2933   [    --with-flac-tree=PATH flac tree for static linking])
2934   if test -n "${with_flac_tree}"
2935   then
2936     AC_MSG_CHECKING(for libFLAC.a in ${with_flac_tree})
2937     real_flac_tree="`cd ${with_flac_tree} 2>/dev/null && pwd`"
2938     if test -z "${real_flac_tree}"
2939     then
2940       dnl  The given directory can't be found
2941       AC_MSG_RESULT(no)
2942       AC_MSG_ERROR([cannot cd to ${with_flac_tree}])
2943     fi
2944     if test -f "${real_flac_tree}/src/libFLAC/.libs/libFLAC.a"
2945     then
2946       dnl  Use a custom flac
2947       AC_MSG_RESULT(${real_flac_tree}/src/libFLAC/.libs/libFLAC.a)
2948       VLC_ADD_LDFLAGS([flacdec],[${real_flac_tree}/src/libFLAC/.libs/libFLAC.a])
2949       VLC_ADD_CFLAGS([flacdec],[-I${real_flac_tree}/include])
2950       AC_DEFINE(HAVE_FLAC_STREAM_DECODER_H, 1, [Define if you have FLAC])
2951     else
2952       dnl  The given flac wasn't built
2953       AC_MSG_RESULT(no)
2954       AC_MSG_ERROR([cannot find ${real_flac_tree}/src/libFLAC/.libs/libFLAC.a, make sure you compiled flac in ${with_flac_tree}])
2955     fi
2956   else
2957     AC_CHECK_HEADERS(FLAC/stream_decoder.h, [
2958       VLC_ADD_LDFLAGS([flacdec],[-lFLAC])
2959      ],[])
2960   fi
2961 fi
2962
2963 dnl
2964 dnl  Libmpeg2 plugin
2965 dnl
2966 AC_ARG_ENABLE(libmpeg2,
2967   [  --enable-libmpeg2       libmpeg2 decoder support (default enabled)])
2968 if test "${enable_libmpeg2}" != "no"
2969 then
2970   AC_ARG_WITH(libmpeg2-tree,
2971   [    --with-libmpeg2-tree=PATH libmpeg2 tree for static linking])
2972   if test -n "${with_libmpeg2_tree}"
2973   then
2974     AC_MSG_CHECKING(for libmpeg2.a in ${with_libmpeg2_tree})
2975     real_libmpeg2_tree="`cd ${with_libmpeg2_tree} 2>/dev/null && pwd`"
2976     if test -z "${real_libmpeg2_tree}"
2977     then
2978       dnl  The given directory can't be found
2979       AC_MSG_RESULT(no)
2980       AC_MSG_ERROR([cannot cd to ${with_libmpeg2_tree}])
2981     fi
2982     if test -f "${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a"
2983     then
2984       dnl  Use a custom libmpeg2
2985       AC_MSG_RESULT(${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a)
2986       VLC_ADD_BUILTINS([libmpeg2])
2987       VLC_ADD_LDFLAGS([libmpeg2],[-L${real_libmpeg2_tree}/libmpeg2/.libs -lmpeg2])
2988       VLC_ADD_CFLAGS([libmpeg2],[-I${real_libmpeg2_tree}/include])
2989       eval "`cd ${real_libmpeg2_tree}/include && ln -sf . mpeg2dec 2>/dev/null`"
2990     else
2991       dnl  The given libmpeg2 wasn't built
2992       AC_MSG_RESULT(no)
2993       AC_MSG_ERROR([cannot find ${real_libmpeg2_tree}/libmpeg2/.libs/libmpeg2.a, make sure you compiled libmpeg2 in ${with_libmpeg2_tree}])
2994     fi
2995   else
2996     AC_CHECK_HEADERS(mpeg2dec/mpeg2.h, [
2997       AC_MSG_CHECKING(for libmpeg2 version >= 0.3.2)
2998       AC_EGREP_CPP(yes,
2999         [#include <mpeg2dec/mpeg2.h>
3000          #ifdef MPEG2_RELEASE
3001          #if MPEG2_RELEASE >= MPEG2_VERSION(0,3,2)
3002          yes
3003          #endif
3004          #endif],
3005         [AC_MSG_RESULT([yes])
3006           VLC_ADD_PLUGINS([libmpeg2])
3007           VLC_ADD_LDFLAGS([libmpeg2],[-lmpeg2])],
3008         [AC_MSG_RESULT([no])
3009           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.])])],
3010
3011       [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.])]
3012     )
3013   fi
3014 fi
3015
3016 dnl
3017 dnl  Vorbis plugin
3018 dnl
3019 AC_ARG_ENABLE(vorbis,
3020   [  --enable-vorbis         Vorbis decoder support (default enabled)])
3021 if test "${enable_vorbis}" != "no"
3022 then
3023   AC_ARG_WITH(vorbis-tree,
3024   [    --with-vorbis-tree=PATH vorbis tree for static linking])
3025   if test -n "${with_vorbis_tree}"
3026   then
3027     AC_MSG_CHECKING(for libvorbis.a in ${with_vorbis_tree})
3028     real_vorbis_tree="`cd ${with_vorbis_tree} 2>/dev/null && pwd`"
3029     if test -z "${real_vorbis_tree}"
3030     then
3031       dnl  The given directory can't be found
3032       AC_MSG_RESULT(no)
3033       AC_MSG_ERROR([cannot cd to ${with_vorbis_tree}])
3034     fi
3035     if test -f "${real_vorbis_tree}/lib/.libs/libvorbis.a"
3036     then
3037       dnl  Use a custom vorbis 
3038       AC_MSG_RESULT(${real_vorbis_tree}/lib/.libs/libvorbis.a)
3039       VLC_ADD_PLUGINS([vorbis])
3040       VLC_ADD_LDFLAGS([vorbis],[${real_vorbis_tree}/lib/.libs/libvorbis.a ${real_vorbis_tree}/lib/.libs/libvorbisenc.a])
3041       VLC_ADD_CFLAGS([vorbis],[-I${real_vorbis_tree}/include])
3042     else
3043       dnl  The given vorbis wasn't built
3044       AC_MSG_RESULT(no)
3045       AC_MSG_ERROR([cannot find ${real_vorbis_tree}/lib/.libs/libvorbis.a, make sure you compiled vorbis in ${with_vorbis_tree}])
3046     fi
3047   else
3048     AC_CHECK_HEADERS(vorbis/codec.h, [
3049       VLC_ADD_PLUGINS([vorbis])
3050       VLC_ADD_LDFLAGS([vorbis],[-lvorbis -logg]) ],[])
3051
3052     AC_CHECK_HEADERS(vorbis/vorbisenc.h, [
3053       VLC_ADD_LDFLAGS([vorbis],[-lvorbisenc]) ],[])
3054   fi
3055 fi
3056
3057 dnl
3058 dnl  Tremor plugin
3059 dnl
3060 AC_ARG_ENABLE(tremor,
3061   [  --enable-tremor         Tremor decoder support (default disabled)])
3062 if test "${enable_tremor}" = "yes"
3063 then
3064   AC_CHECK_HEADERS(tremor/ivorbiscodec.h, [
3065     VLC_ADD_PLUGINS([tremor])
3066     VLC_ADD_LDFLAGS([tremor],[-lvorbisidec -logg])
3067    ],[])
3068 fi
3069
3070 dnl
3071 dnl  Speex plugin
3072 dnl
3073 AC_ARG_ENABLE(speex,
3074   [  --enable-speex          Speex decoder support (default enabled)])
3075 if test "${enable_speex}" != "no"
3076 then
3077   AC_ARG_WITH(speex-tree,
3078   [    --with-speex-tree=PATH speex tree for static linking])
3079   if test -n "${with_speex_tree}"
3080   then
3081     AC_MSG_CHECKING(for libspeex.a in ${with_speex_tree})
3082     real_speex_tree="`cd ${with_speex_tree} 2>/dev/null && pwd`"
3083     if test -z "${real_speex_tree}"
3084     then
3085       dnl  The given directory can't be found
3086       AC_MSG_RESULT(no)
3087       AC_MSG_ERROR([cannot cd to ${with_speex_tree}])
3088     fi
3089     if test -f "${real_speex_tree}/libspeex/.libs/libspeex.a"
3090     then
3091       dnl  Use a custom speex
3092       AC_MSG_RESULT(${real_speex_tree}/libspeex/.libs/libspeex.a)
3093       VLC_ADD_PLUGINS([speex])
3094       VLC_ADD_LDFLAGS([speex],[${real_speex_tree}/libspeex/.libs/libspeex.a])
3095       VLC_ADD_CFLAGS([speex],[-I${real_speex_tree}/include])
3096     else
3097       dnl  The given speex wasn't built
3098       AC_MSG_RESULT(no)
3099       AC_MSG_ERROR([cannot find ${real_speex_tree}/libspeex/.libs/libspeex.a, make sure you compiled speex in ${with_speex_tree}])
3100     fi
3101   else
3102     AC_CHECK_HEADERS(speex/speex.h, [
3103       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_speex}"
3104       AC_CHECK_LIB(speex, speex_decode_int, [
3105         VLC_ADD_PLUGINS([speex])
3106         VLC_ADD_LDFLAGS([speex],[-lspeex]) ],
3107         [ AC_MSG_RESULT([no])
3108           AC_MSG_WARN([Your libspeex is too old, please get the development
3109                        version.]) ],[])
3110       LDFLAGS="${LDFLAGS_save}"
3111       ],[])
3112   fi
3113 fi
3114
3115 dnl
3116 dnl  tarkin decoder plugin
3117 dnl
3118 AC_ARG_ENABLE(tarkin,
3119 [  --enable-tarkin         experimental tarkin codec (default disabled)])
3120 if test "${enable_tarkin}" = "yes"
3121 then
3122   AC_ARG_WITH(tarkin-tree,
3123   [    --with-tarkin-tree=PATH tarkin tree for static linking])
3124   if test -n "${with_tarkin_tree}"
3125   then
3126     AC_MSG_CHECKING(for tarkin.o in ${with_tarkin_tree})
3127     real_tarkin_tree="`cd ${with_tarkin_tree} 2>/dev/null && pwd`"
3128     if test -f "${real_tarkin_tree}/tarkin.o"
3129     then
3130       VLC_ADD_BUILTINS([tarkin])
3131       VLC_ADD_CPPFLAGS([tarkin],[-I${real_tarkin_tree}])
3132       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])
3133       AC_MSG_RESULT(yes)
3134     else
3135       dnl  The given tarkin tree wasn't built
3136       AC_MSG_RESULT(no)
3137       AC_MSG_ERROR([cannot find ${real_tarkin_tree}/tarkin.o,
3138                     make sure you compiled tarkin in ${with_tarkin_tree}])
3139     fi
3140   fi
3141 fi
3142
3143 dnl
3144 dnl  theora decoder plugin
3145 dnl
3146 AC_ARG_ENABLE(theora,
3147 [  --enable-theora         experimental theora codec (default disabled)])
3148 if test "${enable_theora}" = "yes"
3149 then
3150   AC_CHECK_HEADERS(theora/theora.h, [
3151     AC_CHECK_LIB(theora, theora_granule_time, [
3152       if test "${SYS}" = "mingw32"; then
3153         VLC_ADD_PLUGINS([theora])
3154       else
3155         VLC_ADD_BUILTINS([theora])
3156       fi
3157       theora_libs="-ltheora -logg"
3158       VLC_ADD_LDFLAGS([theora],[${theora_libs}]) ],[
3159       AC_MSG_ERROR([libtheora doesn't appear to be installed on your system.
3160 You also need to check that you have a libogg posterior to the 1.0 release.])],
3161       [-logg])
3162   ])
3163 fi
3164
3165 dnl
3166 dnl  dirac decoder plugin
3167 dnl
3168 AC_ARG_ENABLE(dirac,
3169 [  --enable-dirac          experimental dirac codec (default disabled)])
3170 if test "${enable_dirac}" = "yes"; then
3171   PKG_CHECK_MODULES(DIRAC,dirac, [
3172       VLC_ADD_PLUGINS([dirac])
3173       VLC_ADD_CFLAGS([dirac],[$DIRAC_CFLAGS])
3174       VLC_ADD_LDFLAGS([dirac],[$DIRAC_LIBS -lstdc++]) ],[
3175       AC_MSG_ERROR([libdirac doesn't appear to be installed on you system.])
3176   ])
3177 fi
3178
3179 dnl  libvc1 decoder plugin
3180 dnl
3181 AC_ARG_ENABLE(libvc1,
3182 [  --enable-libvc1         VC-1 codec (default disabled)])
3183 if test "${enable_libvc1}" = "yes"
3184 then
3185   AC_ARG_WITH(libvc1-tree,
3186   [    --with-libvc1-tree=PATH libvc1 tree for static linking])
3187   if test -n "${with_libvc1_tree}"
3188   then
3189     AC_MSG_CHECKING(for vc1dec.o in ${with_libvc1_tree})
3190     real_libvc1_tree="`cd ${with_libvc1_tree} 2>/dev/null && pwd`"
3191     if test -f "${real_libvc1_tree}/src/.libs/vc1dec.o"
3192     then
3193       VLC_ADD_BUILTINS([libvc1])
3194       VLC_ADD_CPPFLAGS([libvc1],[-I${real_libvc1_tree}/src])
3195       VLC_ADD_LDFLAGS([libvc1],[${real_libvc1_tree}/src/.libs/libvc1.a])
3196       AC_MSG_RESULT(yes)
3197     else
3198       dnl  The given libvc1 tree wasn't built
3199       AC_MSG_RESULT(no)
3200       AC_MSG_ERROR([cannot find ${real_libvc1_tree}/src/.libs/vc1dec.o,
3201                     make sure you compiled libvc1 in ${with_libvc1_tree}])
3202     fi
3203   fi
3204 fi
3205
3206 dnl
3207 dnl  PNG decoder module
3208 dnl
3209 AC_ARG_ENABLE(png,
3210   [  --enable-png            PNG support (default enabled)])
3211 if test "${enable_png}" != "no"; then
3212 AC_CHECK_HEADERS(png.h, [
3213   LDFLAGS="${LDFLAGS_save} -lz"
3214   AC_CHECK_LIB(png, png_set_rows, [
3215     VLC_ADD_LDFLAGS([png],[-lpng -lz])
3216     VLC_ADD_PLUGINS([png])
3217     VLC_ADD_PLUGINS([osdmenu])
3218     AC_DEFINE(HAVE_LIBPNG, [], [Define if you have the PNG library: libpng])],
3219     [],[-lz])
3220   LDFLAGS="${LDFLAGS_save}"
3221   ])
3222 fi
3223
3224 dnl
3225 dnl H264 encoder plugin (using libx264)
3226 dnl
3227 AC_ARG_ENABLE(x264,
3228   [  --enable-x264           H264 encoding support with libx264 (default enabled)])
3229 if test "${enable_x264}" != "no"; then
3230   AC_ARG_WITH(x264-tree,
3231     [    --with-x264-tree=PATH x264 tree for static linking ],[],[])
3232   if test "${with_x264_tree}" != "no" -a -n "${with_x264_tree}"
3233   then
3234     real_x264_tree="`cd ${with_x264_tree} 2>/dev/null && pwd`"
3235     if test -z "${real_x264_tree}"
3236     then
3237       dnl  The given directory can't be found
3238       AC_MSG_RESULT(no)
3239       AC_MSG_ERROR([${with_x264_tree} directory doesn't exist])
3240     fi
3241     dnl  Use a custom libx264
3242     AC_MSG_CHECKING(for x264.h in ${real_x264_tree})
3243     if test -f ${real_x264_tree}/x264.h
3244     then
3245       AC_MSG_RESULT(yes)
3246       VLC_ADD_CPPFLAGS([x264],[-I${real_x264_tree}])
3247       VLC_ADD_LDFLAGS([x264],[-L${real_x264_tree}])
3248       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3249       AC_CHECK_LIB(x264, x264_encoder_open, [
3250         VLC_ADD_BUILTINS([x264])
3251         VLC_ADD_LDFLAGS([x264],[-lx264])
3252       ],[
3253         AC_MSG_ERROR([the specified tree hasn't been compiled])
3254       ])
3255       LDFLAGS="${LDFLAGS_save}"
3256     else
3257       AC_MSG_RESULT(no)
3258       AC_MSG_ERROR([the specified tree doesn't have x264.h])
3259     fi
3260   else
3261     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_x264} ${THREAD_LIB}"
3262     AC_CHECK_HEADERS(x264.h, [
3263       AC_CHECK_LIB(x264, x264_encoder_open, [
3264         VLC_ADD_PLUGINS([x264])
3265         VLC_ADD_LDFLAGS([x264],[-lx264])
3266       ],[
3267         if test "${enable_x264}" = "yes"; then
3268             AC_MSG_ERROR([Could not find libx264 on your system: you may get it from http://www.videolan.org/x264.html])
3269           fi
3270       ])
3271     ])
3272     LDFLAGS="${LDFLAGS_save}"
3273   fi
3274 fi
3275
3276 dnl
3277 dnl  CMML plugin
3278 dnl
3279 AC_ARG_ENABLE(cmml,
3280   [  --enable-cmml           CMML support (default enabled)])
3281 if test "${enable_cmml}" != "no"
3282 then
3283   VLC_ADD_PLUGINS([cmml])
3284 fi
3285
3286
3287 dnl
3288 dnl  Video plugins
3289 dnl
3290
3291 AC_ARG_WITH(,[Video plugins:])
3292
3293 dnl Check for DPMS
3294 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
3295   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3296   AC_CHECK_HEADERS(X11/extensions/dpms.h, [
3297     AC_MSG_CHECKING(for DPMSInfo in X11/extensions/dpms.h)
3298     AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
3299       AC_MSG_RESULT(yes)
3300       AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
3301                 Define if <X11/extensions/dpms.h> defines DPMSInfo.)
3302     ],[
3303       AC_MSG_RESULT(no)
3304     ])
3305   ],,[
3306     #include <X11/Xlib.h>
3307   ])
3308   CPPFLAGS="${CPPFLAGS_save}"
3309 fi
3310
3311 dnl
3312 dnl  X11 module
3313 dnl  (enabled by default except on win32)
3314 dnl
3315 AC_ARG_ENABLE(x11,
3316   [  --enable-x11            X11 support (default enabled)])
3317 if test "${enable_x11}" != "no" &&
3318   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3319    test "${enable_x11}" = "yes"); then
3320   CPPFLAGS="${CPPFLAGS_save} ${X_FLAGS}"
3321   AC_CHECK_HEADERS(X11/Xlib.h, [
3322     VLC_ADD_PLUGINS([x11])
3323     VLC_ADD_LDFLAGS([x11],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext])
3324     VLC_ADD_CPPFLAGS([x11],[${X_CFLAGS}])
3325   ])
3326   CPPFLAGS="${CPPFLAGS_save}"
3327 fi
3328
3329 dnl
3330 dnl  XVideo module
3331 dnl  (enabled by default except on win32)
3332 dnl
3333 AC_ARG_ENABLE(xvideo,
3334   [  --enable-xvideo         XVideo support (default enabled)])
3335 if test "${enable_xvideo}" != "no" &&
3336   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3337    test "${enable_xvideo}" = "yes"); then
3338   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3339   AC_CHECK_HEADERS(X11/extensions/Xv.h, [
3340     CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3341     AC_CHECK_LIB(Xv,XvPutImage,[
3342       # If libXv.so is available, xvideo can be a plugin. Otherwise, we
3343       # test for libXv_pic.
3344       if test -f /usr/X11R6/lib/libXv.so -o -f "${x_libraries}"/libXv.so; then
3345         VLC_ADD_PLUGINS([xvideo])
3346         VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3347         VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3348       else
3349         AC_CHECK_LIB(Xv_pic,XvPutImage,[
3350           VLC_ADD_PLUGINS([xvideo])
3351           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3352           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv_pic])
3353         ],[
3354           VLC_ADD_BUILTINS([xvideo])
3355           VLC_ADD_LDFLAGS([xvideo],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lXv])
3356           VLC_ADD_CPPFLAGS([xvideo],[${X_CFLAGS}])
3357         ])
3358       fi
3359     ])
3360     CFLAGS="${CFLAGS_save}"
3361   ]
3362   CPPFLAGS="${CPPFLAGS_save}")
3363 fi
3364
3365 dnl
3366 dnl  GLX module
3367 dnl  (enabled by default except on win32)
3368 dnl
3369 AC_ARG_ENABLE(glx,
3370   [  --enable-glx            X11 OpenGL (GLX) support (default enabled)])
3371 if test "${enable_glx}" != "no" &&
3372   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3373    test "${enable_glx}" = "yes"); then
3374   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3375   AC_CHECK_HEADERS(X11/Xlib.h, [
3376     AC_CHECK_HEADERS(GL/glx.h, [
3377       VLC_ADD_PLUGINS([glx])
3378       VLC_ADD_LDFLAGS([glx],[${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext -lGL -lGLU])
3379       VLC_ADD_CPPFLAGS([glx],[${X_CFLAGS}])
3380   ]) ])
3381   CPPFLAGS="${CPPFLAGS_save}"
3382 fi
3383
3384 dnl
3385 dnl  Check for the Xinerama extension
3386 dnl
3387 if test "${enable_xvideo}" != "no" &&
3388   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3389    test "${enable_xvideo}" = "yes"); then
3390   ac_cv_have_xinerama="no"
3391   CPPFLAGS="${CPPFLAGS_save} ${X_CFLAGS}"
3392   CFLAGS="${CFLAGS_save} ${X_LIBS} ${X_PRE_LIBS} -lX11 -lXext"
3393   AC_CHECK_HEADERS(X11/extensions/Xinerama.h,[
3394     AC_CHECK_LIB(Xinerama_pic, XineramaQueryExtension,[
3395       VLC_ADD_LDFLAGS([xvideo],[-lXinerama_pic])
3396       VLC_ADD_LDFLAGS([x11],[-lXinerama_pic])
3397       VLC_ADD_LDFLAGS([glx],[-lXinerama_pic])
3398       ac_cv_have_xinerama="yes"
3399     ],[
3400       AC_CHECK_LIB(Xinerama, XineramaQueryExtension,[
3401         VLC_ADD_LDFLAGS([xvideo],[-lXinerama])
3402         VLC_ADD_LDFLAGS([x11],[-lXinerama])
3403         VLC_ADD_LDFLAGS([glx],[-lXinerama])
3404         ac_cv_have_xinerama="yes"
3405       ])
3406     ])
3407   ])
3408   if test "${ac_cv_have_xinerama}" = "yes"; then
3409     AC_DEFINE(HAVE_XINERAMA, 1, [Define this if you have libXinerama installed])
3410   fi
3411   CFLAGS="${CFLAGS_save}"
3412   CPPFLAGS="${CPPFLAGS_save}"
3413 fi
3414
3415 dnl
3416 dnl  OpenGL module
3417 dnl  (enabled by default except on beos)
3418 dnl
3419 AC_ARG_ENABLE(opengl,
3420   [  --enable-opengl         OpenGL support (default enabled)])
3421 if test "${enable_opengl}" != "no" &&
3422    test "${SYS}" != "beos" -a "${SYS}" != "mingwce"; then
3423   if test "${SYS}" != "darwin"; then
3424     AC_CHECK_HEADERS(GL/gl.h, [
3425       VLC_ADD_PLUGINS([opengl])
3426       if test "${SYS}" != "mingw32"; then
3427         VLC_ADD_LDFLAGS([opengl],[${X_LIBS} -lGL -lGLU])
3428       else
3429         VLC_ADD_LDFLAGS([opengl],[-lopengl32])
3430       fi
3431     ])
3432   else
3433     dnl OS X special case (no GL/gl.h but OpenGL/gl.h)
3434     VLC_ADD_PLUGINS([opengl])
3435     VLC_ADD_LDFLAGS([opengl],[-framework OpenGL])
3436   fi
3437 fi
3438
3439 dnl
3440 dnl  SDL module
3441 dnl
3442 AC_ARG_ENABLE(sdl,
3443   [  --enable-sdl            SDL support (default enabled)])
3444 if test "${enable_sdl}" != "no"
3445 then
3446   SDL_PATH="${PATH}"
3447   AC_ARG_WITH(sdl-config-path,
3448     [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
3449     [ if test "${with_sdl_config_path}" != "no"
3450       then
3451         SDL_PATH="${with_sdl_config_path}:${PATH}"
3452       fi ])
3453   AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, ${SDL_PATH})
3454   SDL_CONFIG="${SDL12_CONFIG}"
3455   SDL_HEADER="SDL12/SDL.h"
3456   SDL_IMAGE="SDL12/SDL_image.h"
3457   if test "${SDL_CONFIG}" = "no"
3458   then
3459     AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, ${SDL_PATH})
3460     SDL_CONFIG=${SDL11_CONFIG}
3461     SDL_HEADER="SDL11/SDL.h"
3462     SDL_IMAGE="SDL11/SDL_image.h"
3463   fi
3464   if test "${SDL_CONFIG}" = "no"
3465   then
3466     AC_PATH_PROG(SDL_CONFIG, sdl-config, no, ${SDL_PATH})
3467     SDL_HEADER="SDL/SDL.h"
3468     SDL_IMAGE="SDL/SDL_image.h"
3469   fi
3470   # check for cross-compiling
3471   SDL_PREFIX=
3472   AC_ARG_WITH(sdl-prefix,
3473     [    --with-sdl-prefix=PATH path to libsdl (needed for cross-compiling),
3474                                e.g use as:
3475                                --with-sdl-prefix=/usr/local/arm/2.95.3/arm-linux/usr)],[],[])
3476   if test "${with_sdl_prefix}" != "no" -a -n "${with_sdl_prefix}"
3477   then
3478     SDL_PREFIX="--prefix=${with_sdl_prefix}"
3479   fi
3480   if test "${SDL_CONFIG}" != "no"
3481   then
3482     # SDL on Darwin is heavily patched and can only run SDL_image
3483     if test "${SYS}" != "darwin" -a "${SYS}" != "mingw32"; then
3484       VLC_ADD_PLUGINS([vout_sdl aout_sdl])
3485     fi
3486     VLC_ADD_CFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --cflags | sed 's,SDL,,'`])
3487     VLC_ADD_LDFLAGS([vout_sdl aout_sdl sdl_image],[`${SDL_CONFIG} ${SDL_PREFIX} --libs | sed 's,-rdynamic,,'`])
3488     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_vout_sdl}"
3489     AC_CHECK_HEADERS(${SDL_HEADER}, AC_DEFINE_UNQUOTED(SDL_INCLUDE_FILE,
3490       <${SDL_HEADER}>, Indicate whether we should use SDL/SDL.h or SDL11/SDL.h),
3491       [ AC_CHECK_HEADERS(SDL.h, AC_DEFINE(SDL_INCLUDE_FILE, <SDL.h>,
3492           As a last resort we also test for SDL.h presence),
3493       [ AC_MSG_ERROR([The development package for SDL is not installed.
3494 Please install it and try again. Alternatively you can also configure with
3495 --disable-sdl.])
3496       ])])
3497     AC_CHECK_HEADERS(${SDL_IMAGE}, [AC_DEFINE_UNQUOTED(SDL_IMAGE_INCLUDE_FILE,
3498       <${SDL_IMAGE}>, Indicate the path of SDL_image.h)
3499       VLC_ADD_PLUGINS([sdl_image])
3500       AC_CHECK_LIB(png, png_set_rows,
3501         [VLC_ADD_LDFLAGS([sdl_image],[-lpng -lz])],[],[-lz])
3502       AC_CHECK_LIB(jpeg, jpeg_start_decompress,
3503         [VLC_ADD_LDFLAGS([sdl_image],[-ljpeg])])
3504       AC_CHECK_LIB(tiff, TIFFClientOpen,
3505         [VLC_ADD_LDFLAGS([sdl_image],[-ltiff])])
3506       VLC_ADD_LDFLAGS([sdl_image], [-lSDL_image])],
3507       [ AC_CHECK_HEADERS(SDL_image.h, AC_DEFINE(SDL_IMAGE_INCLUDE_FILE, <SDL_image.h>,
3508           As a last resort we also test for SDL_image.h presence),
3509       [ AC_MSG_WARN([The development package for SDL_image is not installed.
3510 You should install it alongside your SDL package.])
3511       ])])
3512     CPPFLAGS="${CPPFLAGS_save}"
3513     if expr 1.1.5 \> `${SDL_CONFIG} --version` >/dev/null
3514     then
3515       AC_MSG_ERROR([The development package for SDL is not installed.
3516 Please install it and try again. Alternatively you can also configure with
3517 --disable-sdl.])
3518     fi
3519
3520   elif test "${enable_sdl}" =  "yes"
3521   then
3522     AC_MSG_ERROR([I couldn't find the SDL package. You can download libSDL
3523 from http://www.libsdl.org/, or configure with --disable-sdl. Have a nice day.
3524     ])
3525   fi
3526 fi
3527
3528 dnl
3529 dnl  freetype module
3530 dnl
3531 AC_ARG_ENABLE(freetype,
3532   [  --enable-freetype       freetype support (default enabled)])
3533 AC_ARG_ENABLE(fribidi,
3534   [  --enable-fribidi        fribidi support (default enabled)])
3535 if test "${enable_freetype}" != "no"
3536 then
3537   FREETYPE_PATH="${PATH}"
3538   AC_ARG_WITH(freetype-config-path,
3539     [    --with-freetype-config-path=PATH freetype-config path (default search in \$PATH)],
3540     [ if test "${with_freetype_config_path}" != "no"
3541       then
3542         FREETYPE_PATH="${with_freetype_config_path}:${PATH}"
3543       fi ])
3544   AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no, ${FREETYPE_PATH})
3545
3546   if test "${FREETYPE_CONFIG}" != "no"
3547   then
3548     VLC_ADD_PLUGINS([freetype])
3549     VLC_ADD_CFLAGS([freetype],[`${FREETYPE_CONFIG} --cflags`])
3550     VLC_ADD_LDFLAGS([freetype],[`${FREETYPE_CONFIG} --libs`])
3551     AC_CHECK_HEADERS(Carbon/Carbon.h,
3552       [VLC_ADD_LDFLAGS([freetype],[-framework Carbon])])
3553   elif test "${enable_freetype}" =  "yes"
3554   then
3555     AC_MSG_ERROR([I couldn't find the freetype package. You can download libfreetype2
3556 from http://www.freetype.org/, or configure with --disable-freetype. Have a nice day.
3557     ])
3558   fi
3559
3560   dnl fribidi support
3561   if test "${enable_fribidi}" != "no"
3562   then
3563     FRIBIDI_PATH="${PATH}"
3564     AC_ARG_WITH(fribidi-config-path,
3565       [    --with-fribidi-config-path=PATH fribidi-config path (default search in \$PATH)],
3566       [ if test "${with_fribidi_config_path}" != "no"
3567         then
3568           FRIBIDI_PATH="${with_fribidi_config_path}:${PATH}"
3569         fi ])
3570     AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no, ${FRIBIDI_PATH})
3571
3572     if test "${FRIBIDI_CONFIG}" != "no"
3573     then
3574       VLC_ADD_CFLAGS([freetype], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3575       VLC_ADD_CPPFLAGS([skins2], [`${FRIBIDI_CONFIG} --cflags` -DHAVE_FRIBIDI])
3576       VLC_ADD_LDFLAGS([freetype], [`${FRIBIDI_CONFIG} --libs`])
3577       VLC_ADD_LDFLAGS([skins2], [`${FRIBIDI_CONFIG} --libs`])
3578     fi
3579   fi
3580 fi
3581
3582 dnl
3583 dnl  libxml2 module
3584 dnl
3585 AC_ARG_ENABLE(libxml2,
3586   [  --enable-libxml2        libxml2 support (default enabled)])
3587 if test "${enable_libxml2}" != "no"
3588 then
3589   XML2_PATH="${PATH}"
3590   AC_ARG_WITH(xml2-config-path,
3591     [    --with-xml2-config-path=PATH xml2-config path (default search in \$PATH)],
3592     [ if test "${with_xml2_config_path}" != "no"; then
3593         XML2_PATH="${with_xml2_config_path}:${PATH}"
3594       fi ])
3595   AC_PATH_PROG(XML2_CONFIG, xml2-config, no, ${XML2_PATH})
3596   if test "${XML2_CONFIG}" != "no"; then
3597     VLC_ADD_CPPFLAGS([xml],[`${XML2_CONFIG} --cflags`])
3598     VLC_ADD_LDFLAGS([xml],[`${XML2_CONFIG} --libs`])
3599     dnl depends on the xmlTextReader extension
3600     CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_xml}"
3601     LDFLAGS="${LDFLAGS_save} ${LDFLAGS_xml}"
3602     AC_CHECK_LIB(xml2,xmlTextReaderConstName,[
3603       AC_EGREP_HEADER(xmlTextReaderConstName,libxml/xmlreader.h,[
3604         VLC_ADD_PLUGINS([xml]) ],[
3605           AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3606           if test "${enable_xml2}" = "yes"; then
3607             AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3608           fi])
3609        ],[
3610       AC_MSG_WARN([libxml2 missing the xmlTextReader extension, you should update your version])
3611       if test "${enable_xml2}" = "yes"; then
3612         AC_MSG_ERROR([libxml2 missing the xmlTextReader extension])
3613       fi])
3614     LDFLAGS="${LDFLAGS_save}"
3615     CPPFLAGS="${CPPFLAGS_save}"
3616   else
3617     if test "${enable_xml2}" = "yes"; then
3618       AC_MSG_ERROR([Could not find libxml2])
3619     fi
3620   fi
3621 fi
3622
3623 dnl
3624 dnl  SVG module
3625 dnl
3626 AC_ARG_ENABLE(svg,
3627   [  --enable-svg            SVG support (default disabled)])
3628 if test "${enable_svg}" = "yes"
3629 then
3630   PKG_CHECK_MODULES(SVG, 
3631         librsvg-2.0 >= 2.5.0,
3632         [
3633           VLC_ADD_LDFLAGS([svg],[$SVG_LIBS])
3634           VLC_ADD_CFLAGS([svg],[$SVG_CFLAGS])
3635           VLC_ADD_PLUGINS([svg]) ],
3636         [AC_MSG_WARN(SVG library not found)])
3637 fi
3638
3639 dnl
3640 dnl Snapshot vout module (with cache)
3641 dnl
3642 AC_ARG_ENABLE(snapshot,
3643   [  --enable-snapshot       snapshot module (default disabled)])
3644 if test "${enable_snapshot}" = "yes"
3645 then
3646   VLC_ADD_PLUGINS([snapshot])
3647 fi
3648
3649 dnl
3650 dnl  Qt Embedded module
3651 dnl  (disabled by default)
3652 dnl
3653 AC_ARG_ENABLE(qte,
3654   [  --enable-qte            QT Embedded support (default disabled)])
3655 if test "${enable_qte}" = "yes"
3656 then
3657   AC_ARG_WITH(qte,
3658   [    --with-qte=PATH       Qt Embedded headers and libraries])
3659   if test "${with_qte}" != "no" -a -n "${with_qte}"
3660   then
3661     VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3662     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])
3663   else
3664     VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
3665     VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'` -DQT_QWS_IPAQ -DQWS -fno-exceptions -fno-rtti])
3666   fi
3667   VLC_ADD_PLUGINS([qte])
3668   NEED_QTE_MAIN=yes
3669   CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
3670   AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
3671     AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
3672   ] )
3673   CPPFLAGS="${CPPFLAGS_save}"
3674 fi
3675
3676 dnl
3677 dnl  Qt Video output module
3678 dnl  (disabled by default)
3679 dnl
3680 dnl AC_ARG_ENABLE(qt_video,
3681 dnl   [  --enable-qt_video            QT Video Output support (default disabled)])
3682 dnl if test "${enable_qt_video}" = "yes"
3683 dnl then
3684 dnl  VLC_ADD_PLUGINS([qt_video])
3685 dnl  VLC_ADD_LDFLAGS([qt_video],[-L${QTDIR}/lib])
3686 dnl  LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt_video}"
3687 dnl   AC_CHECK_LIB(qt-mt,main,[
3688 dnl    VLC_ADD_LDFLAGS([qt_video],[-lqt-mt])
3689 dnl  ],[
3690 dnl    AC_CHECK_LIB(qt,main,[
3691 dnl      VLC_ADD_LDFLAGS([qt_video],[-lqt])
3692 dnl    ])
3693 dnl  ])
3694 dnl  NEED_QTE_MAIN=yes
3695 dnl  LDFLAGS="${LDFLAGS_save}"
3696 dnl  VLC_ADD_CXXFLAGS([qt_video],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
3697 dnl fi
3698
3699 dnl
3700 dnl Roku HD1000 Video output module
3701 dnl
3702 AC_ARG_ENABLE(hd1000v,
3703   [  --enable-hd1000v        HD1000 Video Output module (default enabled on HD1000)])
3704 if test "${enable_hd1000v}" != "no" -a "${CXX}" != "" &&
3705   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3706    test "${enable_hd1000v}" = "yes"); then
3707   AC_LANG_PUSH([C++])
3708   AC_CHECK_HEADERS([cascade/graphics/CascadeScreen.h cascade/graphics/CascadeBitmap.h],
3709   [
3710     can_build_roku="yes"
3711   ],
3712   [
3713     can_build_roku="no"
3714     AC_MSG_WARN([Not building Roku HD1000 compatible video output])
3715   ])
3716   if test "$can_build_roku" = "yes"
3717   then
3718     VLC_ADD_PLUGINS([hd1000v])
3719     VLC_ADD_LDFLAGS([hd1000v],[-lCascade -ldvbpsi -lmad])
3720   fi
3721   AC_LANG_POP([C++])
3722 fi
3723
3724 dnl
3725 dnl  Windows DirectX module
3726 dnl
3727 AC_ARG_ENABLE(directx,
3728   [  --enable-directx        Win32 DirectX support (default enabled on Win32)])
3729 if test "${enable_directx}" != "no"
3730 then
3731   if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "cygwin"
3732   then
3733     AC_ARG_WITH(directx,
3734     [    --with-directx=PATH   Win32 DirectX headers])
3735     if test -z "${with_directx}"
3736     then
3737       AC_CHECK_HEADERS(ddraw.h,
3738       [ VLC_ADD_PLUGINS([vout_directx aout_directx])
3739         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3740         dnl to be moved when dependance is removed
3741         AC_CHECK_HEADERS(GL/gl.h, [
3742             VLC_ADD_PLUGINS([glwin32])
3743             VLC_ADD_LDFLAGS([glwin32],[-lopengl32 -lgdi32])
3744         ]) ])
3745     else
3746       AC_MSG_CHECKING(for directX headers in ${with_directx})
3747       if test -f ${with_directx}/ddraw.h
3748       then
3749         VLC_ADD_PLUGINS([vout_directx aout_directx])
3750         VLC_ADD_CPPFLAGS([vout_directx aout_directx],[-I${with_directx}])
3751         VLC_ADD_LDFLAGS([vout_directx],[-lgdi32])
3752         AC_MSG_RESULT(yes)
3753       else
3754         AC_MSG_RESULT(no)
3755         AC_MSG_ERROR([Cannot find ${with_directx}/ddraw.h!])
3756       fi
3757     fi
3758   fi
3759 fi
3760
3761 dnl
3762 dnl  Linux framebuffer module
3763 dnl
3764 AC_ARG_ENABLE(fb,
3765   [  --enable-fb             Linux framebuffer support (default enabled on Linux)])
3766     if test "${enable_fb}" != "no"
3767     then
3768       AC_CHECK_HEADERS(linux/fb.h, [
3769         VLC_ADD_PLUGINS([fb])
3770       ])
3771     fi
3772
3773 dnl
3774 dnl  Linux MGA module
3775 dnl
3776 AC_ARG_ENABLE(mga,
3777   [  --enable-mga            Linux kernel Matrox support (default disabled)],
3778   [ if test "${enable_mga}" = "yes"
3779     then
3780       VLC_ADD_PLUGINS([mga])
3781     fi ])
3782
3783 dnl
3784 dnl  SVGAlib module
3785 dnl
3786 AC_ARG_ENABLE(svgalib,
3787   [  --enable-svgalib        SVGAlib support (default disabled)])
3788 if test "${enable_svgalib}" = "yes"
3789 then
3790   VLC_ADD_PLUGINS([svgalib])
3791   VLC_ADD_LDFLAGS([svgalib],[-lvgagl -lvga])
3792 fi
3793
3794 dnl
3795 dnl  DirectFB module
3796 dnl
3797 AC_ARG_ENABLE(directfb,
3798   [  --enable-directfb       DirectFB support (default disabled)])
3799 if test "${enable_directfb}" = "yes"
3800 then
3801   if test "${with_directfb}" = "no"
3802   then
3803     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3804     if test "${have_directfb}"= "true"
3805     then
3806         VLC_ADD_PLUGINS([directfb])
3807         VLC_ADD_LDFLAGS([directfb],[-ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3808         VLC_ADD_CPPFLAGS([directfb],[-I/usr/include/directfb -D_REENTRANT])
3809     else
3810         AC_MSG_ERROR([cannot find /usr/include/directfb headers, make sure directfb is installed on your system or use --disable-directfb])
3811     fi
3812   else
3813     CPPFLAGS_save="${CPPFLAGS}"
3814     CPPFLAGS="${CPPFLAGS} -I${with_directfb}/include"
3815     AC_CHECK_HEADER(directfb.h, have_directfb="true", have_directfb="false")
3816     CPPFLAGS="${CPPFLAGS_save}"
3817     AC_ARG_WITH(directfb,
3818         [    --with-directfb=PATH  path to directfb],
3819         [ if test "${with_directfb}" != "no" -a -n "${with_directfb}"
3820         then
3821             VLC_ADD_PLUGINS([directfb])
3822             VLC_ADD_CPPFLAGS([directfb],[-I${with_directfb}/include -D_REENTRANT])
3823             VLC_ADD_LDFLAGS([directfb],[-L${with_directfb}/lib -ldirectfb -lfusion -ldirect -lpthread -ljpeg -lz -ldl])
3824         fi ],
3825         [ AC_MSG_ERROR([cannot find directfb headers in ${with_directfb}/include]) ])
3826   fi
3827 fi
3828
3829 dnl
3830 dnl  GGI module
3831 dnl
3832 AC_ARG_ENABLE(ggi,
3833   [  --enable-ggi            GGI support (default disabled)])
3834 if test "${enable_ggi}" = "yes"
3835 then
3836   VLC_ADD_PLUGINS([ggi])
3837   VLC_ADD_LDFLAGS([ggi],[-lggi])
3838   AC_ARG_WITH(ggi,
3839     [    --with-ggi=PATH       path to libggi],
3840     [ if test "${with_ggi}" != "no" -a -n "${with_ggi}"
3841       then
3842         VLC_ADD_CPPFLAGS([ggi],[-I${with_ggi}/include])
3843         VLC_ADD_LDFLAGS([ggi],[-L${with_ggi}/lib])
3844       fi ])
3845 fi
3846
3847 dnl
3848 dnl  Glide module
3849 dnl
3850 AC_ARG_ENABLE(glide,
3851   [  --enable-glide          Glide (3dfx) support (default disabled)])
3852 if test "${enable_glide}" = "yes"
3853 then
3854   VLC_ADD_PLUGINS([glide])
3855   VLC_ADD_LDFLAGS([glide],[-lglide2x -lm])
3856   VLC_ADD_CPPFLAGS([glide],[-I/usr/include/glide])
3857   AC_ARG_WITH(glide,
3858     [    --with-glide=PATH     path to libglide],
3859     [ if test "${with_glide}" != "no" -a -n "${with_glide}"
3860       then
3861         VLC_ADD_CPPFLAGS([glide],[-I${with_glide}/include])
3862         VLC_ADD_LDFLAGS([glide],[-L${with_glide}/lib])
3863       fi ])
3864 fi
3865
3866 dnl
3867 dnl  AA plugin
3868 dnl
3869 AC_ARG_ENABLE(aa,
3870   [  --enable-aa             aalib output (default disabled)])
3871 if test "${enable_aa}" = "yes"
3872 then
3873   AC_CHECK_HEADER(aalib.h,have_aa="true",have_aa="false")
3874   if test "${have_aa}" = "true"
3875   then
3876     VLC_ADD_PLUGINS([aa])
3877     VLC_ADD_LDFLAGS([aa],[-laa])
3878   fi
3879 fi
3880
3881 dnl
3882 dnl  libcaca plugin
3883 dnl
3884 AC_ARG_ENABLE(caca,
3885   [  --enable-caca           libcaca output (default disabled)])
3886 if test "${enable_caca}" = "yes"
3887 then
3888   CACA_PATH="${PATH}"
3889   AC_ARG_WITH(caca-config-path,
3890     [    --with-caca-config-path=PATH caca-config path (default search in \$PATH)],
3891     [ if test "${with_caca_config_path}" != "no"
3892       then
3893         CACA_PATH="${with_caca_config_path}:${PATH}"
3894       fi ])
3895   AC_PATH_PROG(CACA_CONFIG, caca-config, no, ${CACA_PATH})
3896   if test "${CACA_CONFIG}" != "no"
3897   then
3898     VLC_ADD_PLUGINS([caca])
3899     VLC_ADD_CFLAGS([caca],[`${CACA_CONFIG} --cflags`])
3900     VLC_ADD_LDFLAGS([caca],[`${CACA_CONFIG} --plugin-libs`])
3901   fi
3902 fi
3903
3904 dnl
3905 dnl  win32 GDI plugin
3906 dnl
3907 AC_ARG_ENABLE(wingdi,
3908   [  --enable-wingdi         Win32 GDI module (default enabled on Win32)])
3909 if test "${enable_wingdi}" != "no"; then
3910   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
3911     VLC_ADD_PLUGINS([wingdi])
3912     VLC_ADD_LDFLAGS([wingdi],[-lgdi32])
3913   fi
3914   if test "${SYS}" = "mingwce"; then
3915     VLC_ADD_PLUGINS([wingdi wingapi])
3916   fi
3917 fi
3918
3919 dnl
3920 dnl  Audio plugins
3921 dnl
3922
3923 AC_ARG_WITH(,[Audio plugins:])
3924
3925 dnl
3926 dnl  OSS /dev/dsp module (enabled by default except on win32)
3927 dnl
3928 AC_ARG_ENABLE(oss,
3929   [  --enable-oss            Linux OSS /dev/dsp support (enabled on Linux)])
3930
3931 if test "${enable_oss}" != "no" &&
3932   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
3933    test "${enable_oss}" = "yes")
3934 then
3935   AC_CHECK_HEADERS(soundcard.h sys/soundcard.h machine/soundcard.h, [
3936     VLC_ADD_PLUGINS([oss])
3937     AC_CHECK_LIB(ossaudio,main,VLC_ADD_LDFLAGS([oss],[-lossaudio]))
3938   ])
3939 fi
3940
3941 dnl
3942 dnl  Esound module
3943 dnl
3944 AC_ARG_ENABLE(esd,
3945   [  --enable-esd            Esound library support (default disabled)],
3946   [if test "${enable_esd}" = "yes"
3947    then
3948      AC_PATH_PROG(ESD_CONFIG, esd-config, no)
3949      if test "${ESD_CONFIG}" != "no"
3950      then
3951        VLC_ADD_PLUGINS([esd])
3952        VLC_ADD_CFLAGS([esd],[`${ESD_CONFIG} --cflags`])
3953        VLC_ADD_LDFLAGS([esd],[`${ESD_CONFIG} --libs`])
3954      fi
3955    fi])
3956
3957 dnl
3958 dnl  Portaudio module
3959 dnl
3960 AC_ARG_ENABLE(portaudio,
3961   [  --enable-portaudio      Portaudio library support (default disabled)],
3962   [if test "${enable_portaudio}" = "yes"
3963    then
3964      VLC_ADD_PLUGINS([portaudio])
3965      VLC_ADD_CXXFLAGS([portaudio],[])
3966      if test "${SYS}" = "mingw32"; then
3967         VLC_ADD_LDFLAGS([portaudio],[-lportaudio -lwinmm -lole32])
3968      else
3969         VLC_ADD_LDFLAGS([portaudio],[-lportaudio])
3970      fi
3971    fi])
3972
3973 dnl
3974 dnl  aRts module -- broken (freeze wxWidgets)
3975 dnl
3976 AC_ARG_ENABLE(arts,
3977  [  --enable-arts           aRts sound server (default disabled)],
3978  [if test "${enable_arts}" = "yes"
3979   then
3980     AC_PATH_PROG(ARTS_CONFIG, artsc-config, no)
3981     if test "${ARTS_CONFIG}" != "no"
3982     then
3983       VLC_ADD_PLUGINS([arts])
3984       VLC_ADD_CFLAGS([arts],[`${ARTS_CONFIG} --cflags`])
3985       VLC_ADD_LDFLAGS([arts],[`${ARTS_CONFIG} --libs `])
3986     fi
3987   fi])
3988
3989 dnl
3990 dnl  ALSA module
3991 dnl
3992 AC_ARG_ENABLE(alsa,
3993   [  --enable-alsa           ALSA sound support for Linux (default enabled)])
3994 if test "${enable_alsa}" != "no"
3995 then
3996   AC_CHECK_HEADER(alsa/asoundlib.h, AC_CHECK_LIB(asound, main, have_alsa="true", have_alsa="false"),have_alsa="false")
3997   if test "${have_alsa}" = "true"
3998   then
3999     CFLAGS="${CFLAGS_save}"
4000     AC_TRY_COMPILE([#define ALSA_PCM_NEW_HW_PARAMS_API
4001                     #define ALSA_PCM_NEW_SW_PARAMS_API
4002                     #include <alsa/asoundlib.h>],
4003        [void foo() { snd_pcm_hw_params_get_period_time(0,0,0); }],
4004         AC_DEFINE(HAVE_ALSA_NEW_API, 1, Define if ALSA is at least rc4))
4005     VLC_ADD_PLUGINS([alsa])
4006     VLC_ADD_LDFLAGS([alsa],[-lasound -lm -ldl])
4007   else
4008     if test "${enable_alsa}" = "yes"; then
4009       AC_MSG_ERROR([Could not find ALSA development headers])
4010     fi
4011   fi
4012 fi
4013
4014 dnl
4015 dnl  win32 waveOut plugin
4016 dnl
4017 AC_ARG_ENABLE(waveout,
4018   [  --enable-waveout        Win32 waveOut module (default enabled on Win32)])
4019 if test "${enable_waveout}" != "no"; then
4020   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
4021     VLC_ADD_PLUGINS([waveout])
4022     VLC_ADD_LDFLAGS([waveout],[-lwinmm])
4023   fi
4024   if test "${SYS}" = "mingwce"; then
4025     VLC_ADD_PLUGINS([waveout])
4026   fi
4027 fi
4028
4029 dnl
4030 dnl  CoreAudio plugin
4031 dnl
4032 AC_ARG_ENABLE(macosx-audio,
4033   [  --enable-macosx-audio   Mac OS X audio module (default enabled on MacOS X)])
4034 if test "${enable_macosx-audio}" != "no" &&
4035   (test "${SYS}" = "darwin" || test "${enable_macosx-audio}" = "yes")
4036 then
4037   AC_CHECK_HEADERS(CoreAudio/CoreAudio.h, 
4038     [ VLC_ADD_BUILTINS([auhal])
4039       VLC_ADD_LDFLAGS([auhal],[-framework CoreAudio -framework AudioUnit -framework AudioToolbox])
4040     ], [ AC_MSG_ERROR([cannot find CoreAudio headers]) ])
4041 fi
4042
4043 dnl
4044 dnl  Roku HD1000 audio
4045 dnl
4046 AC_ARG_ENABLE(hd1000a,
4047   [  --enable-hd1000a        HD1000 audio module (default enabled on HD1000)])
4048 if test "${enable_hd1000a}" != "no" -a "${CXX}" != "" &&
4049   (test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce" ||
4050    test "${enable_hd1000a}" = "yes")
4051 then
4052   AC_LANG_PUSH([C++])
4053   AC_CHECK_HEADERS(deschutes/libraries/hdmachinex225/PCMAudioPlayer.h, [
4054     VLC_ADD_PLUGINS([hd1000a])
4055     AC_CHECK_LIB(HDMachineX225,main,VLC_ADD_LDFLAGS([hd1000a],[-lHDMachineX225]))  ])
4056   AC_LANG_POP([C++])
4057 fi
4058
4059 dnl
4060 dnl  JACK module
4061 dnl
4062 AC_ARG_ENABLE(jack,
4063  [  --enable-jack           JACK audio module (default disabled)],
4064  [if test "${enable_jack}" = "yes"
4065   then
4066     AC_CHECK_HEADERS(jack/jack.h, [
4067       VLC_ADD_PLUGINS([jack])
4068       VLC_ADD_LDFLAGS([jack],[-ljack]) ])
4069   fi])
4070
4071 dnl
4072 dnl  CyberLink for C++ UPnP stack
4073 dnl
4074 AC_ARG_ENABLE(cyberlink,
4075   [  --enable-cyberlink      CyberLink for C++ UPnP stack (default disabled)])
4076 AS_IF([test "${CXX}" != "" -a "${enable_cyberlink}" = "yes" || (test "${enable_cyberlink}" != "no")], [
4077   AC_ARG_WITH(cyberlink-tree,
4078     [    --with-cyberlink-tree=PATH CyberLink for C++ tree for static linking])
4079
4080   dnl
4081   dnl test for --with-cyberlink-tree
4082   dnl
4083   AS_IF([test ! -z "${with_cyberlink_tree}" -a "${CXX}" != ""], [
4084     AC_LANG_PUSH(C++)
4085     real_cyberlink_tree="`cd ${with_cyberlink_tree} 2>/dev/null && pwd`"
4086     AS_IF([test -z "${real_cyberlink_tree}"], [
4087       dnl  The given directory can't be found
4088       AC_MSG_RESULT(no)
4089       AC_MSG_ERROR([cannot cd to ${with_cyberlink_tree}])
4090     ])
4091     CPPFLAGS_save="${CPPFLAGS}"
4092     CPPFLAGS_cyberlink="-I${real_cyberlink_tree}/include"
4093     CPPFLAGS="${CPPFLAGS} ${CPPFLAGS_cyberlink}"
4094     AC_CHECK_HEADERS([cybergarage/upnp/MediaServer.h],
4095       [ VLC_ADD_CXXFLAGS([upnp], [${CPPFLAGS_cyberlink}])
4096         VLC_ADD_PLUGINS([upnp]) 
4097       ],[
4098         AC_MSG_ERROR([cannot find CyberLink for C++ headers])
4099       ])
4100     AC_MSG_CHECKING(for libclink.a in ${with_cyberlink_tree})
4101     AS_IF([test -f "${real_cyberlink_tree}/lib/unix/libclink.a"], [
4102       AC_MSG_RESULT(${real_cyberlink_tree}/lib/unix/libclink.a)
4103       dnl The mere fact that we have to make such an ugly check sucks
4104       AC_MSG_CHECKING(for XML parser to link CyberLink with)
4105       LIBS_save="$LIBS"
4106       LIBS_cclink="no"
4107       for l in "`xml2-config --libs`" -lexpat -lxerces-c; do
4108         LIBS="$LIBS_save ${real_cyberlink_tree}/lib/unix/libclink.a -lpthread $l"
4109         AC_LINK_IFELSE([AC_LANG_PROGRAM([
4110 #include <cybergarage/upnp/media/player/MediaPlayer.h>
4111 using namespace CyberLink;
4112
4113 class testclass : public SearchResponseListener, public MediaPlayer
4114 {
4115     virtual void deviceSearchResponseReceived( SSDPPacket *)
4116     {
4117     }
4118
4119     public:
4120       testclass (void)
4121       {
4122         addSearchResponseListener (this);
4123         start ();
4124       }
4125 };
4126 ],[testclass l;])],[LIBS_cclink="$l"])
4127       done
4128       LIBS="${LIBS_save}"
4129       dnl should not happen - otherwise this needs fixing - hence FAILURE
4130       AS_IF([test "${LIBS_cclink}" == "no"],
4131         [AC_MSG_FAILURE([cannot find XML parser for CyberLink])])
4132       AC_MSG_RESULT([${LIBS_cclink}])
4133       VLC_ADD_LDFLAGS([upnp], [${real_cyberlink_tree}/lib/unix/libclink.a -lpthread ${LIBS_cclink}])
4134     ], [
4135       AC_MSG_RESULT(no)
4136       AC_MSG_ERROR([cannot find ${real_cyberlink_tree}/lib/unix/libclink.a, make sure you compiled CyberLink for C++ in ${with_cyberlink_tree}])
4137     ])
4138     CPPFLAGS="${CPPFLAGS_save}"
4139     AC_LANG_POP([C++])
4140   ])
4141 ])
4142
4143 dnl
4144 dnl  Interface plugins
4145 dnl
4146
4147 AC_ARG_WITH(,[Interface plugins:])
4148
4149 dnl special case for BeOS
4150 if test "${SYS}" = "beos"
4151 then
4152     VLC_ADD_BUILTINS([beos])
4153 fi
4154
4155 dnl
4156 dnl Skins2 module
4157 dnl
4158 AC_ARG_ENABLE(skins2,
4159   [  --enable-skins2         Skins2 interface module (experimental)])
4160 if test "${enable_skins2}" = "yes" ||
4161   (test "${SYS}" != "darwin" && test "${SYS}" != "beos" &&
4162    test "${SYS}" != "mingwce" && test "${enable_skins2}" != "no"); then
4163
4164   dnl test for the required libraries
4165   skins2_missing_lib="no"
4166
4167   dnl freetype
4168   if test "${FREETYPE_CONFIG}" != "no"; then
4169     VLC_ADD_CPPFLAGS([skins2],[`${FREETYPE_CONFIG} --cflags`])
4170     VLC_ADD_LDFLAGS([skins2],[`${FREETYPE_CONFIG} --libs`])
4171   else
4172     skins2_missing_lib="yes"
4173     if test "${enable_skins2}" = "yes"; then
4174       AC_MSG_ERROR([Could not find freetype (required for skins2)])
4175     fi
4176   fi
4177
4178   if test "${skins2_missing_lib}" = "no" && (test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"); then
4179     VLC_ADD_PLUGINS([skins2])
4180     ALIASES="${ALIASES} svlc"
4181     VLC_ADD_CPPFLAGS([skins2],[-U_OFF_T_ -U_off_t -Imodules/gui/skins2 -DWIN32_SKINS])
4182     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4183     VLC_ADD_LDFLAGS([skins2],[-loleaut32 -lwinspool -lwinmm -lshell32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32])
4184
4185   else if test "${skins2_missing_lib}" = "no"; then
4186     VLC_ADD_PLUGINS([skins2])
4187     ALIASES="${ALIASES} svlc"
4188     VLC_ADD_CPPFLAGS([skins2],[-Imodules/gui/skins2 ${X_CFLAGS} -DX11_SKINS])
4189     VLC_ADD_CXXFLAGS([skins2],[-O2 -fno-rtti])
4190     VLC_ADD_LDFLAGS([skins2],[${X_LIBS} ${X_PRE_LIBS} -lXext -lX11])
4191   fi fi
4192 fi
4193
4194
4195 dnl dnl
4196 dnl dnl  Gtk+ module
4197 dnl dnl
4198 dnl AC_ARG_ENABLE(gtk,
4199 dnl   [  --enable-gtk            Gtk+ support (default enabled)])
4200 dnl if test "${enable_gtk}" != "no"
4201 dnl then
4202 dnl   GTK_PATH="${PATH}"
4203 dnl   AC_ARG_WITH(gtk-config-path,
4204 dnl     [    --with-gtk-config-path=PATH gtk-config path (default search in \$PATH)],
4205 dnl     [ if test "${with_gtk_config_path}" != "no"
4206 dnl       then
4207 dnl         GTK_PATH="${with_gtk_config_path}:${PATH}"
4208 dnl       fi ])
4209 dnl   # look for gtk-config
4210 dnl   AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no, ${GTK_PATH})
4211 dnl   GTK_CONFIG=${GTK12_CONFIG}
4212 dnl   if test "${GTK_CONFIG}" = "no"
4213 dnl   then
4214 dnl     AC_PATH_PROG(GTK_CONFIG, gtk-config, no, ${GTK_PATH})
4215 dnl   fi
4216 dnl   if test "${GTK_CONFIG}" != "no"
4217 dnl   then
4218 dnl     if expr 1.2.0 \> `${GTK_CONFIG} --version` >/dev/null
4219 dnl     then
4220 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.])
4221 dnl     fi
4222 dnl     if test "${SYS}" != "mingw32"; then
4223 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk gthread`])
4224 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk gthread | sed 's,-rdynamic,,'`])
4225 dnl     else
4226 dnl       VLC_ADD_CFLAGS([gtk],[`${GTK_CONFIG} --cflags gtk`])
4227 dnl       VLC_ADD_LDFLAGS([gtk],[`${GTK_CONFIG} --libs gtk | sed 's,-rdynamic,,'`])
4228 dnl     fi
4229 dnl     # now look for the gtk.h header
4230 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gtk}"
4231 dnl     ac_cv_gtk_headers=yes
4232 dnl     AC_CHECK_HEADERS(gtk/gtk.h glib.h gdk/gdk.h, , [
4233 dnl       ac_cv_gtk_headers=no
4234 dnl       echo "Cannot find gtk development headers."
4235 dnl     ])
4236 dnl     if test "${ac_cv_gtk_headers}" = "yes"
4237 dnl     then
4238 dnl       VLC_ADD_PLUGINS([gtk])
4239 dnl       if test "${SYS}" != "mingw32"; then
4240 dnl         NEED_GTK_MAIN=yes
4241 dnl       fi
4242 dnl       ALIASES="${ALIASES} gvlc"
4243 dnl     fi
4244 dnl     CPPFLAGS="${CPPFLAGS_save}"
4245 dnl   fi
4246 dnl fi
4247 dnl 
4248 dnl
4249 dnl  Gtk+2 module ! Disabled for now as it is unusable and confuses users
4250 dnl
4251 dnl AC_ARG_ENABLE(gtk2,
4252 dnl   [  --enable-gtk2           Gtk2 support (default disabled)])
4253 dnl if test "${enable_gtk2}" = "yes"
4254 dnl then
4255 dnl   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4256 dnl   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4257 dnl   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4258 dnl   VLC_ADD_PLUGINS([gtk2])
4259 dnl   if test "${SYS}" != "mingw32"; then
4260 dnl     NEED_GTK2_MAIN=yes
4261 dnl   fi
4262 dnl fi
4263
4264 dnl
4265 dnl  PDA Gtk+2 module
4266 dnl
4267 AC_ARG_ENABLE(pda,
4268   [  --enable-pda            PDA interface needs Gtk2 support (default disabled)])
4269 if test "${enable_pda}" = "yes"
4270 then
4271   PKG_CHECK_MODULES(GTK2, [gtk+-2.0 >= 2.0.0, gthread-2.0])
4272   VLC_ADD_CFLAGS([gtk2],[${GTK2_CFLAGS}])
4273   VLC_ADD_LDFLAGS([gtk2],[${GTK2_LIBS}])
4274   VLC_ADD_CFLAGS([pda],[${GTK2_CFLAGS} ${CFLAGS_pda}])
4275   VLC_ADD_LDFLAGS([pda],[${GTK2_LIBS} ${LDFLAGS_pda}])
4276   VLC_ADD_PLUGINS([pda])
4277   if test "${SYS}" != "mingw32"; then
4278     NEED_GTK2_MAIN=yes
4279   fi
4280 fi
4281
4282 dnl dnl
4283 dnl dnl  Gnome module
4284 dnl dnl
4285 dnl AC_ARG_ENABLE(gnome,
4286 dnl   [  --enable-gnome          Gnome interface support (default disabled)],
4287 dnl   [if test "${enable_gnome}" = "yes"; then
4288 dnl     # look for gnome-config
4289 dnl     AC_PATH_PROG(GNOME_CONFIG, gnome-config, no)
4290 dnl     if test -x ${GNOME_CONFIG}
4291 dnl     then
4292 dnl        VLC_ADD_CFLAGS([gnome],[`${GNOME_CONFIG} --cflags gtk gnomeui`])
4293 dnl        VLC_ADD_LDFLAGS([gnome],[`${GNOME_CONFIG} --libs gnomeui | sed 's,-rdynamic,,'`])
4294 dnl     fi
4295 dnl     # now look for the gnome.h header
4296 dnl     CPPFLAGS="${CPPFLAGS_save} ${CFLAGS_gnome}"
4297 dnl     AC_CHECK_HEADERS(gnome.h, [
4298 dnl       VLC_ADD_PLUGINS([gnome])
4299 dnl       NEED_GTK_MAIN=yes
4300 dnl       NEED_GNOME_MAIN=yes
4301 dnl       ALIASES="${ALIASES} gnome-vlc"
4302 dnl       dnl We need this because of some moronic gnomesupport.h flavours
4303 dnl       AC_MSG_CHECKING(for strndup in gnome.h)
4304 dnl       AC_EGREP_HEADER(strndup,gnome.h,[
4305 dnl         AC_MSG_RESULT(yes)
4306 dnl         AC_DEFINE(STRNDUP_IN_GNOME_H, 1,
4307 dnl                   Define if <gnome.h> defines strndup.)],[
4308 dnl         AC_MSG_RESULT(no)])
4309 dnl      ],[
4310 dnl       AC_MSG_ERROR([Can't find gnome headers. Please install the gnome
4311 dnl developement tools or remove the --enable-gnome option])
4312 dnl      ])
4313 dnl     CPPFLAGS="${CPPFLAGS_save}"
4314 dnl   fi])
4315
4316 dnl
4317 dnl  Gnome2 module ! Disabled for know as it is unuseable and confuses users
4318 dnl
4319 dnl AC_ARG_ENABLE(gnome2,
4320 dnl   [  --enable-gnome2         Gnome2 support (default disabled)])
4321 dnl if test "${enable_gnome2}" = "yes"
4322 dnl then
4323 dnl   PKG_CHECK_MODULES(GNOME2, [libgnomeui-2.0])
4324 dnl   VLC_ADD_CFLAGS([gnome2],[${GNOME2_CFLAGS}])
4325 dnl   VLC_ADD_LDFLAGS([gnome2],[${GNOME2_LIBS}])
4326 dnl   VLC_ADD_PLUGINS([gnome2])
4327 dnl   if test "${SYS}" != "mingw32"; then
4328 dnl     NEED_GNOME2_MAIN=yes
4329 dnl   fi
4330 dnl fi
4331
4332 dnl
4333 dnl  wxWidgets module
4334 dnl
4335 AC_ARG_ENABLE(wxwidgets,
4336   [  --enable-wxwidgets      wxWidgets support (default enabled)])
4337 if test "${enable_wxwindows}" 
4338 then
4339   AC_MSG_WARN(--{en|dis}able-wxwindows is deprecated. Use --{en|dis}able-wxwidgets instead.)
4340 fi
4341
4342 if test "${enable_wxwindows}" = "no"
4343 then
4344   enable_wxwidgets="no"
4345 fi
4346 if test "${enable_wxwidgets}" != "no"
4347 then
4348   WXWIDGETS_PATH="${PATH}"
4349   AC_ARG_WITH(wx-config-path,
4350     [    --with-wx-config-path=PATH wx-config path (default search in \$PATH)],
4351     [ if test "${with_wx_config_path}" != "no"
4352       then
4353         WXWIDGETS_PATH="${with_wx_config_path}:${PATH}"
4354       fi ])
4355   WXWIDGETS_NAME="wx-config"
4356   AC_ARG_WITH(wx-config,
4357     [    --with-wx-config=NAME      wx-config name (default is wx-config)],
4358     [ if test "${with_wx_config}" != "no"
4359       then
4360         WXWIDGETS_NAME="${with_wx_config}"
4361       fi ])
4362   # look for wx-config
4363   AC_PATH_PROG(WX_CONFIG, ${WXWIDGETS_NAME}, no, ${WXWIDGETS_PATH})
4364   if test "${WX_CONFIG}" != "no" -a "${CXX}" != ""
4365   then
4366     if expr 2.3.0 \> `${WX_CONFIG} --version` >/dev/null
4367     then
4368       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.])
4369     fi
4370     AC_LANG_PUSH(C++)
4371     # Turn this error:
4372     #   playlist.cpp:1351: error: ISO C++ forbids cast to non-reference type
4373     # into a warning. However better would be to fix playlist.cpp
4374     AC_CACHE_CHECK([if \$CXX accepts -fpermissive],
4375         [ac_cv_cxx_fpermissive],
4376         [CXXFLAGS="${CXXFLAGS_save} -fpermissive"
4377          AC_TRY_COMPILE([],,ac_cv_cxx_fpermissive=yes,
4378                         ac_cv_cxx_fpermissive=no)])
4379     if test "${ac_cv_cxx_fpermissive}" = "yes"; then
4380       VLC_ADD_CXXFLAGS([wxwidgets],-fpermissive)
4381     fi
4382     VLC_ADD_LDFLAGS([wxwidgets],[`${WX_CONFIG} --libs`])
4383     VLC_ADD_CXXFLAGS([wxwidgets],[`${WX_CONFIG} --cxxflags`])
4384     if ${WX_CONFIG} --unicode
4385     then 
4386       # wxwidgets should provide the following flags but does not
4387       # the following is required to compile for win32
4388       VLC_ADD_CXXFLAGS([wxwidgets],[-D_UNICODE -DUNICODE])
4389     fi
4390     if test "$have_libcdio" = "yes"
4391     then 
4392       VLC_ADD_LDFLAGS([wxwidgets],[$LIBCDIO_LIBS])
4393       VLC_ADD_CXXFLAGS([wxwidgets],[$LIBCDIO_CFLAGS])
4394     else 
4395       AC_MSG_WARN([Probe disc disabled because ok libcdio library not found])
4396     fi
4397
4398     if test "$have_libvcdinfo" = "yes"
4399     then 
4400       VLC_ADD_LDFLAGS([wxwidgets],[$VCDINFO_LIBS])
4401       VLC_ADD_CXXFLAGS([wxwidgets],[$VCDINFO_CFLAGS])
4402     else 
4403       AC_MSG_WARN([VCD information on Probe disc disabled because ok libvcdinfo not found])
4404     fi
4405
4406     # now look for the wxprec.h header
4407     CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_wxwidgets}"
4408     ac_cv_wx_headers=yes
4409     AC_CHECK_HEADERS(wx/wxprec.h, , [
4410       ac_cv_wx_headers=no
4411       echo "Cannot find wxWidgets development headers."
4412     ])
4413     if test "${ac_cv_wx_headers}" = "yes"
4414     then
4415       VLC_ADD_PLUGINS([wxwidgets])
4416       ALIASES="${ALIASES} wxvlc"
4417     fi
4418     CPPFLAGS="${CPPFLAGS_save}"
4419     AC_LANG_POP(C++)
4420   fi
4421 fi
4422
4423 dnl
4424 dnl  WinCE GUI module
4425 dnl
4426 if test "${SYS}" = "mingwce"; then
4427   VLC_ADD_BUILTINS([wince])
4428   VLC_ADD_CXXFLAGS([wince],[])
4429   VLC_ADD_LDFLAGS([wince],[-lcommctrl -lcommdlg -laygshell])
4430   dnl Gross hack
4431   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4432 elif test "${SYS}" = "mingw32"; then
4433   VLC_ADD_CXXFLAGS([wince],[])
4434   VLC_ADD_LDFLAGS([wince],[-lcomctl32 -lcomdlg32 -lgdi32 -lole32])
4435   dnl Gross hack
4436   VLC_ADD_LDFLAGS([wince],[\\\${top_builddir}modules/gui/wince/wince_rc.o])
4437 fi
4438
4439 dnl
4440 dnl Simple test for skins2 dependency
4441 dnl
4442 if test "${enable_skins2}" != "no"
4443 then
4444   if test "${WX_CONFIG}" = "no"
4445   then
4446     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.])
4447   fi
4448 fi
4449
4450 dnl dnl
4451 dnl dnl  Qt module
4452 dnl dnl
4453 dnl AC_ARG_ENABLE(qt,
4454 dnl   [  --enable-qt             Qt interface support (default disabled)],
4455 dnl   [if test "${enable_qt}" = "yes"; then
4456 dnl      VLC_ADD_PLUGINS([qt])
4457 dnl      ALIASES="${ALIASES} qvlc"
4458 dnl      VLC_ADD_LDFLAGS([qt],[-L${QTDIR}/lib])
4459 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_qt}"
4460 dnl      AC_CHECK_LIB(qt-mt,main,[
4461 dnl        VLC_ADD_LDFLAGS([qt],[-lqt-mt])
4462 dnl      ],[
4463 dnl        AC_CHECK_LIB(qt,main,[
4464 dnl          VLC_ADD_LDFLAGS([qt],[-lqt])
4465 dnl        ])
4466 dnl      ])
4467 dnl      LDFLAGS="${LDFLAGS_save}"
4468 dnl      VLC_ADD_CXXFLAGS([qt],[-I/usr/include/qt3 -I/usr/include/qt -I${QTDIR}/include])
4469 dnl      if test -x ${QTDIR}/bin/moc
4470 dnl      then
4471 dnl        MOC=${QTDIR}/bin/moc
4472 dnl      else
4473 dnl        MOC=moc
4474 dnl      fi
4475 dnl    fi])
4476 dnl 
4477 dnl dnl
4478 dnl dnl  KDE module
4479 dnl dnl
4480 dnl AC_ARG_ENABLE(kde,
4481 dnl   [  --enable-kde            KDE interface support (default disabled)],
4482 dnl   [if test "${enable_kde}" = "yes"; then
4483 dnl      VLC_ADD_PLUGINS([kde])
4484 dnl      ALIASES="${ALIASES} kvlc"
4485 dnl      VLC_ADD_LDFLAGS([kde],[-L${KDEDIR}/lib])
4486 dnl      dnl Check for -lkfile (only in KDE 2) or -lkdeui -lkio (KDE 3)
4487 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4488 dnl      AC_CHECK_LIB(kfile,main,[
4489 dnl        VLC_ADD_LDFLAGS([kde],[-lkfile])
4490 dnl      ])
4491 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4492 dnl      AC_CHECK_LIB(kdeui,main,[
4493 dnl        VLC_ADD_LDFLAGS([kde],[-lkdeui])
4494 dnl      ])
4495 dnl      LDFLAGS="${LDFLAGS_save} ${LDFLAGS_kde}"
4496 dnl      AC_CHECK_LIB(kio,main,[
4497 dnl        VLC_ADD_LDFLAGS([kde],[-lkio])
4498 dnl      ])
4499 dnl      LDFLAGS="${LDFLAGS_save}"
4500 dnl      VLC_ADD_CXXFLAGS([kde],[-I/usr/include/kde -I/usr/include/qt3 -I/usr/include/qt])
4501 dnl      VLC_ADD_CXXFLAGS([kde],[-I${KDEDIR}/include -I${QTDIR}/include])
4502 dnl      if test -x ${QTDIR}/bin/moc
4503 dnl      then
4504 dnl        MOC=${QTDIR}/bin/moc
4505 dnl      else
4506 dnl        MOC=moc
4507 dnl      fi
4508 dnl    fi])
4509
4510 dnl
4511 dnl  Opie QT embedded module
4512 dnl
4513 AC_ARG_ENABLE(opie,
4514   [  --enable-opie           Qt embedded interface support (default disabled)],
4515   [if test "${enable_opie}" = "yes"; then
4516      AC_ARG_WITH(qte,
4517      [    --with-qte=PATH       Qt Embedded headers and libraries])
4518      if test "${with_qte}" != "no" -a -n "${with_qte}"
4519      then
4520        VLC_ADD_LDFLAGS([qte],[-L${with_qte}/lib `echo -L${with_qte}/lib | sed 's,opt/QtPalmtop,usr,'` -ljpeg -lqte])
4521        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])
4522      else
4523        VLC_ADD_LDFLAGS([qte],[-L${QTDIR}/lib `echo -L${QTDIR}/lib | sed 's,opt/QtPalmtop,usr,'`])
4524        VLC_ADD_CXXFLAGS([qte],[-I${QTDIR}/include `echo -I${QTDIR}/include | sed 's,opt/QtPalmtop,usr,'`])
4525      fi
4526      CPPFLAGS="${CPPFLAGS_save} ${CXXFLAGS_qte}"
4527      AC_CHECK_HEADERS(qt.h jpeglib.h, ,[
4528        AC_MSG_ERROR([echo "Cannot find QT Embedded development headers."])
4529      ] )
4530      CPPFLAGS="${CPPFLAGS_save}"
4531
4532      VLC_ADD_PLUGINS([opie])
4533      NEED_QTE_MAIN=yes
4534      VLC_ADD_LDFLAGS([opie],[-lqpe ${LDFLAGS_qte}])
4535      VLC_ADD_CXXFLAGS([opie],[${CXXFLAGS_qte}])
4536      if test "${with_qte}" != "no" -a -n "${with_qte}"
4537      then
4538        MOC=${with_qte}/bin/moc
4539      else
4540        MOC=${QTDIR}/bin/moc
4541      fi
4542    fi])
4543
4544 dnl
4545 dnl  MacOS X module
4546 dnl
4547 AC_ARG_ENABLE(macosx,
4548   [  --enable-macosx         MacOS X support (default enabled on MacOS X)],
4549   [if test "${enable_macosx}" = "yes"
4550    then
4551      VLC_ADD_BUILTINS([macosx])
4552      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4553    fi],
4554   [AC_CHECK_HEADERS(Cocoa/Cocoa.h,
4555      VLC_ADD_BUILTINS([macosx])
4556      VLC_ADD_LDFLAGS([macosx],[-framework IOKit -framework Cocoa -framework Carbon -framework QuickTime -lobjc -ObjC -framework OpenGL])
4557    )])
4558
4559 dnl
4560 dnl  QNX RTOS module
4561 dnl
4562 AC_ARG_ENABLE(qnx,
4563   [  --enable-qnx            QNX RTOS support (default enabled on QNX RTOS)])
4564     if test "${enable_qnx}" != "no"
4565     then
4566       AC_CHECK_HEADERS(Ph.h, [
4567         VLC_ADD_PLUGINS([qnx])
4568         VLC_ADD_LDFLAGS([qnx],[-lasound -lph])
4569       ])
4570     fi
4571
4572 dnl
4573 dnl  ncurses module
4574 dnl
4575 AC_ARG_ENABLE(ncurses,
4576   [  --enable-ncurses        ncurses interface support (default disabled)],
4577   [if test "${enable_ncurses}" = "yes"; then
4578      VLC_ADD_PLUGINS([ncurses])
4579      VLC_ADD_LDFLAGS([ncurses],[-lncurses])
4580    fi])
4581
4582 dnl
4583 dnl  XOSD plugin
4584 dnl
4585 AC_ARG_ENABLE(xosd,
4586   [  --enable-xosd           xosd interface support (default disabled)])
4587 if test "${enable_xosd}" = "yes"
4588 then
4589   AC_CHECK_HEADER(xosd.h, have_xosd="true", have_xosd="false")
4590   AC_CHECK_LIB(xosd,xosd_set_offset,
4591       AC_DEFINE(HAVE_XOSD_VERSION_1, 1, Define if <xosd.h> is 1.0.x),
4592     AC_CHECK_LIB(xosd,xosd_set_horizontal_offset,
4593         AC_DEFINE(HAVE_XOSD_VERSION_2, 1, Define if <xosd.h> is 2.0.x),
4594       AC_TRY_COMPILE([#include <xosd.h>],
4595          [void foo() { xosd_init("foo","bar",12,XOSD_top,2,12,42); }],,
4596           AC_DEFINE(HAVE_XOSD_VERSION_0, 1, Define if <xosd.h> is pre-1.0.0))))
4597   if test "${have_xosd}" = "true"
4598   then
4599     VLC_ADD_PLUGINS([xosd])
4600     VLC_ADD_LDFLAGS([xosd],[-lxosd])
4601   fi
4602 fi
4603
4604 dnl
4605 dnl Visualisation plugin
4606 dnl
4607 AC_ARG_ENABLE(visual,
4608   [  --enable-visual         visualisation plugin (default enabled)])
4609 if test "${enable_visual}" != "no"
4610 then
4611     VLC_ADD_PLUGINS([visual])
4612 fi
4613
4614 dnl
4615 dnl OpenGL visualisation plugin
4616 dnl
4617 AC_ARG_ENABLE(galaktos,
4618   [  --enable-galaktos       OpenGL visualisation plugin (default disabled)])
4619 if test "${enable_galaktos}" = "yes"
4620 then
4621   AC_CHECK_HEADERS(GL/gl.h, [
4622     VLC_ADD_PLUGINS([galaktos])
4623     if test "${SYS}" != "mingw32"; then
4624       VLC_ADD_LDFLAGS([galaktos],[${X_LIBS} -lGL -lGLU])
4625     else
4626       VLC_ADD_LDFLAGS([galaktos],[-lopengl32])
4627     fi
4628   ])
4629 fi
4630
4631 dnl
4632 dnl  goom visualization plugin
4633 dnl
4634 AC_ARG_ENABLE(goom,
4635 [  --enable-goom           goom visualisation plugin (default disabled)])
4636 if test "${enable_goom}" = "yes"
4637 then
4638   AC_ARG_WITH(goom-tree,
4639     [    --with-goom-tree=PATH goom tree for static linking (required)])
4640
4641   dnl
4642   dnl test for --with-goom-tree
4643   dnl
4644   if test "${with_goom_tree}" != "no" -a -n "${with_goom_tree}"; then
4645     AC_MSG_CHECKING(for libgoom2.a in ${with_goom_tree})
4646     real_goom_tree="`cd ${with_goom_tree} 2>/dev/null && pwd`"
4647     if test -z "${real_goom_tree}"; then
4648       dnl  The given directory can't be found
4649       AC_MSG_RESULT(no)
4650       AC_MSG_ERROR([cannot cd to ${with_goom_tree}])
4651     fi
4652     if test -f "${real_goom_tree}/src/.libs/libgoom2.a"; then
4653       AC_MSG_RESULT(${real_goom_tree}/src/.libs/libgoom2.a)
4654       VLC_ADD_BUILTINS([goom])
4655       VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree}/src/.libs -lgoom2])
4656       VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree}/src -DUSE_GOOM_TREE])
4657     else
4658       dnl  The given libgoom2 wasn't built, try to look for the old goom
4659       AC_MSG_RESULT(no)
4660       AC_MSG_CHECKING(for libgoom.a in ${with_goom_tree})
4661       if test -f "${real_goom_tree}/libgoom.a"; then
4662         AC_MSG_RESULT(${real_goom_tree}/libgoom.a)
4663         VLC_ADD_BUILTINS([goom])
4664         VLC_ADD_LDFLAGS([goom],[-L${real_goom_tree} -lgoom])
4665         VLC_ADD_CPPFLAGS([goom],[-I${real_goom_tree} -DUSE_GOOM_TREE -DOLD_GOOM])
4666       else
4667         dnl  The given libgoom wasn't built
4668         AC_MSG_RESULT(no)
4669         AC_MSG_ERROR([cannot find ${real_goom_tree}/src/.libs/libgoom2.a, make sure you compiled goom in ${with_goom_tree}])
4670       fi
4671     fi
4672   else
4673     AC_CHECK_HEADERS(goom/goom.h, [
4674       LDFLAGS="${LDFLAGS_save} ${LDFLAGS_goom}"
4675       AC_CHECK_LIB(goom2, goom_init, [
4676         VLC_ADD_PLUGINS([goom])
4677         VLC_ADD_LDFLAGS([goom],[-lgoom2])
4678       ],[
4679         AC_MSG_ERROR([Could not find goom on your system: you may get it from http://www.ios-software.com/.])
4680       ])
4681       LDFLAGS="${LDFLAGS_save}"
4682     ])
4683   fi
4684 fi
4685
4686 dnl
4687 dnl DAAP access plugin and services discovery 
4688 dnl
4689 AC_ARG_ENABLE(daap,
4690   [  --enable-daap                DAAP shares services discovery support (default enabled)])
4691 if test "$enable_daap" != "no"
4692 then
4693    PKG_CHECK_MODULES(DAAP, opendaap >= 0.3.0,
4694       [ VLC_ADD_PLUGINS([daap])
4695        VLC_ADD_LDFLAGS([daap],[$DAAP_LIBS])
4696        VLC_ADD_CFLAGS([daap],[$DAAP_CFLAGS])]:,
4697       [AC_MSG_WARN(DAAP library not found)])
4698 fi
4699
4700 dnl
4701 dnl  Bonjour services discovery
4702 dnl
4703 AC_ARG_ENABLE(bonjour,
4704   [  --enable-bonjour        Bonjour services discovery (default enabled)])
4705 if test "${enable_bonjour}" != "no"
4706 then
4707   PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.3,
4708     [PKG_CHECK_MODULES(BONJOUR, avahi-client >= 0.6,
4709        [AC_DEFINE(HAVE_AVAHI_06, [], [Define if you have avahi-client 0.6 or greater])],)
4710       AC_DEFINE(HAVE_AVAHI_CLIENT, [], [Define if you have the avahi-client library])
4711       VLC_ADD_LDFLAGS([bonjour access_output_http],[$BONJOUR_LIBS])
4712       VLC_ADD_CFLAGS([bonjour access_output_http],[$BONJOUR_CFLAGS])
4713       VLC_ADD_PLUGINS([bonjour]) ],
4714     [AC_MSG_WARN(avahi-client library not found)])
4715 fi
4716
4717 dnl
4718 dnl  Lirc plugin
4719 dnl
4720 AC_ARG_ENABLE(lirc,
4721   [  --enable-lirc           lirc support (default disabled)])
4722 if test "${enable_lirc}" = "yes"
4723 then
4724   AC_CHECK_HEADER(lirc/lirc_client.h, AC_CHECK_LIB(lirc_client, lirc_init, have_lirc="true", have_lirc="false"),have_lirc="false")
4725   if test "${have_lirc}" = "true"
4726   then
4727     VLC_ADD_PLUGINS([lirc])
4728     VLC_ADD_LDFLAGS([lirc],[-llirc_client])
4729   fi
4730 fi
4731
4732
4733 dnl
4734 dnl corba (ORBit) plugin
4735 dnl
4736 dnl Default: do not enable corba
4737 enablecorba=false
4738 AC_ARG_ENABLE(corba,
4739   [  --enable-corba          corba interface support (default disabled)])
4740 if test "${enable_corba}" = "yes"; then
4741       GLIB_VERSION=2.3.2
4742       PKG_CHECK_MODULES(CORBA, 
4743         ORBit-2.0 >= 2.8.0 \
4744         glib-2.0 >= $GLIB_VERSION \
4745         gobject-2.0 >= $GLIB_VERSION \
4746         gthread-2.0 >= $GLIB_VERSION,
4747         [
4748           enablecorba=true
4749           VLC_ADD_LDFLAGS([corba],[$CORBA_LIBS])
4750           VLC_ADD_CFLAGS([corba],[$CORBA_CFLAGS])
4751           VLC_ADD_PLUGINS([corba snapshot]) ],
4752         [ enablecorba=false
4753           AC_MSG_WARN(corba library not found) ])
4754 fi
4755 AM_CONDITIONAL(ENABLE_CORBA, test "$enablecorba" = "true")
4756
4757 AC_ARG_WITH(,[Misc options:])
4758
4759 dnl
4760 dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
4761 dnl
4762 dnl  We give the user the opportunity to specify
4763 dnl  --with-words=big or --with-words=little ; otherwise, try to guess
4764 dnl
4765 AC_ARG_WITH(words,
4766   [    --with-words=endianness set endianness (big or little)])
4767   case "${with_words}" in
4768     big)
4769       ac_cv_c_bigendian=yes
4770       ;;
4771     little)
4772       ac_cv_c_bigendian=no
4773       ;;
4774     *)
4775       dnl  Try to guess endianness by matching patterns on a compiled
4776       dnl  binary, by looking for an ASCII or EBCDIC string
4777       AC_CACHE_CHECK([whether the byte order is big-endian],
4778         [ac_cv_c_bigendian],
4779         [ac_cv_c_bigendian="unknown"
4780         [cat >conftest.c <<EOF
4781         short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
4782         short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
4783         void _a(void) { char*s = (char*)am; s = (char *)ai; }
4784         short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
4785         short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
4786         void _e(void) { char*s = (char*)em; s = (char*)ei; }
4787         int main(void) { _a(); _e(); return 0; }
4788 EOF
4789         ]
4790         if test -f conftest.c
4791         then
4792           if ${CC-cc} -c conftest.c -o conftest.o >>config.log 2>&1 \
4793               && test -f conftest.o
4794           then
4795             if test "`strings conftest.o | grep BIGenDianSyS`"
4796             then
4797               ac_cv_c_bigendian="yes"
4798             fi
4799             if test "`strings conftest.o | grep LiTTleEnDian`"
4800             then
4801               ac_cv_c_bigendian="no"
4802             fi
4803           fi
4804         fi
4805       ])
4806       if test "${ac_cv_c_bigendian}" = "unknown"
4807       then
4808         AC_MSG_ERROR([Could not guess endianness, please use --with-words])
4809       fi
4810       ;;
4811   esac
4812 dnl  Now we know what to use for endianness, just put it in the header
4813 if test "${ac_cv_c_bigendian}" = "yes"
4814 then
4815   AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
4816 fi
4817
4818 dnl
4819 dnl  DLL loader copied from MPlayer copied from somewhere else (WINE ?)
4820 dnl
4821 loader=false
4822 AC_ARG_ENABLE(loader,
4823   [  --enable-loader         build DLL loader for ELF i386 platforms (default disabled)])
4824 AM_CONDITIONAL(LOADER, [test "${enable_loader}" = "yes"])
4825 AS_IF([test "${enable_loader}" = "yes"],
4826   [ VLC_ADD_PLUGINS([dmo quicktime])
4827     VLC_ADD_CPPFLAGS([dmo],[-I../../../@top_srcdir@/loader])
4828     VLC_ADD_LDFLAGS([dmo],[../../../loader/libloader.a])
4829     VLC_ADD_CPPFLAGS([quicktime],[-I../../@top_srcdir@/loader])
4830     VLC_ADD_LDFLAGS([quicktime],[../../loader/libloader.a])
4831     VLC_ADD_CPPFLAGS([realaudio],[-I../../@top_srcdir@/loader -DLOADER])
4832     VLC_ADD_LDFLAGS([realaudio],[../../loader/libloader.a])
4833   ])
4834
4835 dnl
4836 dnl  Microsoft ActiveX support
4837 dnl
4838 activex=false
4839 AC_ARG_ENABLE(activex,
4840   [  --enable-activex        build a vlc-based ActiveX control (default enabled on Win32)])
4841 if test "${enable_activex}" != "no"
4842 then
4843   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"
4844   then
4845     AC_CHECK_PROGS(MIDL, [midl widl], no)
4846     AC_LANG_PUSH(C++)
4847     AC_CHECK_HEADERS(ole2.h olectl.h,
4848       [ VLC_ADD_CXXFLAGS([activex],[-fno-exceptions])
4849         VLC_ADD_LDFLAGS([activex],[-lole32 -loleaut32 -luuid -lshlwapi]) 
4850         AC_CHECK_HEADERS(objsafe.h,
4851           VLC_ADD_CXXFLAGS([activex],[-DHAVE_OBJSAFE_HEADER]),,
4852           [#if HAVE_OLE2_H
4853            #   include <ole2.h>
4854            #endif]
4855         )
4856         activex=:
4857       ],
4858       [ AC_MSG_ERROR([required OLE headers are missing from your system]) ]
4859     )
4860     AC_LANG_POP(C++)
4861   fi
4862 fi
4863 AC_ARG_VAR(MIDL, [Microsoft IDL compiler (Win32 platform only)])
4864 AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
4865 AM_CONDITIONAL(BUILD_ACTIVEX,${activex})
4866
4867 dnl
4868 dnl  Mozilla plugin
4869 dnl
4870 mozilla=false
4871 AC_ARG_ENABLE(mozilla,
4872   [  --enable-mozilla        build a vlc-based Mozilla plugin (default disabled)])
4873 AC_ARG_WITH(mozilla-sdk-path,
4874   [    --with-mozilla-sdk-path=PATH path to mozilla sdk])
4875
4876 if test "${enable_mozilla}" = "yes" 
4877 then
4878   if test "${with_mozilla_sdk_path}" = ""
4879   then
4880     AC_PATH_PROG(MOZILLA_CONFIG, mozilla-config, no)
4881     if test "${MOZILLA_CONFIG}" = "no"
4882     then
4883       AC_MSG_ERROR([Please install the Mozilla development tools, mozilla-config was not found.])
4884     else
4885       if test "${SYS}" != "mingw32"; then
4886         LDFLAGS="${LDFLAGS_save} ${X_LIBS} ${X_PRE_LIBS}"
4887         AC_CHECK_LIB(Xt,XtStrings,
4888          [VLC_ADD_LDFLAGS([mozilla],[${X_LIBS} ${X_PRE_LIBS} -lXt -lX11 -lSM -lICE])],
4889          [],
4890          [[${X_LIBS} ${X_PRE_LIBS} -lX11 -lSM -lICE]
4891         ])
4892         LDFLAGS="${LDFLAGS_save}"
4893       fi
4894       mozilla=:
4895       dnl Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=150490
4896       VLC_ADD_CPPFLAGS([mozilla],[[`${MOZILLA_CONFIG} --cflags plugin xpcom java | sed 's,-I\([^ ]*\)/mozilla/\([^ ]*\),-I\1/\2 -I\1/mozilla/\2,g' | xargs`]])
4897       VLC_ADD_LDFLAGS([mozilla],[`${MOZILLA_CONFIG} --libs plugin xpcom`])
4898       CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_mozilla}"
4899       AC_CHECK_HEADERS(mozilla-config.h)
4900       CPPFLAGS="${CPPFLAGS_save}"
4901       XPIDL_INCL="`${MOZILLA_CONFIG} --cflags plugin xpcom java` \
4902       `${MOZILLA_CONFIG} --idlflags plugin xpcom java` "
4903       xpidl_path="`${MOZILLA_CONFIG} --prefix`/bin"
4904     fi
4905   else
4906     dnl special case for mingw32
4907     if test "${SYS}" = "mingw32"
4908     then
4909       AC_CHECK_TOOL(CYGPATH, cygpath, "")
4910       dnl latest gecko sdk does not have an xpcom directory
4911       if test -d "${with_mozilla_sdk_path}/xpcom"; then
4912           mozilla_sdk_xpcom="/xpcom"
4913       fi
4914     fi
4915   
4916     real_mozilla_sdk="`cd ${with_mozilla_sdk_path} 2>/dev/null && pwd`"
4917     CPPFLAGS="${CPPFLAGS_save} -I${real_mozilla_sdk} -I${real_mozilla_sdk}/include"
4918     AC_CHECK_HEADERS(mozilla-config.h, [
4919       mozilla=:
4920       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])
4921       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])
4922       if test "${SYS}" = "mingw32"; then
4923         LDFLAGS="${LDFLAGS_save}"
4924         dnl latest gecko sdk does not have embedstring
4925         if test -d "${real_mozilla_sdk}/embedstring/bin"
4926         then
4927           VLC_ADD_LDFLAGS([mozilla],[-lembedstring -Wl,--kill-at])
4928         fi
4929       fi
4930   
4931       XPIDL_INCL="-I${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl"
4932       xpidl_path="${real_mozilla_sdk}${mozilla_sdk_xpcom}/bin"
4933   
4934       if test -n "${CYGPATH}"; then
4935         real_mozilla_sdk="`${CYGPATH} -w ${real_mozilla_sdk}`"
4936         XPIDL_INCL="${XPIDL_INCL} -I\"${real_mozilla_sdk}${mozilla_sdk_xpcom}/idl\""
4937       fi ])
4938     CPPFLAGS="${CPPFLAGS_save}"
4939   fi
4940   
4941   if test "${mozilla}" != "false"
4942   then
4943     build_pic=yes
4944     AC_PATH_PROG(XPIDL, xpidl, no, ${xpidl_path} /usr/lib/mozilla)
4945     if test "${XPIDL}" = "no"; then
4946       AC_MSG_ERROR([Please install the Mozilla development tools, xpidl was not found.])
4947     fi
4948   fi
4949 fi
4950 AM_CONDITIONAL(BUILD_MOZILLA,${mozilla})
4951
4952 dnl
4953 dnl  Python bindings
4954 dnl
4955 AC_ARG_ENABLE(python-bindings,
4956   [  --enable-python-bindings    Enable Python bindings (default disabled)])
4957 dnl TODO: look for python dev headers
4958 AM_CONDITIONAL(BUILD_PYTHON, [test "${enable_python_bindings}" = "yes"])
4959 if test "${enable_python_bindings}" = "yes"
4960 then
4961   build_pic=yes
4962 fi
4963
4964 dnl
4965 dnl  Java bindings
4966 dnl
4967 AC_ARG_ENABLE(java-bindings,
4968   [  --enable-java-bindings  Enable Java bindings (default disabled)])
4969 AM_CONDITIONAL(BUILD_JAVA, [test "${enable_java_bindings}" = "yes"])
4970 if test "${enable_java_bindings}" = "yes"
4971 then
4972   build_pic=yes
4973 fi
4974
4975
4976 dnl
4977 dnl  test plugins
4978 dnl
4979 AC_ARG_ENABLE(testsuite,
4980   [  --enable-testsuite      build test modules (default disabled)])
4981 if test "${enable_testsuite}" = "yes"
4982 then
4983   TESTS="test1 test2 test3 test4"
4984
4985   dnl  we define those so that bootstrap sets the right linker
4986   VLC_ADD_CXXFLAGS([test2],[])
4987   VLC_ADD_OBJCFLAGS([test3],[])
4988   dnl  this one is needed until automake knows what to do
4989   VLC_ADD_LDFLAGS([test3],[-lobjc])
4990
4991   VLC_ADD_PLUGINS([${TESTS}])
4992   #VLC_ADD_BUILTINS([${TESTS}])
4993 fi
4994
4995 dnl
4996 dnl  gtk_main plugin
4997 dnl
4998 if test "${NEED_GTK_MAIN}" != "no"
4999 then
5000     VLC_ADD_PLUGINS([gtk_main])
5001     VLC_ADD_CFLAGS([gtk_main],[${CFLAGS_gtk}])
5002     VLC_ADD_LDFLAGS([gtk_main],[${LDFLAGS_gtk}])
5003 fi
5004
5005 if test "${NEED_GNOME_MAIN}" != "no"
5006 then
5007     VLC_ADD_PLUGINS([gnome_main])
5008     VLC_ADD_CFLAGS([gnome_main],[${CFLAGS_gtk} ${CFLAGS_gnome}])
5009     VLC_ADD_LDFLAGS([gnome_main],[${LDFLAGS_gtk} ${LDFLAGS_gnome}])
5010 fi
5011
5012 if test "${NEED_GTK2_MAIN}" != "no"
5013 then
5014     VLC_ADD_PLUGINS([gtk2_main])
5015     VLC_ADD_CFLAGS([gtk2],[-DNEED_GTK2_MAIN])
5016     VLC_ADD_CFLAGS([pda],[-DNEED_GTK2_MAIN])
5017     VLC_ADD_CFLAGS([gtk2_main],[${CFLAGS_gtk2} ${CFLAGS_pda}])
5018     VLC_ADD_LDFLAGS([gtk2_main],[${LDFLAGS_gtk2} ${LDFLAGS_pda}])
5019 fi
5020
5021 if test "${NEED_GNOME2_MAIN}" != "no"
5022 then
5023     VLC_ADD_PLUGINS([gnome2_main])
5024     VLC_ADD_CFLAGS([gnome2_main],[${CFLAGS_gtk2} ${CFLAGS_gnome2}])
5025     VLC_ADD_LDFLAGS([gnome2_main],[${LDFLAGS_gtk2} ${LDFLAGS_gnome2}])
5026 fi
5027
5028 dnl
5029 dnl  qte_main plugin
5030 dnl
5031 if test "${NEED_QTE_MAIN}" != "no"
5032 then
5033     VLC_ADD_PLUGINS([qte_main])
5034     VLC_ADD_CXXFLAGS([opie qte qt_video],[-DNEED_QTE_MAIN])
5035     VLC_ADD_CXXFLAGS([qte_main],[${CXXFLAGS_qte} ${CXXFLAGS_qt_video}])
5036     VLC_ADD_LDFLAGS([qte_main],[${LDFLAGS_qte} ${LDFLAGS_qt_video}])
5037 fi
5038
5039
5040 dnl
5041 dnl  Plugin and builtin checks
5042 dnl
5043 builtin_support=false
5044 plugin_support=:
5045
5046 dnl Support for plugins - this must be AT THE END
5047 AC_ARG_ENABLE(plugins,
5048   [  --disable-plugins       make all plugins built-in (default plugins enabled)],
5049   [if test "${enable_plugins}" = "no"
5050    then
5051      plugin_support=false
5052    fi])
5053
5054 dnl Automagically disable plugins if there is no system support for
5055 dnl dynamically loadable files (.so, .dll, .dylib).
5056 dnl don't forget vlc-win32 still can load .dll as plugins
5057 if test "${ac_cv_have_plugins}" = "no"
5058 then
5059   echo "*** Your system doesn't have plugin support. All plugins will be built"
5060   echo "statically."
5061   plugin_support=false
5062 fi
5063
5064 dnl Export automake variables
5065 if ${plugin_support}
5066 then
5067   AC_DEFINE(HAVE_DYNAMIC_PLUGINS, 1, Define if we have support for dynamic plugins)
5068   for plugin in `echo ${PLUGINS}`
5069   do
5070     eval "${plugin}_p=yes"
5071   done
5072 else
5073   VLC_ADD_BUILTINS([${PLUGINS}])
5074   PLUGINS=""
5075 fi
5076 AM_CONDITIONAL(HAVE_PLUGINS, ${plugin_support})
5077
5078 [if echo "${BUILTINS}" | grep '[^ ]' >/dev/null 2>&1
5079 then
5080   builtin_support=:
5081   for builtin in `echo ${BUILTINS}`
5082   do
5083     eval "${builtin}_b=yes"
5084   done
5085 fi]
5086 AM_CONDITIONAL(HAVE_BUILTINS, ${builtin_support})
5087
5088 dnl
5089 dnl Pic and shared libvlc stuff
5090 dnl
5091 AM_CONDITIONAL(BUILD_SHARED, [test "${shared_libvlc}" != "no"])
5092 AM_CONDITIONAL(BUILD_PIC, [test "${build_pic}" = "yes" -o "${shared_libvlc}" != "no"] )
5093 AS_IF([test "${shared_libvlc}" != "no"], [
5094   AC_DEFINE(HAVE_SHARED_LIBVLC, 1, [Define to 1 if libvlc is built as a shared library.])
5095 ])
5096
5097 pic=no
5098 AS_IF([test "${shared_libvlc}" != "no" -o "${build_pic}" = "yes"], [pic=pic])
5099 AS_IF([test "${SYS}" = "mingw32"], [pic=no])
5100 AS_IF([test "${pic}" = "no"], [pic=])
5101 AC_SUBST(pic)
5102
5103 dnl Import conditional variables generated by bootstrap
5104 VLC_CONDITIONALS
5105
5106 dnl
5107 dnl  Stuff used by the program
5108 dnl
5109 AC_DEFINE_UNQUOTED(VERSION_MESSAGE, "${VERSION} ${CODENAME}", [Simple version string])
5110 AC_DEFINE_UNQUOTED(COPYRIGHT_MESSAGE, "VLC media player - version ${VERSION} ${CODENAME} - (c) 1996-2006 the VideoLAN team", [Copyright string])
5111 AC_DEFINE_UNQUOTED(CONFIGURE_LINE, "${CONFIGURE_LINE}", [The ./configure command line])
5112 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MAJOR,"${VERSION_MAJOR}", [version major number])
5113 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_MINOR,"${VERSION_MINOR}", [version minor number])
5114 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_REVISION,"${VERSION_REVISION}", [version minor number])
5115 AC_DEFINE_UNQUOTED(PACKAGE_VERSION_EXTRA,"${VERSION_EXTRA}", [version minor number])
5116 AC_SUBST(VERSION_MAJOR)
5117 AC_SUBST(VERSION_MINOR)
5118 AC_SUBST(VERSION_REVISION)
5119 AC_DEFINE_UNQUOTED(VLC_COMPILE_BY, "`whoami`", [user who ran configure]) 
5120 AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure]) 
5121 AC_DEFINE_UNQUOTED(VLC_COMPILE_DOMAIN, "`dnsdomainname 2>/dev/null || domainname 2>/dev/null || echo unknown`", [domain of the host which ran configure]) 
5122 AC_DEFINE_UNQUOTED(VLC_COMPILER, "`$CC -v 2>&1 | tail -n 1`", [compiler]) 
5123
5124 dnl Old definitions for version-dependant plugins
5125 dnl VLC_SYMBOL="`echo ${VERSION} | sed -e 'y/.-+/___/'`"
5126 dnl AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${VLC_SYMBOL}", [String suffix for module functions])
5127 dnl AC_DEFINE_UNQUOTED(MODULE_SYMBOL, ${VLC_SYMBOL}, [Symbol suffix for module functions])
5128
5129 dnl New definitions with value matching 0.8.4 release
5130 module_symbol="0_8_4"
5131 AC_DEFINE_UNQUOTED(MODULE_SUFFIX, "__${module_symbol}", [String suffix for module functions])
5132 AC_DEFINE_UNQUOTED(MODULE_SYMBOL, $module_symbol, [Symbol suffix for module functions])
5133 VLC_ENTRY="vlc_entry__${module_symbol}"
5134 AC_SUBST(VLC_ENTRY)
5135
5136 dnl
5137 dnl  Handle substvars that use $(top_srcdir)
5138 dnl
5139 VLC_CONFIG="top_builddir=\"\$(top_builddir)\" \$(top_builddir)/vlc-config"
5140 AC_SUBST(VLC_CONFIG)
5141 CPPFLAGS_save="${CPPFLAGS_save} -I\$(top_srcdir)/include"
5142
5143 dnl
5144 dnl  Restore *FLAGS
5145 dnl
5146 VLC_RESTORE_FLAGS
5147
5148 dnl
5149 dnl  Create the vlc-config script
5150 dnl
5151 LDFLAGS_libvlc="${LDFLAGS_vlc} ${LDFLAGS_builtin}"
5152 for i in `echo "${BUILTINS}" | sed -e 's@[^ ]*/@@g'` ; do LDFLAGS_libvlc="${LDFLAGS_libvlc} ${libdir}/vlc/${i}.a `eval echo '$'{LDFLAGS_${i}}`" ; done
5153
5154 dnl
5155 dnl  Configuration is finished
5156 dnl
5157 AC_SUBST(SYS)
5158 AC_SUBST(ARCH)
5159 AC_SUBST(ALIASES)
5160 AC_SUBST(ASM)
5161 AC_SUBST(MOC)
5162 AC_SUBST(WINDRES)
5163 AC_SUBST(XPIDL)
5164 AC_SUBST(XPIDL_INCL)
5165 AC_SUBST(LIBEXT)
5166 AC_SUBST(INCLUDES)
5167 AC_SUBST(ALL_LINGUAS)
5168 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
5169
5170 dnl Import substitutions generated by bootstrap
5171 VLC_SUBSTS
5172
5173 dnl Create vlc-config.in
5174 VLC_OUTPUT_VLC_CONFIG_IN
5175
5176 AC_CONFIG_FILES([
5177   Makefile
5178   activex/Makefile
5179   activex/axvlc.inf
5180   bindings/Makefile
5181   bindings/java/Makefile
5182   bindings/python/Makefile
5183   debian/Makefile
5184   doc/Makefile
5185   intl/Makefile
5186   ipkg/Makefile
5187   lib/Makefile
5188   loader/Makefile
5189   modules/Makefile
5190   mozilla/Makefile
5191   m4/Makefile
5192   po/Makefile.in
5193   share/Makefile
5194 ])
5195
5196 AC_CONFIG_FILES([
5197   modules/access/Makefile
5198   modules/access/dshow/Makefile
5199   modules/access/dvb/Makefile
5200   modules/access/mms/Makefile
5201   modules/access/pvr/Makefile
5202   modules/access/v4l/Makefile
5203   modules/access/cdda/Makefile
5204   modules/access/rtsp/Makefile
5205   modules/access/vcd/Makefile
5206   modules/access/vcdx/Makefile
5207   modules/access/screen/Makefile
5208   modules/access_filter/Makefile
5209   modules/access_output/Makefile
5210   modules/audio_filter/Makefile
5211   modules/audio_filter/channel_mixer/Makefile
5212   modules/audio_filter/converter/Makefile
5213   modules/audio_filter/resampler/Makefile
5214   modules/audio_mixer/Makefile
5215   modules/audio_output/Makefile
5216   modules/codec/Makefile
5217   modules/codec/cmml/Makefile
5218   modules/codec/dmo/Makefile
5219   modules/codec/ffmpeg/Makefile
5220   modules/codec/spudec/Makefile
5221   modules/control/Makefile
5222   modules/control/http/Makefile
5223   modules/control/corba/Makefile
5224   modules/demux/Makefile
5225   modules/demux/asf/Makefile
5226   modules/demux/avi/Makefile
5227   modules/demux/mp4/Makefile
5228   modules/demux/mpeg/Makefile
5229   modules/demux/playlist/Makefile
5230   modules/demux/util/Makefile
5231   modules/gui/Makefile
5232   modules/gui/beos/Makefile
5233   modules/gui/pda/Makefile
5234   modules/gui/macosx/Makefile
5235   modules/gui/qnx/Makefile
5236   modules/gui/skins2/Makefile
5237   modules/gui/wxwidgets/Makefile
5238   modules/gui/wince/Makefile
5239   modules/misc/Makefile
5240   modules/misc/dummy/Makefile
5241   modules/misc/memcpy/Makefile
5242   modules/misc/network/Makefile
5243   modules/misc/testsuite/Makefile
5244   modules/misc/playlist/Makefile
5245   modules/misc/xml/Makefile
5246   modules/mux/Makefile
5247   modules/mux/mpeg/Makefile
5248   modules/packetizer/Makefile
5249   modules/services_discovery/Makefile
5250   modules/stream_out/Makefile
5251   modules/stream_out/transrate/Makefile
5252   modules/video_chroma/Makefile
5253   modules/video_filter/Makefile
5254   modules/video_filter/swscale/Makefile
5255   modules/video_output/Makefile
5256   modules/video_output/directx/Makefile
5257   modules/video_output/qte/Makefile
5258   modules/video_output/x11/Makefile
5259   modules/visualization/Makefile
5260   modules/visualization/visual/Makefile
5261   modules/visualization/galaktos/Makefile
5262 ])
5263
5264 dnl Generate makefiles
5265 AC_OUTPUT
5266
5267 # Cannot use AC_CONFIG_FILES([vlc-config]) as is automatically built,
5268 # not provided with the source
5269 ${SHELL} ./config.status --file=vlc-config
5270 chmod 0755 vlc-config
5271
5272 dnl echo "Enabled builtin modules :"
5273 dnl for a in `./vlc-config --target builtin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)\.a,\2 (\1),'
5274
5275 dnl echo "Enabled plugin modules :"
5276 dnl for a in `./vlc-config --target plugin` ; do echo $a; done | sed -e 's,modules\/\(.*\)\/lib\(.*\)_plugin,\2 (\1),'
5277
5278 dnl Shortcut to nice compile message
5279 rm -f compile
5280 echo '#! /bin/sh' >compile
5281 echo "PATH=$PATH LANG=C make \$* 2>&1| ${srcdir}/extras/make.pl" >>compile
5282 chmod a+x compile
5283
5284 printf "
5285 vlc configuration
5286 --------------------
5287 vlc version           : ${VERSION}
5288 system                : ${SYS}
5289 architecture          : ${ARCH}
5290 build flavour         : "
5291 test "${enable_debug}" = "yes" && printf "debug "
5292 test "${enable_cprof}" = "yes" && printf "cprof "
5293 test "${enable_gprof}" = "yes" && printf "gprof "
5294 test "${enable_optimizations}" = "yes" && printf "optim "
5295 test "${enable_release}" = "yes" && printf "release " || printf "devel "
5296 echo "
5297 vlc aliases           :${ALIASES}
5298
5299 You can tune the compiler flags in vlc-config.
5300 To build vlc and its plugins, type \`./compile' or \`make'.
5301 "
5302