configure.ac 143 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_CONFIG_SRCDIR(src/libvlc.c)
18
AC_CONFIG_AUX_DIR(autotools)
19
AC_CONFIG_MACRO_DIR(m4)
20
AC_CONFIG_LIBOBJ_DIR(compat)
21
AC_CANONICAL_BUILD
22
AC_CANONICAL_HOST
impulze's avatar
impulze committed
23
AC_PRESERVE_HELP_ORDER
24

25
AM_INIT_AUTOMAKE(tar-ustar color-tests)
26
27
AM_CONFIG_HEADER(config.h)

Pierre's avatar
Pierre committed
28
# Disable with "./configure --disable-silent-rules" or "make V=1"
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
29
AM_SILENT_RULES([yes])
Pierre's avatar
Pierre committed
30

31
32
33
34
35
36
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"],
37
    [enable_maintainer_mode="yes"])
38
39
AM_MAINTAINER_MODE

40
41
42
43
44
45
46
47
48
49
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
50
51
52
dnl
dnl  Save *FLAGS
dnl
Sam Hocevar's avatar
Sam Hocevar committed
53
VLC_SAVE_FLAGS
Sam Hocevar's avatar
   
Sam Hocevar committed
54

Sam Hocevar's avatar
Sam Hocevar committed
55
dnl
56
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
57
dnl
58
AC_PROG_CC_C99
59
AC_USE_SYSTEM_EXTENSIONS
60
AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
61

62
63
AM_PROG_CC_C_O
AC_PROG_CXX
64
AC_PROG_CPP
65
66
67
AC_PROG_OBJC
_AM_DEPENDENCIES([OBJC])
AC_PROG_EGREP
68
69
AC_PROG_MAKE_SET
AC_PROG_INSTALL
70
AM_PROG_AS
71

gbazin's avatar
   
gbazin committed
72
73
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
Sam Hocevar's avatar
   
Sam Hocevar committed
74
AC_CHECK_TOOL(STRIP, strip, :)
Jean-Paul Saman's avatar
Jean-Paul Saman committed
75
76
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :)
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
77
AC_CHECK_TOOL(DLLTOOL, dlltool, :)
gbazin's avatar
   
gbazin committed
78

79
80
81
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE
82
AC_C_RESTRICT
83

impulze's avatar
impulze committed
84
85
86
dnl Extend the --help string at the current spot.
AC_DEFUN([EXTEND_HELP_STRING], [m4_divert_once([HELP_ENABLE], [$1])])

87
dnl Allow binary package maintainer to pass a custom string to avoid
88
dnl cache problem
89
AC_ARG_WITH(binary-version,
90
91
    AS_HELP_STRING([--with-binary-version=STRING],
         [To avoid plugins cache problem between binary version]),[],[])
92
AS_IF([test -n "${with_binary_version}"],[
93
94
95
    AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
         [Binary specific version])
])
96
97


98
99
100
dnl
dnl  Check for the contrib directory
dnl
101
AC_ARG_WITH(contrib,
102
    [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
103
104
105
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"], [
106
107
108
109
      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
110
      CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
111
112
      if ! test -d "$CONTRIB_DIR"
      then
113
        gccmachine=`$CC -dumpmachine`
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
114
        CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
115
      fi
116
117
  ])
  AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
118
  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
119
    AC_MSG_RESULT([yes])
120
    AC_SUBST(CONTRIB_DIR)
Christophe Mutricy's avatar
Typo    
Christophe Mutricy committed
121
    export PATH=${CONTRIB_DIR}/bin:$PATH
122
123
124
125
126
127
128
129
    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
130
131
    if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
        export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
132
    else
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
133
        export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
134
    fi
135
136
    LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
    LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
137

impulze's avatar
impulze committed
138
    if test "${SYS}" = "darwin"; then
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
139
140
      export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
      export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
141
    fi
142
143
144
145
  ],[
    AC_MSG_RESULT([no])
    CONTRIB_DIR=""
  ])
146
])
147

Sam Hocevar's avatar
Sam Hocevar committed
148
dnl
149
dnl  Set default values
Sam Hocevar's avatar
Sam Hocevar committed
150
dnl
151
LDFLAGS_vlc="${LDFLAGS}"
Sam Hocevar's avatar
Sam Hocevar committed
152

gbazin's avatar
   
