# BlueALSA - configure.ac # SPDX-FileCopyrightText: 2016-2025 BlueALSA developers # SPDX-License-Identifier: MIT AC_PREREQ([2.62]) AC_INIT([BlueALSA], [m4_normalize(esyscmd([echo v4.3.1]))], [arkadiusz.bokowy@gmail.com], [bluez-alsa], [https://github.com/arkq/bluez-alsa]) AM_INIT_AUTOMAKE([foreign subdir-objects -Wall -Werror]) AC_CONFIG_SRCDIR([src/ba-config.c]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AC_USE_SYSTEM_EXTENSIONS m4_version_prereq(2.70, [AC_PROG_CC], [AC_PROG_CC_C99]) AC_OPENMP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MKDIR_P AM_PROG_AR AM_PROG_CC_C_O LT_INIT # configuration should match ALSA library AC_PREFIX_DEFAULT([/usr]) # testing presence of pkg-config AC_MSG_CHECKING([pkg-config m4 macros]) if test m4_ifdef([PKG_CHECK_MODULES], [yes], [no]) = "yes"; then AC_MSG_RESULT([yes]); else AC_MSG_RESULT([no]); AC_MSG_ERROR([pkg-config is required. See pkg-config.freedesktop.org]) fi # support for debugging AC_ARG_ENABLE([debug], AS_HELP_STRING([--enable-debug], [enable debugging support])) AM_CONDITIONAL([ENABLE_DEBUG], [test "x$enable_debug" = "xyes"]) AM_COND_IF([ENABLE_DEBUG], [ AC_CHECK_FUNCS([gettid]) AC_CHECK_LIB([SegFault], [backtrace]) AC_DEFINE([DEBUG], [1], [Define to 1 if the debugging is enabled.]) ]) AC_ARG_ENABLE([debug-time], AS_HELP_STRING([--enable-debug-time], [enable debug timing support])) AM_CONDITIONAL([ENABLE_DEBUG_TIME], [test "x$enable_debug_time" = "xyes"]) AM_COND_IF([ENABLE_DEBUG_TIME], [ AC_DEFINE([DEBUG_TIME], [1], [Define to 1 if the debug timing is enabled.]) ]) # embedded test coverage AC_ARG_WITH([coverage], AS_HELP_STRING([--with-coverage], [use lcov for test coverage reporting])) AM_CONDITIONAL([WITH_COVERAGE], [test "x$with_coverage" = "xyes"]) AM_COND_IF([WITH_COVERAGE], [ AC_PATH_PROG([LCOV], [lcov]) AS_IF([test "x$LCOV" = "x"], [AC_MSG_ERROR([[--with-coverage requires lcov]])]) AC_PATH_PROG([GENHTML], [genhtml]) AS_IF([test "x$GENHTML" = "x"], [AC_MSG_ERROR([[--with-coverage requires genhtml]])]) ]) # in-place call-stack unwinding AC_ARG_WITH([libunwind], AS_HELP_STRING([--with-libunwind], [use libunwind for call-stack unwinding])) AM_CONDITIONAL([WITH_LIBUNWIND], [test "x$with_libunwind" = "xyes"]) AM_COND_IF([WITH_LIBUNWIND], [ PKG_CHECK_MODULES([LIBUNWIND], [libunwind >= 1.1]) AC_DEFINE([WITH_LIBUNWIND], [1], [Define to 1 if libunwind shall be used.]) ], [ AC_CHECK_HEADERS([execinfo.h]) ]) AC_CHECK_HEADERS([stdatomic.h], [], [AC_MSG_ERROR([C11 atomic support not available])]) AC_CHECK_FUNCS([eventfd], [], [AC_MSG_ERROR([unable to find eventfd() function])]) AC_CHECK_FUNCS([pipe2], [], [AC_MSG_ERROR([unable to find pipe2() function])]) AC_CHECK_FUNCS([splice], [], [AC_MSG_ERROR([unable to find splice() function])]) AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([unable to find clock_gettime() function])]) AC_SEARCH_LIBS([pow], [m], [], [AC_MSG_ERROR([unable to find pow() function])]) AC_SEARCH_LIBS([pthread_create], [pthread], [], [AC_MSG_ERROR([pthread library not found])]) PKG_CHECK_MODULES([ALSA], [alsa >= 1.0.27]) PKG_CHECK_MODULES([BLUEZ], [bluez >= 5.51]) PKG_CHECK_MODULES([DBUS1], [dbus-1 >= 1.6]) PKG_CHECK_MODULES([GIO2], [gio-unix-2.0]) PKG_CHECK_MODULES([GLIB2], [glib-2.0 >= 2.58.2]) PKG_CHECK_MODULES([SBC], [sbc >= 1.5]) AC_PATH_PROGS([GDBUS_CODEGEN], [gdbus-codegen]) AS_IF([test "x$GDBUS_CODEGEN" = "x"], [AC_MSG_ERROR([[gdbus-codegen not found]])]) PKG_CHECK_MODULES([LIBBSD], [libbsd >= 0.8], AC_DEFINE([HAVE_LIBBSD], [1], [Define to 1 if you have the libbsd library.]), [:]) AM_CONDITIONAL([ALSA_1_1_2__1_1_3], [$PKG_CONFIG "alsa >= 1.1.2 alsa <= 1.1.3"]) AM_CONDITIONAL([ALSA_1_1_7], [$PKG_CONFIG --atleast-version=1.1.7 alsa]) AC_ARG_ENABLE([aac], [AS_HELP_STRING([--enable-aac], [enable AAC support])]) AM_CONDITIONAL([ENABLE_AAC], [test "x$enable_aac" = "xyes"]) AM_COND_IF([ENABLE_AAC], [ PKG_CHECK_MODULES([AAC], [fdk-aac >= 0.1.1]) AC_DEFINE([ENABLE_AAC], [1], [Define to 1 if AAC is enabled.]) ]) AC_ARG_WITH([libopenaptx], [AS_HELP_STRING([--with-libopenaptx], [use libopenaptx by pali.rohar for apt-X (HD)])]) AM_CONDITIONAL([WITH_LIBOPENAPTX], [test "x$with_libopenaptx" = "xyes"]) AC_ARG_WITH([libfreeaptx], [AS_HELP_STRING([--with-libfreeaptx], [use libfreeaptx for apt-X (HD)])]) AM_CONDITIONAL([WITH_LIBFREEAPTX], [test "x$with_libfreeaptx" = "xyes"]) # one of libopenaptx or libfreeaptx have been selected AM_CONDITIONAL([WITH_lIBOPENAPTX_OR_WITH_LIBFREEAPTX], [test "x$with_libopenaptx" = "xyes" -o "x$with_libfreeaptx" = "xyes"]) # both libopenaptx and libfreeaptx have been selected AM_CONDITIONAL([WITH_lIBOPENAPTX_AND_WITH_LIBFREEAPTX], [test "x$with_libopenaptx" = "xyes" -a "x$with_libfreeaptx" = "xyes"]) AM_COND_IF([WITH_lIBOPENAPTX_AND_WITH_LIBFREEAPTX], [AC_MSG_ERROR([select at most one of libopenaptx or libfreeaptx])]) AC_ARG_ENABLE([aptx], [AS_HELP_STRING([--enable-aptx], [enable apt-X support])]) AM_CONDITIONAL([ENABLE_APTX], [test "x$enable_aptx" = "xyes"]) AM_COND_IF([ENABLE_APTX], [ AM_COND_IF([WITH_LIBOPENAPTX], [ PKG_CHECK_MODULES([APTX], [libopenaptx >= 0.2.0]) AC_DEFINE([HAVE_APTX_DECODE], [1], [Define to 1 if you have apt-X decode library.]) AC_DEFINE([WITH_LIBOPENAPTX], [1], [Define to 1 if libopenaptx shall be used.]) ], [ AM_COND_IF([WITH_LIBFREEAPTX], [ PKG_CHECK_MODULES([APTX], [libfreeaptx >= 0.1.1]) AC_DEFINE([HAVE_APTX_DECODE], [1], [Define to 1 if you have apt-X decode library.]) AC_DEFINE([WITH_LIBFREEAPTX], [1], [Define to 1 if libfreeaptx shall be used.]) ], [ PKG_CHECK_MODULES([APTX], [openaptx >= 2.0.0]) if test "$($PKG_CONFIG --variable=aptxdecoder openaptx)" = "true"; then AC_DEFINE([HAVE_APTX_DECODE], [1], [Define to 1 if you have apt-X decode library.]) fi ]) ]) AC_DEFINE([ENABLE_APTX], [1], [Define to 1 if apt-X is enabled.]) ]) AC_ARG_ENABLE([aptx_hd], [AS_HELP_STRING([--enable-aptx-hd], [enable apt-X HD support])]) AM_CONDITIONAL([ENABLE_APTX_HD], [test "x$enable_aptx_hd" = "xyes"]) AM_COND_IF([ENABLE_APTX_HD], [ AM_COND_IF([WITH_LIBOPENAPTX], [ PKG_CHECK_MODULES([APTX_HD], [libopenaptx >= 0.2.0]) AC_DEFINE([HAVE_APTX_HD_DECODE], [1], [Define to 1 if you have apt-X HD decode library.]) AC_DEFINE([WITH_LIBOPENAPTX], [1], [Define to 1 if libopenaptx shall be used.]) ], [ AM_COND_IF([WITH_LIBFREEAPTX], [ PKG_CHECK_MODULES([APTX_HD], [libfreeaptx >= 0.1.1]) AC_DEFINE([HAVE_APTX_HD_DECODE], [1], [Define to 1 if you have apt-X HD decode library.]) AC_DEFINE([WITH_LIBFREEAPTX], [1], [Define to 1 if libfreeaptx shall be used.]) ], [ PKG_CHECK_MODULES([APTX_HD], [openaptx >= 2.0.0]) if test "$($PKG_CONFIG --variable=aptxdecoder openaptx)" = "true"; then AC_DEFINE([HAVE_APTX_HD_DECODE], [1], [Define to 1 if you have apt-X HD decode library.]) fi ]) ]) AC_DEFINE([ENABLE_APTX_HD], [1], [Define to 1 if apt-X HD is enabled.]) ]) # OR-ed conditional which can be used in the Makefile.am AM_CONDITIONAL([ENABLE_APTX_OR_APTX_HD], [test "x$enable_aptx" = "xyes" -o "x$enable_aptx_hd" = "xyes"]) AC_ARG_ENABLE([asha], [AS_HELP_STRING([--enable-asha], [enable ASHA G.722 support])]) AM_CONDITIONAL([ENABLE_ASHA], [test "x$enable_asha" = "xyes"]) AM_COND_IF([ENABLE_ASHA], [ PKG_CHECK_MODULES([SPANDSP], [spandsp >= 0.0.6]) AC_DEFINE([ENABLE_ASHA], [1], [Define to 1 if ASHA G.722 is enabled.]) ]) AC_ARG_ENABLE([faststream], [AS_HELP_STRING([--enable-faststream], [enable FastStream support])]) AM_CONDITIONAL([ENABLE_FASTSTREAM], [test "x$enable_faststream" = "xyes"]) AM_COND_IF([ENABLE_FASTSTREAM], [ AC_DEFINE([ENABLE_FASTSTREAM], [1], [Define to 1 if FastStream is enabled.]) ]) AC_ARG_ENABLE([lc3plus], [AS_HELP_STRING([--enable-lc3plus], [enable LC3plus support])]) AM_CONDITIONAL([ENABLE_LC3PLUS], [test "x$enable_lc3plus" = "xyes"]) AM_COND_IF([ENABLE_LC3PLUS], [ AC_CHECK_HEADERS([lc3plus.h], [], [AC_MSG_ERROR([LC3plus header file not found])]) # There is no pkg-config support for LC3plus, so we have to check the library # version manually. We will check for the symbols that are available in the # v1.4.1 API. If the library is older the check will fail. AC_CHECK_LIB([LC3plus], [lc3plus_version, lc3plus_enc_set_frame_dms], [AC_SUBST([LC3PLUS_LIBS], [-lLC3plus])], [AC_MSG_ERROR([LC3plus library not found])]) AC_DEFINE([ENABLE_LC3PLUS], [1], [Define to 1 if LC3plus is enabled.]) ]) AC_ARG_ENABLE([lc3-swb], [AS_HELP_STRING([--enable-lc3-swb], [enable LC3-SWB support])]) AM_CONDITIONAL([ENABLE_LC3_SWB], [test "x$enable_lc3_swb" = "xyes"]) AM_COND_IF([ENABLE_LC3_SWB], [ PKG_CHECK_MODULES([LC3], [lc3 >= 1.0.0]) AC_DEFINE([ENABLE_HFP_CODEC_SELECTION], [1], [Define to 1 if HFP codec selection is enabled.]) AC_DEFINE([ENABLE_LC3_SWB], [1], [Define to 1 if LC3-SWB is enabled.]) ]) AC_ARG_ENABLE([ldac], [AS_HELP_STRING([--enable-ldac], [enable LDAC support])]) AM_CONDITIONAL([ENABLE_LDAC], [test "x$enable_ldac" = "xyes"]) AM_COND_IF([ENABLE_LDAC], [ PKG_CHECK_MODULES([LDAC_ABR], [ldacBT-abr >= 1.0.0]) PKG_CHECK_MODULES([LDAC_DEC], [ldacBT-dec >= 2.0.0], AC_DEFINE([HAVE_LDAC_DECODE], [1], [Define to 1 if you have LDAC decode module.]), [:]) PKG_CHECK_MODULES([LDAC_ENC], [ldacBT-enc >= 2.0.0]) AC_DEFINE([ENABLE_LDAC], [1], [Define to 1 if LDAC is enabled.]) ]) AC_ARG_ENABLE([lhdc], [AS_HELP_STRING([--enable-lhdc], [enable LHDC support])]) AM_CONDITIONAL([ENABLE_LHDC], [test "x$enable_lhdc" = "xyes"]) AM_COND_IF([ENABLE_LHDC], [ AC_DEFINE([ENABLE_LHDC], [1], [Define to 1 if LHDC is enabled.]) PKG_CHECK_MODULES([LHDC_DEC], [lhdcBT-dec >= 4.0.2]) PKG_CHECK_MODULES([LHDC_ENC], [lhdcBT-enc >= 4.0.6]) ]) AC_ARG_ENABLE([midi], [AS_HELP_STRING([--enable-midi], [enable Bluetooth LE MIDI support])]) AM_CONDITIONAL([ENABLE_MIDI], [test "x$enable_midi" = "xyes"]) AM_COND_IF([ENABLE_MIDI], [ AC_DEFINE([ENABLE_MIDI], [1], [Define to 1 if Bluetooth LE MIDI is enabled.]) ]) AC_ARG_ENABLE([mp3lame], [AS_HELP_STRING([--enable-mp3lame], [enable MP3 support])]) AM_CONDITIONAL([ENABLE_MP3LAME], [test "x$enable_mp3lame" = "xyes"]) AM_COND_IF([ENABLE_MP3LAME], [ PKG_CHECK_MODULES([MP3LAME], [lame >= 3.100],, # The pkg-config support is available in the not yet released version of # LAME, so for now we have to check for the library manually as well to # be compatible with most Linux distributions. AC_CHECK_LIB([mp3lame], [lame_init], [AC_SUBST([MP3LAME_LIBS], [-lmp3lame])], [AC_MSG_ERROR([mp3lame library not found])])) AC_DEFINE([ENABLE_MPEG], [1], [Define to 1 if MPEG is enabled.]) AC_DEFINE([ENABLE_MP3LAME], [1], [Define to 1 if MP3LAME is enabled.]) ]) AC_ARG_ENABLE([mpg123], [AS_HELP_STRING([--enable-mpg123], [enable MPG123 decoding support])]) AM_CONDITIONAL([ENABLE_MPG123], [test "x$enable_mpg123" = "xyes"]) AM_COND_IF([ENABLE_MPG123], [ PKG_CHECK_MODULES([MPG123], [libmpg123 >= 1.0.0]) AC_DEFINE([ENABLE_MPEG], [1], [Define to 1 if MPEG is enabled.]) AC_DEFINE([ENABLE_MPG123], [1], [Define to 1 if MPG123 is enabled.]) ]) # OR-ed conditional which can be used in the Makefile.am AM_CONDITIONAL([ENABLE_MPEG], [ test "x$enable_mp3lame" = "xyes" -o "x$enable_mpg123" = "xyes"]) AC_ARG_ENABLE([msbc], [AS_HELP_STRING([--enable-msbc], [enable mSBC support])]) AM_CONDITIONAL([ENABLE_MSBC], [test "x$enable_msbc" = "xyes"]) AM_COND_IF([ENABLE_MSBC], [ PKG_CHECK_MODULES([SPANDSP], [spandsp >= 0.0.6]) AC_DEFINE([ENABLE_HFP_CODEC_SELECTION], [1], [Define to 1 if HFP codec selection is enabled.]) AC_DEFINE([ENABLE_MSBC], [1], [Define to 1 if mSBC is enabled.]) ]) AC_ARG_ENABLE([opus], AS_HELP_STRING([--enable-opus], [enable Opus support])) AM_CONDITIONAL([ENABLE_OPUS], [test "x$enable_opus" = "xyes"]) AM_COND_IF([ENABLE_OPUS], [ PKG_CHECK_MODULES([OPUS], [opus >= 1.0.0]) AC_DEFINE([ENABLE_OPUS], [1], [Define to 1 if Opus is enabled.]) ]) AC_ARG_ENABLE([ofono], AS_HELP_STRING([--enable-ofono], [enable HFP over oFono])) AM_CONDITIONAL([ENABLE_OFONO], [test "x$enable_ofono" = "xyes"]) AM_COND_IF([ENABLE_OFONO], [ AC_DEFINE([ENABLE_OFONO], [1], [Define to 1 if oFono is enabled.]) ]) AC_ARG_ENABLE([systemd], AS_HELP_STRING([--enable-systemd], [enable systemd integration])) AM_CONDITIONAL([ENABLE_SYSTEMD], [test "x$enable_systemd" = "xyes"]) AM_COND_IF([ENABLE_SYSTEMD], [ AC_DEFINE([ENABLE_SYSTEMD], [1], [Define to 1 if systemd is enabled.]) ]) AC_ARG_ENABLE([upower], AS_HELP_STRING([--enable-upower], [enable UPower integration])) AM_CONDITIONAL([ENABLE_UPOWER], [test "x$enable_upower" = "xyes"]) AM_COND_IF([ENABLE_UPOWER], [ AC_DEFINE([ENABLE_UPOWER], [1], [Define to 1 if UPower is enabled.]) ]) AC_ARG_ENABLE([payloadcheck], [AS_HELP_STRING([--disable-payloadcheck], [disable RTP payload type check (workaround for PulseAudio < 13.0 bug)])]) AM_CONDITIONAL([ENABLE_PAYLOADCHECK], [test "x$enable_payloadcheck" != "xno"]) AM_COND_IF([ENABLE_PAYLOADCHECK], [ AC_DEFINE([ENABLE_PAYLOADCHECK], [1], [Define to 1 if PAYLOADCHECK is enabled.]) ]) AC_ARG_ENABLE([ctl], [AS_HELP_STRING([--disable-ctl], [disable building of bluealsactl tool])]) AM_CONDITIONAL([ENABLE_CTL], [test "x$enable_ctl" != "xno"]) AC_ARG_ENABLE([aplay], [AS_HELP_STRING([--disable-aplay], [disable building of bluealsa-aplay tool])]) AM_CONDITIONAL([ENABLE_APLAY], [test "x$enable_aplay" != "xno"]) AC_ARG_WITH([libsamplerate], [AS_HELP_STRING([--with-libsamplerate], [use libsamplerate in bluealsa-aplay])]) AM_CONDITIONAL([WITH_LIBSAMPLERATE], [test "x$with_libsamplerate" = "xyes"]) AM_COND_IF([WITH_LIBSAMPLERATE], [ PKG_CHECK_MODULES([SAMPLERATE], [samplerate >= 0.2.0]) AC_DEFINE([WITH_LIBSAMPLERATE], [1], [Define to 1 if libsamplerate shall be used.]) ]) AC_ARG_ENABLE([rfcomm], [AS_HELP_STRING([--enable-rfcomm], [enable building of bluealsa-rfcomm tool])]) AM_CONDITIONAL([ENABLE_RFCOMM], [test "x$enable_rfcomm" = "xyes"]) AM_COND_IF([ENABLE_RFCOMM], [ PKG_CHECK_MODULES([READLINE], [readline]) ]) AC_ARG_ENABLE([a2dpconf], [AS_HELP_STRING([--enable-a2dpconf], [enable building of a2dpconf tool])]) AM_CONDITIONAL([ENABLE_A2DPCONF], [test "x$enable_a2dpconf" = "xyes"]) AC_ARG_ENABLE([hcitop], [AS_HELP_STRING([--enable-hcitop], [enable building of hcitop tool])]) AM_CONDITIONAL([ENABLE_HCITOP], [test "x$enable_hcitop" = "xyes"]) AM_COND_IF([ENABLE_HCITOP], [ PKG_CHECK_MODULES([LIBBSD], [libbsd >= 0.8]) PKG_CHECK_MODULES([NCURSES], [ncurses]) ]) AC_ARG_ENABLE([manpages], AS_HELP_STRING([--enable-manpages], [enable building of man pages (requires rst2man)])) AM_CONDITIONAL([ENABLE_MANPAGES], [test "x$enable_manpages" = "xyes"]) AM_COND_IF([ENABLE_MANPAGES], [ AC_PATH_PROGS([RST2MAN], [rst2man rst2man.py]) AS_IF([test "x$RST2MAN" = "x"], [AC_MSG_ERROR([[--enable-manpages requires rst2man]])]) ]) AC_ARG_ENABLE([test], [AS_HELP_STRING([--enable-test], [enable unit test])]) AM_CONDITIONAL([HAVE_SNDFILE], [false]) AM_CONDITIONAL([ENABLE_TEST], [test "x$enable_test" = "xyes"]) AM_COND_IF([ENABLE_TEST], [ AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([unable to find dlsym() function])]) PKG_CHECK_MODULES([CHECK], [check >= 0.11.0]) PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0], AM_CONDITIONAL([HAVE_SNDFILE], [true]) AC_DEFINE([HAVE_SNDFILE], [1], [Define to 1 if you have the sndfile library.]), [:]) ]) AC_ARG_WITH([bash-completion], AS_HELP_STRING([--with-bash-completion@<:@=DIR@:>@], [install bash completion script in DIR (or the bash completions default directory if not specified)])) AM_CONDITIONAL([WITH_BASH_COMPLETION], [test "x$with_bash_completion" != "x" -a "x$with_bash_completion" != "xno"]) AS_IF([test "x$with_bash_completion" = "xyes"], [PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0], [bashcompdir=$($PKG_CONFIG --variable=completionsdir bash-completion)], [bashcompdir="$datadir/bash-completion/completions"])], [bashcompdir="$with_bash_completion"]) AC_SUBST([BASH_COMPLETION_DIR], [$bashcompdir]) AC_ARG_WITH([alsaplugindir], AS_HELP_STRING([--with-alsaplugindir=DIR], [path where ALSA plugin files are stored]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-alsaplugindir requires an argument])], [alsaplugindir="$withval"]), [alsaplugindir=$($PKG_CONFIG --variable=libdir alsa)/alsa-lib]) AC_SUBST([ALSA_PLUGIN_DIR], [$alsaplugindir]) # If no --localstatedir and --prefix options were given, use the /var as a # default value for the local state directory. if test "$localstatedir" = "\${prefix}/var"; then test "x$prefix" = xNONE && AC_SUBST([localstatedir], [/var]) fi AC_SUBST([localstoragedir], [$localstatedir/lib]) if test "$localstatedir" = "\${prefix}/var"; then AC_SUBST([localstoragedir], [$prefix/var/lib]) fi # Unfortunately, for ALSA >= 1.1.7 the directory for add-on configuration files # is hard-coded as /etc/alsa/conf.d (unless the distribution has patched the # source codes). So, we will use that value as a default, unless (for backwards # compatibility) the user overrides it with --prefix or --sysconfdir option. if test "$sysconfdir" = "\${prefix}/etc"; then test "x$prefix" = xNONE && AC_SUBST([sysconfdir], [/etc]) fi AC_DEFINE_UNQUOTED(BLUEALSA_STORAGE_DIR, "${localstoragedir}/bluealsa", [Directory for the storage files.]) AC_ARG_WITH([alsaconfdir], AS_HELP_STRING([--with-alsaconfdir=DIR], [path to ALSA add-on configuration files]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-alsaconfdir requires an argument])], [alsaconfdir="$withval"]), [AM_COND_IF([ALSA_1_1_7], [alsaconfdir="$sysconfdir/alsa/conf.d"], [alsaconfdir="$datadir/alsa/alsa.conf.d"])]) AC_SUBST([ALSA_CONF_DIR], [$alsaconfdir]) AC_ARG_WITH([dbusconfdir], AS_HELP_STRING([--with-dbusconfdir=DIR], [path to D-Bus system bus configuration files]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-dbusconfdir requires an argument])], [dbusconfdir="${withval}"]), [dbusconfdir=$($PKG_CONFIG --variable=datadir dbus-1)/dbus-1/system.d]) AC_SUBST([DBUS_CONF_DIR], [$dbusconfdir]) AC_ARG_WITH([dbus-iface-xml], AS_HELP_STRING([--with-dbus-iface-xml=DIR], [path to D-Bus interface XML files]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-dbus-iface-xml requires an argument])], [dbusifacedir="${withval}"]), [dbusifacedir=$($PKG_CONFIG --variable=interfaces_dir dbus-1)]) AC_SUBST([DBUS_IFACE_DIR], [$dbusifacedir]) AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [path to systemd system unit files]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-systemdsystemunitdir requires an argument])], [systemdsystemunitdir="${withval}"]), [AM_COND_IF([ENABLE_SYSTEMD], [systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])]) AC_SUBST([SYSTEMD_SYSTEM_UNIT_DIR], [$systemdsystemunitdir]) AC_ARG_WITH([systemdbluealsadargs], AS_HELP_STRING([--with-systemdbluealsadargs=ARGS], [bluealsad arguments to be used in bluealsa.service, defaults to '-S -p a2dp-source -p a2dp-sink --all-codecs' if not specified]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-systemdbluealsadargs requires an argument])], [systemdbluealsadargs="${withval}"]), [systemdbluealsadargs="-S -p a2dp-source -p a2dp-sink --all-codecs"]) AC_SUBST([SYSTEMD_BLUEALSAD_ARGS], [$systemdbluealsadargs]) AC_ARG_WITH([systemdbluealsaaplayargs], AS_HELP_STRING([--with-systemdbluealsaaplayargs=ARGS], [bluealsa-aplay arguments to be used in bluealsa-aplay.service, defaults to '-S' if not specified]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-systemdbluealsaaplayargs requires an argument])], [systemdbluealsaaplayargs="${withval}"]), [systemdbluealsaaplayargs="-S"]) AC_SUBST([SYSTEMD_BLUEALSA_APLAY_ARGS], [$systemdbluealsaaplayargs]) AC_ARG_WITH([bluealsaduser], AS_HELP_STRING([--with-bluealsaduser=USER], [set up installation to run bluealsad as user USER, defaults to root if not specified. When used with bluez <= 5.50, USER must be a member of the "bluetooth" group.]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-bluealsaduser requires an argument])], [bluealsaduser="${withval}"]), [bluealsaduser="root"]) AC_SUBST([BLUEALSAD_USER], [$bluealsaduser]) AC_ARG_WITH([bluealsaaplayuser], AS_HELP_STRING([--with-bluealsaaplayuser=USER], [set up installation to run bluealsa-aplay as user USER, defaults to root if not specified. USER must be a member of the "audio" group.]), AS_IF([test "x$withval" == "xyes" -o "x$withval" == "xno"], [AC_MSG_ERROR([Option --with-bluealsaaplayuser requires an argument])], [bluealsaaplayuser="${withval}"]), [bluealsaaplayuser="root"]) AC_SUBST([BLUEALSA_APLAY_USER], [$bluealsaaplayuser]) AC_CONFIG_FILES([ Makefile doc/Makefile misc/Makefile misc/systemd/Makefile src/Makefile src/asound/Makefile src/bluealsactl/Makefile src/shared/Makefile utils/Makefile utils/aplay/Makefile utils/rfcomm/Makefile amlogic/Makefile test/Makefile test/mock/Makefile]) AC_OUTPUT # warn user that alsa-lib thread-safety makes troubles AM_COND_IF([ALSA_1_1_2__1_1_3], [ AC_MSG_WARN([ *** alsa-lib >= 1.1.2, <= 1.1.3 ***]) AC_MSG_WARN([Starting from alsa-lib 1.1.2, it is possible to enable]) AC_MSG_WARN([thread-safe API functions. Unfortunately, this feature]) AC_MSG_WARN([is not mature enough - software plugins may experience]) AC_MSG_WARN([random deadlocks (bluez-alsa PCM plugin is affected).]) AC_MSG_WARN([Either compile alsa-lib without this feature or export]) AC_MSG_WARN([LIBASOUND_THREAD_SAFE=0 while using bluealsa PCM.]) ]) # notify user that using libopenaptx or libfreeaptx might be a good idea AM_COND_IF([ENABLE_APTX_OR_APTX_HD], [ AM_COND_IF([WITH_lIBOPENAPTX_OR_WITH_LIBFREEAPTX], [], [ AC_MSG_NOTICE([ *** using apt-X (HD) via Qualcomm API ***]) AC_MSG_NOTICE([Enabled apt-X (HD) support requires encoder (and decoder)]) AC_MSG_NOTICE([library with a proprietary Qualcomm API. Please consider]) AC_MSG_NOTICE([using --with-libopenaptx or --with-libfreeaptx option]) AC_MSG_NOTICE([which will use a library based on FFmpeg project with]) AC_MSG_NOTICE([better decoding support.]) ])])