Blame configure.ac

Packit 2a59cf
# wavpack 5.1.0 configure.ac
Packit 2a59cf
Packit 2a59cf
AC_INIT(wavpack, 5.1.0, bryant@wavpack.com)
Packit 2a59cf
AC_CONFIG_SRCDIR([src/pack.c])
Packit 2a59cf
AM_INIT_AUTOMAKE
Packit 2a59cf
AM_MAINTAINER_MODE
Packit 2a59cf
Packit 2a59cf
LIBWAVPACK_MAJOR=5
Packit 2a59cf
LIBWAVPACK_MINOR=1
Packit 2a59cf
LIBWAVPACK_MICRO=0
Packit 2a59cf
LIBWAVPACK_VERSION_STRING=$LIBWAVPACK_MAJOR.$LIBWAVPACK_MINOR.$LIBWAVPACK_MICRO
Packit 2a59cf
Packit 2a59cf
AC_DEFINE_UNQUOTED(LIBWAVPACK_MAJOR, $LIBWAVPACK_MAJOR, [libwavpack major version])
Packit 2a59cf
AC_DEFINE_UNQUOTED(LIBWAVPACK_MINOR, $LIBWAVPACK_MINOR, [libwavpack minor version])
Packit 2a59cf
AC_DEFINE_UNQUOTED(LIBWAVPACK_MICRO, $LIBWAVPACK_MICRO, [libwavpack micro version])
Packit 2a59cf
AC_DEFINE_UNQUOTED(LIBWAVPACK_VERSION_STRING, "$LIBWAVPACK_VERSION_STRING", [libwavpack version string])
Packit 2a59cf
Packit 2a59cf
# set libtool versioning
Packit 2a59cf
# +1 :  0 : +1   == new interface that does not break old one.
Packit 2a59cf
# +1 :  0 :  0   == changed/removed an interface. Breaks old apps.
Packit 2a59cf
#  ? : +1 :  ?   == internal changes that doesn't break anything.
Packit 2a59cf
# CURRENT : REVISION : AGE
Packit 2a59cf
LT_CURRENT=3
Packit 2a59cf
LT_REVISION=0
Packit 2a59cf
LT_AGE=2
Packit 2a59cf
Packit 2a59cf
AC_SUBST(LT_CURRENT)
Packit 2a59cf
AC_SUBST(LT_REVISION)
Packit 2a59cf
AC_SUBST(LT_AGE)
Packit 2a59cf
Packit 2a59cf
# Check for os version
Packit 2a59cf
VERSION_OS=$(uname -s)
Packit 2a59cf
AC_DEFINE_UNQUOTED(VERSION_OS, "$VERSION_OS", [os version])
Packit 2a59cf
Packit 2a59cf
# Check host so we can infer target CPU (and assembly optimizations)
Packit 2a59cf
AC_CANONICAL_HOST
Packit 2a59cf
Packit 2a59cf
# Check for processor characteristics
Packit 2a59cf
AC_C_BIGENDIAN(AC_DEFINE([HIGHFIRST], [1], [big-endian machine]))
Packit 2a59cf
Packit 2a59cf
# Checks for programs.
Packit 2a59cf
AC_PROG_CC
Packit 2a59cf
AC_LIBTOOL_WIN32_DLL
Packit 2a59cf
AC_PROG_LIBTOOL
Packit 2a59cf
AC_PROG_INSTALL
Packit 2a59cf
AM_PROG_CC_C_O
Packit 2a59cf
AM_PROG_AS
Packit 2a59cf
Packit 2a59cf
AC_HEADER_STDC
Packit 2a59cf
Packit 2a59cf
# Checks for libraries.
Packit 2a59cf
AC_CHECK_LIBM
Packit 2a59cf
AC_SUBST(LIBM)
Packit 2a59cf
Packit 2a59cf
# Check for large files support
Packit 2a59cf
AC_SYS_LARGEFILE
Packit 2a59cf
AC_FUNC_FSEEKO
Packit 2a59cf
Packit 2a59cf
# Check if cross-compiling on mingw
Packit 2a59cf
AC_MINGW32
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([apps],
Packit 2a59cf
    AS_HELP_STRING([--disable-apps], [build only libwavpack (removes ICONV dependency)]))
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_APPS], [test "x$enable_apps" != "xno"])
Packit 2a59cf
Packit 2a59cf
if test "x$enable_apps" != "xno" ; then
Packit 2a59cf
if test "x$MINGW32" != "xyes" ; then
Packit 2a59cf
# Check for iconv
Packit 2a59cf
AC_ARG_WITH(iconv, [[  --with-iconv[=DIR]      add ICONV support [yes]]])
Packit 2a59cf
if test "$with_iconv" = "no" ; then
Packit 2a59cf
    AC_MSG_ERROR([[iconv is required for apps, use --disable-apps to build only libwavpack]])
