configure.ac 156 KB
Newer Older
Sam Hocevar's avatar
 
Sam Hocevar committed
1
dnl Autoconf settings for vlc
2

Christophe Mutricy's avatar
Christophe Mutricy committed
3
AC_COPYRIGHT([Copyright 2002-2010 the VideoLAN team])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
4

5
AC_INIT(vlc, 1.2.0-git)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
6
VERSION_MAJOR="1"
7
VERSION_MINOR="2"
8
VERSION_REVISION="0"
9
VERSION_EXTRA="-git"
10 11
PKGDIR="vlc"
AC_SUBST(PKGDIR)
12

13
CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
14
CODENAME="Twoflower"
15
COPYRIGHT_YEARS="1996-2010"
16

17
AC_PREREQ(2.59c)
18
AC_CONFIG_SRCDIR(src/libvlc.c)
19
AC_CONFIG_AUX_DIR(autotools)
20
AC_CONFIG_MACRO_DIR(m4)
21
AC_CONFIG_LIBOBJ_DIR(compat)
22
AC_CANONICAL_BUILD
23
AC_CANONICAL_HOST
24
AC_PRESERVE_HELP_ORDER
25

26
AM_INIT_AUTOMAKE(tar-ustar)
27 28
AM_CONFIG_HEADER(config.h)

Pierre's avatar
Pierre committed
29
# Disable with "./configure --disable-silent-rules" or "make V=1"
30 31 32 33 34 35
m4_ifdef([AM_SILENT_RULES], [
  AM_SILENT_RULES([yes])
], [
  AM_DEFAULT_VERBOSITY=1
  AC_SUBST(AM_DEFAULT_VERBOSITY)
])
Pierre's avatar
Pierre committed
36 37


38 39 40 41 42 43 44
dnl Too many people are not aware of maintainer mode:
dnl If you want to use it, you definitely know what you are doing, so
dnl you can specify "--disable-maintainer-mode". But if you want the default
dnl automake behavior, you've likely never heard of maintainer mode, so we
dnl can't expect you to enable it manually.

AS_IF([test "x${enable_maintainer_mode}" != "xno"],
45
    [enable_maintainer_mode="yes"])
46 47
AM_MAINTAINER_MODE

48 49 50 51 52 53 54 55 56 57
dnl
dnl Directories
dnl
dnl vlcincludedir="\${includedir}/\${PKGDIR}"
dnl AC_SUBST(vlcincludedir)
vlcdatadir="\${datadir}/\${PKGDIR}"
AC_SUBST(vlcdatadir)
vlclibdir="\${libdir}/\${PKGDIR}"
AC_SUBST(vlclibdir)

Sam Hocevar's avatar
Sam Hocevar committed
58 59 60
dnl
dnl  Save *FLAGS
dnl
Sam Hocevar's avatar
Sam Hocevar committed
61
VLC_SAVE_FLAGS
Sam Hocevar's avatar
 
Sam Hocevar committed
62

Sam Hocevar's avatar
Sam Hocevar committed
63
dnl
64
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
65
dnl
66
AC_PROG_CC_C99
67
AC_USE_SYSTEM_EXTENSIONS
68
AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
69

70 71
AM_PROG_CC_C_O
AC_PROG_CXX
72
AC_PROG_CPP
73 74 75
AC_PROG_OBJC
_AM_DEPENDENCIES([OBJC])
AC_PROG_EGREP
76 77
AC_PROG_MAKE_SET
AC_PROG_INSTALL
78
AM_PROG_AS
79

Gildas Bazin's avatar
 
Gildas Bazin committed
80 81
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
Sam Hocevar's avatar
 
Sam Hocevar committed
82
AC_CHECK_TOOL(STRIP, strip, :)
Jean-Paul Saman's avatar
Jean-Paul Saman committed
83 84
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
85
AC_CHECK_TOOL(DLLTOOL, dlltool, :)
Gildas Bazin's avatar
 
Gildas Bazin committed
86

87 88 89
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE
90
AC_C_RESTRICT
91

92 93 94
dnl Extend the --help string at the current spot.
AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])

95
dnl Allow binary package maintainer to pass a custom string to avoid
96
dnl cache problem
97
AC_ARG_WITH(binary-version,
98 99 100 101 102 103 104 105
	AS_HELP_STRING([--with-binary-version=STRING],
	     [To avoid plugins cache problem between binary version]),[],[])
AS_IF([test -n "${with_binary_version}"],[
      AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
			 [Binary specific version])
      ])


