2015-12-03 21:40:19 +00:00
|
|
|
|
2015-12-04 10:36:51 +00:00
|
|
|
AC_INIT([kvazaar], m4_esyscmd([printf $(awk '/#define KVZ_VERSION/ { print $3 }' src/global.h)]))
|
2015-12-03 21:40:19 +00:00
|
|
|
AC_CONFIG_SRCDIR([src/encmain.c])
|
2015-12-04 10:36:51 +00:00
|
|
|
|
2016-01-15 17:29:22 +00:00
|
|
|
# Library version number, modify:
|
|
|
|
# - When modifying kvazaar.h.
|
|
|
|
# - Modify either major or minor.
|
|
|
|
# - When making a new release.
|
|
|
|
# - If major or minor did not change since last release.
|
|
|
|
# - Check git history to see if someone forgot to increment major or minor.
|
|
|
|
# - Increment release.
|
|
|
|
#
|
|
|
|
# major:
|
|
|
|
# - Increment when ABI changes, meaning lib users need to be recompiled.
|
|
|
|
# - ABI changes when anything existing gets modified, including sizes of structs.
|
|
|
|
# minor:
|
2016-01-21 13:08:34 +00:00
|
|
|
# - Increment when only API changes in a backwards compatible way without breaking ABI.
|
|
|
|
# - We count adding parameters to bottom of kvz_config as ABI compatible, because user
|
|
|
|
# shouldn't copy that struct or care about it's size.
|
2016-01-15 17:29:22 +00:00
|
|
|
# - If not sure, increment major instead.
|
|
|
|
# release:
|
|
|
|
# - Increment when making new releases and major or minor was not changed since last release.
|
|
|
|
#
|
|
|
|
# Here is a somewhat sane guide to lib versioning: http://apr.apache.org/versioning.html
|
2016-01-15 17:37:40 +00:00
|
|
|
ver_major=3
|
2016-04-21 12:11:35 +00:00
|
|
|
ver_minor=6
|
2015-12-19 07:24:35 +00:00
|
|
|
ver_release=0
|
|
|
|
|
2016-05-31 08:56:34 +00:00
|
|
|
# Prevents configure from adding a lot of defines to the CFLAGS
|
2015-12-03 21:40:19 +00:00
|
|
|
AC_CONFIG_HEADERS([config.h])
|
2015-12-04 10:36:51 +00:00
|
|
|
|
2015-12-03 21:40:19 +00:00
|
|
|
AC_CONFIG_MACRO_DIR([m4])
|
|
|
|
AC_CONFIG_AUX_DIR([build-aux])
|
|
|
|
|
|
|
|
AM_INIT_AUTOMAKE([-Wall -Werror dist-bzip2 dist-xz foreign subdir-objects])
|
|
|
|
AM_SILENT_RULES([yes])
|
|
|
|
|
|
|
|
AC_PROG_CC
|
2015-12-21 15:33:52 +00:00
|
|
|
AC_PROG_CC_C99
|
2015-12-03 21:40:19 +00:00
|
|
|
AM_PROG_AR
|
|
|
|
|
2016-01-22 13:15:02 +00:00
|
|
|
# Get fread that can read more than 2GB on 32 bit systems.
|
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
2015-12-03 21:40:19 +00:00
|
|
|
LT_INIT([win32-dll])
|
|
|
|
|
2016-02-16 09:09:47 +00:00
|
|
|
AX_CHECK_COMPILE_FLAG([-mavx2], [flag_avx2="true"])
|
|
|
|
AX_CHECK_COMPILE_FLAG([-msse4.1], [flag_sse4_1="true"])
|
|
|
|
AX_CHECK_COMPILE_FLAG([-msse2], [flag_sse2="true"])
|
2016-01-20 16:19:05 +00:00
|
|
|
|
|
|
|
AM_CONDITIONAL([HAVE_AVX2], [test x"$flag_avx2" = x"true"])
|
|
|
|
AM_CONDITIONAL([HAVE_SSE4_1], [test x"$flag_sse4_1" = x"true"])
|
|
|
|
AM_CONDITIONAL([HAVE_SSE2], [test x"$flag_sse2" = x"true"])
|
|
|
|
|
2016-05-31 08:56:34 +00:00
|
|
|
KVZ_CFLAGS="-Wall -Wtype-limits -Wvla -I$srcdir/src -ftree-vectorize -fvisibility=hidden"
|
|
|
|
CFLAGS="$KVZ_CFLAGS $CFLAGS"
|
2015-12-21 15:33:52 +00:00
|
|
|
CPPFLAGS="-DKVZ_DLL_EXPORTS $CPPFLAGS"
|
2015-12-03 21:40:19 +00:00
|
|
|
|
2015-12-21 15:58:33 +00:00
|
|
|
AC_SEARCH_LIBS([log], [m c], [], [exit 1])
|
|
|
|
AC_SEARCH_LIBS([pow], [m c], [], [exit 1])
|
|
|
|
AC_SEARCH_LIBS([sqrt], [m c], [], [exit 1])
|
2015-12-03 21:40:19 +00:00
|
|
|
|
2016-05-31 08:56:34 +00:00
|
|
|
# This does workarounds for pthreads on various compilers.
|
|
|
|
AX_PTHREAD
|
|
|
|
CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
|
|
|
|
LIBS="$PTHREAD_LIBS $LIBS"
|
|
|
|
CC="$PTHREAD_CC"
|
2015-12-03 21:40:19 +00:00
|
|
|
|
|
|
|
# --disable-werror
|
|
|
|
AC_ARG_ENABLE([werror], [AS_HELP_STRING([--disable-werror], [don't treat warnings as errors [no]])],
|
|
|
|
[], [CFLAGS="-Werror $CFLAGS"]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# check for getopt
|
|
|
|
AC_CHECK_HEADER([getopt.h], [], [CFLAGS="$CFLAGS -I$srcdir/src/extras"])
|
|
|
|
|
|
|
|
|
|
|
|
# host and cpu specific settings
|
|
|
|
AS_CASE([$host_cpu],
|
|
|
|
[i?86], [BITS="32" ASFLAGS="$ASFLAGS -DARCH_X86_64=0" X86="true"],
|
|
|
|
[x86_64], [BITS="64" ASFLAGS="$ASFLAGS -DARCH_X86_64=1 -m amd64" X86="true"],
|
2015-12-21 15:33:52 +00:00
|
|
|
[powerpc*], [PPC="true"]
|
2015-12-03 21:40:19 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
AS_CASE([$host_os],
|
|
|
|
[darwin*], [
|
|
|
|
ASFLAGS="$ASFLAGS -f macho$BITS -DPREFIX"
|
|
|
|
],
|
|
|
|
[cygwin*|msys*|mingw*], [
|
|
|
|
CFLAGS="$CFLAGS -D__USE_MINGW_ANSI_STDIO=1"
|
|
|
|
AS_IF(
|
|
|
|
[test "x$BITS" = "x32"], [
|
|
|
|
ASFLAGS="$ASFLAGS -fwin32 -DPREFIX -DHAVE_ALIGNED_STACK=0"
|
|
|
|
], [
|
|
|
|
ASFLAGS="$ASFLAGS -fwin64 -DHAVE_ALIGNED_STACK=1"
|
|
|
|
]
|
|
|
|
)
|
2015-12-21 15:33:52 +00:00
|
|
|
],
|
|
|
|
[linux*|*kfreebsd*], [
|
|
|
|
ASFLAGS="$ASFLAGS -f elf$BITS"
|
|
|
|
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
|
|
|
|
LIBS="$LIBS -lrt"
|
2015-12-03 21:40:19 +00:00
|
|
|
], [
|
|
|
|
ASFLAGS="$ASFLAGS -f elf$BITS"
|
2015-12-21 15:33:52 +00:00
|
|
|
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
|
2015-12-03 21:40:19 +00:00
|
|
|
]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# YASM checks
|
|
|
|
AS_IF([test "x$X86" = "xtrue"], [
|
|
|
|
AC_CHECK_TOOL([YASM], [yasm], [no])
|
|
|
|
])
|
|
|
|
AS_IF([test "x$YASM" != "xno"], [have_yasm="yes"])
|
|
|
|
|
|
|
|
AC_ARG_ENABLE([asm], [AS_HELP_STRING([--disable-asm], [disable assembly [no]])],
|
|
|
|
[], [enable_asm="yes"]
|
|
|
|
)
|
|
|
|
AS_IF([test "x$enable_asm" != "xno" -a $have_yasm != "yes"],
|
|
|
|
[enable_asm="no"]
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
AM_CONDITIONAL([HAVE_X86], [test "x$X86" = "xtrue"])
|
|
|
|
AM_CONDITIONAL([HAVE_PPC], [test "x$PPC" = "xtrue"])
|
|
|
|
AM_CONDITIONAL([HAVE_ARM], [test "x$ARM" = "xtrue"])
|
|
|
|
AM_CONDITIONAL([ENABLE_ASM], [test "x$enable_asm" = "xyes" -a "x$have_yasm" = "xyes" ])
|
|
|
|
|
|
|
|
AC_ARG_VAR([ASFLAGS], [ASFLAGS to use for assembler])
|
|
|
|
AC_SUBST([ASFLAGS])
|
|
|
|
|
2015-12-04 10:36:51 +00:00
|
|
|
KVZ_API_VERSION="$ver_major:$ver_minor:$ver_release"
|
2015-12-03 21:40:19 +00:00
|
|
|
AC_SUBST([KVZ_API_VERSION])
|
|
|
|
|
|
|
|
|
2015-12-19 07:24:35 +00:00
|
|
|
AC_CONFIG_FILES([Makefile
|
|
|
|
src/Makefile
|
|
|
|
src/kvazaar.pc
|
|
|
|
tests/Makefile])
|
2015-12-03 21:40:19 +00:00
|
|
|
AC_OUTPUT
|
|
|
|
|