Skip to content
Snippets Groups Projects
configure.ac 134 KiB
Newer Older
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Autoconf settings for vlc
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
AC_COPYRIGHT([Copyright 1999-2022 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'`"
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
COPYRIGHT_YEARS="1996-2022"
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([noyywrap])
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
AC_LANG_PUSH([C++])
AX_CXX_COMPILE_STDCXX_14([noext], [mandatory])
AX_CXX_TYPEOF
AC_LANG_POP([C++])
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])
dnl Some Qt version are generating tons of warning that cannot be
dnl avoided so mute them...
AX_CHECK_COMPILE_FLAG([-Wno-deprecated-copy], [
  VLC_ADD_CXXFLAGS([qt],[-Wno-deprecated-copy])
])


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"
    CXXFLAGS="${CXXFLAGS} -pthread"
  bsdi*)
    CXXFLAGS="${CXXFLAGS} -pthread"
  freebsd*)
    SYS=freebsd
    CXXFLAGS="${CXXFLAGS} -pthread"
    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 Work around an Xcode 11 bug, fixed in Xcode 11.3.1
    AX_APPEND_FLAG([-fno-stack-check], [CFLAGS])
    AX_APPEND_FLAG([-fno-stack-check], [CXXFLAGS])
    AX_APPEND_FLAG([-fno-stack-check], [OBJCFLAGS])
    case "${host_cpu}" in
      i?86)
        AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
        AX_APPEND_FLAG([-DPREFIX], [X86ASMDEFS])
        ac_cv_c_attribute_packed="no"
    AX_APPEND_FLAG([-D_INTL_REDIRECT_MACROS], [CPPFLAGS])
    AX_APPEND_FLAG([-stdlib=libc++], [CXXFLAGS])
    AX_APPEND_FLAG([-Werror=partial-availability], [OBJCFLAGS])
    AX_APPEND_FLAG([-Wl,-headerpad_max_install_names], [LDFLAGS])

    VLC_ADD_LIBS([libvlccore],[-Wl,-framework,CoreFoundation])
    dnl This is not supported when bitcode is enabled. In that case, we need
    dnl to disable the static bank loader.
    AC_MSG_CHECKING([if -Wl,-U is allowed])
    VLC_SAVE_FLAGS
    AX_APPEND_FLAG([-Wl,-U,_my_array],[LDFLAGS])
__attribute__((visibility("default"))) extern int my_array[];
int foo() { return my_array[0]; }
Loading
Loading full blame...