gbazin committed
153
154
155
dnl
dnl  Check the operating system
dnl
156
HAVE_WIN64="0"
157
case "${host_os}" in
Sam Hocevar's avatar
Sam Hocevar committed
158
  "")
159
160
    SYS=unknown
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
161
  linux*)
162
163
    SYS=linux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
164
  bsdi*)
165
166
    SYS=bsdi
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
impulze's avatar
impulze committed
167
    VLC_ADD_LIBS([vcd cdda vcdx],[-ldvd])
168
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
169
  *bsd*)
170
    SYS="${host_os}"
171
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
172
    case "${host_os}" in
173
174
      freebsd*)
        CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"
175
        CPPFLAGS="${CPPFLAGS_save}"
176
        LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
hartman's avatar
hartman committed
177
        LDFLAGS="${LDFLAGS_save}"
178
        ;;
179
180
181
182
183
184
      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}"
        ;;
185
    esac
186
    ;;
187
  darwin*)
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205

    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

206
    SYS=darwin
207
208
209
210
211
    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}"
212
213
    VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
    VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
214
    VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
215
    VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
216
    VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
217
    AC_ARG_ENABLE(macosx-defaults,
218
      AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
219
220
221
222
    if test "x${enable_macosx_defaults}" != "xno"
    then
        echo ""
        echo "Building with Mac OS X defaults:"
223
224
225
226
        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"
227
228
229
        build_dir=`pwd`
        echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
        ac_default_prefix="${build_dir}/vlc_install_dir"
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
        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"
248
249
        enable_libass="yes"
        echo "  Assuming --enable-libass"
250
251
252

        enable_skins2="no"
        echo "  Assuming --disable-skins2"
253
254
        enable_xcb="no"
        echo "  Assuming --disable-xcb"
255
    fi
256
257
258
259
260
261
    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
262
263
        CPP="${CPP} -isysroot ${with_macosx_sdk}"
        CC="${CC} -isysroot ${with_macosx_sdk}"
264
265
266
267
268
        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,
269
       [  --with-macosx-version-min=VERSION compile for MacOSX VERSION and above])
270
    if test "${with_macosx_version_min}" != "" ; then
271
272
        CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
        CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
273
274
275
276
277
278
279
280
281
        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
282
    ;;
283
  *mingw32* | *cygwin* | *wince* | *mingwce*)
284
    AC_CHECK_TOOL(WINDRES, windres, :)
285
    AC_CHECK_TOOL(OBJCOPY, objcopy, :)
gbazin's avatar
   
gbazin committed
286

287
    case "${host_os}" in
288
      *wince* | *mingwce* | *mingw32ce*)
sam's avatar
sam committed
289
        SYS=mingwce
geal's avatar
geal committed
290
291
        dnl Sadly CeGCC still needs non-wince macros
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows 2000 APIs.])
sam's avatar
sam committed
292
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
293
      *mingw32*)
gbazin's avatar
   
gbazin committed
294
        SYS=mingw32
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
295
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows XP APIs.])
gbazin's avatar
   
gbazin committed
296
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
297
      *cygwin*)
gbazin's avatar
   
gbazin committed
298
299
        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
300
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
gbazin's avatar
   
gbazin committed
301
302
303
304
        AC_EGREP_CPP(yes,
            [#ifdef WIN32
             yes
             #endif],
305
            SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
gbazin's avatar
   
gbazin committed
306
307
308
        ;;
    esac

Sam Hocevar's avatar
Sam Hocevar committed
309
    if test "${SYS}" = "mingw32"; then
310
        # add ws2_32 for closesocket, select, recv
311
        VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
damienf's avatar
damienf committed
312
        VLC_ADD_LDFLAGS([vlc],[-mwindows])
Rafaël Carré's avatar
Rafaël Carré committed
313
        VLC_ADD_LIBS([win32text],[-lgdi32])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
314
        VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
ivoire's avatar
ivoire committed
315
        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
316
        VLC_ADD_LIBS([filesystem], [-lshlwapi])
317
318
319
320
        dnl
        dnl DEP and ASLR options
        dnl
        AC_ARG_ENABLE(peflags,
321
          [  --enable-peflags        peflags use (default enabled on Windows)])
322
        if test "${enable_peflags}" != "no" ; then
323
324
          AC_CHECK_TOOL(PEFLAGS, peflags, :)
        fi
325
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
326
327
        ac_default_prefix="`pwd`/_win32"
        DESTDIR="`pwd`/_win32/"
328
329

        dnl
330
        dnl NSIS Installer prefix and WIN64
331
332
333
        dnl
        case "${host}" in
            amd64*|i686-w64*|x86_64*)
334
                HAVE_WIN64="1"
335
336
337
338
339
340
341
342
                PROGRAMFILES="PROGRAMFILES64"
            ;;
            *)
                PROGRAMFILES="PROGRAMFILES"
            ;;
        esac
        AC_SUBST(PROGRAMFILES)

