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

Pierre's avatar
Pierre committed
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
dnl Check how we are asked to build
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)
114

115
116
117
dnl
dnl  Check for the contrib directory
dnl
118
AC_ARG_WITH(contrib,
119
    [  --without-contrib       do not use the libraries in CONTRIB_DIR],[],[])
120
121
122
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"], [
123
124
125
126
      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
127
      CONTRIB_DIR="${topdir}/extras/contrib/hosts/${host}"
128
129
      if ! test -d "$CONTRIB_DIR"
      then
130
        gccmachine=`$CC -dumpmachine`
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
131
        CONTRIB_DIR="${topdir}/extras/contrib/hosts/${gccmachine}"
132
      fi
133
134
  ])
  AC_MSG_CHECKING([for libs in ${CONTRIB_DIR}])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
135
  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
136
    AC_MSG_RESULT([yes])
137
    AC_SUBST(CONTRIB_DIR)
Christophe Mutricy's avatar
Typo    
Christophe Mutricy committed
138
    export PATH=${CONTRIB_DIR}/bin:$PATH
139
140
141
142
143
144
145
146
    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
147
148
    if test "$build" = "$host" -o "$PKG_CONFIG_LIBDIR"; then
        export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
149
    else
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
150
        export PKG_CONFIG_LIBDIR="${CONTRIB_DIR}/lib/pkgconfig"
151
    fi
152
153
    LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"
    LDFLAGS_save="${LDFLAGS_save} -L${CONTRIB_DIR}/lib"
154

impulze's avatar
impulze committed
155
    if test "${SYS}" = "darwin"; then
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
156
157
      export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
      export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
158
    fi
159
160
161
162
  ],[
    AC_MSG_RESULT([no])
    CONTRIB_DIR=""
  ])
163
])
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

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

    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

223
    SYS=darwin
224
225
226
227
228
    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}"
229
230
    VLC_ADD_LDFLAGS([mkv mp4 motion], [-Wl,-framework,IOKit,-framework,CoreFoundation])
    VLC_ADD_LDFLAGS([libvlc vlc],[-Wl,-undefined,dynamic_lookup])
231
    VLC_ADD_LDFLAGS([avcodec avformat access_avio swscale postproc i420_rgb_mmx x264],[-Wl,-read_only_relocs,suppress])
232
    VLC_ADD_CFLAGS([motion],[-fconstant-cfstrings])
233
    VLC_ADD_LDFLAGS([libvlccore],[-Wl,-framework,CoreFoundation])
234
    AC_ARG_ENABLE(macosx-defaults,
235
      AS_HELP_STRING([--enable-macosx-defaults],[Build the default configuration on Mac OS X (default enabled)]))
236
237
238
239
    if test "x${enable_macosx_defaults}" != "xno"
    then
        echo ""
        echo "Building with Mac OS X defaults:"
240
241
242
243
        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"
244
245
246
        build_dir=`pwd`
        echo "  Assuming --prefix=${build_dir}/vlc_install_dir"
        ac_default_prefix="${build_dir}/vlc_install_dir"
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
        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"
265
266
        enable_libass="yes"
        echo "  Assuming --enable-libass"
267
268
269

        enable_skins2="no"
        echo "  Assuming --disable-skins2"
270
271
        enable_xcb="no"
        echo "  Assuming --disable-xcb"
272
    fi
273
274
275
276
277
278
    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
279
280
        CPP="${CPP} -isysroot ${with_macosx_sdk}"
        CC="${CC} -isysroot ${with_macosx_sdk}"
281
282
283
284
285
        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,
286
       [  --with-macosx-version-min=VERSION compile for MacOSX VERSION and above])
287
    if test "${with_macosx_version_min}" != "" ; then
288
289
        CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
        CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
290
291
292
293
294
295
296
297
298
        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
299
    ;;
300
  *mingw32* | *cygwin* | *wince* | *mingwce*)
301
    AC_CHECK_TOOL(WINDRES, windres, :)
302
    AC_CHECK_TOOL(OBJCOPY, objcopy, :)
gbazin's avatar
   