106 107 108
dnl
dnl  Check for the contrib directory
dnl
109
AC_ARG_WITH(contrib,
110
    [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
111 112 113
AC_ARG_VAR([CONTRIB_DIR], [directory containing pre-built contrib, overriding extras/contrib])
AS_IF([test "${with_contrib}" != "no"],[
  AS_IF([test -z "$CONTRIB_DIR"], [
114 115 116 117
      topdir="`dirname $0`"
      if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
         topdir="`pwd`/$topdir"
      fi
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
118
      CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
119 120
      if ! test -d "$CONTRIB_DIR"
      then
121
        gccmachine=`$CC -dumpmachine`
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
122
        CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
123
      fi
124 125
  ])
  AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
126
  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
127
    AC_MSG_RESULT([yes])
128
    AC_SUBST(CONTRIB_DIR)
Christophe Mutricy's avatar
Typo  
Christophe Mutricy committed
129
    export PATH=${CONTRIB_DIR}/bin:$PATH
130 131 132 133 134 135 136 137
    CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
    CPPFLAGS_save="${CPPFLAGS_save} -I${CONTRIB_DIR}/include"
    CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
    CFLAGS_save="${CFLAGS_save} -I${CONTRIB_DIR}/include"
    CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
    CXXFLAGS_save="${CXXFLAGS_save} -I${CONTRIB_DIR}/include"
    OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
    OBJCFLAGS_save="${OBJCFLAGS_save} -I${CONTRIB_DIR}/include"
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
138 139
    if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
        export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
140
    else
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
141
        export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
142
    fi
143 144
    LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
    LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
145

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
146 147
    if test -z "$with_mozilla_sdk_path"; then
       with_mozilla_sdk_path="${CONTRIB_DIR}/gecko-sdk"
148
    fi
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
149 150
    if test -z "$with_cyberlink_tree"; then
       with_cyberlink_tree="${CONTRIB_DIR}/src/clinkcc"
151
    fi
152

153
    if test "${SYS}" = "darwin"; then
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
154 155
      export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
      export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
156
    elif test "${SYS}" = "beos"; then
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
157 158
      export LIBRARY_PATH="${CONTRIB_DIR}/lib:$LIBRARY_PATH"
      export BELIBRARIES="${CONTRIB_DIR}/lib:$BELIBRARIES"
159
    fi
160 161 162 163
  ],[
    AC_MSG_RESULT([no])
    CONTRIB_DIR=""
  ])
164
])
Sam Hocevar's avatar
Sam Hocevar committed
165
dnl
166
dnl  Set default values
Sam Hocevar's avatar
Sam Hocevar committed
167
dnl
168
LDFLAGS_vlc="${LDFLAGS}"
Sam Hocevar's avatar
Sam Hocevar committed
169

Gildas Bazin's avatar
 
Gildas Bazin committed
170 171 172
dnl
dnl  Check the operating system
dnl
173
case "${host_os}" in
Sam Hocevar's avatar
Sam Hocevar committed
174
  "")
175 176
    SYS=unknown
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
177
  linux*)
178 179
    SYS=linux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
180
  bsdi*)
181 182
    SYS=bsdi
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
183
    VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
184
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
185
  *bsd*)
186
    SYS="${host_os}"
187
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
188
    case "${host_os}" in
189 190
      freebsd*)
        CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
191
        CPPFLAGS="${CPPFLAGS_save}"
192
        LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
Derk-Jan Hartman's avatar
Derk-Jan Hartman committed
193
        LDFLAGS="${LDFLAGS_save}"
194
        ;;
195 196 197 198 199 200
      openbsd*)
        CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include -I/usr/X11R6/include"
        CPPFLAGS="${CPPFLAGS_save}"
        LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib -L/usr/X11R6/lib/"
        LDFLAGS="${LDFLAGS_save}"
        ;;
201
    esac
202
    ;;
203
  darwin*)
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221

    dnl Force gcc "-arch" flag
    ARCH_flag=""
    case "${host}" in
      i386*)
        ARCH_flag="-arch i386"
      ;;
      ppc64*)
        ARCH_flag="-arch ppc64"
      ;;
      ppc*)
        ARCH_flag="-arch ppc"
      ;;
      x86_64*)
        ARCH_flag="-arch x86_64"
      ;;
    esac

222
    SYS=darwin
223 224 225 226 227
    CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"; CXXFLAGS="${CXXFLAGS_save}"
    CPPFLAGS_save="${CPPFLAGS_save} ${ARCH_flag}"; CPPFLAGS="${CPPFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"; OBJCFLAGS="${OBJCFLAGS_save}"
    LDFLAGS_save="${LDFLAGS_save} -Wl,-headerpad_max_install_names ${ARCH_flag}"; LDFLAGS="${LDFLAGS_save}"
228 229
    VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
    VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
230
    VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
231
    VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
232
    VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