gbazin's avatar
   
gbazin committed
343
    fi
344
345
    if test "${SYS}" = "mingwce"; then
        # add ws2 for closesocket, select, recv
ivoire's avatar
ivoire committed
346
        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])
347
        VLC_ADD_LIBS([libvlccore],[-lmmtimer])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
348
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
349
350
        ac_default_prefix="`pwd`/_wince"
        DESTDIR="`pwd`/_wince/"
351
    fi
352
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
353
  *nto*)
354
355
    SYS=nto
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
356
  solaris*)
357
358
    SYS=solaris
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
359
  hpux*)
360
361
    SYS=hpux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
362
  *)
363
    SYS="${host_os}"
364
    ;;
gbazin's avatar
   
gbazin committed
365
esac
Sam Hocevar's avatar
Sam Hocevar committed
366
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
367
AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
Sam Hocevar's avatar
Sam Hocevar committed
368
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
369
AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
370
AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
371
AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
372

373
dnl
374
dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
375
376
377
378
379
dnl for program foo on win32

case "${build_os}" in
    cygwin|msys)
        ac_executable_extensions=".exe"
380
    ;;
381
    *)
382
    ;;
383
384
esac

385
dnl
386
387
388
389
dnl  Libtool
dnl  It's very bad, but our former custom system was worst
dnl  -- Courmisch
dnl
damienf's avatar
damienf committed
390
391
392
393

dnl override platform specific check for dependent libraries
dnl otherwise libtool linking of shared libraries will
dnl fail on anything other than pass_all.
damienf's avatar
damienf committed
394
395
AC_CACHE_VAL(lt_cv_deplibs_check_method,
    [lt_cv_deplibs_check_method=pass_all])
damienf's avatar
damienf committed
396

397
AC_DISABLE_STATIC
398
dnl AC_DISABLE_FAST_INSTALL
399
AC_LIBTOOL_DLOPEN
damienf's avatar
damienf committed
400
AC_LIBTOOL_WIN32_DLL
401
402
m4_undefine([AC_PROG_F77])
m4_defun([AC_PROG_F77],[])
403
404
AC_PROG_LIBTOOL

damienf's avatar
damienf committed
405
406
407
408
409
m4_undefine([AC_DEPLIBS_CHECK_METHOD])
m4_defun([AC_DEPLIBS_CHECK_METHOD],[])

lt_cv_deplibs_check_method=pass_all

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
AS_IF([test "${enable_shared}" = "no"], [
  AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
])

AC_ARG_ENABLE(static-modules,
   [  --enable-static-modules  Allow module to be linked statically. This produces a non working vlc.])  
AS_IF([test "${enable_static_modules}" = yes], [
   enable_shared="no"
   enable_static="yes"
   VLC_DEFAULT_PLUGIN_TYPE="builtin"
   echo "*** WARNING: Building modules as static. VLC will not work."
], [
   VLC_DEFAULT_PLUGIN_TYPE="plugin"
])

AC_SUBST(VLC_DEFAULT_PLUGIN_TYPE)

427
428
429
dnl
dnl Gettext stuff
dnl
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
430
AM_GNU_GETTEXT_VERSION([0.18.1])
431
AM_GNU_GETTEXT([external])
432
VLC_ADD_LIBS([libvlccore vlc], [${LTLIBINTL}])
433

gbazin's avatar
gbazin committed
434
435
436
dnl
dnl Iconv stuff
dnl
437
AM_ICONV
438
439
VLC_ADD_CFLAGS([libvlccore],[${INCICONV}])
VLC_ADD_LIBS([libvlccore],[${LTLIBICONV}])
gbazin's avatar
gbazin committed
440

441
dnl Check for broken versions of mingw-runtime compatability library
442
AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
443
    AC_MSG_CHECKING(for broken mingw-runtime)