gbazin committed
303

304
    case "${host_os}" in
305
      *wince* | *mingwce* | *mingw32ce*)
sam's avatar
sam committed
306
        SYS=mingwce
geal's avatar
geal committed
307
308
        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
309
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
310
      *mingw32*)
gbazin's avatar
   
gbazin committed
311
        SYS=mingw32
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
312
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0500' for Windows XP APIs.])
gbazin's avatar
   
gbazin committed
313
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
314
      *cygwin*)
gbazin's avatar
   
gbazin committed
315
316
        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
317
        AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
gbazin's avatar
   
gbazin committed
318
319
320
321
        AC_EGREP_CPP(yes,
            [#ifdef WIN32
             yes
             #endif],
322
            SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
gbazin's avatar
   
gbazin committed
323
324
325
        ;;
    esac

Sam Hocevar's avatar
Sam Hocevar committed
326
    if test "${SYS}" = "mingw32"; then
327
        # add ws2_32 for closesocket, select, recv
328
        VLC_ADD_LIBS([libvlccore],[-lws2_32 -lnetapi32 -lwinmm])
damienf's avatar
damienf committed
329
        VLC_ADD_LDFLAGS([vlc],[-mwindows])
Rafaël Carré's avatar
Rafaël Carré committed
330
        VLC_ADD_LIBS([win32text],[-lgdi32])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
331
        VLC_ADD_LIBS([cdda vcdx sdl_image aout_sdl vout_sdl],[-lwinmm])
ivoire's avatar
ivoire committed
332
        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
333
        VLC_ADD_LIBS([filesystem], [-lshlwapi])
334
335
336
337
        dnl
        dnl DEP and ASLR options
        dnl
        AC_ARG_ENABLE(peflags,
338
          [  --enable-peflags        peflags use (default enabled on Windows)])
339
        if test "${enable_peflags}" != "no" ; then
340
341
          AC_CHECK_TOOL(PEFLAGS, peflags, :)
        fi
342
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
343
344
        ac_default_prefix="`pwd`/_win32"
        DESTDIR="`pwd`/_win32/"
345
346

        dnl
347
        dnl NSIS Installer prefix and WIN64
348
349
350
        dnl
        case "${host}" in
            amd64*|i686-w64*|x86_64*)
351
                HAVE_WIN64="1"
352
353
354
355
356
357
358
359
                PROGRAMFILES="PROGRAMFILES64"
            ;;
            *)
                PROGRAMFILES="PROGRAMFILES"
            ;;
        esac
        AC_SUBST(PROGRAMFILES)

gbazin's avatar
   
gbazin committed
360
    fi
361
362
    if test "${SYS}" = "mingwce"; then
        # add ws2 for closesocket, select, recv
ivoire's avatar
ivoire committed
363
        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])
364
        VLC_ADD_LIBS([libvlccore],[-lmmtimer])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
365
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
366
367
        ac_default_prefix="`pwd`/_wince"
        DESTDIR="`pwd`/_wince/"
368
    fi
369
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
370
  *nto*)
371
372
    SYS=nto
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
373
  solaris*)
374
375
    SYS=solaris
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
376
  hpux*)
377
378
    SYS=hpux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
379
  *)
380
    SYS="${host_os}"
381
    ;;
gbazin's avatar
   
gbazin committed
382
esac
Sam Hocevar's avatar
Sam Hocevar committed
383
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
384
AM_CONDITIONAL(HAVE_LINUX, [test "${SYS}" = "linux"])
Sam Hocevar's avatar
Sam Hocevar committed
385
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
386
AM_CONDITIONAL(HAVE_WIN64, test "${HAVE_WIN64}" = "1")
387
AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
388
AM_CONDITIONAL(USE_PEFLAGS, [test "${enable_peflags}" = "yes"])
389

390
dnl
391
dnl Sadly autoconf doesn't think about testing foo.exe when ask to test
392
393
394
395
396
dnl for program foo on win32

case "${build_os}" in
    cygwin|msys)
        ac_executable_extensions=".exe"
397
    ;;
398
    *)
399
    ;;
