evacuated-infinity-plugin/configure.ac

190 lines
5.1 KiB
Plaintext

## Process this file with autoconf to produce a configure script.
AC_PREREQ(2.65)
AC_INIT([Infinity plugin],[0.9.0-dev],[https://github.com/dprotti/infinity-plugin/issues],[infinity-plugin],[https://dprotti.github.io/infinity-plugin])
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE([1.15 -Wno-portability no-dist-gzip dist-xz tar-ustar])
# Support silent build rules. Disable by either passing --disable-silent-rules
# to configure or passing V=1 to make
AM_SILENT_RULES([yes])
AC_CONFIG_HEADER(config.h)
AC_CONFIG_MACRO_DIR([m4])
AC_PREFIX_PROGRAM(audacious)
# Check for programs.
AC_PROG_CXX
AC_PROG_INSTALL
AC_DISABLE_STATIC
LT_INIT
AC_PATH_PROG(PKG_CONFIG, [pkg-config], [no])
if test x$PKG_CONFIG = xno ; then
AC_MSG_ERROR([*** pkg-config not found. See http://www.freedesktop.org/software/pkgconfig/])
fi
if $PKG_CONFIG --atleast-pkgconfig-version 0.14 ; then
:
else
AC_MSG_ERROR([*** pkg-config too old; version 0.14 or better required.])
fi
# Check dependencies
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28,,)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_CFLAGS)
PKG_CHECK_MODULES(SDL, sdl2 >= 2,,)
AC_SUBST(SDL_LIBS)
AC_SUBST(SDL_CFLAGS)
PKG_CHECK_MODULES(AUDACIOUS, audacious >= 3.5,,)
AC_SUBST(AUDACIOUS_LIBS)
AC_SUBST(AUDACIOUS_CFLAGS)
# Check for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([stdlib.h string.h unistd.h])
# Check for typedefs, structures, and compiler characteristics.
AC_C_VOLATILE
AC_C_CONST
AC_C_INLINE
AC_C_BIGENDIAN(AC_MSG_WARN([*** You have a big endian system, Infinity have not been tested on these systems]),,)
AC_CHECK_SIZEOF(long long)
if test x$ac_cv_sizeof_long_long = x8; then
:
else
AC_MSG_ERROR([
*** Infinity requires a 64 bit long long type. You might want to consider
*** using the GNU C compiler.
])
fi
AC_CHECK_SIZEOF([size_t])
AC_MSG_CHECKING([whether compiler is 32 or 64 bit])
if test x$ac_cv_sizeof_size_t = x8; then
AC_MSG_RESULT([64])
compiler_width=64
else
AC_MSG_RESULT([32])
compiler_width=32
fi
# Check for library functions.
AC_CHECK_FUNCS([floor sqrt])
# Arguments to specify certain features.
AC_ARG_ENABLE([mmx],
AS_HELP_STRING([--enable-mmx],[use MMX if available and if building with a 32 bit compiler @<:@default=enabled@:>@]),
[mmx=$enableval],
[mmx=yes])
AC_MSG_CHECKING([whether to enable MMX])
if test x$mmx = xyes; then
if test x$compiler_width = x32; then
AC_MSG_RESULT([yes])
AC_DEFINE([MMX_DETECTION], [1], [Activate MMX Extensions support])
else
AC_MSG_RESULT([no, was requested but feature is not supported with a 64bit compiler])
fi
else
AC_MSG_RESULT([no])
fi
AC_ARG_ENABLE([debug],
AS_HELP_STRING([--enable-debug],[turn on debug mode @<:@default=disabled@:>@]),
[debug=$enableval],
[debug=no])
AC_MSG_CHECKING([whether to activate debugging])
if test "$debug" = yes; then
AC_MSG_RESULT([yes])
AC_DEFINE([INFINITY_DEBUG], [1], [Activate Infinity debugging])
else
AC_MSG_RESULT([no])
fi
INF_CFLAGS_EXTRA=''
if test x"$GCC" = xyes; then
INF_CFLAGS_EXTRA="${INF_CFLAGS_EXTRA} -Wall -Wimplicit -Wunused -Wmissing-prototypes"
CXXFLAGS="${CXXFLAGS} -std=c++11"
fi
AC_ARG_ENABLE([vectorization],
AS_HELP_STRING([--enable-vectorization],[turn on vectorization optimizations (gcc >= 4 only) @<:@default=enabled@:>@]),
[vectorization=$enableval],
[vectorization=yes])
AC_MSG_CHECKING([whether to activate vectorization under gcc >= 4])
if test x"$vectorization" = xyes; then
AC_MSG_RESULT([yes])
if test x"$GCC" = xno; then
AC_MSG_ERROR([You are not using a gcc compiler])
else
# Some distros call gcc 4.x as gcc4
if test -z "$ac_cv_prog_CC" || test x"$CC" = xgcc4; then
our_gcc="$CC"
else
our_gcc="$ac_cv_prog_CC"
fi
case `$our_gcc --version | sed -e 's,\..*,.,' -e q` in
*2. | *3.)
AC_MSG_ERROR([You need gcc version 4 or newer to build with vectorization optimizations])
;;
*)
INF_CFLAGS_EXTRA="${INF_CFLAGS_EXTRA} -ftree-vectorize"
;;
esac
fi
else
AC_MSG_RESULT([no])
fi
AC_SUBST(INF_CFLAGS_EXTRA)
# Define EXPORT
if test "x$HAVE_MSWINDOWS" = "xyes" ; then
EXPORT="__declspec(dllexport)"
elif test "x$GCC" = "xyes" ; then
CFLAGS="$CFLAGS -fvisibility=hidden"
CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
EXPORT="__attribute__((visibility(\"default\")))"
else
AC_MSG_ERROR([Unknown syntax for EXPORT keyword])
fi
AC_DEFINE_UNQUOTED([EXPORT], [$EXPORT], [Compiler syntax for export of public symbols])
AC_CHECK_FILE("${prefix}/lib/x86_64-linux-gnu/libSDL.so",
# Ubuntu on AMD64 puts libraries into x86_64-linux-gnu/
libdir="${libdir}/x86_64-linux-gnu/audacious/Visualization",
libdir="${libdir}/audacious/Visualization"
)
pkglibdir="${libdir}"
AC_SUBST(libdir)
AC_SUBST(pkglibdir)
AC_CONFIG_FILES([Makefile
minidocs/Makefile
src/Makefile])
AC_OUTPUT
echo "
==============================================================
Infinity Plugin for the Audacious Player -- version $VERSION
==============================================================
Install path : ${libdir}
Compiler : ${CC}
CFLAGS : ${INF_CFLAGS_EXTRA} ${CFLAGS}
CXXFLAGS : ${CXXFLAGS}
Debug enabled : ${debug}
"