444
    AC_PREPROC_IFELSE([
445
#include <_mingw.h>
446
#if (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION < 15)
447
#ifndef __MINGW64_VERSION_MAJOR
448
# error Attempting to use mingw-runtime with broken vsnprintf support
449
#endif
450
#endif
451
    ], [
452
        AC_MSG_RESULT([ok])
453
    ], [
454
        AC_MSG_RESULT([present])
455
        AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher!])
456
    ])
457
458
459
    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"
460
])
461

gbazin's avatar
   
gbazin committed
462
dnl Check for the need to include the mingwex lib for mingw32
463
if test "${SYS}" = "mingw32" ; then
gbazin's avatar
   
gbazin committed
464
    AC_CHECK_LIB(mingwex,opendir,
465
        AC_CHECK_LIB(mingw32,opendir,,
466
            [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
gbazin's avatar
   
gbazin committed
467
468
469
    )
fi

gbazin's avatar
   
gbazin committed
470
dnl Check for fnative-struct or mms-bitfields support for mingw32
471
if test "${SYS}" = "mingw32" ; then
gbazin's avatar
   
gbazin committed
472
473
474
475
    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
476
    if test "${ac_cv_c_mms_bitfields}" != "no"; then
477
478
        CFLAGS_save="${CFLAGS_save} -mms-bitfields";
        CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
gbazin's avatar
   
gbazin committed
479
    else
480
481
482
483
        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
484
        if test "${ac_cv_c_fnative_struct}" != "no"; then
485
486
487
            CFLAGS_save="${CFLAGS_save} -fnative-struct";
            CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
        fi
gbazin's avatar
   
gbazin committed
488
489
    fi

gbazin's avatar
   
gbazin committed
490
491
492
493
    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
fi

dnl Check for fvtable-thunks support for mingw32
494
495
if test "${SYS}" = "mingw32" -a "${CXX}" != "" ; then
    AC_LANG_PUSH(C++)
gbazin's avatar
   
gbazin committed
496
497
498
499
500
    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
501
    if test "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
gbazin's avatar
   
gbazin committed
502
503
504
        CXXFLAGS_mingw32_special="-fvtable-thunks"
    fi

Sam Hocevar's avatar
Sam Hocevar committed
505
    CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
506
    AC_LANG_POP(C++)
gbazin's avatar
   
gbazin committed
507
508
fi

509
510
dnl
dnl Buggy glibc prevention. Purposedly not cached.
511
dnl See sourceware.org bugs 5058 and 5443.
512
513
514
515
516
517
518
519
520
521
522
523
524
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])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
525
  AS_IF([test "x${enable_nls}" != "xno"], [
526
527
    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
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
528
glibc run-time. Alternatively, build with --disable-nls.])
529
530
  ], [
    AC_DEFINE(DISABLE_BUGGY_GLIBC_CHECK, 1, [Disables runtime check for buggy glibc.])
531
  ])
532
533
])

Sam Hocevar's avatar
Sam Hocevar committed
534
535
536
537
dnl Plugin compilation stuff

VLC_LIBRARY_SUFFIX

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

541
dnl Check for system libs needed
542
need_libc=false
543

544
dnl Check for usual libc functions
545
AC_CHECK_FUNCS([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])
546
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])
547
548
549
AC_CHECK_FUNCS(fdatasync,,
  [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
])
Sam Hocevar's avatar
   
Sam Hocevar committed
550

551
dnl Check for non-standard system calls
552
AC_CHECK_FUNCS([accept4 dup3 eventfd vmsplice sched_getaffinity])
553