400
401
esac

402
dnl
403
404
405
406
dnl  Libtool
dnl  It's very bad, but our former custom system was worst
dnl  -- Courmisch
dnl
damienf's avatar
damienf committed
407
408
409
410

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
411
412
AC_CACHE_VAL(lt_cv_deplibs_check_method,
    [lt_cv_deplibs_check_method=pass_all])
damienf's avatar
damienf committed
413

414
AC_DISABLE_STATIC
415
dnl AC_DISABLE_FAST_INSTALL
416
AC_LIBTOOL_DLOPEN
damienf's avatar
damienf committed
417
AC_LIBTOOL_WIN32_DLL
418
419
m4_undefine([AC_PROG_F77])
m4_defun([AC_PROG_F77],[])
420
421
AC_PROG_LIBTOOL

damienf's avatar
damienf committed
422
423
424
425
426
m4_undefine([AC_DEPLIBS_CHECK_METHOD])
m4_defun([AC_DEPLIBS_CHECK_METHOD],[])

lt_cv_deplibs_check_method=pass_all

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])
938
939
        VLC_ADD_LIBS([inhibit],[$DBUS_LIBS])
        VLC_ADD_CFLAGS([inhibit],[$DBUS_CFLAGS])
940
941
    ],
    [AC_MSG_ERROR([Couldn't find DBus >= 1.0.0, install libdbus-dev ?])]
942
943
  )
fi
Rafaël Carré's avatar
Rafaël Carré committed
944
945
;;
esac
946

Sam Hocevar's avatar
   
Sam Hocevar committed
947
dnl Check for ntohl, etc.
948
AC_CACHE_CHECK([for ntohl in sys/param.h],
949
950
951
    [ac_cv_c_ntohl_sys_param_h],
    [CFLAGS="${CFLAGS_save} -Wall -Werror"
     AC_TRY_COMPILE([#include <sys/param.h>],
952
        [int meuh; ntohl(meuh);],
953
        ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
Sam Hocevar's avatar
Sam Hocevar committed
954
if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
955
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
956
fi
Rémi Denis-Courmont's avatar
Lalala    
Rémi Denis-Courmont committed
957
CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
   
Sam Hocevar committed
958

959
RDC_PROG_CC_WFLAGS([all extra sign-compare undef pointer-arith bad-function-cast write-strings missing-prototypes volatile-register-var error-implicit-function-declaration])
Pierre's avatar
Pierre committed
960
RDC_PROG_CC_FLAGS([-pipe])
Sam Hocevar's avatar
   
Sam Hocevar committed
961
962

dnl Check for various optimization flags
963
964
965
966
AC_CACHE_CHECK([if \$CC accepts -Os],
    [ac_cv_c_os],
    [CFLAGS="${CFLAGS_save} -Os"
     AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
967
968
if test "${ac_cv_c_os}" != "no"; then
    CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -Os"
969
else
970
971
972
973
974
975
976
977
978
    AC_CACHE_CHECK([if \$CC accepts -O],
        [ac_cv_c_o],
        [CFLAGS="${CFLAGS_save} -O"
         AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
    if test "${ac_cv_c_o}" != "no"; then
        if test "${ac_cv_c_o3}" = "no"; then
            CFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE} -O"
        fi
    fi
979
980
fi

981
982
983
984
985
986
AC_CACHE_CHECK([if \$CC accepts -O4],
    [ac_cv_c_o4],
    [CFLAGS="${CFLAGS_save} -O4"
     AC_TRY_COMPILE([],,ac_cv_c_o4=yes, ac_cv_c_o4=no)])
if test "${ac_cv_c_o4}" != "no" -a "x${enable_debug}" = "xno"; then
    CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O4"
987
else
988
989
990
991
992
993
    AC_CACHE_CHECK([if \$CC accepts -O3],
        [ac_cv_c_o3],
        [CFLAGS="${CFLAGS_save} -O3"
         AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
    if test "${ac_cv_c_o3}" != "no" -a "x${enable_debug}" = "xno"; then
        CFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED} -O3"
994
    else
995
996
997
998
999