root/configure.ac

Revision 84d0f814c4aaeb01141e993879de1ce8b0c7fedb, 214.3 kB (checked in by Rémi Denis-Courmont <rem@videolan.org>, 16 hours ago)

Rename the shared libraries

  • Property mode set to 100644
Line 
1 dnl Autoconf settings for vlc
2
3 AC_INIT(vlc,0.9.0-git)
4 VERSION_MAJOR="0"
5 VERSION_MINOR="9"
6 VERSION_REVISION="0"
7 VERSION_EXTRA="git"
8
9 CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
10 CODENAME="Grishenko"
11 COPYRIGHT_YEARS="1996-2008"
12
13 AC_PREREQ(2.59c)
14 AC_CONFIG_SRCDIR(src/libvlc.c)
15 AC_CONFIG_AUX_DIR(autotools)
16 AC_CANONICAL_BUILD
17 AC_CANONICAL_HOST
18
19 AM_INIT_AUTOMAKE(tar-ustar)
20 AM_CONFIG_HEADER(config.h)
21
22 dnl Too many people are not aware of maintainer mode:
23 dnl If you want to use it, you definitely know what you are doing, so
24 dnl you can specify "--disable-maintainer-mode". But if you want the default
25 dnl automake behavior, you've likely never heard of maintainer mode, so we
26 dnl can't expect you to enable it manually.
27
28 AS_IF([test "x${enable_maintainer_mode}" != "xno"],
29         [enable_maintainer_mode="yes"])
30 AM_MAINTAINER_MODE
31
32 dnl
33 dnl  Save *FLAGS
34 dnl
35 VLC_SAVE_FLAGS
36
37 dnl
38 dnl Check for tools
39 dnl
40 AC_PROG_CC_C99
41 AC_USE_SYSTEM_EXTENSIONS
42 AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to `2' to get glibc warnings.])
43 AM_PROG_CC_C_O
44 AC_PROG_CXX
45 AC_PROG_CPP
46 AC_PROG_OBJC
47 _AM_DEPENDENCIES([OBJC])
48 AC_PROG_EGREP
49 AC_PROG_MAKE_SET
50 AC_PROG_INSTALL
51 AM_PROG_AS
52
53 dnl Find the right ranlib, even when cross-compiling
54 AC_CHECK_TOOL(RANLIB, ranlib, :)
55 AC_CHECK_TOOL(STRIP, strip, :)
56 AC_CHECK_TOOL(AR, ar, :)
57 AC_CHECK_TOOL(LD, ld, :)
58 AC_CHECK_TOOL(DLLTOOL, dlltool, :)
59
60 dnl Check for compiler properties
61 AC_C_CONST
62 AC_C_INLINE
63 AC_C_RESTRICT
64
65 dnl
66 dnl  Check for the contrib directory
67 dnl
68 AC_ARG_WITH(contrib,
69     [  --without-contrib       do not use the libraries in extras/contrib],[],[])
70   if test "${with_contrib}" != "no"; then
71     AC_MSG_CHECKING([for libs in extras/contrib])
72     topdir="`dirname $0`"
73     if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
74        topdir="`pwd`/$topdir"
75     fi
76    if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
77       if test "${with_contrib}" = "yes"; then
78         AC_MSG_RESULT([no])
79         AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
80       else
81         AC_MSG_RESULT([no])
82         AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
83       fi
84      else
85   if test -d ${topdir}/extras/contrib/lib; then
86     AC_MSG_RESULT([yes])
87     export PATH=${topdir}/extras/contrib/bin:$PATH
88     CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
89     CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
90     CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
91     CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
92     CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
93     CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
94     OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
95     OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
96     if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
97         export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
98     else
99         export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
100     fi
101     LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
102     LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
103
104     if test -z $with_live555_tree; then
105        with_live555_tree=${topdir}/extras/contrib/src/live
106     fi
107     if test -z $with_goom_tree; then
108        with_goom_tree=${topdir}/extras/contrib/src/goom
109     fi
110     if test -z $with_mozilla_sdk_path; then
111        with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
112     fi
113     if test -z $with_cyberlink_tree; then
114        with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
115     fi
116     if test -z $with_libmpeg2_tree; then
117        with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
118     fi
119     if test -z $with_a52_tree; then
120        with_a52_tree=${topdir}/extras/contrib/src/a52dec
121     fi
122
123     if test ".`uname -s`" = ".Darwin"; then
124       export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
125       export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
126     elif test ".`uname -s`" = ".BeOS"; then
127       export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
128       export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
129     fi
130   else
131      AC_MSG_RESULT([no])
132   fi
133   fi
134 fi
135 dnl
136 dnl  Set default values
137 dnl
138 LDFLAGS_vlc="${LDFLAGS}"
139
140 dnl
141 dnl  Check the operating system
142 dnl
143 case "${host_os}" in
144   "")
145     SYS=unknown
146     ;;
147   linux*)
148     SYS=linux
149     ;;
150   bsdi*)
151     SYS=bsdi
152     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
153     VLC_ADD_LIBS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
154     ;;
155   *bsd*)
156     SYS="${host_os}"
157     CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
158     case "${host_os}" in
159       freebsd*)
160         CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
161         CPPFLAGS="${CPPFLAGS_save}"
162         LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
163         LDFLAGS="${LDFLAGS_save}"
164         ;;
165     esac
166     ;;
167   darwin*)
168     SYS=darwin
169     CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
170     CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
171     OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99"; OBJCFLAGS="${OBJCFLAGS_save}"
172     LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names"; LDFLAGS="${LDFLAGS_save}"
173     VLC_ADD_LDFLAGS([mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
174     VLC_ADD_LDFLAGS([mkv mp4], [-Wl,-framework,IOKit,-framework,CoreFoundation])
175     VLC_ADD_LDFLAGS([vlc],[-Wl,-undefined,dynamic_lookup])
176     VLC_ADD_LDFLAGS([libvlc_control],[-Wl,dynamic_lookup])
177     VLC_ADD_LDFLAGS([ffmpeg i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
178     VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
179     VLC_ADD_LDFLAGS([libvlc],[-Wl,-framework,Cocoa,-framework,CoreFoundation])
180     VLC_ADD_LDFLAGS([motion],[-Wl,-framework,IOKit,-framework,CoreFoundation])
181     AC_ARG_ENABLE(macosx-defaults,
182         [  --enable-macosx-defaults Build the default configuration on Mac OS X (default enabled)])
183     if test "x${enable_macosx_defaults}" != "xno"
184     then
185         echo ""
186         echo "Building with Mac OS X defaults:"
187         with_macosx_version_min="10.4"
188         echo "  Assuming --with-macosx-version-min=10.4"
189         build_dir=`pwd`
190         echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
191         ac_default_prefix="${build_dir}/vlc_install_dir"
192         enable_macosx="yes"
193         echo "  Assuming --enable-macosx"
194         enable_faad="yes"
195         echo "  Assuming --enable-faad"
196         enable_flac="yes"
197         echo "  Assuming --enable-flac"
198         enable_theora="yes"
199         echo "  Assuming --enable-theora"
200         enable_shout="yes"
201         echo "  Assuming --enable-shout"
202         enable_cddax="yes"
203         echo "  Assuming --enable-cddax"
204         enable_vcdx="yes"
205         echo "  Assuming --enable-vcdx"
206         enable_caca="yes"
207         echo "  Assuming --enable-caca"
208         enable_goom="yes"
209         echo "  Assuming --enable-goom"
210         enable_ncurses="yes"
211         echo "  Assuming --enable-ncurses"
212         enable_twolame="yes"
213         echo "  Assuming --enable-twolame"
214         enable_realrtsp="yes"
215         echo "  Assuming --enable-realrtsp"
216
217         enable_skins2="no"
218         echo "  Assuming --disable-skins2"
219         enable_x11="no"
220         echo "  Assuming --disable-x11"
221         enable_glx="no"
222         echo "  Assuming --disable-glx"
223         enable_xvideo="no"
224         echo "  Assuming --disable-xvideo"
225     fi
226     if test ".`uname -p`" = ".i386"; then
227         dnl Due to a ld(64) bug in 10.5 we cannot use our mmx code
228         dnl without hacking it a lot, we disable mmx and sse.
229         dnl (that bug is about ld being unable to handle
230         dnl text relocation)
231         save_cflags="$CFLAGS"
232         CFLAGS="$CFLAGS -dynamiclib -single_module -read_only_relocs suppress"
233         AC_TRY_LINK(
234             [int a;], [asm("movq _a,%mm0\n");],
235             ac_ld_does_not_support_text_reloc=no,
236             ac_ld_does_not_support_text_reloc=yes)
237         CFLAGS="$save_cflags"
238
239         if test "x$ac_ld_does_not_support_text_reloc" = "xyes"; then
240             enable_mmx="no"
241             echo "  Assuming --disable-mmx (due to a bug in ld)"
242             enable_sse="no"
243             echo "  Assuming --disable-sse (due to a bug in ld)"
244         fi
245     fi
246     dnl
247     dnl  Check for Mac OS X SDK settings
248     dnl
249     AC_ARG_WITH(macosx-sdk,
250        [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
251     if test "${with_macosx_sdk}" != "" ; then
252         CC="${CC} -isysroot ${with_macosx_sdk}"
253         CXX="${CXX} -isysroot ${with_macosx_sdk}"
254         OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
255         LD="${LD} -syslibroot ${with_macosx_sdk}"
256     fi
257     AC_ARG_WITH(macosx-version-min,
258        [  --with-macosx-version-min=VERSION  compile for MacOSX VERSION and above])
259     if test "${with_macosx_version_min}" != "" ; then
260         CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
261         CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
262         OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
263         LD="${LD} -macosx_version_min=${with_macosx_version_min}"
264         CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
265         CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
266         OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
267         MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
268         export MACOSX_DEPLOYMENT_TARGET
269     fi
270     ;;
271   *mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
272     AC_CHECK_TOOL(WINDRES, windres, :)
273
274     case "${host_os}" in
275       *wince* | *mingwce* | *mingw32ce* | *pe*)
276         SYS=mingwce
277         ;;
278       *mingw32*)
279         SYS=mingw32
280         ;;
281       *cygwin*)
282         dnl Check if we are using the mno-cygwin mode in which case we are
283         dnl actually dealing with a mingw32 compiler.
284         AC_EGREP_CPP(yes,
285             [#ifdef WIN32
286              yes
287              #endif],
288             SYS=mingw32, SYS=cygwin)
289         ;;
290     esac
291
292     if test "${SYS}" = "mingw32"; then
293         # add ws2_32 for closesocket, select, recv
294         VLC_ADD_LIBS([libvlc],[-lws2_32 -lnetapi32 -lwinmm])
295         VLC_ADD_LDFLAGS([vlc],[-mwindows])
296         VLC_ADD_LIBS([activex mozilla],[-lgdi32])
297         VLC_ADD_LIBS([cdda vcdx cddax sdl_image],[-lwinmm])
298         VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout sap slp http stream_out_standard stream_out_rtp vod_rtsp access_realrtsp telnet rc netsync gnutls growl_udp flac ts audioscrobbler lua],[-lws2_32])
299     fi
300     if test "${SYS}" = "mingwce"; then
301         # add ws2 for closesocket, select, recv
302         VLC_ADD_CPPFLAGS([libvlc vlc],[-Dmain(a,b)=maince(a,b)])
303         VLC_ADD_LDFLAGS([libvlc vlc],[-e WinMainCRTStartup])
304         VLC_ADD_LIBS([libvlc access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp sap http netsync audioscrobbler growl rtp stream_out_rtp],[-lws2])
305         VLC_ADD_LIBS([libvlc],[-lmmtimer])
306    fi
307     ;;
308   *nto*)
309     SYS=nto
310     VLC_ADD_LIBS([x11 xvideo],[-lsocket])
311     ;;
312   solaris*)
313     SYS=solaris
314     # _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
315     # Perhaps it is useful other places as well?
316     CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
317     ;;
318   hpux*)
319     SYS=hpux
320     ;;
321   beos)
322     SYS=beos
323     CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
324     CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
325     VLC_ADD_CXXFLAGS([beos],[])
326     VLC_ADD_LIBS([vlc libvlc logger],[-lbe])
327     VLC_ADD_LIBS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
328     VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
329     VLC_ADD_LIBS([access_file],[-lpoll])
330     LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
331     dnl Check for BONE
332     if test -f /boot/beos/system/lib/libbind.so; then
333         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lbind -lsocket])
334     else
335         VLC_ADD_LIBS([access_file access_ftp access_mms access_output_udp telnet netsync sap libvlc growl_udp],[-lnet])
336     fi
337
338     dnl Ugly check for Zeta
339     if test -f /boot/beos/system/lib/libzeta.so; then
340         VLC_ADD_LIBS([beos],[-lzeta])
341     fi
342     ;;
343   *)
344     SYS="${host_os}"
345     ;;
346 esac
347 AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
348 AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
349 AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
350 AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
351 AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
352
353 dnl
354 dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
355 dnl for program foo on win32
356
357 case "${build_os}" in
358     cygwin|msys)
359         ac_executable_extensions=".exe"
360     ;;
361     *)
362     ;;
363 esac
364
365 dnl
366 dnl  Libtool
367 dnl  It's very bad, but our former custom system was worst
368 dnl  -- Courmisch
369 dnl
370
371 dnl override platform specific check for dependent libraries
372 dnl otherwise libtool linking of shared libraries will
373 dnl fail on anything other than pass_all.
374 AC_CACHE_VAL(lt_cv_deplibs_check_method,
375     [lt_cv_deplibs_check_method=pass_all])
376
377 AC_DISABLE_STATIC
378 AC_DISABLE_FAST_INSTALL
379 AC_LIBTOOL_DLOPEN
380 AC_LIBTOOL_WIN32_DLL
381 m4_undefine([AC_PROG_F77])
382 m4_defun([AC_PROG_F77],[])
383 AC_PROG_LIBTOOL
384
385 m4_undefine([AC_DEPLIBS_CHECK_METHOD])
386 m4_defun([AC_DEPLIBS_CHECK_METHOD],[])
387
388 lt_cv_deplibs_check_method=pass_all
389
390
391 dnl
392 dnl Gettext stuff
393 dnl
394 AM_GNU_GETTEXT_VERSION([0.17])
395 AM_GNU_GETTEXT([external])
396 VLC_ADD_LIBS([libvlc vlc], [${LTLIBINTL}])
397
398 dnl
399 dnl Iconv stuff
400 dnl
401 AM_ICONV
402 AS_IF([test "$am_cv_func_iconv" != "yes"],
403         [AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
404 VLC_ADD_CFLAGS([libvlc],[${INCICONV}])
405 VLC_ADD_LIBS([libvlc],[${LTLIBICONV}])
406
407 dnl Check for the need to include the mingwex lib for mingw32
408 if test "${SYS}" = "mingw32"
409 then
410     AC_CHECK_LIB(mingwex,opendir,
411         AC_CHECK_LIB(mingw32,opendir,,
412             [VLC_ADD_LIBS([libvlc gtk],[-lmingwex])])
413     )
414 fi
415
416 dnl Check for fnative-struct or mms-bitfields support for mingw32
417 if test "${SYS}" = "mingw32"
418 then
419     AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
420         [ac_cv_c_mms_bitfields],
421         [CFLAGS="${CFLAGS_save} -mms-bitfields"
422          AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
423     if test "${ac_cv_c_mms_bitfields}" != "no"; then
424         CFLAGS_save="${CFLAGS_save} -mms-bitfields";
425         CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
426     else
427         AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
428             [ac_cv_c_fnative_struct],
429             [CFLAGS="${CFLAGS_save} -fnative-struct"
430              AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
431         if test "${ac_cv_c_fnative_struct}" != "no"; then
432             CFLAGS_save="${CFLAGS_save} -fnative-struct";
433             CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
434         fi
435     fi
436
437     CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
438 fi
439
440 dnl Check for fvtable-thunks support for mingw32
441 if test "${SYS}" = "mingw32" -a "${CXX}" != ""
442 then
443 AC_LANG_PUSH(C++)
444     AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
445         [ac_cv_cxx_fvtable_thunks],
446         [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
447          AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
448                         ac_cv_cxx_fvtable_thunks=no)])
449     if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
450         CXXFLAGS_mingw32_special="-fvtable-thunks"
451     fi
452
453     CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
454 AC_LANG_POP(C++)
455 fi
456
457 dnl Plugin compilation stuff
458
459 VLC_LIBRARY_SUFFIX
460
461 dnl The -DSYS_FOO flag
462 CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
463
464 dnl Check for system libs needed
465 need_libc=false
466
467 dnl Check for usual libc functions
468 AC_CHECK_FUNCS([gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid_r memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy strdup strndup strnlen atof lldiv posix_fadvise posix_madvise])
469 AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
470 AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
471 AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
472 AC_FUNC_ALLOCA
473
474 AH_BOTTOM([#include <vlc_fixups.h>])
475
476 AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
477
478 dnl Check for setlocal and langinfo
479 AC_CHECK_FUNCS(setlocale)
480 AC_CHECK_HEADERS(langinfo.h)
481 AC_CHECK_FUNCS(nl_langinfo)
482
483 AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
484   [AC_TRY_LINK([#include <langinfo.h>],
485     [char* cs = nl_langinfo(CODESET);],
486     ac_cv_langinfo_codeset=yes,
487     ac_cv_langinfo_codeset=no)
488   ])
489 if test ${ac_cv_langinfo_codeset} = yes; then
490   AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
491     [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
492 fi
493
494 AC_CHECK_FUNCS(connect,,[
495   AC_CHECK_LIB(socket,connect,[
496     VLC_ADD_LIBS([libvlc cdda cddax],-lsocket)
497     LIBS_socket="-lsocket"
498   ])
499 ])
500
501 AC_CHECK_FUNCS(send,,[
502   AC_CHECK_LIB(socket,send,[
503     VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp stream_out_standard growl_udp],[-lsocket])
504   ])
505 ])
506
507 AC_CHECK_FUNCS(gethostbyname,,[
508   AC_CHECK_LIB(nsl,gethostbyname,[
509     VLC_ADD_LIBS([cdda cddax libvlc],[-lnsl])
510   ],[
511     AC_CHECK_LIB(bind,gethostbyname,[
512       VLC_ADD_LIBS([access_mms],[-lbind])
513     ])
514   ])
515 ])
516
517 AC_CHECK_HEADERS(zlib.h, [
518   VLC_ADD_LIBS([access_http],[-lz])
519 ])
520
521 dnl Check for socklen_t
522 AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
523 AC_CACHE_CHECK([for socklen_t in sys/socket.h],
524 ac_cv_type_socklen_t,
525 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
526 [#include <sys/types.h>
527 #ifdef WIN32
528 # include <winsock2.h>
529 # include <ws2tcpip.h>
530 #else
531 # include <sys/socket.h>
532 #endif]], [[socklen_t len; len = 0;]])],
533 ac_cv_type_socklen_t=yes,
534 ac_cv_type_socklen_t=no)])
535 AS_IF([test "$ac_cv_type_socklen_t" = no],
536  [AC_DEFINE(socklen_t, int)])
537
538 dnl Check for struct sockaddr_storage
539 AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
540 AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
541 AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
542   [AC_TRY_COMPILE(
543     [#include <sys/types.h>
544      #if defined( UNDER_CE )
545      # include <winsock.h>
546      #elif defined( WIN32 )
547      # include <winsock2.h>
548      #else
549      # include <sys/socket.h>
550      #endif], [struct sockaddr_storage addr;],
551      ac_cv_struct_sockaddr_storage=yes,
552      ac_cv_struct_sockaddr_storage=no)])
553 AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
554   AC_DEFINE(sockaddr_storage, sockaddr)
555   AC_DEFINE(ss_family, sa_family)
556 ])
557
558 dnl getaddrinfo, getnameinfo and gai_strerror check
559 dnl  -lnsl and -lsocket are needed on Solaris;
560 dnl  we purposedly make the test fail on Windows
561 LIBS_save="${LIBS}"
562 AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
563 AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
564
565 dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
566 dnl are
567 LIBS="${LIBS_gai}"
568 AC_CHECK_FUNCS([getnameinfo gai_strerror])
569 LIBS="${LIBS_save}"
570
571 AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
572 AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
573 [#include <sys/types.h>
574 #if defined( WIN32 ) || defined( UNDER_CE )
575 # if defined(UNDER_CE) && defined(sockaddr_storage)
576 #  undef sockaddr_storage
577 # endif
578 # include <winsock2.h>
579 # include <ws2tcpip.h>
580 #else
581 # include <netdb.h>
582 #endif])
583
584 dnl Check for va_copy
585 AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
586   AC_TRY_LINK(
587     [#include <stdarg.h>],
588     [va_list ap1, ap2; va_copy(ap1,ap2);],
589     [ac_cv_c_va_copy="yes"],
590     [ac_cv_c_va_copy="no"]))
591 if test "${ac_cv_c_va_copy}" = "yes"; then
592   AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
593 fi
594 AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
595   AC_TRY_LINK(
596     [#include <stdarg.h>],
597     [va_list ap1, ap2; __va_copy(ap1,ap2);],
598     [ac_cv_c___va_copy="yes"],
599     [ac_cv_c___va_copy="no"]))
600 if test "${ac_cv_c___va_copy}" = "yes"; then
601   AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
602 fi
603
604 AC_CHECK_FUNCS(inet_aton,,[
605   AC_CHECK_LIB(resolv,inet_aton,[
606     VLC_ADD_LIBS([libvlc],[-lresolv])
607   ])
608 ])
609
610 dnl Check for getopt (always use builtin one on win32)
611 if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
612 need_getopt=:
613 else
614 need_getopt=false
615 AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
616 [ # FreeBSD has a gnugetopt library for this:
617   AC_CHECK_LIB([gnugetopt],[getopt_long],
618     [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support)
619      VLC_ADD_LIBS([libvlc],[-lgnugetopt])],
620     [need_getopt=:])])
621 fi
622 AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
623
624 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
625 AC_TYPE_SIGNAL
626 AC_CHECK_LIB(m,cos,[
627   VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain],[-lm])
628 ])
629 AC_CHECK_LIB(m,pow,[
630   VLC_ADD_LIBS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer spatializer param_eq libvlc vorbis freetype mod mpc dmo quicktime realaudio galaktos opengl],[-lm])
631 ])
632 AC_CHECK_LIB(m,sqrt,[
633   VLC_ADD_LIBS([headphone_channel_mixer normvol speex mono colorthres extract],[-lm])
634 ])
635 AC_CHECK_LIB(m,ceil,[
636   VLC_ADD_LIBS([mosaic],[-lm])
637 ])
638 AC_CHECK_LIB(m,exp,[
639   VLC_ADD_LIBS([gaussianblur],[-lm])
640 ])
641 AC_CHECK_LIB(m,round,[
642   VLC_ADD_LIBS([dbus],[-lm])
643 ])
644 AC_CHECK_LIB(mx,sqrtf,[
645   VLC_ADD_LIBS([x264],[-lmx])
646 ])
647 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
648
649 dnl Check for dynamic plugins
650 ac_cv_have_plugins=no
651
652 # OS X style
653 AC_CHECK_HEADERS(mach-o/dyld.h,
654   [AC_CHECK_FUNCS(NSLinkModule,
655     [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
656      ac_cv_have_plugins=yes])])
657
658 # HP-UX style
659 if test "${ac_cv_have_plugins}" = "no"; then
660   AC_CHECK_HEADERS(dl.h)
661   ac_cv_my_have_shl_load=no
662   AC_CHECK_FUNC(shl_load,
663    [ac_cv_my_have_shl_load=yes,
664     AC_CHECK_LIB(dld, shl_load,
665      [ac_cv_my_have_shl_load=yes
666       VLC_ADD_LIBS([libvlc],[-ldld])])])
667   if test "${ac_cv_my_have_shl_load}" = "yes"; then
668     AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
669     ac_cv_have_plugins=yes
670   fi
671 fi
672
673 # Whatever style
674 if test "${ac_cv_have_plugins}" = "no"; then
675   AC_CHECK_LIB(dld, dld_link,
676    [VLC_ADD_LIBS([libvlc],[-ldld])
677     AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
678     ac_cv_have_plugins=yes])
679 fi
680
681 # Win32 style
682 if test "${ac_cv_have_plugins}" = "no"; then
683   if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
684     AC_CHECK_LIB(kernel32, main,
685      [VLC_ADD_LIBS([libvlc],[-lkernel32])
686       AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
687       ac_cv_have_plugins=yes])
688   fi
689 fi
690
691 # WinCE style
692 if test "${ac_cv_have_plugins}" = "no"; then
693   if test "${SYS}" = "mingwce"; then
694     AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
695     ac_cv_have_plugins=yes
696   fi
697 fi
698
699 # BeOS style
700 if test "${ac_cv_have_plugins}" = "no"; then
701   AC_CHECK_HEADERS(image.h)
702   AC_CHECK_FUNCS(load_add_on,
703    [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
704     ac_cv_have_plugins=yes])
705 fi
706
707 # Only test for dlopen() if the others didn't work
708 if test "${ac_cv_have_plugins}" = "no"; then
709   AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
710   ac_cv_my_have_dlopen=no
711   AC_CHECK_FUNC(dlopen,
712     ac_cv_my_have_dlopen=yes,
713     AC_CHECK_LIB(dl, dlopen,
714       ac_cv_my_have_dlopen=yes
715       VLC_ADD_LIBS([libvlc realaudio],[-ldl]),
716       AC_CHECK_LIB(svld, dlopen,
717         ac_cv_my_have_dlopen=yes
718         VLC_ADD_LIBS([libvlc],[-lsvld]))))
719   if test "${ac_cv_my_have_dlopen}" = "yes"; then
720     AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
721     ac_cv_have_plugins=yes
722   fi
723 fi
724
725 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
726 dnl Check for pthreads - borrowed from XMMS
727 THREAD_LIB=error
728 if test "${THREAD_LIB}" = "error"; then
729   AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
730 fi
731 if test "${THREAD_LIB}" = "error"; then
732   AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
733 fi
734 if test "${THREAD_LIB}" = "error"; then
735   AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
736 fi
737 if test "${THREAD_LIB}" = "error"; then
738   AC_CHECK_FUNCS(pthread_mutex_lock)
739   THREAD_LIB=""
740 fi
741
742 VLC_ADD_LIBS([libvlc plugin],[${THREAD_LIB}])
743
744 AC_CHECK_LIB(rt, clock_nanosleep, [
745   VLC_ADD_LIBS([libvlc],[-lrt])
746   AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
747 ], [
748   dnl HP/UX port
749   AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlc],[-lrt])])
750 ])
751
752 have_nanosleep=false
753 AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
754   AC_CHECK_LIB(rt,nanosleep,
755     [VLC_ADD_LIBS([libvlc],[-lrt]) have_nanosleep=:],
756     [AC_CHECK_LIB(posix4,nanosleep,
757         [VLC_ADD_LIBS([libvlc],[-lposix4]) have_nanosleep=:])]
758   )
759 ])
760 if ${have_nanosleep}; then
761   AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
762 fi
763 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
764
765 dnl Check for misc headers
766 AC_MSG_CHECKING(for strncasecmp in strings.h)
767 AC_EGREP_HEADER(strncasecmp,strings.h,[
768   AC_MSG_RESULT(yes)
769   AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
770             Define if <strings.h> defines strncasecmp.)],[
771   AC_MSG_RESULT(no)])
772
773 dnl Check for headers
774 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 locale.h)
775 AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
776 AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h])
777 AC_CHECK_HEADERS([net/if.h], [], [],
778   [
779     #include <sys/socket.h>
780   ])
781 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
782 AC_CHECK_HEADERS(machine/param.h sys/shm.h)
783 AC_CHECK_HEADERS([linux/version.h linux/dccp.h])
784 AC_CHECK_HEADERS(syslog.h)
785 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
786
787 AC_HEADER_TIME
788
789 dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
790 AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
791 AC_CHECK_TYPE(ssize_t,, [
792   AC_DEFINE(ssize_t, int)
793 ])
794
795 dnl don't attemp to use poll on darwin, it can't poll a tty. select will do a better job.
796 if test "${SYS}" != "darwin"; then
797   AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
798 fi
799
800 dnl Check for dirent
801 need_dirent=false
802 AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
803 AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
804
805 dnl Mac OS X and other OSes don't have declaration for nanosleep
806 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
807 AC_MSG_CHECKING(for nanosleep in time.h)
808 AC_EGREP_HEADER(nanosleep,time.h,[
809   AC_MSG_RESULT(yes)
810   AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
811             Define if <time.h> defines nanosleep.)
812 ],[
813   AC_MSG_RESULT(no)
814 ])
815 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
816
817 dnl Make sure we have timespecs
818 AC_MSG_CHECKING(for timespec in sys/time.h)
819 AC_EGREP_HEADER(timespec,sys/time.h,[
820   AC_MSG_RESULT(yes)
821   AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
822             Define if <sys/time.h> defines struct timespec.)
823 ],[
824   AC_MSG_RESULT(no)
825 ])
826
827 dnl Check for threads library
828 if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
829 AC_CHECK_HEADERS(pthread.h kernel/scheduler.h kernel/OS.h)
830 fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
831
832 dnl Find where are the X headers and libraries
833 AC_PATH_XTRA()
834
835 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.
836
837 PKG_PROG_PKG_CONFIG()
838
839 dnl Check for hal
840 AC_ARG_ENABLE(hal,
841   [  --enable-hal            Linux HAL services discovery (default enabled)])
842  
843 if test "${enable_hal}" != "no"
844 then
845   PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
846     [ AC_DEFINE( HAVE_HAL_1, 1 , [Define if you have the new HAL library API])
847       AC_DEFINE( HAVE_HAL, 1, [Define if you have the HAL library] )
848       VLC_ADD_PLUGIN([hal])
849       VLC_ADD_PLUGIN([probe_hal])
850       VLC_ADD_LIBS([libvlc hal probe_hal],[$HAL_LIBS])
851       VLC_ADD_CFLAGS([libvlc hal probe_hal],[$HAL_CFLAGS])],   
852     dnl No hal 0.5 Test for 0.2
853     [ PKG_CHECK_MODULES( HAL, hal >= 0.2.97,
854        [AC_DEFINE(HAVE_HAL, 1, [Define if you have the HAL library])
855         VLC_ADD_PLUGIN([hal])
856         VLC_ADD_LIBS([libvlc hal],[$HAL_LIBS])
857         VLC_ADD_CFLAGS([libvlc hal],[$HAL_CFLAGS])],
858        [AC_MSG_WARN(HAL library not found)])
859     ]
860   )
861 fi
862
863 dnl Check for dbus
864 AC_ARG_ENABLE(dbus,
865   [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
866 case "${SYS}" in
867     linux*|*bsd*)
868 if test "${enable_dbus}" != "no"
869 then
870   dnl api stable dbus
871   PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
872     [ AC_DEFINE( HAVE_DBUS_3, 1, [Define if you have the D-BUS library API >= 1.0.0] )
873       AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
874       AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
875       AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
876       VLC_ADD_LIBS([screensaver libvlc],[$DBUS_LIBS])
877       VLC_ADD_CFLAGS([screensaver libvlc],[$DBUS_CFLAGS])
878       dnl Check for dbus control interface
879         AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
880         if test "${enable_dbus_control}" != "no"
881         then
882           VLC_ADD_PLUGIN([dbus])
883           VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
884           VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
885         fi
886       dnl Check for Telepathy
887         AC_ARG_ENABLE(telepathy, [  --enable-telepathy      Telepathy Presence plugin through DBus(default enabled)])
888         if test "${enable_telepathy}" != "no"; then
889           VLC_ADD_PLUGIN([telepathy])
890           VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
891           VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
892         fi
893         dnl Power Management Inhibiter
894         VLC_ADD_PLUGIN([inhibit])
895         VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
896         VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
897         ],
898     if ${PKG_CONFIG} --exists dbus-1
899     then
900       [AC_ARG_ENABLE(old-dbus,
901         [  --enable-old-dbus       Deprecated D-Bus support (default disabled)])]
902
903       if test "${enable_old_dbus}" != "yes"
904       then
905         echo ""
906         echo "****** WARNING **** WARNING ***** WARNING *************"
907         echo "*** Your D-Bus version is < 1.0.0"
908         echo "*** You are using old and buggy software and so"
909         echo "*** D-Bus support has been disabled."
910         echo "*** Please upgrade D-Bus : http://dbus.freedesktop.org"
911         echo "*** Alternatively you can force the use of your old and"
912         echo "*** buggy D-Bus version by specifying --enable-old-dbus"
913         echo "*******************************************************"
914         echo ""
915       else
916         dnl not too old dbus
917         [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
918           [ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
919             AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
920             AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
921             VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
922             VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
923           dnl older dbus
924           [ PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.30,
925             [ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
926               AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
927               VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
928               VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
929             dnl much older dbus
930             [ PKG_CHECK_MODULES( DBUS, dbus-1,
931                [AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
932                 VLC_ADD_LIBS([screensaver],[$DBUS_LIBS])
933                 VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
934                [AC_MSG_WARN(DBUS library not found)])
935             ]
936           )]
937         )]
938       fi
939     fi
940   )
941 fi
942 ;;
943 esac
944
945 dnl Build the gtk_main plugins?
946 NEED_GTK_MAIN=no
947 NEED_GNOME_MAIN=no
948 NEED_GTK2_MAIN=no
949 NEED_GNOME2_MAIN=no
950
951 dnl build the qte plugin ?
952 NEED_QTE_MAIN=no
953
954 dnl Check for ntohl, etc.
955 AC_CACHE_CHECK([for ntohl in sys/param.h],
956     [ac_cv_c_ntohl_sys_param_h],
957     [CFLAGS="${CFLAGS_save} -Wall -Werror"
958      AC_TRY_COMPILE([#include <sys/param.h>],
959         [int meuh; ntohl(meuh);],
960         ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
961 if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
962     AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
963 fi
964 CFLAGS="${CFLAGS_save}"
965
966 RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast cast-align write-strings missing-prototypes volatile-register-var])
967 RDC_PROG_CC_FLAGS_IFELSE([-pipe])
968
969 dnl Check for various optimization flags
970 AC_CACHE_CHECK([if \$CC accepts -Os],
971     [ac_cv_c_os],
972     [CFLAGS="${CFLAGS_save} -Os"
973      AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
974 if test "${ac_cv_c_os}" != "no"; then
975     CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
976 else
977     AC_CACHE_CHECK([if \$CC accepts -O],
978         [ac_cv_c_o],
979         [CFLAGS="${CFLAGS_save} -O"
980          AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
981     if test "${ac_cv_c_o}" != "no"; then
982         if test "${ac_cv_c_o3}" = "no"; then
983             CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
984         fi
985     fi
986 fi
987
988 AC_CACHE_CHECK([if \$CC accepts -O3],
989     [ac_cv_c_o3],
990     [CFLAGS="${CFLAGS_save} -O3"
991      AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
992 if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
993     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
994 else
995     AC_CACHE_CHECK([if \$CC accepts -O2],
996         [ac_cv_c_o2],
997         [CFLAGS="${CFLAGS_save} -O2"
998          AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
999     if test "${ac_cv_c_o2}" != "no"; then
1000         CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O2"
1001     else
1002         AC_CACHE_CHECK([if \$CC accepts -O],
1003             [ac_cv_c_o],
1004             [CFLAGS="${CFLAGS_save} -O"
1005              AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
1006         if test "${ac_cv_c_o}" != "no"; then
1007             CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O"
1008         fi
1009     fi
1010 fi
1011
1012 AC_CACHE_CHECK([if \$CC accepts -O0],
1013     [ac_cv_c_o0],
1014     [CFLAGS="${CFLAGS_save} -O0"
1015      AC_TRY_COMPILE([],,ac_cv_c_o0=yes, ac_cv_c_o0=no)])
1016 if test "${ac_cv_c_o0}" != "no"; then
1017     CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O0"
1018 fi
1019
1020 dnl Check for -ffast-math
1021 AC_CACHE_CHECK([if \$CC accepts -ffast-math],
1022     [ac_cv_c_fast_math],
1023     [CFLAGS="${CFLAGS_save} -ffast-math"
1024      AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
1025 if test "${ac_cv_c_fast_math}" != "no"; then
1026     CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -ffast-math"
1027 fi
1028
1029 dnl Check for -funroll-loops
1030 dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
1031 if test "${SYS}" != "beos"
1032 then
1033   AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
1034       [ac_cv_c_unroll_loops],
1035       [CFLAGS="${CFLAGS_save} -funroll-loops"
1036        AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
1037   if test "${ac_cv_c_unroll_loops}" != "no"; then
1038       CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -funroll-loops"
1039   fi
1040 fi
1041
1042 dnl Check for -fomit-frame-pointer
1043 AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
1044     [ac_cv_c_omit_frame_pointer],
1045     [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
1046      AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
1047 if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
1048     CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
1049 fi
1050
1051 dnl Check for -fvisibility=hidden
1052 dnl Don't test on mingw32, because it is going to work with just a warning
1053 dnl even if it doesn't support it
1054 if test "${SYS}" != "mingw32"
1055 then
1056 AC_CACHE_CHECK([if \$CC accepts -fvisibility=hidden],
1057     [ac_cv_c_visibility_hidden],
1058     [CFLAGS="${CFLAGS_save} -fvisibility=hidden"
1059      AC_TRY_COMPILE([],,ac_cv_c_visibility_hidden=yes, ac_cv_c_visibility_hidden=no)])
1060 if test "${ac_cv_c_visibility_hidden}" != "no"; then
1061     VLC_ADD_CFLAGS([libvlc plugin],[-fvisibility=hidden])
1062 fi
1063 fi
1064
1065 AM_CONDITIONAL(HAVE_COMPILER_EXPORT, [test "$SYS" = "mingw32" -o "${ac_cv_c_visibility_hidden}" != "no"])
1066
1067 dnl Check for -fvisibility-inlines-hidden (breaks x86_64 linkers)
1068 dnl AC_LANG_PUSH(C++)
1069 dnl     AC_CACHE_CHECK([if \$CXX accepts -fvisibility-inlines-hidden],
1070 dnl         [ac_cv_c_visibility_inlines_hidden],
1071 dnl         [CXXFLAGS="${CXXFLAGS_save} -fvisibility-inlines-hidden"
1072 dnl          AC_TRY_COMPILE([],,ac_cv_c_visibility_inlines_hidden=yes, ac_cv_c_visibility_inlines_hidden=no)])
1073 dnl     if test "${ac_cv_c_visibility_inlines_hidden}" != "no"; then
1074 dnl         VLC_ADD_CXXFLAGS([libvlc plugin],[-fvisibility-inlines-hidden])
1075 dnl     fi
1076 dnl     CXXFLAGS="${CXXFLAGS_save}"
1077 dnl AC_LANG_POP(C++)
1078
1079 dnl Check for -mdynamic-no-pic
1080 dnl AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
1081 dnl     [ac_cv_c_dynamic_no_pic],
1082 dnl     [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
1083 dnl      AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
1084 dnl AS_IF([test "${ac_cv_c_dynamic_no_pic}" != "no"], [
1085 dnl     VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
1086 dnl     VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
1087 dnl ])
1088
1089 dnl Check for Darwin plugin linking flags
1090 AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
1091     [ac_cv_ld_darwin],
1092     [CFLAGS="${CFLAGS_save} -bundle -undefined error"
1093      AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
1094 if test "${ac_cv_ld_darwin}" != "no"; then
1095     VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error])
1096 fi
1097
1098 dnl Check for standard plugin linking flags
1099 dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
1100 dnl AS_IF([test "${SYS}" = "beos"], [
1101 dnl   VLC_ADD_LDFLAGS([plugin mozilla],[-nostart])
1102 dnl ], [
1103 dnl   AC_CACHE_CHECK([if \$CC accepts -shared],
1104 dnl         [ac_cv_ld_plugins],
1105 dnl         [CFLAGS="${CFLAGS_save} -shared"
1106 dnl        AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
1107 dnl   AS_IF([test "${ac_cv_ld_plugins}" != "no"], [
1108 dnl     VLC_ADD_LDFLAGS([plugin mozilla],[-shared])
1109 dnl   ])
1110 dnl ])
1111
1112 dnl Checks for __attribute__(aligned()) directive
1113 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
1114     [ac_cv_c_attribute_aligned],
1115     [ac_cv_c_attribute_aligned=0
1116         CFLAGS="${CFLAGS_save} -Werror"
1117     for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
1118         AC_TRY_COMPILE([],
1119         [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
1120         [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
1121     done
1122         CFLAGS="${CFLAGS_save}"])
1123 if test "${ac_cv_c_attribute_aligned}" != "0"; then
1124     AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
1125         [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
1126 fi
1127
1128 dnl Checks for __attribute__(format()) directive
1129 AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
1130     [ac_cv_c_attribute_format],
1131     [ac_cv_c_attribute_format=no
1132         CFLAGS="${CFLAGS_save} -Werror"
1133         AC_TRY_COMPILE([],
1134         [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
1135         [ac_cv_c_attribute_format=yes])
1136         CFLAGS="${CFLAGS_save}"])
1137 if test "${ac_cv_c_attribute_format}" != "no"; then
1138     AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
1139 fi
1140
1141 dnl Check for __attribute__((packed))
1142 AC_CACHE_CHECK([for __attribute__((packed))],
1143   [ac_cv_c_attribute_packed],
1144   [ac_cv_c_attribute_packed=no
1145    AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
1146                     [ac_cv_c_attribute_packed=yes])])
1147 if test "${ac_cv_c_attribute_packed}" != "no"; then
1148   AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
1149 fi
1150
1151 dnl Check for __attribute__((visibility()))
1152 AC_CACHE_CHECK([for __attribute__((visibility()))],
1153   [ac_cv_c_attribute_visibility],
1154   [ac_cv_c_attribute_visibility=no
1155    AC_TRY_COMPILE(, [extern __attribute__((visibility("default"))) int foo(int);],
1156                     [ac_cv_c_attribute_visibility=yes])])
1157 if test "${ac_cv_c_attribute_visibility}" != "no