554
555
AH_BOTTOM([#include <vlc_fixups.h>])

556
AC_CHECK_FUNCS(mmap, [VLC_ADD_PLUGIN([access_mmap])])
557

558
SOCKET_LIBS=""
559
AC_CHECK_FUNCS(connect,,[
Sam Hocevar's avatar
Sam Hocevar committed
560
  AC_CHECK_LIB(socket,connect,[
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
561
    VLC_ADD_LIBS([libvlccore cdda],-lsocket)
562
    SOCKET_LIBS="-lsocket"
Sam Hocevar's avatar
Sam Hocevar committed
563
564
  ])
])
565
AC_SUBST(SOCKET_LIBS)
566

567
AC_CHECK_FUNCS(send,,[
Sam Hocevar's avatar
Sam Hocevar committed
568
  AC_CHECK_LIB(socket,send,[
569
    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
570
571
  ])
])
572

573

574
dnl Check for socklen_t
575
576
577
578
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([
579
580
[#include <sys/types.h>
#ifdef WIN32
581
# include <winsock2.h>
582
# include <ws2tcpip.h>
583
584
#else
# include <sys/socket.h>
585
586
587
588
589
#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)])
590

591
592
593
594
595
596
597
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 )
598
     # include <winsock2.h>
599
600
601
602
603
604
605
     #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)])
606
AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
607
608
  AC_DEFINE(sockaddr_storage, sockaddr)
  AC_DEFINE(ss_family, sa_family)
609
])
610

611
dnl getaddrinfo, getnameinfo and gai_strerror check
612
dnl  -lnsl and -lsocket are needed on Solaris;
613
dnl  we purposedly make the test fail on Windows
614
LIBS_save="${LIBS}"
615
AC_SEARCH_LIBS([getaddrinfo], [nsl],,, [${SOCKET_LIBS}])
616
617
LIBS="${LIBS_save}"

618
619
620
621
622
623
624
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
625
if test "${ac_cv_c_va_copy}" = "yes"; then
626
627
628
629
630
631
632
633
  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
634
if test "${ac_cv_c___va_copy}" = "yes"; then
635
  AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
636
637
fi

638
AC_CHECK_FUNCS(inet_aton,,[
Sam Hocevar's avatar
Sam Hocevar committed
639
  AC_CHECK_LIB(resolv,inet_aton,[
640
    VLC_ADD_LIBS([libvlccore],[-lresolv])
Sam Hocevar's avatar
Sam Hocevar committed
641
  ])
642
])
Sam Hocevar's avatar
   
Sam Hocevar committed
643

644
645
646
647
648
649
650
651
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
652

653
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Sam Hocevar's avatar
Sam Hocevar committed
654
AC_CHECK_LIB(m,cos,[
655
  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
656
657
])
AC_CHECK_LIB(m,pow,[
658
  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
659
660
])
AC_CHECK_LIB(m,sqrt,[
661
  VLC_ADD_LIBS([compressor headphone_channel_mixer normvol audiobargraph_a speex mono colorthres extract ball],[-lm])
Sam Hocevar's avatar
Sam Hocevar committed
662
])
663
AC_CHECK_LIB(m,ceil,[
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
664
  VLC_ADD_LIBS([access_imem hotkeys mosaic swscale_omap],[-lm])
665
])
666
AC_CHECK_LIB(m,exp,[
667
  VLC_ADD_LIBS([gaussianblur],[-lm])
668
])
669
670
671
AC_CHECK_LIB(m,round,[
  VLC_ADD_LIBS([dbus],[-lm])
])
672
673
AC_CHECK_LIB(m,sqrtf,[
  VLC_ADD_LIBS([x264],[-lm])
674
])
675
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
   
Sam Hocevar committed
676

677
678
679
680
681
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
682
683
684
685
686
687
688
689
690
691
692
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
693
      VLC_ADD_LIBS([libvlccore],[-ldld])])])
Sam Hocevar's avatar
Sam Hocevar committed
694
695
696
697
698
699
700
701
  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
702
  if test "${SYS}" = "mingw32" ; then
703
    AC_CHECK_LIB(kernel32, main,
704
     [VLC_ADD_LIBS([libvlccore],[-lkernel32])
705
706
707
      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
708
709
fi

710
711
712
713
714
715
716
717
# 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

718
# Only test for dlopen() if the others didn't work
719
LIBDL=""
720
if test "${ac_cv_have_plugins}" = "no" -o "${SYS}" = "darwin"; then
Sam Hocevar's avatar
Sam Hocevar committed
721
722
  AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
  ac_cv_my_have_dlopen=no
723
724
725
726
  AC_CHECK_FUNC(dlopen, [
    ac_cv_my_have_dlopen=yes
  ], [
    AC_CHECK_LIB(dl, dlopen, [
Sam Hocevar's avatar
Sam Hocevar committed
727
      ac_cv_my_have_dlopen=yes
728
729
730
      LIBDL="-ldl"
    ], [
      AC_CHECK_LIB(svld, dlopen, [
Sam Hocevar's avatar
Sam Hocevar committed
731
        ac_cv_my_have_dlopen=yes
732
733
734
735
        LIBDL="-lsvld"
      ])
    ])
  ])
Sam Hocevar's avatar
Sam Hocevar committed
736
737
738
  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
739
    VLC_ADD_LIBS([libvlccore realvideo lua],[$LIBDL])
Sam Hocevar's avatar
Sam Hocevar committed
740
741
  fi
fi
742
AC_SUBST(LIBDL)
Sam Hocevar's avatar
Sam Hocevar committed
743

744
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
  dnl Check for pthreads - borrowed from XMMS
  THREAD_LIB=error
  if test "${THREAD_LIB}" = "error"; then
    AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
  fi
  if test "${THREAD_LIB}" = "error"; then
    AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
  fi
  if test "${THREAD_LIB}" = "error"; then
    AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
  fi
  if test "${THREAD_LIB}" = "error"; then
    AC_CHECK_FUNCS(pthread_mutex_lock)
    THREAD_LIB=""
  fi
Sam Hocevar's avatar
   
Sam Hocevar committed
760

761
  VLC_ADD_LIBS([libvlccore libvlc vlc plugin],[${THREAD_LIB}])
gbazin's avatar
   
gbazin committed
762

763
764
765
766
767
768
769
  AC_CHECK_LIB(rt, clock_nanosleep, [
    VLC_ADD_LIBS([libvlccore],[-lrt])
    AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])
  ], [
    dnl HP/UX port
    AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
  ])
