You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

223 lines
5.7 KiB

AC_INIT([cava], [m4_esyscmd_s([cat version])], [karl@stavestrand.no])
AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign])
dnl AC_CONFIG_MACRO_DIRS([m4])
AM_PROG_AR
LT_INIT
AC_PROG_CC
AC_PROG_CC_STDC
AM_PROG_LIBTOOL
dnl ############################
dnl checking if debug is enabled
dnl ############################
AC_ARG_ENABLE([debug],
AS_HELP_STRING([--enable-debug],
[enable debug messages and frequency table output])
)
AS_IF([test "x$enable_debug" != "xyes"], [
dnl enabling debug mode
CPPFLAGS="$CPPFLAGS -DNDEBUG"
])
AC_ARG_ENABLE([asan],
AS_HELP_STRING([--enable-asan],
[build with AddressSanitizer])
)
AS_IF([test "x$enable_asan" = "xyes"], [
dnl enabling asan
CPPFLAGS="$CPPFLAGS -fsanitize=address"
LDFLAGS="$LDFLAGS -fsanitize=address"
])
dnl ######################
dnl checking for pthread
dnl ######################
AC_CHECK_HEADERS([pthread.h],
AC_CHECK_LIB(pthread, pthread_create, LIBS="$LIBS -lpthread",
AC_MSG_ERROR([pthread.h found but there is no pthread library to make use of])
),
AC_MSG_ERROR([no pthread.h header header file found])
)
dnl ######################
dnl checking for alloca.h
dnl ######################
AC_CHECK_HEADER([alloca.h], [CPPFLAGS="$CPPFLAGS -DHAVE_ALLOCA_H"])
dnl ######################
dnl checking for alsa dev
dnl ######################
AC_CHECK_LIB(asound, snd_pcm_open, have_alsa=yes, have_alsa=no)
if [[ $have_alsa = "yes" ]] ; then
LIBS="$LIBS -lasound"
CPPFLAGS="$CPPFLAGS -DALSA"
fi
if [[ $have_alsa = "no" ]] ; then
AC_MSG_NOTICE([WARNING: No alsa dev files found building without alsa support])
fi
dnl ######################
dnl checking for pulse dev
dnl ######################
AC_CHECK_LIB(pulse-simple, pa_simple_new, have_pulse=yes, have_pulse=no)
if [[ $have_pulse = "yes" ]] ; then
LIBS="$LIBS -lpulse-simple -lpulse"
CPPFLAGS="$CPPFLAGS -DPULSE"
fi
if [[ $have_pulse = "no" ]] ; then
AC_MSG_NOTICE([WARNING: No pusleaudio dev files found building without pulseaudio support])
fi
dnl ######################
dnl checking for portaudio dev
dnl ######################
AC_CHECK_LIB(portaudio, Pa_Initialize, have_portaudio=yes, have_portaudio=no)
if [[ $have_portaudio = "yes" ]] ; then
LIBS="$LIBS -lportaudio"
CPPFLAGS="$CPPFLAGS -DPORTAUDIO"
fi
if [[ $have_portaudio = "no" ]] ; then
AC_MSG_NOTICE([WARNING: No portaudio dev files found building without portaudio support])
fi
dnl ######################
dnl checking for sndio dev
dnl ######################
AC_CHECK_LIB(sndio, sio_open, have_sndio=yes, have_sndio=no)
if [[ $have_sndio = "yes" ]] ; then
LIBS="$LIBS -lsndio"
CPPFLAGS="$CPPFLAGS -DSNDIO"
fi
if [[ $have_sndio = "no" ]] ; then
AC_MSG_NOTICE([WARNING: No sndio dev files found building without sndio support])
fi
dnl ######################
dnl checking for math lib
dnl ######################
AC_CHECK_LIB(m, sqrt, have_m=yes, have_m=no)
if [[ $have_m = "yes" ]] ; then
LIBS="$LIBS -lm"
fi
if [[ $have_m = "no" ]] ; then
AC_MSG_ERROR([math library is required!])
fi
dnl ######################
dnl checking for fftw3
dnl ######################
AC_CHECK_LIB(fftw3,fftw_execute, have_fftw=yes, have_fftw=no)
if [[ $have_fftw = "yes" ]] ; then
LIBS="$LIBS -lfftw3"
fi
if [[ $have_fftw = "no" ]] ; then
AC_MSG_ERROR([fftw library is required!])
fi
dnl ######################
dnl checking for ncursesw
dnl ######################
curses_config_bin="ncursesw6-config ncursesw5-config"
AC_PATH_PROGS(CURSES_CONFIG, $curses_config_bin)
AC_CHECK_LIB(ncursesw, initscr,
curses_lib=ncursesw
)
AC_CHECK_LIB($curses_lib, initscr,
if test "$CURSES_CONFIG" = "" ; then
LIBS="$LIBS -l$curses_lib"
CPPFLAGS="$CPPFLAGS -DNCURSES"
fi
if test "$CURSES_CONFIG" != "" ; then
CPPFLAGS="$CPPFLAGS `$CURSES_CONFIG --cflags` -DNCURSES"
LIBS="$LIBS `$CURSES_CONFIG --libs`"
fi
AC_CHECK_HEADERS([curses.h], , AC_MSG_ERROR([missing curses.h header]))
,
AC_MSG_NOTICE([WARNING: building without ncursesw support ncursesw is recomended!])
)
dnl ######################
dnl checking for system iniparser
dnl ######################
AC_SEARCH_LIBS([iniparser_load], [iniparser], [
AC_CHECK_HEADERS([iniparser.h], [have_system_iniparser=yes])
])
AM_CONDITIONAL([SYSTEM_LIBINIPARSER], [test "x$have_system_iniparser" = "xyes"])
if test "x$have_system_iniparser" = "xyes"; then
AC_SUBST(SYSTEM_LIBINIPARSER, 1)
AC_MSG_NOTICE([Using installed iniparser])
LIBS="$LIBS -liniparser"
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <iniparser.h>]],
[[dictionary* ini;
const char *keys[3];
iniparser_getseckeys(ini, "eq", keys);]])],
[AC_MSG_RESULT(iniparser > 3.2 test OK)],
[AC_MSG_RESULT(iniparser > 3.2 test failed falling back to legacy iniparser mode)
CPPFLAGS="$CPPFLAGS -DLEGACYINIPARSER"])
else
AC_SUBST(SYSTEM_LIBINIPARSER, 0)
AC_CONFIG_FILES(iniparser/Makefile)
AC_MSG_NOTICE([Building iniparser])
fi
dnl ############################
dnl checking if shared memory input is enabled
dnl ############################
AC_ARG_ENABLE([shmem],
AS_HELP_STRING([--enable-shmem],
[enable shared memory input (e.g. for squeezelite)])
)
AS_IF([test "x$enable_shmem" = "xyes"], [
dnl enabling shared memory input
AC_MSG_NOTICE([enabling shared memory input])
CPPFLAGS="$CPPFLAGS -DSHMEM"
LIBS="$LIBS -lrt"
])
dnl ############################
dnl Set font directory
dnl ############################
DEFAULT_FONT_DIR="/usr/share/consolefonts"
AC_ARG_VAR(FONT_DIR, [Directory where the font will be installed.])
if test -z "$FONT_DIR" ; then
FONT_DIR="$DEFAULT_FONT_DIR"
fi
AC_CONFIG_FILES([Makefile])
AC_OUTPUT