Skip to content
Snippets Groups Projects
configure.ac 135 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 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_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])

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)
        X86ASMFLAGS="-f macho32"
        X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
      ;;
      ppc64*)
        ARCH_flag="-arch ppc64"
      ;;
      ppc*)
        ARCH_flag="-arch ppc"
      ;;
        X86ASMFLAGS="-f macho64"
        X86ASMDEFS="${X86ASMDEFS} -DPREFIX"
        ac_cv_c_attribute_packed="no"
    CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag}"
    CXX="${CXX} -stdlib=libc++ -std=c++11"
    CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
    CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
    OBJCFLAGS="${OBJCFLAGS} -D_INTL_REDIRECT_MACROS -std=gnu11 ${ARCH_flag} -Werror=partial-availability"
    LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
    VLC_ADD_LIBS([libvlc vlc],[-Wl,-undefined,dynamic_lookup,-framework,AppKit])
    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation,-framework,CoreServices])
    AC_EGREP_CPP(yes,
            [#import <TargetConditionals.h>
             #if TARGET_OS_IPHONE
             yes
             #endif],
             [HAVE_IOS="1"],
             [HAVE_OSX="1"])

    AC_EGREP_CPP(yes,
            [#import <TargetConditionals.h>
             #if TARGET_OS_TV
             yes
             #endif],
             [HAVE_TVOS="1"
             HAVE_IOS="0"
             HAVE_OSX="0"
             ],)

Loading
Loading full blame...