gbazin's avatar
   
gbazin committed
770

771
772
773
774
775
776
777
778
779
780
781
  have_nanosleep=false
  AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
    AC_CHECK_LIB(rt,nanosleep,
      [VLC_ADD_LIBS([libvlccore],[-lrt]) have_nanosleep=:],
      [AC_CHECK_LIB(posix4,nanosleep,
          [VLC_ADD_LIBS([libvlccore],[-lposix4]) have_nanosleep=:])]
    )
  ])
  if ${have_nanosleep}; then
    AC_DEFINE(HAVE_NANOSLEEP, 1, [Define if nanosleep is available.])
  fi
782
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
gbazin's avatar
   
gbazin committed
783

Sam Hocevar's avatar
   
Sam Hocevar committed
784
dnl Check for misc headers
785
AC_MSG_CHECKING(for strncasecmp in strings.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
786
AC_EGREP_HEADER(strncasecmp,strings.h,[
787
  AC_MSG_RESULT(yes)
788
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
789
790
            Define if <strings.h> defines strncasecmp.)],[
  AC_MSG_RESULT(no)])
Sam Hocevar's avatar
   
Sam Hocevar committed
791

Sam Hocevar's avatar
   
Sam Hocevar committed
792
dnl Check for headers
793
AC_CHECK_HEADERS(getopt.h strings.h locale.h xlocale.h)
794
AC_CHECK_HEADERS(fcntl.h sys/time.h sys/ioctl.h sys/stat.h)
795
AC_CHECK_HEADERS([arpa/inet.h netinet/in.h netinet/udplite.h sys/eventfd.h])
796
797
AC_CHECK_HEADERS([net/if.h], [], [],
  [
798
    #include <sys/types.h>
799
    #include <sys/socket.h>
800
  ])
801
802
803
804
AC_CHECK_HEADERS([sys/mount.h], [], [],
  [
    #include <sys/param.h>
  ])
805

806
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
807
808
809
  AC_CHECK_HEADERS(machine/param.h sys/shm.h)
  AC_CHECK_HEADERS([linux/version.h linux/dccp.h scsi/scsi.h linux/magic.h])
  AC_CHECK_HEADERS(syslog.h)
810
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
   
Sam Hocevar committed
811

812
dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
813
814
815
816
817
AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.])
AC_CHECK_TYPE(ssize_t,, [
  AC_DEFINE(ssize_t, int)
])

818
dnl Check for poll
819
AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])], [
820
if test ${SYS} != "mingw32" -a ${SYS} != "mingwce"
821
822
823
824
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
])
825

826
dnl Mac OS X and other OSes don't have declaration for nanosleep
827
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
828
829
830
831
832
833
834
835
  AC_MSG_CHECKING(for nanosleep in time.h)
  AC_EGREP_HEADER(nanosleep,time.h,[
    AC_MSG_RESULT(yes)
    AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
              Define if <time.h> defines nanosleep.)
  ],[
    AC_MSG_RESULT(no)
  ])
836
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
837
838

dnl Make sure we have timespecs
839
AC_MSG_CHECKING(for timespec in sys/time.h)
840
AC_EGREP_HEADER(timespec,sys/time.h,[
841
  AC_MSG_RESULT(yes)
842
843
  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
            Define if <sys/time.h> defines struct timespec.)
844
845
],[
  AC_MSG_RESULT(no)
846
])
847

