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

Jean-Baptiste Kempf's avatar
2015    
Jean-Baptiste Kempf committed
3
AC_COPYRIGHT([Copyright 1999-2015 VLC authors and VideoLAN])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
4

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
5
6
7
AC_INIT(vlc, 3.0.0-git)
VERSION_MAJOR=3
VERSION_MINOR=0
8
9
VERSION_REVISION=0
VERSION_EXTRA=0
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
10
VERSION_DEV=git
11

12
13
PKGDIR="vlc"
AC_SUBST(PKGDIR)
14

15
CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
16
CODENAME="Vetinari"
Jean-Baptiste Kempf's avatar
2015    
Jean-Baptiste Kempf committed
17
COPYRIGHT_YEARS="1996-2015"
18

19
AC_CONFIG_SRCDIR(src/libvlc.c)
20
AC_CONFIG_AUX_DIR(autotools)
21
AC_CONFIG_MACRO_DIR(m4)
22
AC_CONFIG_LIBOBJ_DIR(compat)
23
AC_CANONICAL_BUILD
24
AC_CANONICAL_HOST
impulze's avatar
impulze committed
25
AC_PRESERVE_HELP_ORDER
26

27
AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
28
AC_CONFIG_HEADERS([config.h])
29

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
30
AM_SILENT_RULES([yes])
31
AM_MAINTAINER_MODE([enable])
32

33
34
35
36
37
38
39
40
41
42
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
43
dnl
44
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
45
dnl
46
AC_PROG_CC_C99
47
AC_USE_SYSTEM_EXTENSIONS
48
49
AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to 2 to get glibc warnings.])
AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
50
51
52
53
54
AH_TOP([
#ifndef _REENTRANT
# define _REENTRANT
#endif
])
55
56
AC_DEFINE([_THREAD_SAFE],, [Same as _REENTANT for some other OSes.])
AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
57
AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
58

59
60
AM_PROG_CC_C_O
AC_PROG_CXX
61
AC_PROG_CPP
62
63
64
AC_PROG_OBJC
_AM_DEPENDENCIES([OBJC])
AC_PROG_EGREP
65
66
AC_PROG_MAKE_SET
AC_PROG_INSTALL
67
AM_PROG_AS
68

69
70
AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
AC_CHECK_PROGS(DESKTOP_FILE_VALIDATE, [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
71
AC_PATH_PROG(YASM, yasm)
72
AC_ARG_VAR([BUILDCC], [Build system C99 compiler command])
73
AC_PATH_PROGS(BUILDCC, [c99-gcc c99])
74

75
76
77
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE
78
AC_C_RESTRICT
79
AX_CXX_COMPILE_STDCXX_11(noext, optional)
80

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

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

gbazin's avatar
   
gbazin committed
94
95
96
dnl
dnl  Check the operating system
dnl
97
HAVE_WIN64="0"
98
99
HAVE_IOS="0"
HAVE_OSX="0"
Luca Barbato's avatar
Luca Barbato committed
100
101
102
103
104
105
106
107
108
109
110
111

YASMFLAGS=""
case "${host}" in
    i?86*)
    YASMFLAGS="-f elf32"
        ;;
    x86_64*)
    YASMFLAGS="-f elf64"
        ;;
esac


112
case "${host_os}" in
Sam Hocevar's avatar
Sam Hocevar committed
113
  "")
114
115
    SYS=unknown
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
116
  linux*)
117
118
    SYS=linux
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
119
  bsdi*)
120
    SYS=bsdi
121
    CFLAGS="${CFLAGS} -pthread"
122
    ;;
123
124
  freebsd*)
    SYS=freebsd
125
    CFLAGS="${CFLAGS} -pthread"
126
127
128
129
130
131
132
133
134
135
136
137
138
    CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
    LDFLAGS="${LDFLAGS} -L/usr/local/lib"
    ;;
  openbsd*)
    SYS=openbsd
    CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/X11R6/include"
    LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/X11R6/lib/"
    ;;
  netbsd*)
    SYS=netbsd
    ;;
  dragonfly*)
    SYS=dragonfly
139
    ;;
140
  darwin*)
141
142
143
144

    dnl Force gcc "-arch" flag
    ARCH_flag=""
    case "${host}" in
145
      i?86*)
146
        ARCH_flag="-arch i386"
Luca Barbato's avatar
Luca Barbato committed
147
        YASMFLAGS="-f macho32"
148
149
150
151
152
153
154
155
156
      ;;
      ppc64*)
        ARCH_flag="-arch ppc64"
      ;;
      ppc*)
        ARCH_flag="-arch ppc"
      ;;
      x86_64*)
        ARCH_flag="-arch x86_64"
Luca Barbato's avatar
Luca Barbato committed
157
        YASMFLAGS="-f macho64"
158
      ;;
159
160
      arm*)
        ac_cv_c_bigendian="no"
161
        ac_cv_c_attribute_packed="no"
162
      ;;
163
164
    esac

165
    SYS=darwin
166
167
168
169
170
    CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
    CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
    CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
    OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu99 ${ARCH_flag}"
    LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
171
    VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
172
    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
173