233
    AC_ARG_ENABLE(macosx-defaults,
234
      AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
235 236 237 238
    if test "x${enable_macosx_defaults}" != "xno"
    then
        echo ""
        echo "Building with Mac OS X defaults:"
239 240 241 242
        with_macosx_version_min="10.5"
        echo "  Assuming --with-macosx-version-min=10.5"
        with_macosx_sdk="/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
        echo "  Assuming --with-macosx-sdk=/Developer/SDKs/MacOSX${with_macosx_version_min}.sdk"
243 244 245
        build_dir=`pwd`
        echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
        ac_default_prefix="${build_dir}/vlc_install_dir"
Pierre d'Herbemont's avatar
Pierre d'Herbemont committed
246 247
        enable_macosx="yes"
        echo "  Assuming --enable-macosx"
248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265
        enable_faad="yes"
        echo "  Assuming --enable-faad"
        enable_flac="yes"
        echo "  Assuming --enable-flac"
        enable_theora="yes"
        echo "  Assuming --enable-theora"
        enable_shout="yes"
        echo "  Assuming --enable-shout"
        enable_vcdx="yes"
        echo "  Assuming --enable-vcdx"
        enable_caca="yes"
        echo "  Assuming --enable-caca"
        enable_ncurses="yes"
        echo "  Assuming --enable-ncurses"
        enable_twolame="yes"
        echo "  Assuming --enable-twolame"
        enable_realrtsp="yes"
        echo "  Assuming --enable-realrtsp"
266 267 268 269
        enable_libass="yes"
        echo "  Assuming --enable-libass"
        enable_asademux="yes"
        echo "  Assuming --enable-asademux"
270 271 272

        enable_skins2="no"
        echo "  Assuming --disable-skins2"
273 274
        enable_xcb="no"
        echo "  Assuming --disable-xcb"
275
    fi
276 277 278 279 280 281
    dnl
    dnl  Check for Mac OS X SDK settings
    dnl
    AC_ARG_WITH(macosx-sdk,
       [  --with-macosx-sdk=DIR   compile using the SDK in DIR])
    if test "${with_macosx_sdk}" != "" ; then
282 283
        CPP="${CPP} -isysroot ${with_macosx_sdk}"
        CC="${CC} -isysroot ${with_macosx_sdk}"
284 285 286 287 288
        CXX="${CXX} -isysroot ${with_macosx_sdk}"
        OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
        LD="${LD} -syslibroot ${with_macosx_sdk}"
    fi
    AC_ARG_WITH(macosx-version-min,
289
       [  --with-macosx-version-min=VERSION compile for MacOSX VERSION and above])
290
    if test "${with_macosx_version_min}" != "" ; then
291 292
        CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
        CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
293 294 295 296 297 298 299 300 301
        CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
        OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
        LD="${LD} -macosx_version_min=${with_macosx_version_min}"
        CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CFLAGS="${CFLAGS_save}"
        CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; CXXFLAGS="${CXXFLAGS_save}"
        OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}"; OBJCFLAGS="${OBJCFLAGS_save}"
        MACOSX_DEPLOYMENT_TARGET=${with_macosx_version_min}
        export MACOSX_DEPLOYMENT_TARGET
    fi
302
    ;;
303
  *mingw32* | *cygwin* | *wince* | *mingwce*)
304
    AC_CHECK_TOOL(WINDRES, windres, :)
305
    AC_CHECK_TOOL(OBJCOPY, objcopy, :)
Gildas Bazin's avatar
 
Gildas Bazin committed
306

307
    case "${host_os}" in
308
      *wince* | *mingwce* | *mingw32ce*)
Sam Hocevar's avatar
Sam Hocevar committed
309
        SYS=mingwce
310 311
        dnl Sadly CeGCC still needs non-wince macros
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
Sam Hocevar's avatar
Sam Hocevar committed
312
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
313
      *mingw32*)
Gildas Bazin's avatar
 
Gildas Bazin committed
314
        SYS=mingw32
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
315
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows XP APIs.])
Gildas Bazin's avatar
 
Gildas Bazin committed
316
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
317
      *cygwin*)
Gildas Bazin's avatar
 
Gildas Bazin committed
318 319
        dnl Check if we are using the mno-cygwin mode in which case we are
        dnl actually dealing with a mingw32 compiler.
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
320
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
Gildas Bazin's avatar
 
Gildas Bazin committed
321 322 323 324
        AC_EGREP_CPP(yes,
            [#ifdef WIN32
             yes
             #endif],
325
            SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
Gildas Bazin's avatar
 
Gildas Bazin committed
326 327 328
        ;;
    esac

Sam Hocevar's avatar
Sam Hocevar committed
329
    if test "${SYS}" = "mingw32"; then
330
        # add ws2_32 for closesocket, select, recv
331
        VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
332
        VLC_ADD_LDFLAGS([vlc],[-mwindows])
333
        VLC_ADD_LIBS([activex mozilla win32text],[-lgdi32])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
334
        VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
Rémi Duraffort's avatar
Rémi Duraffort committed
335
        VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_shout access_output_rtmp sap oldhttp stream_out_standard stream_out_rtp stream_out_raop vod_rtsp access_realrtsp rtp oldrc netsync gnutls growl_udp flac ts audioscrobbler lua remoteosd zvbi audiobargraph_a netsync],[-lws2_32])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
336
        VLC_ADD_LIBS([filesystem], [-lshlwapi])