Packit 2a59cf
else
Packit 2a59cf
    if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
Packit 2a59cf
       ICONV_CFLAGS="${CPPFLAGS} -I$with_iconv/include"
Packit 2a59cf
       ICONV_LIBS="-L$with_iconv/lib"
Packit 2a59cf
    fi
Packit 2a59cf
Packit 2a59cf
    AC_CHECK_HEADER(iconv.h,
Packit 2a59cf
        AC_MSG_CHECKING(for iconv)
Packit 2a59cf
        AC_TRY_LINK([#include <stdlib.h>
Packit 2a59cf
#include <iconv.h>],[
Packit 2a59cf
iconv_t cd = iconv_open ("","");
Packit 2a59cf
iconv (cd, NULL, NULL, NULL, NULL);],[
Packit 2a59cf
            AC_MSG_RESULT(yes)
Packit 2a59cf
            WITH_ICONV=1],[
Packit 2a59cf
            AC_MSG_RESULT(no)
Packit 2a59cf
            AC_MSG_CHECKING(for iconv in -liconv)
Packit 2a59cf
Packit 2a59cf
            old_cflags="${CFLAGS}"
Packit 2a59cf
            old_ldflags="${LDFLAGS}"
Packit 2a59cf
            old_libs="${LIBS}"
Packit 2a59cf
            CFLAGS="${ICONV_CFLAGS} ${CFLAGS}"
Packit 2a59cf
            LDFLAGS="${LDFLAGS} ${ICONV_LIBS}"
Packit 2a59cf
            LIBS="${LIBS} -liconv"
Packit 2a59cf
Packit 2a59cf
            AC_TRY_LINK([#include <stdlib.h>
Packit 2a59cf
#include <iconv.h>],[
Packit 2a59cf
iconv_t cd = iconv_open ("","");
Packit 2a59cf
iconv (cd, NULL, NULL, NULL, NULL);],[
Packit 2a59cf
                AC_MSG_RESULT(yes)
Packit 2a59cf
                WITH_ICONV=1
Packit 2a59cf
                ICONV_LIBS="${ICONV_LIBS} -liconv"
Packit 2a59cf
                ICONV="-liconv"],[
Packit 2a59cf
                AC_MSG_ERROR([[Can't find iconv libraries.]])])
Packit 2a59cf
            CFLAGS=$old_cflags
Packit 2a59cf
            LDFLAGS=$old_ldflags
Packit 2a59cf
            LIBS=$old_libs
Packit 2a59cf
            ]),
Packit 2a59cf
            AC_MSG_ERROR([[Can't find iconv headers.]]))
Packit 2a59cf
fi
Packit 2a59cf
AC_SUBST(ICONV_LIBS)
Packit 2a59cf
AC_SUBST(ICONV)
Packit 2a59cf
fi
Packit 2a59cf
fi
Packit 2a59cf
Packit 2a59cf
AC_MSG_CHECKING([if we are building for a Windows host])
Packit 2a59cf
AS_CASE([$host_os],
Packit 2a59cf
    [*mingw*], [windows_host=yes],
Packit 2a59cf
    [windows_host=no])
Packit 2a59cf
AC_MSG_RESULT([$windows_host])
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([WINDOWS_HOST], [test "x$windows_host" = "xyes"])
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([legacy],
Packit 2a59cf
    AS_HELP_STRING([--enable-legacy], [decode legacy (< 4.0) WavPack files]))
Packit 2a59cf
Packit 2a59cf
AS_IF([test "x$enable_legacy" = "xyes"],
Packit 2a59cf
    [AC_DEFINE([ENABLE_LEGACY])])
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_LEGACY], [test "x$enable_legacy" == "xyes"])
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([dsd],
Packit 2a59cf
    AS_HELP_STRING([--disable-dsd], [disable support for WavPack DSD files]))
Packit 2a59cf
Packit 2a59cf
AS_IF([test "x$enable_dsd" != "xno"],
Packit 2a59cf
    [AC_DEFINE([ENABLE_DSD])])
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_DSD], [test "x$enable_dsd" != "xno"])
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([rpath],
Packit 2a59cf
    AS_HELP_STRING([--enable-rpath], [hardcode library path in executables]))
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" == "xyes"])
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([tests],
Packit 2a59cf
    AS_HELP_STRING([--enable-tests], [build libwavpack test program (requires Pthreads)]))
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" == "xyes"])
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE([asm],
Packit 2a59cf
    [AS_HELP_STRING([--disable-asm], [disable assembly optimizations])],,
Packit 2a59cf
    [enable_asm=check])
Packit 2a59cf
Packit 2a59cf
asm_selected=none
Packit 2a59cf
Packit 2a59cf
AS_IF([test "x$enable_asm" != "xno"],[
Packit 2a59cf
  AC_MSG_CHECKING(if assembly optimizations are available)
Packit 2a59cf
  AS_CASE([$host_cpu],
Packit 2a59cf
    [i386|i486|i586|i686|i786], [AC_DEFINE([OPT_ASM_X86]) asm_selected=x86],
Packit 2a59cf
    [x86_64], [AC_DEFINE([OPT_ASM_X64]) asm_selected=x64],
Packit 2a59cf
    [arm*], [AC_DEFINE([OPT_ASM_ARM]) asm_selected=arm],
Packit 2a59cf
    [AS_IF([test "x$enable_asm" = "xyes"],[AC_MSG_ERROR(no assembly code for CPU $host_cpu)])]
Packit 2a59cf
  )
Packit 2a59cf
  AC_MSG_RESULT($asm_selected)
Packit 2a59cf
])
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL([ENABLE_X86ASM], [test "x$asm_selected" = "xx86"])
Packit 2a59cf
AM_CONDITIONAL([ENABLE_X64ASM], [test "x$asm_selected" = "xx64"])
Packit 2a59cf
AM_CONDITIONAL([ENABLE_ARMASM], [test "x$asm_selected" = "xarm"])
Packit 2a59cf
Packit 2a59cf
dnl Check for __builtin_clz
Packit 2a59cf
AC_CACHE_CHECK([for __builtin_clz], ac_cv_have___builtin_clz,
Packit 2a59cf
               AC_LINK_IFELSE([AC_LANG_PROGRAM(,[[return __builtin_clz(1)]])],
Packit 2a59cf
               [ac_cv_have___builtin_clz="yes"], [ac_cv_have___builtin_clz="no"]))
Packit 2a59cf
if test "$ac_cv_have___builtin_clz" = "yes"
Packit 2a59cf
then
Packit 2a59cf
    AC_DEFINE([HAVE___BUILTIN_CLZ])
Packit 2a59cf
fi
Packit 2a59cf
Packit 2a59cf
dnl Check for __builtin_ctz
Packit 2a59cf
AC_CACHE_CHECK([for __builtin_ctz], ac_cv_have___builtin_ctz,
Packit 2a59cf
               AC_LINK_IFELSE([AC_LANG_PROGRAM(,[[return __builtin_ctz(1)]])],
Packit 2a59cf
               [ac_cv_have___builtin_ctz="yes"], [ac_cv_have___builtin_ctz="no"]))
Packit 2a59cf
if test "$ac_cv_have___builtin_ctz" = "yes"
Packit 2a59cf
then
Packit 2a59cf
    AC_DEFINE([HAVE___BUILTIN_CTZ])
Packit 2a59cf
fi
Packit 2a59cf
Packit 2a59cf
AC_ARG_ENABLE(man,
Packit 2a59cf
              [AC_HELP_STRING([--enable-man],
Packit 2a59cf
                              [regenerate man pages from Docbook [default=no]])],enable_man=yes,
Packit 2a59cf
              enable_man=no)
Packit 2a59cf
Packit 2a59cf
if test "${enable_man}" != no; then
Packit 2a59cf
  dnl
Packit 2a59cf
  dnl Check for xsltproc
Packit 2a59cf
  dnl
Packit 2a59cf
  AC_PATH_PROG([XSLTPROC], [xsltproc])
Packit 2a59cf
  if test -z "$XSLTPROC"; then
Packit 2a59cf
    enable_man=no
Packit 2a59cf
  fi
Packit 2a59cf
Packit 2a59cf
  dnl check for DocBook DTD and stylesheets in the local catalog.
Packit 2a59cf
  JH_CHECK_XML_CATALOG([-//OASIS//DTD DocBook XML V4.1.2//EN],
Packit 2a59cf
     [DocBook XML DTD V4.1.2],,enable_man=no)
Packit 2a59cf
  JH_CHECK_XML_CATALOG([http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl],
Packit 2a59cf
     [DocBook XSL Stylesheets],,enable_man=no)
Packit 2a59cf
fi
Packit 2a59cf
Packit 2a59cf
AM_CONDITIONAL(ENABLE_MAN, test x$enable_man != xno)
Packit 2a59cf
Packit 2a59cf
AC_CONFIG_FILES(
Packit 2a59cf
Makefile
Packit 2a59cf
wavpack.pc
Packit 2a59cf
src/Makefile
Packit 2a59cf
include/Makefile
Packit 2a59cf
cli/Makefile
Packit 2a59cf
man/Makefile)
Packit 2a59cf
AC_OUTPUT