174
175
176
177
178
179
180
181
    AC_EGREP_CPP(yes,
            [#import <TargetConditionals.h>
             #if TARGET_OS_IPHONE
             yes
             #endif],
             [HAVE_IOS="1"],
             [HAVE_OSX="1"])

182
    dnl Allow binaries created on Lion to run on earlier releases
183
184
185
186
187
188
    AC_EGREP_CPP(yes,
           [#import <Cocoa/Cocoa.h>
            #ifdef MAC_OS_X_VERSION_10_7
            yes
            #endif],
            [AC_MSG_RESULT([yes])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
189
190
191
            AC_LIBOBJ([getdelim])
            AC_LIBOBJ([strndup])
            AC_LIBOBJ([strnlen])],)
192

193
    dnl
194
    dnl  Handle Mac OS X SDK flags
195
196
    dnl
    AC_ARG_WITH(macosx-sdk,
197
198
      [AS_HELP_STRING([--with-macosx-sdk=DIR],
        [compile using the SDK in DIR])])
199
200
201
202
203
204
205
206
    if test "${with_macosx_sdk}" != "" ; then
        test ! -d "${with_macosx_sdk}" && AC_MSG_ERROR([SDK "${with_macosx_sdk}" not found])
        CPP="${CPP} -isysroot ${with_macosx_sdk}"
        CC="${CC} -isysroot ${with_macosx_sdk}"
        CXX="${CXX} -isysroot ${with_macosx_sdk}"
        OBJC="${OBJC} -isysroot ${with_macosx_sdk}"
        LD="${LD} -syslibroot ${with_macosx_sdk}"
    fi
207
    AC_ARG_WITH(macosx-version-min,
208
      [AS_HELP_STRING([--with-macosx-version-min=VERSION],
209
210
211
212
213
214
215
        [compile for Mac OS X VERSION and above])])
    if test "${with_macosx_version_min}" != "" ; then
        CPP="${CPP} -mmacosx-version-min=${with_macosx_version_min}"
        CC="${CC} -mmacosx-version-min=${with_macosx_version_min}"
        CXX="${CXX} -mmacosx-version-min=${with_macosx_version_min}"
        OBJC="${OBJC} -mmacosx-version-min=${with_macosx_version_min}"
        LD="${LD} -mmacosx_version_min=${with_macosx_version_min}"
216
    fi
217
    ;;
218
  *mingw32* | *cygwin* | *wince* | *mingwce*)
219
    AC_CHECK_TOOL(WINDRES, windres, :)
220
    AC_CHECK_TOOL(OBJCOPY, objcopy, :)
221
    AH_TOP([#if defined(_WIN32) && !defined(_WIN32_WINNT)])
222
223
    AH_TOP([# define _WIN32_WINNT 0x0502 /* Windows XP SP2 */])
    AH_TOP([#endif])
224
    AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE 6.0 (and shell) APIs.])
225
226
    AC_DEFINE([_UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
    AC_DEFINE([UNICODE], [1], [Define to 1 for Unicode (Wide Chars) APIs.])
227
228
229
230
231
232
233
234
    AC_DEFINE([_ISOC99_SOURCE], [1], [Extensions to ISO C89 from ISO C99.])
    AC_DEFINE([_ISOC11_SOURCE], [1], [Extensions to ISO C99 from ISO C11.])
    AC_DEFINE([_POSIX_SOURCE], [1], [IEEE Std 1003.1.])
    AC_DEFINE([_POSIX_C_SOURCE], [200809L], [IEEE Std 1003.1.])
    AC_DEFINE([_XOPEN_SOURCE], [700], [POSIX and XPG 7th edition])
    AC_DEFINE([_XOPEN_SOURCE_EXTENDED], [1], [XPG things and X/Open Unix extensions.])
    AC_DEFINE([_BSD_SOURCE], [1], [ISO C, POSIX, and 4.3BSD things.])
    AC_DEFINE([_SVID_SOURCE], [1], [ISO C, POSIX, and SVID things.])
gbazin's avatar
   
gbazin committed
235

236
    case "${host_os}" in
Sam Hocevar's avatar
Sam Hocevar committed
237
      *mingw32*)
gbazin's avatar
   
gbazin committed
238
239
        SYS=mingw32
        ;;
Sam Hocevar's avatar
Sam Hocevar committed
240
      *cygwin*)
gbazin's avatar
   
gbazin committed
241
242
243
        dnl Check if we are using the mno-cygwin mode in which case we are
        dnl actually dealing with a mingw32 compiler.
        AC_EGREP_CPP(yes,
244
            [#ifdef _WIN32
gbazin's avatar
   
gbazin committed
245
246
             yes
             #endif],
247
            SYS=mingw32, AC_MSG_ERROR([VLC requires -mno-cygwin]))
gbazin's avatar
   
gbazin committed
248
249
250
        ;;
    esac

Sam Hocevar's avatar
Sam Hocevar committed
251
    if test "${SYS}" = "mingw32"; then
252
253
254
        # DEP, ASLR, NO SEH
        LDFLAGS="${LDFLAGS} -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase"

255
        AC_CHECK_PROGS(U2D, [unix2dos todos], unix2dos)
256
257
        ac_default_prefix="`pwd`/_win32"
        DESTDIR="`pwd`/_win32/"
258
259

        dnl
Ludovic Fauvet's avatar
Ludovic Fauvet committed
260
        dnl NSIS/MSI Installer prefix and WIN64
261
262
        dnl
        case "${host}" in
263
            amd64*|x86_64*)
264
                HAVE_WIN64="1"
Ludovic Fauvet's avatar
Ludovic Fauvet committed
265
                WINDOWS_ARCH="x64"
266
                PROGRAMFILES="PROGRAMFILES64"
Luca Barbato's avatar
Luca Barbato committed
267
                YASMFLAGS="-f win64"
268
269
            ;;
            *)
Ludovic Fauvet's avatar
Ludovic Fauvet committed
270
                WINDOWS_ARCH="x86"
271
                PROGRAMFILES="PROGRAMFILES"
Luca Barbato's avatar
Luca Barbato committed
272
                YASMFLAGS="-f win32"
273
274
            ;;
        esac
Ludovic Fauvet's avatar
Ludovic Fauvet committed
275
        AC_SUBST(WINDOWS_ARCH)
276
277
        AC_SUBST(PROGRAMFILES)

gbazin's avatar
   
gbazin committed
278
    fi
279
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
280
  *nto*)
281
282
    SYS=nto
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
283
  solaris*)
284
285
    SYS=solaris
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
286
  hpux*)
287
288
    SYS=hpux
    ;;
289
290
291
  symbian*)
    SYS=symbian
    ;;