Sam Hocevar's avatar
   
Sam Hocevar committed
848
dnl Check for threads library
849
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
850
  AC_CHECK_HEADERS(pthread.h)
851
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Sam Hocevar's avatar
   
Sam Hocevar committed
852

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
853
854
855
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.
856
dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
857
AC_ARG_VAR(PKG_CONFIG_PATH,
858
       [Paths where to find .pc not at the default location])
859
860
PKG_PROG_PKG_CONFIG()

861
dnl On some OS we need static linking 
862
863
864
865
866
AS_IF([test -n "${PKG_CONFIG}" ],[
    AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce" -o "${SYS}" = "darwin" ],[
        PKG_CONFIG="${PKG_CONFIG} --static"
    ])
])
867
868


869
870
dnl
dnl Check for zlib.h and -lz along with system -lminizip if available
871
dnl
872
873
874
875
AC_CHECK_HEADERS(zlib.h, [ have_zlib=yes ], [ have_zlib=no ])
AM_CONDITIONAL(HAVE_ZLIB, [ test "${have_zlib}" = "yes" ])
if test "${have_zlib}" = "yes"
then
876
  VLC_ADD_LIBS([access_http mp4 skins2 sap mkv unzip zip],[-lz])
877
878
879
880
881
882
  PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
    AC_CHECK_HEADERS([unzip.h], [ 
      have_minizip=yes
      MINIZIP_LIBS="-lminizip -lz"
    ], [
      have_minizip=no
883
884
      MINIZIP_CFLAGS="-I\\\${top_srcdir}/libs/unzip"
      MINIZIP_LIBS="\\\${top_builddir}/libs/unzip/libunzip.la"
885
886
887
888
889
    ])
  ])
  VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
  VLC_ADD_CFLAGS([zip],[$MINIZIP_CFLAGS])
  VLC_ADD_LIBS([skins2 zip],[$MINIZIP_LIBS])
890
  VLC_ADD_PLUGIN([unzip zip])
891
fi
892
AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
893
894


895
896
dnl Manual switch for UTF-8
AC_ARG_ENABLE(non-utf8,
897
898
  [  --enable-non-utf8       Legacy non-UTF-8 systems support (default disabled)],, [
  AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"], [
899
900
901
902
903
904
905
906
907
    enable_non_utf8="no"
  ])
])
AS_IF([test "${enable_non_utf8}" != "no"], [
  AC_DEFINE([ASSUME_UTF8], [1],
            [Define to 1 if the operating system uses UTF-8 internally])
])


908
909
dnl Check for dbus
AC_ARG_ENABLE(dbus,
910
  [  --enable-dbus           Linux D-BUS message bus system (default enabled)])
Rafaël Carré's avatar
Rafaël Carré committed
911
912
case "${SYS}" in
    linux*|*bsd*)
913
if test "${enable_dbus}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
914
then
915
916
  dnl api stable dbus
  PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.0.0,
917
    [ AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
918
919
      VLC_ADD_LIBS([libvlccore],[$DBUS_LIBS])
      VLC_ADD_CFLAGS([libvlccore],[$DBUS_CFLAGS])
920
      dnl Check for dbus control interface
Rafaël Carré's avatar
Rafaël Carré committed
921
        AC_ARG_ENABLE(dbus-control, [  --disable-dbus-control  D-BUS control interface (default enabled)])
922
        if test "${enable_dbus_control}" != "no"
923
        then
924
          VLC_ADD_PLUGIN([dbus])
925
          VLC_ADD_LIBS([dbus],[$DBUS_LIBS])
926
          VLC_ADD_CFLAGS([dbus],[$DBUS_CFLAGS])
927
928
        fi
      dnl Check for Telepathy
Christophe Mutricy's avatar
Christophe Mutricy committed
929
930
        AC_ARG_ENABLE(telepathy,
          AS_HELP_STRING([--enable-telepathy],[Telepathy Presence plugin through DBus(default enabled)]))
931
        if test "${enable_telepathy}" != "no"; then
932
          VLC_ADD_PLUGIN([telepathy])
933
          VLC_ADD_LIBS([telepathy],[$DBUS_LIBS])
934
          VLC_ADD_CFLAGS([telepathy],[$DBUS_CFLAGS])
935
936
        fi
        dnl Power Management Inhibiter
937
        VLC_ADD_PLUGIN([inhibit])