337 338 339 340
        dnl
        dnl DEP and ASLR options
        dnl
        AC_ARG_ENABLE(peflags,
341
          [  --enable-peflags        peflags use (default enabled on Windows)])
342
        if test "${enable_peflags}" != "no" ; then
343 344
          AC_CHECK_TOOL(PEFLAGS, peflags, :)
        fi
345
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
346 347
        ac_default_prefix="`pwd`/_win32"
        DESTDIR="`pwd`/_win32/"
Gildas Bazin's avatar
 
Gildas Bazin committed
348
    fi
349 350
    if test "${SYS}" = "mingwce"; then
        # add ws2 for closesocket, select, recv
Rémi Duraffort's avatar
Rémi Duraffort committed
351
        VLC_ADD_LIBS([libvlccore access_http access_mms access_udp access_tcp access_ftp access_rtmp access_output_udp access_output_rtmp sap oldhttp netsync audioscrobbler growl rtp stream_out_standard stream_out_rtp remoteosd ts audiobargraph_a netsync],[-lws2])
352
        VLC_ADD_LIBS([libvlccore],[-lmmtimer])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
353
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
354 355
        ac_default_prefix="`pwd`/_wince"
        DESTDIR="`pwd`/_wince/"
356
   fi
357
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
358
  *nto*)
359 360
    SYS=nto
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
361
  solaris*)
362 363
    SYS=solaris
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
364
  hpux*)
365 366
    SYS=hpux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
367
  beos)
368
    SYS=beos
369 370
    CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
371
    VLC_ADD_CXXFLAGS([beos],[])
372
    VLC_ADD_LIBS([vlc libvlccore logger],[-lbe])
373
    VLC_ADD_LIBS([dvdnav dvdread],[-ldl])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
374
    VLC_ADD_LIBS([filesystem],[-lpoll])
375
    LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${LDFLAGS_save}"
376 377
    dnl Check for BONE
    if test -f /boot/beos/system/lib/libbind.so; then
Rémi Duraffort's avatar
Rémi Duraffort committed
378
        VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lbind -lsocket])
379
    else
Rémi Duraffort's avatar
Rémi Duraffort committed
380
        VLC_ADD_LIBS([filesystem access_ftp access_mms access_output_udp netsync sap libvlccore growl_udp],[-lnet])
381
    fi
382
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
383
  *)
384
    SYS="${host_os}"
385
    ;;
Gildas Bazin's avatar
 
Gildas Bazin committed
386
esac
Sam Hocevar's avatar
Sam Hocevar committed
387 388
AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
389
AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
Sam Hocevar's avatar
Sam Hocevar committed
390
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
391
AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
392
AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
393

394
dnl
395
dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
396 397 398 399 400
dnl for program foo on win32

case "${build_os}" in
    cygwin|msys)
        ac_executable_extensions=".exe"
401
    ;;
402
    *)
403
    ;;
404 405
esac

406
dnl
407 408 409 410
dnl  Libtool
dnl  It's very bad, but our former custom system was worst
dnl  -- Courmisch
dnl
411 412 413 414

dnl override platform specific check for dependent libraries
dnl otherwise libtool linking of shared libraries will
dnl fail on anything other than pass_all.
Damien Fouilleul's avatar
Damien Fouilleul committed
415 416
AC_CACHE_VAL(lt_cv_deplibs_check_method,
    [lt_cv_deplibs_check_method=pass_all])
417

418
AC_DISABLE_STATIC
419
dnl AC_DISABLE_FAST_INSTALL
420
AC_LIBTOOL_DLOPEN
421
AC_LIBTOOL_WIN32_DLL
422 423
m4_undefine([AC_PROG_F77])
m4_defun([AC_PROG_F77],[])
424 425
AC_PROG_LIBTOOL

426 427 428 429 430
m4_undefine([AC_DEPLIBS_CHECK_METHOD])
m4_defun([AC_DEPLIBS_CHECK_METHOD],[])

lt_cv_deplibs_check_method=pass_all

431 432 433
AS_IF([test "${enable_shared}" = "no"], [
  AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
])
434

435 436 437
dnl
dnl Gettext stuff
dnl
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
438
AM_GNU_GETTEXT_VERSION([0.17])
439
AM_GNU_GETTEXT([external])
440
VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
441

442 443 444
dnl
dnl Iconv stuff
dnl
445
AM_ICONV
446 447
VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
448

449
dnl Check for broken versions of mingw-runtime compatability library
450
AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
451
    AC_MSG_CHECKING(for broken mingw-runtime)
452
    AC_PREPROC_IFELSE([
453
#include <_mingw.h>
454
#if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
455 456
# error Attempting to use mingw-runtime with broken vsnprintf support
#endif
457 458 459 460
], [
        AC_MSG_RESULT([ok])
], [
        AC_MSG_RESULT([present])
461
        AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
462 463 464 465
])
    dnl force use of mingw provided c99 *printf over msvcrt
    CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"
    CPPFLAGS_save="${CPPFLAGS_save} -D__USE_MINGW_ANSI_STDIO=1"