KO Myung-Hun's avatar
KO Myung-Hun committed
292
293
  *os2*)
    SYS=os2
294
    LDFLAGS="${LDFLAGS} -Zomf -Zbin-files -Zargs-wild -Zhigh-mem"
295
    AC_LIBOBJ([freeaddrinfo])
KO Myung-Hun's avatar
KO Myung-Hun committed
296
    ;;
Sam Hocevar's avatar
Sam Hocevar committed
297
  *)
298
    SYS="${host_os}"
299
    ;;
gbazin's avatar
   
gbazin committed
300
esac
ivoire's avatar
ivoire committed
301
302
303
304
305
AM_CONDITIONAL(HAVE_DARWIN,  test "${SYS}" = "darwin")
AM_CONDITIONAL(HAVE_LINUX,   test "${SYS}" = "linux")
AM_CONDITIONAL(HAVE_OS2,     test "${SYS}" = "os2")
AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1")
306
AM_CONDITIONAL(HAVE_SYMBIAN, test "${SYS}" = "symbian")
307
308
AM_CONDITIONAL(HAVE_IOS,   test "${HAVE_IOS}" = "1")
AM_CONDITIONAL(HAVE_OSX,   test "${HAVE_OSX}" = "1")
309

Luca Barbato's avatar
Luca Barbato committed
310
311
AC_SUBST(YASMFLAGS)

312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
dnl
dnl Sadly autoconf does not think about testing foo.exe when ask to test
dnl for program foo on win32
case "${build_os}" in
    cygwin|msys)
        ac_executable_extensions=".exe"
    ;;
    *)
    ;;
esac

dnl Android is linux, but a bit different
AS_IF([test "$SYS" = linux],[
    AC_MSG_CHECKING([for an Android system])
    AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
        [[#ifndef __ANDROID__
         # error Not Android
         #endif
        ]],[[;]])
    ],[
      HAVE_ANDROID="1"
      AC_MSG_RESULT([yes])
    ],[
      AC_MSG_RESULT([no])
    ])
])
AM_CONDITIONAL(HAVE_ANDROID, test "${HAVE_ANDROID}" = "1")


341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
dnl
dnl  Check for the contrib directory
dnl
AC_ARG_WITH(contrib,
  [AS_HELP_STRING([--with-contrib[=DIR]],
    [search for 3rd party libraries in DIR/include and DIR/lib])
])
AC_MSG_CHECKING([for 3rd party libraries path])
AS_IF([test -z "${with_contrib}" || test "${with_contrib}" = "yes"], [
  CONTRIB_DIR="${srcdir}/contrib/${host}"
  AS_IF([test ! -d "${CONTRIB_DIR}"], [
    echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
    CONTRIB_DIR="${srcdir}/contrib/`$CC -dumpmachine`"
    AS_IF([test ! -d "${CONTRIB_DIR}"], [
      echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
      CONTRIB_DIR="${srcdir}/extras/contrib/hosts/${host}"
      AS_IF([test ! -d "${CONTRIB_DIR}"], [
        echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
        CONTRIB_DIR="${srcdir}/extras/contrib/hosts/`$CC -dumpmachine`"
        AS_IF([test ! -d "${CONTRIB_DIR}"], [
          echo "${CONTRIB_DIR} not found" >&AS_MESSAGE_LOG_FD
362
363
          CONTRIB_DIR=""
          AC_MSG_RESULT([not found])
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
        ])
      ])
    ])
  ])
], [
  AS_IF([test "${with_contrib}" != "no"], [
    CONTRIB_DIR="${with_contrib}"
  ], [
    CONTRIB_DIR=""
    AC_MSG_RESULT([disabled])
  ])
])
AS_IF([test -n "${CONTRIB_DIR}"], [
  AS_IF([test -d "${CONTRIB_DIR}/lib"],[
    CONTRIB_DIR=`cd "${CONTRIB_DIR}" && pwd`
  ], [
    echo "${CONTRIB_DIR}/lib not found" >&AS_MESSAGE_LOG_FD
    CONTRIB_DIR=""
    AC_MSG_RESULT([not usable])
  ])

])
AS_IF([test -n "${CONTRIB_DIR}"], [
  AC_MSG_RESULT([${CONTRIB_DIR}])
  export PATH=${CONTRIB_DIR}/bin:$PATH
  CPPFLAGS="${CPPFLAGS} -I${CONTRIB_DIR}/include"
  CFLAGS="${CFLAGS} -I${CONTRIB_DIR}/include"
  CXXFLAGS="${CXXFLAGS} -I${CONTRIB_DIR}/include"
  OBJCFLAGS="${OBJCFLAGS} -I${CONTRIB_DIR}/include"
393
  export PKG_CONFIG_PATH="${CONTRIB_DIR}/lib/pkgconfig:$PKG_CONFIG_PATH"
394
395
396
397
398
399
400
401
402
403
404
405
406
  LDFLAGS="${LDFLAGS} -L${CONTRIB_DIR}/lib"

  AS_IF([test "${SYS}" = "darwin"], [
    export LD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$LD_LIBRARY_PATH"
    export DYLD_LIBRARY_PATH="${CONTRIB_DIR}/lib:$DYLD_LIBRARY_PATH"
  ])
], [
  AS_IF([test -n "${with_contrib}" && test "${with_contrib}" != "no"], [
    AC_MSG_ERROR([Third party libraries not found!])
  ])
])
AC_SUBST(CONTRIB_DIR)

