Skip to content
Snippets Groups Projects
configure.ac 136 KiB
Newer Older
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Autoconf settings for vlc
AC_COPYRIGHT([Copyright 1999-2020 VLC authors and VideoLAN])
AC_INIT([vlc], [4.0.0-dev])
VERSION_MINOR=0
VERSION_REVISION=0
VERSION_EXTRA=0
AC_SUBST([PKGDIR])
CONFIGURE_LINE="`echo "$0 $ac_configure_args" | sed -e 's/\\\/\\\\\\\/g'`"
COPYRIGHT_YEARS="1996-2020"
AC_CONFIG_SRCDIR([src/libvlc.c])
AC_CONFIG_AUX_DIR([autotools])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_LIBOBJ_DIR([compat])
AC_CANONICAL_BUILD
AC_PRESERVE_HELP_ORDER
AM_INIT_AUTOMAKE([tar-ustar color-tests foreign])
AC_CONFIG_HEADERS([config.h])
AM_SILENT_RULES([yes])
Samuel Hocevar's avatar
Samuel Hocevar committed
dnl
dnl Check for tools
Samuel Hocevar's avatar
Samuel Hocevar committed
dnl
AC_PROG_CC
AC_USE_SYSTEM_EXTENSIONS
AH_VERBATIM([FORTIFY_SOURCE],
  [/* Enable compile-time and run-time bounds-checking, and some warnings,
   without upsetting glibc 2.15+ or toolchains predefining _FORTIFY_SOURCE */
#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
# define _FORTIFY_SOURCE 2
#endif])
AC_DEFINE([_FILE_OFFSET_BITS], 64, [Define to 64 for large files support.])
AC_DEFINE([__LIBVLC__],, [Define within the LibVLC source code tree.])
AC_DEFINE([WIN32_LEAN_AND_MEAN],, [Define to limit the scope of <windows.h>.])
AC_PROG_OBJC
AC_PROG_EGREP
AC_PROG_LEX
AC_PROG_YACC
AC_ARG_VAR([DESKTOP_FILE_VALIDATE], [Validator for desktop entry files])
AC_CHECK_PROGS([DESKTOP_FILE_VALIDATE], [${DESKTOP_FILE_VALIDATE} desktop-file-validate], :)
AC_ARG_VAR([BUILDCC], [Build system C11 or C99 compiler command])
AC_CHECK_PROGS([BUILDCC], [c11-gcc c11 c99-gcc c99], [false])
AS_IF([test "$BUILDCC" = "false"], [
  AC_MSG_ERROR([Cannot find native C99 compiler: please define BUILDCC.])
])
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE
AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
dnl Check the compiler supports atomics in C
AC_MSG_CHECKING([C atomics])
VLC_SAVE_FLAGS
ATOMIC_LIB=""
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdatomic.h>],[
 atomic_uintmax_t test;
 atomic_init(&test, 0);
 atomic_fetch_add_explicit(&test, 2u, memory_order_relaxed);
])], [AC_MSG_RESULT([built-in])], [
  LDFLAGS="$LDFLAGS -latomic"
  AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <stdatomic.h>],[
atomic_uintmax_t test;
atomic_init(&test, 0);
atomic_fetch_add_explicit(&test, 2u, memory_order_relaxed);
])],[
    AC_MSG_RESULT([using -latomic])
    ATOMIC_LIB="-latomic"
  ],[
  AC_MSG_ERROR([VLC requires atomics support])
  ])
])
VLC_RESTORE_FLAGS
AC_SUBST([ATOMIC_LIB])

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

dnl Allow binary package maintainer to pass a custom string to avoid
AC_ARG_WITH([binary-version],
    AS_HELP_STRING([--with-binary-version=STRING],
         [To avoid plugins cache problem between binary version]),[],[])
AS_IF([test -n "${with_binary_version}"],[
    AC_DEFINE_UNQUOTED([DISTRO_VERSION],["${with_binary_version}"],
         [Binary specific version])
])
dnl Prevent clang from accepting unknown flags with a mere warning
AX_CHECK_COMPILE_FLAG([-Werror=invalid-command-line-argument], [
  AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [CFLAGS])
  AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [CXXFLAGS])
  AX_APPEND_FLAG([-Werror=invalid-command-line-argument], [OBJCFLAGS])
])
AX_CHECK_COMPILE_FLAG([-Werror=unknown-warning-option], [
  AX_APPEND_FLAG([-Werror=unknown-warning-option], [CFLAGS])
  AX_APPEND_FLAG([-Werror=unknown-warning-option], [CXXFLAGS])
  AX_APPEND_FLAG([-Werror=unknown-warning-option], [OBJCFLAGS])
gbazin's avatar
 
gbazin committed
dnl
dnl  Check the operating system
dnl
HAVE_TVOS="0"
dnl  Set x86 asm flags and defines
X86ASMFLAGS=""
case "${host_cpu}" in
    i?86)
    X86ASMFLAGS="-f elf32"
    X86ASMDEFS="-DARCH_X86_32=1 -DARCH_X86_64=0"
        ;;
    x86_64)
    X86ASMFLAGS="-f elf64"
    X86ASMDEFS="-DARCH_X86_32=0 -DARCH_X86_64=1"
        ;;
esac

case "${host_os}" in
  linux*)
    CFLAGS="${CFLAGS} -pthread"
  bsdi*)
  freebsd*)
    SYS=freebsd
    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
    dnl Workaround possible Xcode 11 bug
    CFLAGS="${CFLAGS} -fno-stack-check"
    CXXFLAGS="${CXXFLAGS} -fno-stack-check"
    OBJCFLAGS="${OBJCFLAGS} -fno-stack-check"
    case "${host_cpu}" in
      i?86)
        AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
        AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
        ac_cv_c_attribute_packed="no"
    CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
Loading
Loading full blame...