466
])
467

Gildas Bazin's avatar
 
Gildas Bazin committed
468
dnl Check for the need to include the mingwex lib for mingw32
Sam Hocevar's avatar
Sam Hocevar committed
469
if test "${SYS}" = "mingw32"
Gildas Bazin's avatar
 
Gildas Bazin committed
470 471
then
    AC_CHECK_LIB(mingwex,opendir,
472
        AC_CHECK_LIB(mingw32,opendir,,
473
            [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
Gildas Bazin's avatar
 
Gildas Bazin committed
474 475 476
    )
fi

Gildas Bazin's avatar
 
Gildas Bazin committed
477
dnl Check for fnative-struct or mms-bitfields support for mingw32
Sam Hocevar's avatar
Sam Hocevar committed
478
if test "${SYS}" = "mingw32"
Gildas Bazin's avatar
 
Gildas Bazin committed
479 480 481 482 483
then
    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
        [ac_cv_c_mms_bitfields],
        [CFLAGS="${CFLAGS_save} -mms-bitfields"
         AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
Sam Hocevar's avatar
Sam Hocevar committed
484
    if test "${ac_cv_c_mms_bitfields}" != "no"; then
485 486
        CFLAGS_save="${CFLAGS_save} -mms-bitfields";
        CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
Gildas Bazin's avatar
 
Gildas Bazin committed
487
    else
488 489 490 491
        AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
            [ac_cv_c_fnative_struct],
            [CFLAGS="${CFLAGS_save} -fnative-struct"
             AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
Sam Hocevar's avatar
Sam Hocevar committed
492
        if test "${ac_cv_c_fnative_struct}" != "no"; then
493 494 495
            CFLAGS_save="${CFLAGS_save} -fnative-struct";
            CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
        fi
Gildas Bazin's avatar
 
Gildas Bazin committed
496 497
    fi

Gildas Bazin's avatar
 
Gildas Bazin committed
498 499 500 501
    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
fi

dnl Check for fvtable-thunks support for mingw32
502
if test "${SYS}" = "mingw32" -a "${CXX}" != ""
Gildas Bazin's avatar
 
Gildas Bazin committed
503 504 505 506 507 508 509
then
AC_LANG_PUSH(C++)
    AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
        [ac_cv_cxx_fvtable_thunks],
        [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
         AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
                        ac_cv_cxx_fvtable_thunks=no)])
Sam Hocevar's avatar
Sam Hocevar committed
510
    if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
Gildas Bazin's avatar
 
Gildas Bazin committed
511 512 513
        CXXFLAGS_mingw32_special="-fvtable-thunks"
    fi

Sam Hocevar's avatar
Sam Hocevar committed
514
    CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
Gildas Bazin's avatar
 
Gildas Bazin committed
515
AC_LANG_POP(C++)
Gildas Bazin's avatar
 
Gildas Bazin committed
516 517
fi

518 519
dnl
dnl Buggy glibc prevention. Purposedly not cached.
520
dnl See sourceware.org bugs 5058 and 5443.
521 522 523 524 525 526 527 528 529 530 531 532 533
dnl Ubuntu alone has 20 bug numbers for this...
dnl
AC_MSG_CHECKING(for buggy GNU/libc versions)
AC_PREPROC_IFELSE([
#include <limits.h>
#if defined (__GLIBC__) && (__GLIBC__ == 2) \
  && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
# error GNU/libc with dcgettext killer bug!
#endif
], [
  AC_MSG_RESULT([not present])
], [
  AC_MSG_RESULT([found])
534 535 536 537 538
  AS_IF([test "x${enable_nls}" != "xno" || test "x${enable_mozilla}" != "xno"], [
    AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
work-around for this. Check with your distribution vendor on how to update the
glibc run-time. Alternatively, build with --disable-nls --disable-mozilla and
be sure to not use LibVLC from other applications/wrappers.])
539 540
  ], [
    AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
541
  ])
542 543
])

Sam Hocevar's avatar
Sam Hocevar committed
544 545 546 547
dnl Plugin compilation stuff

VLC_LIBRARY_SUFFIX

Sam Hocevar's avatar
 
Sam Hocevar committed
548
dnl The -DSYS_FOO flag
549
CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
Sam Hocevar's avatar
 
Sam Hocevar committed
550

551
dnl Check for system libs needed
552
need_libc=false
553

554
dnl Check for usual libc functions
555
AC_CHECK_FUNCS([ctime_r daemon fcntl fdopendir fstatvfs fork getenv getpwuid_r gettimeofday isatty lstat memalign openat posix_fadvise posix_madvise posix_memalign setenv setlocale stricmp strnicmp tdestroy uselocale])
556
AC_REPLACE_FUNCS([asprintf atof atoll getcwd getdelim getpid gmtime_r lldiv localtime_r nrand48 rewind strcasecmp strcasestr strdup strlcpy strncasecmp strndup strnlen strsep strtof strtok_r strtoll swab vasprintf])
557 558 559
AC_CHECK_FUNCS(fdatasync,,
  [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
])
Sam Hocevar's avatar
 