407
dnl Add extras/tools to the PATH
408
TOOLS_DIR="${srcdir}/extras/tools/build/bin"
409
410
AS_IF([test -d "${TOOLS_DIR}"], [
    TOOLS_DIR=`cd "${TOOLS_DIR}" && pwd`
411
    export PATH="${TOOLS_DIR}":$PATH
412
413
])

414
dnl
415
416
417
418
dnl  Libtool
dnl  It's very bad, but our former custom system was worst
dnl  -- Courmisch
dnl
damienf's avatar
damienf committed
419
420
421
422

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
423
424
AC_CACHE_VAL(lt_cv_deplibs_check_method,
    [lt_cv_deplibs_check_method=pass_all])
damienf's avatar
damienf committed
425

426
427
428
LT_INIT([dlopen win32-dll shared disable-static])
LT_LANG([C++])
LT_LANG([Windows Resource])
429

Luca Barbato's avatar
Luca Barbato committed
430
431
DOLT

damienf's avatar
damienf committed
432
433
lt_cv_deplibs_check_method=pass_all

434
AS_IF([test "${enable_shared}" = "no" -a "${enable_vlc}" != "no"], [
435
436
437
  AC_MSG_ERROR([VLC is based on plugins. Shared libraries cannot be disabled.])
])

438
439
440
dnl
dnl Gettext stuff
dnl
441
AM_GNU_GETTEXT_VERSION([0.19.2])
442
AM_GNU_GETTEXT([external], [need-ngettext])
443

gbazin's avatar
gbazin committed
444
445
446
dnl
dnl Iconv stuff
dnl
447
AM_ICONV
gbazin's avatar
gbazin committed
448

449
450
dnl
dnl checks for mingw
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
451
AS_IF([test "${SYS}" = "mingw32"], [
452

453
dnl Check for broken versions of mingw-runtime compatability library
454
    AC_MSG_CHECKING(for broken mingw-runtime)
455
    AC_PREPROC_IFELSE([AC_LANG_SOURCE([
456
#include <_mingw.h>
457
458
459
460
461
#if defined(__MINGW64_VERSION_MAJOR)
# if __MINGW64_VERSION_MAJOR < 3
#  error Attempting to use mingw-runtime with broken vsnprintf and direct2d support
# endif
#elif __MINGW32_MAJOR_VERSION == 3 && __MINGW32_MINOR_VERSION < 15
462
463
# error Attempting to use mingw-runtime with broken vsnprintf support
#endif
464
    ])], [
465
        AC_MSG_RESULT([ok])
466
    ], [
467
        AC_MSG_RESULT([present])
468
        AC_MSG_ERROR([LibVLC requires mingw-runtime version 3.15 or higher, or mingw-w64 version 3.0 or higher!])
469
    ])
470

471
472
473
    dnl force use of mingw provided c99 *printf over msvcrt
    CPPFLAGS="${CPPFLAGS} -D__USE_MINGW_ANSI_STDIO=1"

474
475
476
477
    dnl Add WinMainCRTStartup entry point to show it's a WinMain application
    VLC_ADD_LDFLAGS([vlc],[-mwindows])

    dnl Check for the need to include the mingwex lib for mingw32
Rafaël Carré's avatar
Rafaël Carré committed
478
    VLC_SAVE_FLAGS
gbazin's avatar
   
gbazin committed
479
    AC_CHECK_LIB(mingwex,opendir,
480
        AC_CHECK_LIB(mingw32,opendir,,
481
            [VLC_ADD_LIBS([libvlccore],[-lmingwex])])
gbazin's avatar
   
gbazin committed
482
    )
Rafaël Carré's avatar
Rafaël Carré committed
483
    VLC_RESTORE_FLAGS
gbazin's avatar
   
gbazin committed
484

485
    dnl Check for fnative-struct or mms-bitfields support for mingw32
486
487
488
    VLC_SAVE_FLAGS
    CFLAGS="${CFLAGS} -mms-bitfields"
    CXXFLAGS="${CXXFLAGS} -mms-bitfields"
gbazin's avatar
   
gbazin committed
489
490
    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
        [ac_cv_c_mms_bitfields],
491
492
493
494
495
        [AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
    if test "${ac_cv_c_mms_bitfields}" = "no"; then
        VLC_RESTORE_FLAGS
        CFLAGS="${CFLAGS} -fnative-struct"
        CXXFLAGS="${CXXFLAGS} -fnative-struct"
496
497
        AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
            [ac_cv_c_fnative_struct],
498
499
            [AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
        "${ac_cv_c_fnative_struct}" = "no" && VLC_RESTORE_FLAGS
gbazin's avatar
   
gbazin committed
500
    fi
501
])
gbazin's avatar
   
gbazin committed
502

503
504
505
506
AC_ARG_ENABLE(winstore_app,
     AS_HELP_STRING([--enable-winstore-app],
                    [Build targetted for Windows Store apps (default disabled)]))

507
vlc_winstore_app=0
508
509
AS_IF([test "${SYS}" = "mingw32"],[
  AS_IF([test "${enable_winstore_app}" = "yes"], [
510
    vlc_winstore_app=1
511
512
513
     VLC_ADD_LIBS([libvlccore], [-lole32 -lruntimeobject])
    ],[
     VLC_ADD_LIBS([libvlccore],[-lwinmm])
514
    ])
515
  ])
516
AC_DEFINE_UNQUOTED(VLC_WINSTORE_APP, ${vlc_winstore_app}, [Define to 1 if you want to build for Windows Store apps])
517
AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
518
519


520
521
dnl
dnl Buggy glibc prevention. Purposedly not cached.
522
dnl See sourceware.org bugs 5058 and 5443.
523
524
525
dnl Ubuntu alone has 20 bug numbers for this...
dnl
AC_MSG_CHECKING(for buggy GNU/libc versions)
526
AC_PREPROC_IFELSE([AC_LANG_SOURCE([
527
528
529
530
531
#include <limits.h>
#if defined (__GLIBC__) && (__GLIBC__ == 2) \
  && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
# error GNU/libc with dcgettext killer bug!
#endif
532
])], [
533
534
535
  AC_MSG_RESULT([not present])
], [
  AC_MSG_RESULT([found])
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
536
  AS_IF([test "x${enable_nls}" != "xno"], [
537
538
    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
539
glibc run-time. Alternatively, build with --disable-nls.])
540
  ])
541
542
])

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

VLC_LIBRARY_SUFFIX

547
dnl Check for system libs needed
548
need_libc=false
549

550
dnl Check for usual libc functions
551
AC_CHECK_DECLS([nanosleep],,,[#include <time.h>])
552
AC_CHECK_FUNCS([daemon fcntl fstatvfs fork getenv getpwuid_r isatty lstat memalign mmap open_memstream openat pread posix_fadvise posix_madvise setlocale stricmp strnicmp strptime uselocale pthread_cond_timedwait_monotonic_np pthread_condattr_setclock])
553
AC_REPLACE_FUNCS([atof atoll dirfd fdopendir flockfile fsync getdelim getpid lldiv nrand48 poll posix_memalign rewind setenv strcasecmp strcasestr strdup strlcpy strndup strnlen strsep strtof strtok_r strtoll swab tdestroy strverscmp])
554
555
556
AC_CHECK_FUNCS(fdatasync,,
  [AC_DEFINE(fdatasync, fsync, [Alias fdatasync() to fsync() if missing.])
])
Sam Hocevar's avatar
   
Sam Hocevar committed
557

558
dnl mingw64 implements those as static inline, not functions with C linkage
559
560
VLC_REPLACE_DECL([asprintf], [#include <stdio.h>])
VLC_REPLACE_DECL([vasprintf], [#include <stdio.h>])
561
562
VLC_REPLACE_DECL([gmtime_r], [#include <time.h>])
VLC_REPLACE_DECL([localtime_r], [#include <time.h>])
563

564
565
dnl C11 static_assert()
AC_MSG_CHECKING([for static_assert in assert.h])
566
567
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <assert.h>], [
static_assert(1, "The impossible happened.");
568
569
570
571
572
573
574
])], [
  AC_MSG_RESULT([yes])
  AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
], [
  AC_MSG_RESULT([no])
])

Rafaël Carré's avatar
Rafaël Carré committed
575
# Windows CE does not have strcoll()
576
577
AC_FUNC_STRCOLL

578
dnl Check for non-standard system calls
579
580
581
582
case "$SYS" in
  "linux")
    AC_CHECK_FUNCS([accept4 pipe2 eventfd vmsplice sched_getaffinity])
    ;;
583
584
585
  "mingw32")
    AC_CHECK_FUNCS([_lock_file])
    ;;
586
esac
587

588
589
AH_BOTTOM([#include <vlc_fixups.h>])

590
591
592
593
594
dnl Check for struct pollfd
AC_CHECK_TYPES([struct pollfd],,,
[#include <sys/types.h>
#if HAVE_POLL
# include <poll.h>
595
#elif defined (_WIN32)
596
597
598
599
# include <winsock2.h>
#endif
])

600
dnl Checks for socket stuff
601
VLC_SAVE_FLAGS
602
603
604
605
606
607
608
609
610
611
SOCKET_LIBS=""
AC_SEARCH_LIBS(connect, [socket], [
  AS_IF([test "$ac_cv_search_connect" != "none required"], [
    SOCKET_LIBS="$ac_cv_search_connect"
  ])
], [
  AS_IF([test "${SYS}" = "mingw32"], [
    SOCKET_LIBS="-lws2_32"
  ])
])
612

613
AC_SEARCH_LIBS([inet_pton], [nsl], [
Fabrizio Ge's avatar
Fabrizio Ge committed
614
615
 AS_IF([test "$ac_cv_search_inet_pton" != "none required"], [
    SOCKET_LIBS="$ac_cv_search_inet_pton $SOCKET_LIBS"
616
617
618
  ])
],, [${SOCKET_LIBS}])

619
620
LIBS="${LIBS} ${SOCKET_LIBS}"
AC_LINK_IFELSE([
621
    AC_LANG_PROGRAM([#ifdef _WIN32
622
623
624
        # if _WIN32_WINNT < 0x600
        #  error Needs vista+
        # endif
625
626
        #include <ws2tcpip.h>
        #else
627
        #include <sys/socket.h>
628
629
630
631
632
        #include <arpa/inet.h>
        #endif], [
        char dst[[sizeof(struct in_addr)]];
        inet_pton(AF_INET, "127.0.0.1", dst);
    ])],[AC_DEFINE([HAVE_INET_PTON],[1],[Define to 1 if you have inet_pton function])],[AC_LIBOBJ([inet_pton])])
633
AC_CHECK_FUNCS([if_nameindex if_nametoindex])
634
VLC_RESTORE_FLAGS
635
AC_SUBST(SOCKET_LIBS)
636

637
dnl Check for socklen_t
638
AH_TEMPLATE(socklen_t, [Define to `int' if <sys/socket.h> does not define.])
Rafaël Carré's avatar
Rafaël Carré committed
639
AC_CACHE_CHECK([for socklen_t in sys/socket.h], dnl ` (fix VIM syntax highlight
640
641
ac_cv_type_socklen_t,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
642
[#include <sys/types.h>
643
#ifdef _WIN32
644
# include <winsock2.h>
645
# include <ws2tcpip.h>
646
647
#else
# include <sys/socket.h>
648
649
650
651
652
#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)])
653

654
dnl Check for struct sockaddr_storage
Rafaël Carré's avatar
Rafaël Carré committed
655
656
AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.]) dnl ` (fix VIM syntax highlight
657
658
659
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
  [AC_TRY_COMPILE(
    [#include <sys/types.h>
660
     #if defined( _WIN32 )
661
662
663
664
665
666
     # 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)])
667
AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
668
669
  AC_DEFINE(sockaddr_storage, sockaddr)
  AC_DEFINE(ss_family, sa_family)
670
])
671

672
673
674
675
676
677
678
679
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
680

Sam Hocevar's avatar
Sam Hocevar committed
681
AC_CHECK_LIB(m,cos,[
682
683
684
  LIBM="-lm"
], [
  LIBM=""
685
])
686
AC_SUBST(LIBM)
Sam Hocevar's avatar
   
Sam Hocevar committed
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])
])
Thomas Guillem's avatar
Thomas Guillem committed
692
693
694
AC_CHECK_LIB(m,nanf,
  AC_DEFINE(HAVE_NANF, 1, [Define to 1 if you have the NANF function])
)
695

Sam Hocevar's avatar
Sam Hocevar committed
696
dnl Check for dynamic plugins
697
698
LIBDL=""
have_dynamic_objects="no"
699
VLC_SAVE_FLAGS
700
AC_SEARCH_LIBS(dlsym, [dl svld], [
701
702
  AS_IF([test "$ac_cv_search_dlsym" != "none required"], [
    LIBDL="$ac_cv_search_dlsym"
703
  ])
704
  have_dynamic_objects="yes"
705
])
706
VLC_RESTORE_FLAGS
Sam Hocevar's avatar
Sam Hocevar committed
707

708
# Windows
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
709
AS_IF([test "${SYS}" = "mingw32"], [
710
  LIBDL=""
711
  have_dynamic_objects="yes" #assume we can use shared objects
712
])
713

714
715
AS_IF([test "${enable_shared}" = "no"], [
  have_dynamic_objects=no
716
])
Rafaël Carré's avatar
Rafaël Carré committed
717
718
AM_CONDITIONAL(HAVE_DYNAMIC_PLUGINS, [test "${have_dynamic_objects}" != "no"])

719
AC_SUBST(LIBDL)
Sam Hocevar's avatar
Sam Hocevar committed
720

721
dnl Check for thread library
722
723
LIBPTHREAD=""
AS_IF([test "${SYS}" != "mingw32"], [
Rafaël Carré's avatar
Rafaël Carré committed
724
  VLC_SAVE_FLAGS
Rafaël Carré's avatar
Rafaël Carré committed
725
726
  LIBS=""
  AC_SEARCH_LIBS(pthread_rwlock_init, pthread pthreads c_r, [
727
728
729
    AS_IF([test "$ac_cv_search_pthread_rwlock_init" != "none required"], [
      LIBPTHREAD="$ac_cv_search_pthread_rwlock_init"
    ])
Rafaël Carré's avatar
Rafaël Carré committed
730
731
  ])
  VLC_RESTORE_FLAGS
gbazin's avatar
   
gbazin committed
732

733
734
735
  AC_CHECK_LIB(rt, clock_nanosleep, [
    VLC_ADD_LIBS([libvlccore],[-lrt])
  ], [
736
737
738
739
740
741
742
743
744
    AC_CHECK_FUNC(nanosleep,,[
      AC_CHECK_LIB(rt,nanosleep, [
        VLC_ADD_LIBS([libvlccore],[-lrt])
      ], [
        AC_CHECK_LIB(posix4,nanosleep, [
          VLC_ADD_LIBS([libvlccore],[-lposix4])
        ])
      ])
    ])
745
746
747
    dnl HP/UX port
    AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LIBS([libvlccore],[-lrt])])
  ])
748
749
])
AC_SUBST(LIBPTHREAD)
gbazin's avatar
   
gbazin committed
750

751
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
752
dnl Check for headers
753
754
dnl

755
dnl  POSIX
756
AC_CHECK_HEADERS([arpa/inet.h pthread.h search.h sys/shm.h sys/socket.h])
757
758
759
760
761
AC_CHECK_HEADERS([net/if.h], [], [],
[
#include <sys/types.h>
#include <sys/socket.h>
])
762
763
764
AC_CHECK_HEADER([syslog.h], [have_syslog="yes"], [have_syslog="no"])
AM_CONDITIONAL([HAVE_SYSLOG], [test "$have_syslog" = "yes"])

765
766
dnl  BSD
AC_CHECK_HEADERS([netinet/udplite.h sys/param.h sys/mount.h])
767

768
769
dnl  GNU/Linux
AC_CHECK_HEADERS([getopt.h linux/dccp.h linux/magic.h mntent.h sys/eventfd.h])
770

771
772
dnl  MacOS
AC_CHECK_HEADERS([xlocale.h])
Sam Hocevar's avatar
   
Sam Hocevar committed
773

774
dnl LP64 and LLP64 architectures had better define ssize_t by themselves...
Rafaël Carré's avatar
Rafaël Carré committed
775
AH_TEMPLATE(ssize_t, [Define to `int' if <stddef.h> does not define.]) dnl ` (fix VIM syntax highlight
776
777
778
779
AC_CHECK_TYPE(ssize_t,, [
  AC_DEFINE(ssize_t, int)
])

Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
780
781
782
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.
783
dnl Make PKG_CONFIG_PATH precious so that it appears in the help and get saved
784
AC_ARG_VAR(PKG_CONFIG_PATH,
785
       [Paths where to find .pc not at the default location])
786
787
PKG_PROG_PKG_CONFIG()

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
788
dnl On some OS we need static linking
789
AS_IF([test -n "${PKG_CONFIG}" ],[
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
790
    AS_IF([test "${SYS}" = "mingw32" -o "${SYS}" = "darwin" -o "${SYS}" = "os2" ],[
791
792
793
        PKG_CONFIG="${PKG_CONFIG} --static"
    ])
])
794
795


796
797
dnl
dnl Check for zlib.h and -lz along with system -lminizip if available
798
dnl
799
800
801
802
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
803
  VLC_ADD_LIBS([skins2 sap unzip zip],[-lz])
804
  PKG_CHECK_MODULES([MINIZIP], [minizip] , [ have_minizip=yes ], [
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
805
    AC_CHECK_HEADERS([unzip.h], [
806
807
808
      have_minizip=yes
      MINIZIP_LIBS="-lminizip -lz"
    ], [
809
      VLC_ADD_CPPFLAGS([skins2], [-I\\\$(top_srcdir)/modules/access/zip/unzip])
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
810
      VLC_ADD_LIBS([skins2], [\\\$(top_builddir)/modules/libunzip.la])
811
812
813
814
      have_minizip=no
    ])
  ])
  VLC_ADD_CPPFLAGS([skins2],[$MINIZIP_CFLAGS])
815
  VLC_ADD_LIBS([skins2],[$MINIZIP_LIBS])
816
fi
817
AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
818
819


820
821
822
823
824
825
826
827
828
829
830
dnl
dnl Domain name i18n support via GNU libidn
dnl
PKG_CHECK_MODULES([IDN], [libidn], [
  have_libidn="yes"
  AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
], [
  have_libidn="no"
])


831
832
dnl Check for dbus
AC_ARG_ENABLE(dbus,
833
834
  [AS_HELP_STRING([--enable-dbus],
    [compile D-Bus message bus support (default enabled)])])
835
836
have_dbus="no"
AS_IF([test "${enable_dbus}" != "no"], [
837
  PKG_CHECK_MODULES(DBUS, [dbus-1 >= 1.6.0], [
838
839
840
841
842
843
844
845
846
847
    have_dbus="yes"
  ], [
    AS_IF([test -n "${enable_dbus}"], [
      AC_MSG_ERROR([${DBUS_PKG_ERRORS}.])
    ], [
      AC_MSG_WARN([${DBUS_PKG_ERRORS}.])
    ])
  ])
])
AM_CONDITIONAL([HAVE_DBUS], [test "${have_dbus}" = "yes"])
848

849
850
851
852
853
854
855
856
857
858

dnl Check for systemd
PKG_CHECK_MODULES([SYSTEMD], [libsystemd], [
  have_systemd="yes"
], [
  AC_MSG_WARN([${SYSTEMD_PKG_ERRORS}.])
])
AM_CONDITIONAL([HAVE_SYSTEMD], [test "${have_systemd}" = "yes"])


Sam Hocevar's avatar
   
Sam Hocevar committed
859
dnl Check for ntohl, etc.
860
861
VLC_SAVE_FLAGS
CFLAGS="${CFLAGS} -Wall -Werror"
862
AC_CACHE_CHECK([for ntohl in sys/param.h],
863
    [ac_cv_c_ntohl_sys_param_h],
864
    [     AC_TRY_COMPILE([#include <sys/param.h>],
865
        [int meuh; ntohl(meuh);],
866
        ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
Sam Hocevar's avatar
Sam Hocevar committed
867
if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
868
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
869
fi
870
VLC_RESTORE_FLAGS
871
872
873
874
875

EXTEND_HELP_STRING([Optimization options:])
dnl
dnl  Compiler warnings
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
876

877
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 init-self logical-op])
Pierre's avatar
Pierre committed
878
RDC_PROG_CC_FLAGS([-pipe])
879
880
881
AC_LANG_PUSH([C++])
RDC_PROG_CXX_WFLAGS([all extra sign-compare undef pointer-arith volatile-register-var])
AC_LANG_POP([C++])
Sam Hocevar's avatar
   
Sam Hocevar committed
882

883
884
885
886
887
dnl
dnl  Debugging mode
dnl
AC_ARG_ENABLE(debug,
  [AS_HELP_STRING([--enable-debug],
888
    [build with run-time assertions (default disabled)])],,
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
  [enable_debug="no"])
AH_TEMPLATE(NDEBUG,
            [Define to 1 if debug code should NOT be compiled])
AS_IF([test "${enable_debug}" != "no"], [
  AC_CHECK_HEADERS([valgrind/valgrind.h])
], [
  AC_DEFINE(NDEBUG)
])

dnl
dnl  Profiling
dnl
AC_ARG_ENABLE(gprof,
  [AS_HELP_STRING([--enable-gprof],[profile with gprof (default disabled)])],,
  [enable_gprof="no"])
AS_IF([test "${enable_gprof}" != "no"], [
  CFLAGS="${CFLAGS} -pg"
  CXXFLAGS="${CXXFLAGS} -pg"
  OBJCFLAGS="${OBJCFLAGS} -pg"
  LDFLAGS="${LDFLAGS} -pg"
])

AC_ARG_ENABLE(cprof,
  [AS_HELP_STRING([--enable-cprof],[profile with cprof (default disabled)])],,
  [enable_cprof="no"])
AS_IF([test "${enable_gprof}" != "no"], [
  CFLAGS="${CFLAGS} -finstrument-functions"
  CXXFLAGS="${CXXFLAGS} -finstrument-functions"
  OBJCFLAGS="${OBJCFLAGS} -finstrument-functions"
  LDFLAGS="${LDFLAGS} -finstrument-functions"
])

dnl
dnl  Test coverage
dnl
AC_ARG_ENABLE(coverage,
  [AS_HELP_STRING([--enable-coverage],
    [build for test coverage (default disabled)])],,
  [enable_coverage="no"])
AS_IF([test "${enable_coverage}" != "no"], [
  CFLAGS="-fprofile-arcs -ftest-coverage ${CFLAGS}"
  CXXFLAGS="-fprofile-arcs -ftest-coverage ${CXXFLAGS}"
  LDFLAGS="-lgcov ${LDFLAGS}"
])

934
AS_IF([test "${SYS}" != "mingw32" -a "${SYS}" != "os2"], [
935
936
937
938
  VLC_SAVE_FLAGS
  CFLAGS="${CFLAGS} -fvisibility=hidden"
  CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
  OBJCFLAGS="${OBJCFLAGS} -fvisibility=hidden"
939
940
941
942
943
944
945
946
  AC_CACHE_CHECK([if $CC accepts -fvisibility=hidden],
                 [ac_cv_c_visibility_hidden], [
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
      ac_cv_c_visibility_hidden=yes
    ], [
      ac_cv_c_visibility_hidden=no
    ])
  ])
947
  AS_IF([test "${ac_cv_c_visibility_hidden}" = "no"], [VLC_RESTORE_FLAGS])
948
949
])

950

951
952
953
954
955
956
957
958
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
  [AS_HELP_STRING([--disable-optimizations],
    [disable compiler optimizations (default enabled)])],,
  [enable_optimizations="yes"])

Sam Hocevar's avatar
   
Sam Hocevar committed
959
dnl Check for various optimization flags
960
961
AS_IF([test "${enable_optimizations}" != "no"], [

962
  dnl -O3 only in production builds
Rémi Denis-Courmont's avatar
Rémi Denis-Courmont committed
963
  AS_IF([test "${enable_debug}" = "no"], [
964
    VLC_SAVE_FLAGS
965
966
967
968
    CFLAGS="${CFLAGS} -O3"
    CXXFLAGS="${CXXFLAGS} -O3"
    OBJCFLAGS="${OBJCFLAGS} -O3"
    AC_CACHE_CHECK([if $CC accepts -O3],  [ac_cv_c_o3], [
969
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
970
        ac_cv_c_o3=yes
971
      ], [
972
        ac_cv_c_o3=no
973
974
      ])
    ])
975
    AS_IF([test "${ac_cv_c_o3}" = "no"], [VLC_RESTORE_FLAGS])
976
  ])
977

978
  dnl Check for -ffast-math
979
980
981
982
  VLC_SAVE_FLAGS
  CFLAGS="${CFLAGS} -ffast-math"
  CXXFLAGS="${CXXFLAGS} -ffast-math"
  OBJCFLAGS="${OBJCFLAGS} -ffast-math"
983
984
985
986
987
988
989
  AC_CACHE_CHECK([if $CC accepts -ffast-math], [ac_cv_c_fast_math], [
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
      ac_cv_c_fast_math=yes
    ], [
      ac_cv_c_fast_math=no
    ])
  ])
990
  AS_IF([test "${ac_cv_c_fast_math}" = "no"], [VLC_RESTORE_FLAGS])
991
992
  AH_BOTTOM([
#ifndef __FAST_MATH__
993
994
995
996
997
998
999
# ifndef _MSC_VER
#  pragma STDC FENV_ACCESS OFF
#  pragma STDC FP_CONTRACT ON
# else
#  pragma fenv_access(off)
#  pragma fp_contract(on)
# endif
1000
#endif
For faster browsing, not all history is shown. View entire blame