Sam Hocevar committed
560

561
dnl Check for non-standard system calls
562
AC_CHECK_FUNCS([accept4 dup3 eventfd vmsplice sched_getaffinity])
563

564 565
AH_BOTTOM([#include <vlc_fixups.h>])

566
AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
567

568
SOCKET_LIBS=""
569
AC_CHECK_FUNCS(connect,,[
Sam Hocevar's avatar
Sam Hocevar committed
570
  AC_CHECK_LIB(socket,connect,[
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
571
    VLC_ADD_LIBS([libvlccore cdda],-lsocket)
572
    SOCKET_LIBS="-lsocket"
Sam Hocevar's avatar
Sam Hocevar committed
573 574
  ])
])
575
AC_SUBST(SOCKET_LIBS)
576

577
AC_CHECK_FUNCS(send,,[
Sam Hocevar's avatar
Sam Hocevar committed
578
  AC_CHECK_LIB(socket,send,[
579
    VLC_ADD_LIBS([access_http access_mms access_udp access_tcp access_ftp access_rtmp sap access_output_udp access_output_rtmp stream_out_standard growl_udp remoteosd netsync],[-lsocket])
Sam Hocevar's avatar
Sam Hocevar committed
580 581
  ])
])
582

583

584
dnl Check for socklen_t
585 586 587 588
AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
AC_CACHE_CHECK([for socklen_t in sys/socket.h],
ac_cv_type_socklen_t,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
589 590
[#include <sys/types.h>
#ifdef WIN32
591
# include <winsock2.h>
592
# include <ws2tcpip.h>
593 594
#else
# include <sys/socket.h>
595 596 597 598 599
#endif]], [[socklen_t len; len = 0;]])],
ac_cv_type_socklen_t=yes,
ac_cv_type_socklen_t=no)])
AS_IF([test "$ac_cv_type_socklen_t" = no],
 [AC_DEFINE(socklen_t, int)])
600

601 602 603 604 605 606 607
dnl Check for struct sockaddr_storage
AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
  [AC_TRY_COMPILE(
    [#include <sys/types.h>
     #if defined( UNDER_CE )
608
     # include <winsock2.h>
609 610 611 612 613 614 615
     #elif defined( WIN32 )
     # include <winsock2.h>
     #else
     # include <sys/socket.h>
     #endif], [struct sockaddr_storage addr;],
     ac_cv_struct_sockaddr_storage=yes,
     ac_cv_struct_sockaddr_storage=no)])
616
AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
617 618
  AC_DEFINE(sockaddr_storage, sockaddr)
  AC_DEFINE(ss_family, sa_family)
619
])
620

621
dnl getaddrinfo, getnameinfo and gai_strerror check
622
dnl  -lnsl and -lsocket are needed on Solaris;
623
dnl  we purposedly make the test fail on Windows
624
LIBS_save="${LIBS}"
625
AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
626 627
LIBS="${LIBS_save}"

628 629 630 631 632 633 634
dnl Check for va_copy
AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
  AC_TRY_LINK(
    [#include <stdarg.h>],
    [va_list ap1, ap2; va_copy(ap1,ap2);],
    [ac_cv_c_va_copy="yes"],
    [ac_cv_c_va_copy="no"]))
Sam Hocevar's avatar
Sam Hocevar committed
635
if test "${ac_cv_c_va_copy}" = "yes"; then
636 637 638 639 640 641 642 643
  AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
fi
AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
  AC_TRY_LINK(
    [#include <stdarg.h>],
    [va_list ap1, ap2; __va_copy(ap1,ap2);],
    [ac_cv_c___va_copy="yes"],
    [ac_cv_c___va_copy="no"]))
Sam Hocevar's avatar
Sam Hocevar committed
644
if test "${ac_cv_c___va_copy}" = "yes"; then
645
  AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
646 647
fi

648
AC_CHECK_FUNCS(inet_aton,,[
Sam Hocevar's avatar
Sam Hocevar committed
649
  AC_CHECK_LIB(resolv,inet_aton,[
650
    VLC_ADD_LIBS([libvlccore],[-lresolv])
Sam Hocevar's avatar
Sam Hocevar committed
651
  ])
652
])
Sam Hocevar's avatar
 
Sam Hocevar committed
653

654 655 656 657 658 659 660 661
dnl FreeBSD has a gnugetopt library for this:
GNUGETOPT_LIBS=""
AC_CHECK_FUNC(getopt_long,, [
  AC_CHECK_LIB([gnugetopt],[getopt_long], [
    GNUGETOPT_LIBS="-lgnugetopt"
  ])
])
AC_SUBST(GNUGETOPT_LIBS)
Sam Hocevar's avatar
 
Sam Hocevar committed
662

663
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Sam Hocevar's avatar
Sam Hocevar committed
664
AC_CHECK_LIB(m,cos,[
665
  VLC_ADD_LIBS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise grain scene kate flac lua chorus_flanger],[-lm])
Sam Hocevar's avatar
Sam Hocevar committed
666 667
])
AC_CHECK_LIB(m,pow,[
668
  VLC_ADD_LIBS([avcodec avformat access_avio swscale postproc ffmpegaltivec i420_rgb faad twolame equalizer spatializer param_eq libvlccore freetype mod mpc dmo quicktime realvideo qt4],[-lm])
Sam Hocevar's avatar
Sam Hocevar committed
669 670
])
AC_CHECK_LIB(m,sqrt,[
671
  VLC_ADD_LIBS([headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
Sam Hocevar's avatar
Sam Hocevar committed
672
])
673
AC_CHECK_LIB(m,ceil,[
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
674
  VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
675
])
676
AC_CHECK_LIB(m,exp,[
677
  VLC_ADD_LIBS([gaussianblur],[-lm])
678
])
679 680 681
AC_CHECK_LIB(m,round,[
  VLC_ADD_LIBS([dbus],[-lm])
])
682 683
AC_CHECK_LIB(m,sqrtf,[
  VLC_ADD_LIBS([x264],[-lm])
684
])
685
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
 
Sam Hocevar committed
686

687 688 689 690 691
AC_CHECK_LIB(m,lrintf, [
  AC_DEFINE(HAVE_LRINTF, 1, [Define to 1 if you have the lrintf function])
  VLC_ADD_LIBS([skins2],[-lm])
])

Sam Hocevar's avatar
Sam Hocevar committed
692 693 694 695 696 697 698 699 700 701 702
dnl Check for dynamic plugins
ac_cv_have_plugins=no

# HP-UX style
if test "${ac_cv_have_plugins}" = "no"; then
  AC_CHECK_HEADERS(dl.h)
  ac_cv_my_have_shl_load=no
  AC_CHECK_FUNC(shl_load,
   [ac_cv_my_have_shl_load=yes,
    AC_CHECK_LIB(dld, shl_load,
     [ac_cv_my_have_shl_load=yes
703
      VLC_ADD_LIBS([libvlccore],[-ldld])])])
Sam Hocevar's avatar
Sam Hocevar committed
704 705 706 707 708 709 710 711
  if test "${ac_cv_my_have_shl_load}" = "yes"; then
    AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
    ac_cv_have_plugins=yes
  fi
fi

# Win32 style
if test "${ac_cv_have_plugins}" = "no"; then
712
  if test "${SYS}" = "mingw32" ; then
713
    AC_CHECK_LIB(kernel32, main,
714
     [VLC_ADD_LIBS([libvlccore],[-lkernel32])
715 716 717
      AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
      ac_cv_have_plugins=yes])
  fi
Sam Hocevar's avatar
Sam Hocevar committed
718 719
fi

720 721 722 723 724 725 726 727
# WinCE style
if test "${ac_cv_have_plugins}" = "no"; then
  if test "${SYS}" = "mingwce"; then
    AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
    ac_cv_have_plugins=yes
  fi
fi

Sam Hocevar's avatar
Sam Hocevar committed
728 729
# BeOS style
if test "${ac_cv_have_plugins}" = "no"; then
Sam Hocevar's avatar
Sam Hocevar committed
730 731 732 733
  AC_CHECK_HEADERS(image.h)
  AC_CHECK_FUNCS(load_add_on,
   [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
    ac_cv_have_plugins=yes])
Sam Hocevar's avatar
Sam Hocevar committed
734 735
fi

736
# Only test for dlopen() if the others didn't work
737
LIBDL=""
738
if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
Sam Hocevar's avatar
Sam Hocevar committed
739 740
  AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
  ac_cv_my_have_dlopen=no
741 742 743 744
  AC_CHECK_FUNC(dlopen, [
    ac_cv_my_have_dlopen=yes
  ], [
    AC_CHECK_LIB(dl, dlopen, [
Sam Hocevar's avatar
Sam Hocevar committed
745
      ac_cv_my_have_dlopen=yes
746 747 748
      LIBDL="-ldl"
    ], [
      AC_CHECK_LIB(svld, dlopen, [
Sam Hocevar's avatar
Sam Hocevar committed
749
        ac_cv_my_have_dlopen=yes
750 751 752 753
        LIBDL="-lsvld"
      ])
    ])
  ])
Sam Hocevar's avatar
Sam Hocevar committed
754 755 756
  if test "${ac_cv_my_have_dlopen}" = "yes"; then
    AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
    ac_cv_have_plugins=yes
Rémi Denis-Courmont's avatar
typo  
Rémi Denis-Courmont committed
757
    VLC_ADD_LIBS([libvlccore realvideo lua],[$LIBDL])
Sam Hocevar's avatar
Sam Hocevar committed
758 759
  fi
fi
760
AC_SUBST(LIBDL)
Sam Hocevar's avatar
Sam Hocevar committed
761

762
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
763
dnl Check for pthreads - borrowed from XMMS
Sam Hocevar's avatar
 
Sam Hocevar committed
764
THREAD_LIB=error
Sam Hocevar's avatar
Sam Hocevar committed
765
if test "${THREAD_LIB}" = "error"; then
766
  AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
Sam Hocevar's avatar
 
Sam Hocevar committed
767
fi
Sam Hocevar's avatar
Sam Hocevar committed
768
if test "${THREAD_LIB}" = "error"; then
769
  AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
Sam Hocevar's avatar
 
Sam Hocevar committed
770
fi
Sam Hocevar's avatar
Sam Hocevar committed
771
if test "${THREAD_LIB}" = "error"; then
772
  AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
Sam Hocevar's avatar
 
Sam Hocevar committed
773
fi
Sam Hocevar's avatar
Sam Hocevar committed
774
if test "${THREAD_LIB}" = "error"; then
775
  AC_CHECK_FUNCS(pthread_mutex_lock)
776
  THREAD_LIB=""
Sam Hocevar's avatar
 
Sam Hocevar committed
777
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
778

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
779
VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
Gildas Bazin's avatar
 
Gildas Bazin committed
780

781
AC_CHECK_LIB(rt, clock_nanosleep, [
782
  VLC_ADD_LIBS([libvlccore],[-lrt])
783 784 785
  AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
], [
  dnl HP/UX port
786
  AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
787
])
Gildas Bazin's avatar
 
Gildas Bazin committed
788

789 790 791
have_nanosleep=false
AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
  AC_CHECK_LIB(rt,nanosleep,
792
    [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
793
    [AC_CHECK_LIB(posix4,nanosleep,
794
        [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
795 796 797 798
  )
])
if ${have_nanosleep}; then
  AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
Gildas Bazin's avatar
 
Gildas Bazin committed
799
fi
800
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Gildas Bazin's avatar
 
Gildas Bazin committed
801

Sam Hocevar's avatar
 
Sam Hocevar committed
802
dnl Check for misc headers
803
AC_MSG_CHECKING(for strncasecmp in strings.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
804
AC_EGREP_HEADER(strncasecmp,strings.h,[
805
  AC_MSG_RESULT(yes)
806
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
807 808
            Define if <strings.h> defines strncasecmp.)],[
  AC_MSG_RESULT(no)])
Sam Hocevar's avatar
 
Sam Hocevar committed
809

Sam Hocevar's avatar
 
Sam Hocevar committed
810
dnl Check for headers
811
AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
812
AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h sys/mount.h)
813
AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
814 815
AC_CHECK_HEADERS([net/if.h], [], [],
  [
816
    #include <sys/types.h>
817
    #include <sys/socket.h>
818
  ])
819
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
820
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
821
AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
822
AC_CHECK_HEADERS(syslog.h)
823
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
 
Sam Hocevar committed
824

825 826 827 828 829 830
dnl LP64 adn LLP64 architectures had better define ssize_t by themselves...
AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
AC_CHECK_TYPE(ssize_t,, [
  AC_DEFINE(ssize_t, int)
])

831
dnl Check for poll
832
AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
833
if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
834 835 836 837
then
    AC_MSG_WARN([Your platform does not support poll(). VLC has it's own poll() implementation, but it is only intended to be used on Windows. VLC might crash or be insecure when you see this message. Either switch to an OS with a proper poll() implementation, or implement one for your OS in VLC])
fi
])
838

839 840
dnl Check for dirent
need_dirent=false
841
AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
842 843
AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})

844
dnl Mac OS X and other OSes don't have declaration for nanosleep
845
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
846
AC_MSG_CHECKING(for nanosleep in time.h)
847
AC_EGREP_HEADER(nanosleep,time.h,[
848
  AC_MSG_RESULT(yes)
849 850
  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
            Define if <time.h> defines nanosleep.)
851 852
],[
  AC_MSG_RESULT(no)
853
])
854
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
855 856

dnl Make sure we have timespecs
857
AC_MSG_CHECKING(for timespec in sys/time.h)
858
AC_EGREP_HEADER(timespec,sys/time.h,[
859
  AC_MSG_RESULT(yes)
860 861
  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
            Define if <sys/time.h> defines struct timespec.)
862 863
],[
  AC_MSG_RESULT(no)
864
])
865

Sam Hocevar's avatar
 
Sam Hocevar committed
866
dnl Check for threads library
867
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
868
AC_CHECK_HEADERS(pthread.h)
869
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
 
Sam Hocevar committed
870

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
871 872 873
dnl It seems that autoconf detects pkg-config only during the first
dnl PKG_CHECK_MODULES from configure.ac - which makes sense. But in our case,
dnl it is nested within a conditional block, so it was not working right.
874
dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved