blob: bd3705446922ed30eb62dd89a57191c072657a47 [file]
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
#
# Copyright (C) 2002-2013 Brailcom, o.p.s
# Copyright (C) 2009-2017 Luke Yelavich <luke.yelavich@canonical.com>
# Copyright (C) 2009 Willie Walker <william.walker@sun.com>
# Copyright (C) 2010-2011 William Hubbs <w.d.hubbs@gmail.com>
# Copyright (C) 2010-2011 Andrei Kholodnyi <andrei.kholodnyi@gmail.com>
# Copyright (C) 2010 Boris Dusek <dusek@brailcom.org>
# Copyright (C) 2010 Christopher Brannon <chris@the-brannons.com>
# Copyright (C) 2011 Trevor Saunders <trev.saunders@gmail.com>
# Copyright (C) 2012 William Jon McCann <jmccann@redhat.com>
# Copyright (C) 2017 Colomban Wendling <cwendling@hypra.fr>
# Copyright (C) 2017 Jan Tojnar <jtojnar@gmail.com>
# Copyright (C) 2018 Raphaƫl POITEVIN <rpoitevin@hypra.fr>
# Copyright (C) 2018-2025 Samuel Thibault <samuel.thibault@ens-lyon.org>
# Copyright (C) 2018 Alan Coopersmith <alan.coopersmith@oracle.com>
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details (file
# COPYING in the root directory).
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
AC_PREREQ([2.63])
m4_define([MAJOR_VERSION], [0])
m4_define([MINOR_VERSION], [12])
m4_define([MICRO_VERSION], [0])
m4_define([AC_PACKAGE_VERSION],[MAJOR_VERSION.MINOR_VERSION.MICRO_VERSION])
AC_INIT([speech-dispatcher], [AC_PACKAGE_VERSION], [speechd-discuss@nongnu.org])
AC_USE_SYSTEM_EXTENSIONS
AC_CONFIG_MACRO_DIRS([m4])
AM_INIT_AUTOMAKE([foreign info-in-builddir])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
LT_PREREQ([2.2])
LT_INIT([dlopen])
AC_CONFIG_SRCDIR([src/server/speechd.c])
AC_CONFIG_HEADERS([config.h])
AC_ARG_ENABLE([libs-only], [AS_HELP_STRING([--enable-libs-only], [build only the client library])], [], [enable_libs_only=no])
AM_CONDITIONAL([LIBS_ONLY], [test "$enable_libs_only" = "yes"])
if test "$enable_libs_only" = "yes"; then
with_espeak=no
with_espeak_ng=no
with_flite=no
with_ibmtts=no
with_voxin=no
with_ivona=no
with_pico=no
with_baratinoo=no
with_kali=no
with_piper=no
with_pulse=no
with_alsa=no
with_oss=no
with_nas=no
with_libao=no
with_pipewire=no
enable_python=no
enable_doc=no
with_systemdsystemunitdir=no
with_systemduserunitdir=no
else
AM_GNU_GETTEXT_VERSION([0.19.8])
AM_GNU_GETTEXT([external])
if test "$ac_cv_path_MSGFMT" = ":"
then
AC_MSG_FAILURE([msgfmt missing from the gettext package])
fi
fi
# Split version number
[MAJOR_VERSION]=MAJOR_VERSION
[MINOR_VERSION]=MINOR_VERSION
[MICRO_VERSION]=MICRO_VERSION
AC_SUBST([MAJOR_VERSION])
AC_SUBST([MINOR_VERSION])
AC_SUBST([MICRO_VERSION])
# Config test suite
AC_CONFIG_TESTDIR(src/tests)
# Checks for programs.
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_LN_S
AC_CHECK_PROGS([HELP2MAN], [help2man])
AM_CONDITIONAL([HAVE_HELP2MAN], [test "x$HELP2MAN" != "x"])
# Checks for libraries.
AC_SEARCH_LIBS([sqrt], [m], [],
[AC_MSG_FAILURE([Math library missing])])
AC_SEARCH_LIBS([pthread_create], [pthread], [],
[AC_MSG_FAILURE([Threads library missing])])
AC_CHECK_DECL([pthread_setname_np], AC_CHECK_FUNCS([pthread_setname_np]), , [#include <pthread.h>])
if test "$enable_libs_only" != "yes"; then
AC_ARG_ENABLE([ltdl],
[AS_HELP_STRING([--disable-ltdl], [do not use ltdl for modules])],
[],
[enable_ltdl=check])
fi
if test x$enable_ltdl != xno;
then
AC_SEARCH_LIBS([lt_dlopen], [ltdl], [use_ltdl=yes], [use_ltdl=no])
if test x$use_ltdl = xno ;
then
if test x$enable_ltdl = xyes ;
then
AC_MSG_FAILURE([ltdl requested but missing])
fi
enable_ltdl=no
fi
fi
if test x$enable_ltdl = xno;
then
AC_DEFINE(USE_DLOPEN, [1], [Use dlopen rather than lt_dlopen])
AC_SEARCH_LIBS([dlopen], [dl], [],
[AC_MSG_FAILURE([dlopen missing])])
fi
if test x$enable_shared = xyes;
then
default_shim=shim
else
default_shim=no
fi
case "$host" in
*-*darwin*)
darwin_host=yes
default_shim=no
AC_DEFINE(DARWIN_HOST, [1], [Building for Darwin])
;;
esac
AM_CONDITIONAL(DARWIN_HOST, test "$darwin_host" = yes)
PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.36])
AC_SUBST([GLIB_CFLAGS])
AC_SUBST([GLIB_LIBS])
if test "$enable_libs_only" != "yes"; then
PKG_CHECK_MODULES([GTHREAD], [gthread-2.0])
AC_SUBST([GTHREAD_CFLAGS])
AC_SUBST([GTHREAD_LIBS])
PKG_CHECK_MODULES([GMODULE], [gmodule-2.0])
AC_SUBST([GMODULE_CFLAGS])
AC_SUBST([GMODULE_LIBS])
PKG_CHECK_MODULES([DOTCONF], [dotconf >= 1.3])
AC_SUBST([DOTCONF_CFLAGS])
AC_SUBST([DOTCONF_LIBS])
PKG_CHECK_MODULES([SNDFILE], [sndfile >= 1.0.2])
AC_SUBST([SNDFILE_CFLAGS])
AC_SUBST([SNDFILE_LIBS])
fi
PKG_CHECK_MODULES([LIBSYSTEMD], [libsystemd], [have_libsystemd=yes], [:])
# Checks for header files.
AC_CHECK_HEADERS([arpa/inet.h fcntl.h langinfo.h limits.h netdb.h])
AC_CHECK_HEADERS([netinet/in.h stddef.h stdlib.h string.h sys/filio.h])
AC_CHECK_HEADERS([sys/ioctl.h sys/socket.h sys/time.h unistd.h wchar.h wctype.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_STDBOOL
AC_C_INLINE
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT32_T
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([daemon dup2 gethostbyname getline gettimeofday memmove memset])
AC_CHECK_FUNCS([mkdir select socket strcasecmp strcasestr strchr strcspn strdup])
AC_CHECK_FUNCS([strerror strncasecmp strndup strstr strtol])
# Extra libraries for sockets and espeak added by Willie Walker
# based upon how SunStudio compilers and Solaris libraries work.
# Also conditionally set other compiler/linker flags.
#
# SVR4, including Solaris before 11.4, hides these in libraries other than libc
AC_CHECK_LIB([c], [socket], [],
[AC_CHECK_LIB([socket], [socket], [EXTRA_SOCKET_LIBS="-lsocket"])])
AC_CHECK_LIB([c], [gethostbyname], [],
[AC_CHECK_LIB([nsl], [gethostbyname],
[EXTRA_SOCKET_LIBS="${EXTRA_SOCKET_LIBS} -lnsl"])])
if test "$GCC" = yes; then
ERROR_CFLAGS="-Wall"
RDYNAMIC="-rdynamic"
else
EXTRA_ESPEAK_LIBS="-lCstd -lCrun"
ERROR_CFLAGS="-errwarn=%all -errtags=yes -erroff=E_STATEMENT_NOT_REACHED"
RDYNAMIC=""
fi
AC_SUBST([EXTRA_ESPEAK_LIBS])
AC_SUBST([EXTRA_SOCKET_LIBS])
AC_SUBST([ERROR_CFLAGS])
AC_SUBST([RDYNAMIC])
AC_ARG_ENABLE([doc],
[AS_HELP_STRING([--disable-doc], [turn off documentation])])
AM_CONDITIONAL(ENABLE_DOC, test "$enable_doc" != "no")
# Check for python support.
# Python 3 or greater required
AC_ARG_ENABLE([python],
[AS_HELP_STRING([--disable-python], [do not install python bindings])],
[],
[enable_python=check])
AS_IF([test $enable_python != "no"],
[AM_PATH_PYTHON([3.0],
[enable_python=yes],
[AS_IF([test $enable_python = "yes"],
[AC_MSG_FAILURE([python 3 or greater is not available])])])])
AM_CONDITIONAL([HAVE_PYTHON], [test $enable_python = "yes"])
output_modules="cicero dummy festival openjtalk generic"
# checks for output modules
# check for espeak support
AC_ARG_WITH([espeak],
[AS_HELP_STRING([--with-espeak], [Compile with espeak support])],
[],
[with_espeak=check])
AS_IF([test $with_espeak != "no"],
[AC_CHECK_LIB([espeak], [espeak_Synth],
[with_espeak="yes"],
[AS_IF([test $with_espeak = "yes"],
[AC_MSG_FAILURE([espeak is not available])])],
[$EXTRA_ESPEAK_LIBS])])
AM_CONDITIONAL([espeak_support], [test $with_espeak = "yes"])
AS_IF([test $with_espeak = "yes"], [output_modules="${output_modules} espeak"])
# check for espeak-ng support
AC_ARG_WITH([espeak_ng],
[AS_HELP_STRING([--with-espeak-ng], [Compile with espeak-ng support])],
[],
[with_espeak_ng=check])
AS_IF([test $with_espeak_ng != "no"],
[PKG_CHECK_MODULES([ESPEAK_NG], [espeak-ng],
[with_espeak_ng="yes"],
[AS_IF([test $with_espeak_ng = "yes"],
[AC_MSG_FAILURE([espeak-ng is not available])])])])
AM_CONDITIONAL([espeak_ng_support], [test $with_espeak_ng = "yes"])
AC_SUBST([ESPEAK_NG_CFLAGS])
AC_SUBST([ESPEAK_NG_LIBS])
AS_IF([test $with_espeak_ng = "yes"], [output_modules="${output_modules} espeak-ng"])
AC_CHECK_PROGS([ESPEAK], [espeak-ng espeak])
AM_CONDITIONAL([espeak_dummy_message], [test x$ESPEAK != x])
# check for flite support
AC_ARG_WITH([flite],
[AS_HELP_STRING([--with-flite], [include Festival Lite (Flite) support])],
[],
[with_flite=check])
AS_IF([test $with_flite != "no"],
[AC_CHECK_LIB([flite], [flite_init],
[flite_basic="-lflite -lm"],
[AS_IF([test $with_flite = "yes"],
[AC_MSG_FAILURE([libflite is not available])])])
AC_CHECK_LIB([flite_usenglish], [usenglish_init],
[flite_basic="-lflite_usenglish ${flite_basic}"],
[AS_IF([test $with_flite = "yes"],
[AC_MSG_FAILURE([libflite_usenglish is not available])])],
[-lflite -lm])
AC_CHECK_LIB([flite_cmulex], [cmu_lex_init],
[flite_basic="-lflite_cmulex ${flite_basic}"],
[AS_IF([test $with_flite = "yes"],
[AC_MSG_FAILURE([libflite_cmulex is not available])])],
[-lflite -lm])
AC_CHECK_LIB([flite_cmu_us_kal16], [register_cmu_us_kal16],
[with_flite=yes; flite_voices="$flite_voices -lflite_cmu_us_kal16"
AC_DEFINE([HAVE_REGISTER_CMU_US_KAL16], [1],
[Use cmu_register_us_kal16 to register the kal 16-bit voice.])],
[], [$flite_basic])
AC_CHECK_LIB([flite_cmu_us_kal], [register_cmu_us_kal],
[with_flite=yes; flite_voices="$flite_voices -lflite_cmu_us_kal"
AC_DEFINE([HAVE_REGISTER_CMU_US_KAL], [1],
[Use cmu_register_us_kal to register the kal 8-bit voice.])],
[], [$flite_basic])
AC_CHECK_LIB([flite_cmu_us_awb], [register_cmu_us_awb],
[with_flite=yes; flite_voices="$flite_voices -lflite_cmu_us_awb"
AC_DEFINE([HAVE_REGISTER_CMU_US_AWB], [1],
[Use cmu_register_us_kal to register the awb voice.])],
[], [$flite_basic])
AC_CHECK_LIB([flite_cmu_us_rms], [register_cmu_us_rms],
[with_flite=yes; flite_voices="$flite_voices -lflite_cmu_us_rms"
AC_DEFINE([HAVE_REGISTER_CMU_US_RMS], [1],
[Use cmu_register_us_kal to register the rms voice.])],
[], [$flite_basic])
AC_CHECK_LIB([flite_cmu_us_slt], [register_cmu_us_slt],
[with_flite=yes; flite_voices="$flite_voices -lflite_cmu_us_slt"
AC_DEFINE([HAVE_REGISTER_CMU_US_SLT], [1],
[Use cmu_register_us_kal to register the slt voice.])],
[], [$flite_basic])
])
AM_CONDITIONAL([flite_support], [test $with_flite = "yes"])
AC_SUBST([flite_basic])
AC_SUBST([flite_voices])
AS_IF([test $with_flite = "yes"], [output_modules="${output_modules} flite"])
AC_CHECK_PROGS([FLITE], [flite])
AM_CONDITIONAL([flite_dummy_message], [test x$FLITE != x])
# check for IBMTTS support
case "$host" in
[i[3-6]86-*-linux*])
default_ibmtts=check
;;
*)
default_ibmtts=no
;;
esac
AC_ARG_WITH([ibmtts],
[AS_HELP_STRING([--with-ibmtts[[=yes|no|shim]]], [include IBM TTS support])],
[],
[with_ibmtts=$default_ibmtts])
AS_IF([test $with_ibmtts = yes -o $with_ibmtts = check],
[AC_CHECK_LIB([ibmeci], [eciStop],
[with_ibmtts=yes;
ibmtts_include="-I/opt/IBM/ibmtts/inc/"],
[AS_IF([test $with_ibmtts = "yes"],
[AC_MSG_FAILURE([IBMTTS is not available])])
with_ibmtts=$default_shim])])
AM_CONDITIONAL([ibmtts_support], [test $with_ibmtts != no])
AM_CONDITIONAL([ibmtts_shim], [test $with_ibmtts = shim])
AC_SUBST([ibmtts_include])
AS_IF([test $with_ibmtts != no], [output_modules="${output_modules} ibmtts"])
# check for Voxin support
AC_ARG_WITH([voxin],
[AS_HELP_STRING([--with-voxin[[=yes|no|shim]]], [include Voxin support])],
[],
[with_voxin=check])
AS_IF([test $with_voxin = yes -o $with_voxin = check],
[AC_CHECK_LIB([voxin], [voxToString],
[with_voxin=yes],
[AS_IF([test "$with_voxin" = yes],
[AC_MSG_FAILURE([Voxin is not available])])
with_voxin=$default_shim])])
AM_CONDITIONAL([voxin_support], [test "$with_voxin" != no])
AM_CONDITIONAL([voxin_shim], [test "$with_voxin" = shim])
AS_IF([test "$with_voxin" != no], [output_modules="${output_modules} voxin"])
# check for ivona support
AC_ARG_WITH([ivona],
[AS_HELP_STRING([--with-ivona], [include ivona support])],
[],
[with_ivona=check])
AS_IF([test $with_ivona != "no"],
[AC_CHECK_LIB([dumbtts], [dumbtts_TTSInit],
[with_ivona=yes],
[AS_IF([test $with_ivona = "yes"],
[AC_MSG_FAILURE([ivona is not available])])])])
AM_CONDITIONAL([ivona_support], [test $with_ivona = "yes"])
AS_IF([test $with_ivona = "yes"], [output_modules="${output_modules} ivona"])
# check for svox pico support
AC_ARG_WITH([pico],
[AS_HELP_STRING([--with-pico], [include SVOX pico support])],
[],
[with_pico=check])
AS_IF([test $with_pico != "no"],
[AC_CHECK_LIB([ttspico], [pico_initialize],
[with_pico=yes],
[AS_IF([test $with_pico = "yes"],
[AC_MSG_FAILURE([SVOX pico is not available])])])])
AM_CONDITIONAL([pico_support], [test $with_pico = "yes"])
AS_IF([test $with_pico = "yes"], [output_modules="${output_modules} pico"])
# check for Voxygen Baratinoo support
AC_ARG_WITH([baratinoo],
[AS_HELP_STRING([--with-baratinoo[[=yes|no|shim]]], [include Voxygen Baratinoo support])],
[],
[with_baratinoo=check])
AS_IF([test "$with_baratinoo" = yes -o "$with_baratinoo" = check],
[AC_CHECK_LIB([baratinoo], [BCinitlib],
[with_baratinoo=yes],
[AS_IF([test "$with_baratinoo" = yes],
[AC_MSG_FAILURE([Voxygen Baratinoo is not available])])
with_baratinoo=$default_shim])])
AM_CONDITIONAL([baratinoo_support], [test "$with_baratinoo" != no])
AM_CONDITIONAL([baratinoo_shim], [test "$with_baratinoo" = shim])
AS_IF([test "$with_baratinoo" != no], [output_modules="${output_modules} baratinoo"])
# check for kali support
AC_ARG_WITH([kali],
[AS_HELP_STRING([--with-kali[[=yes|no|shim]]], [include Kali support])],
[],
[with_kali=check])
AS_IF([test $with_kali = yes -o $with_kali = check],
[AC_CHECK_LIB([Kali], [initKali],
[with_kali=yes],
[AS_IF([test $with_kali = "yes"],
[AC_MSG_FAILURE([Kali is not available])])
with_kali=$default_shim],
[-lKGlobal -lKTrans -lKParle -lKAnalyse])])
AM_CONDITIONAL([kali_support], [test $with_kali != no])
AM_CONDITIONAL([kali_shim], [test $with_kali = shim])
AS_IF([test $with_kali != no], [output_modules="${output_modules} kali"])
# check for piper support
AC_ARG_WITH([piper],
[AS_HELP_STRING([--with-piper=/path], [include Piper support])],
[],
[with_piper=no])
AS_IF([test $with_espeak = yes -a $with_piper != no], [
# We currently need various headers of piper
PIPER_SRC_DIR="$with_piper/src/cpp"
OLDCXXFLAGS="$CXXFLAGS"
OLDLDFLAGS="$LDFLAGS"
CXXFLAGS="$CXXFLAGS -I$PIPER_SRC_DIR"
AS_IF([test $with_piper != no],
[PKG_CHECK_MODULES([ONNXRUNTIME], [libonnxruntime], [
CXXFLAGS="$CXXFLAGS $ONNXRUNTIME_CFLAGS"
LDFLAGS="$LDFLAGS $ONNXRUNTIME_LIBS"
], [AC_CHECK_LIB([onnxruntime], [OrtGetApiBase],
[ONNXRUNTIME_LIBS="-lonnxruntime"],
[with_piper=no])
])])
AS_IF([test $with_piper != no],
[PKG_CHECK_MODULES([RUBBERBAND], [rubberband], [
CXXFLAGS="$CXXFLAGS $RUBBERBAND_CFLAGS"
LDFLAGS="$LDFLAGS $RUBBERBAND_LIBS"
], [with_piper=no])])
AC_LANG_PUSH(C++)
AS_IF([test $with_piper != no],
[AC_CHECK_LIB([piper_phonemize], [_ZN5piper19DEFAULT_PHONEME_MAPB5cxx11E],
[:],
[with_piper=no])])
AS_IF([test $with_piper != no],
[AC_CHECK_HEADER([json.hpp],
[],
[with_piper=no])])
AS_IF([test $with_piper != no],
[AC_CHECK_HEADER([piper.hpp],
[],
[with_piper=no])])
AS_IF([test $with_piper != no],
[AC_CHECK_HEADER([utf8.h],
[],
[with_piper=no])])
AS_IF([test $with_piper != no],
[AC_CHECK_HEADER([wavfile.hpp],
[],
[with_piper=no])])
AS_IF([test $with_piper != no],
# We need espeak with https://github.com/espeak-ng/espeak-ng/pull/2127 applied
[AC_CHECK_LIB([espeak-ng], [espeak_TextToPhonemesWithTerminator],
[:],
[with_piper=no],
[$ESPEAK_NG_LIBS])])
AC_LANG_POP(C++)
CXXFLAGS="$OLDCXXFLAGS"
LDFLAGS="$OLDLDFLAGS"
])
AM_CONDITIONAL([piper_support], [test $with_piper != no])
AS_IF([test $with_piper != no], [output_modules="${output_modules} cxxpiper"])
AC_SUBST([PIPER_SRC_DIR])
AC_SUBST([ONNXRUNTIME_CFLAGS])
AC_SUBST([ONNXRUNTIME_LIBS])
AC_SUBST([RUBBERBAND_CFLAGS])
AC_SUBST([RUBBERBAND_LIBS])
audio_dlopen='-dlopen force'
audio_dlopen_modules=
# clear default audio method
default_audio_method=""
audio_methods=""
# checks for audio subsystems
# check for pulseaudio support
AC_ARG_WITH([pulse],
[AS_HELP_STRING([--with-pulse], [include pulseaudio support])],
[],
[with_pulse=check])
AS_IF([test $with_pulse != "no"],
[PKG_CHECK_MODULES([PULSE], [libpulse],
[with_pulse=yes
AS_IF([test -z "$default_audio_method"],
[default_audio_method=pulse])
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_pulse.la"],
[AS_IF([test $with_pulse = "yes"],
[AC_MSG_FAILURE([pulseaudio is not available])])])])
AM_CONDITIONAL([pulse_support], [test $with_pulse = "yes"])
AC_SUBST([PULSE_CFLAGS])
AC_SUBST([PULSE_LIBS])
AS_IF([test $with_pulse = "yes"], [audio_methods="${audio_methods} pulse"])
# check for libao support
AC_ARG_WITH([libao],
[AS_HELP_STRING([--with-libao], [include libao support])],
[],
[with_libao=check])
AS_IF([test $with_libao != "no"],
[PKG_CHECK_MODULES([LIBAO], [ao],
[with_libao=yes
AS_IF([test -z "$default_audio_method"],
[default_audio_method=libao])
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_libao.la"],
[AS_IF([test $with_libao = yes],
[AC_MSG_FAILURE([libao is not available])])])])
AM_CONDITIONAL([libao_support], [test $with_libao = "yes"])
AC_SUBST([LIBAO_CFLAGS])
AC_SUBST([LIBAO_LIBS])
AS_IF([test $with_libao = "yes"], [audio_methods="${audio_methods} libao"])
# check for pipewire support
AC_ARG_WITH([pipewire],
[AS_HELP_STRING([--with-pipewire], [include pipewire support])],
[],
[with_pipewire=check])
AS_IF([test $with_pipewire != "no"],
[PKG_CHECK_MODULES([pipewire], [libpipewire-0.3],
[with_pipewire=yes
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_pipewire.la"],
[AS_IF([test $with_pipewire = yes],
[AC_MSG_FAILURE([pipewire is not available])])])])
AM_CONDITIONAL([pipewire_support], [test $with_pipewire = "yes"])
AC_SUBST([pipewire_CFLAGS])
AC_SUBST([pipewire_LIBS])
AS_IF([test $with_pipewire = "yes"], [audio_methods="${audio_methods} pipewire"])
# check for alsa support
AC_ARG_WITH([alsa],
[AS_HELP_STRING([--with-alsa], [include ALSA support])],
[],
[with_alsa=check])
AS_IF([test $with_alsa != "no"],
[PKG_CHECK_MODULES([ALSA], [alsa],
[with_alsa=yes
AS_IF([test -z "$default_audio_method"],
[default_audio_method=alsa])
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_alsa.la"],
[AS_IF([test $with_alsa = "yes"],
[AC_MSG_FAILURE([ALSA is not available])])])])
AM_CONDITIONAL([alsa_support], [test $with_alsa = "yes"])
AC_SUBST([ALSA_CFLAGS])
AC_SUBST([ALSA_LIBS])
AS_IF([test $with_alsa = "yes"], [audio_methods="${audio_methods} alsa"])
#check for OSS support
AC_ARG_WITH([oss],
[AS_HELP_STRING([--with-oss], [include oss support])],
[],
[with_oss=check])
AS_IF([test $with_oss != "no"],
[AC_CHECK_HEADER([sys/soundcard.h],
[with_oss=yes
AS_IF([test -z "$default_audio_method"],
[default_audio_method=oss])
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_oss.la"],
[AS_IF([test $with_oss = "yes"],
[AC_MSG_FAILURE([oss is not available])])])])
AM_CONDITIONAL([oss_support], [test $with_oss = "yes"])
AS_IF([test $with_oss = "yes"], [audio_methods="${audio_methods} oss"])
# check for NAS support
AC_ARG_WITH([nas],
[AS_HELP_STRING([--with-nas], [include network audio system (nas) support])],
[],
[with_nas=check])
AS_IF([test $with_nas != "no"],
[AC_CHECK_LIB([audio], [AuOpenServer],
[with_nas=yes
AS_IF([test -z "$default_audio_method"],
[default_audio_method=nas])
audio_dlopen_modules="$audio_dlopen_modules -dlopen ../audio/spd_nas.la";
NAS_LIBS="-L/usr/X11R6/lib -lXau -laudio"],
[AS_IF([test $with_nas = "yes"],
[AC_MSG_FAILURE([nas is not available])])],
[-L/usr/X11R6/lib -lXau])])
AM_CONDITIONAL([nas_support], [test $with_nas = "yes"])
AC_SUBST([NAS_LIBS])
AS_IF([test $with_nas = "yes"], [audio_methods="${audio_methods} nas"])
AC_ARG_WITH([default-audio-method],
[AS_HELP_STRING([--with-default-audio-method=<name>],
[defines default audio method (default - first discovered)])],
[default_audio_method="$withval"],
[])
AC_SUBST([default_audio_method])
# We'll build these modules:
AC_SUBST([audio_dlopen])
AC_SUBST([audio_dlopen_modules])
# current, age and revision values for libspeechd.
LIB_SPD_CURRENT=8 # Current main version (increment on every API change -- incompatible AND extensions)
LIB_SPD_REVISION=0 # Current minor version (increment on every implementation change)
LIB_SPD_AGE=6 # Number of backward compatible main versions (LIB_SPD_CURRENT incrementations since last incompatible)
AC_SUBST([LIB_SPD_CURRENT])
AC_SUBST([LIB_SPD_REVISION])
AC_SUBST([LIB_SPD_AGE])
# Setup GETTEXT
GETTEXT_PACKAGE=speech-dispatcher
AC_SUBST([GETTEXT_PACKAGE])
# Paths for configuration files:
spdconfdir='${sysconfdir}/speech-dispatcher'
AC_SUBST([spdconfdir])
clientconfdir='${spdconfdir}/clients'
AC_SUBST([clientconfdir])
moduleconfdir='${spdconfdir}/modules'
AC_SUBST([moduleconfdir])
pwpuconfdir='${sysconfdir}/pipewire/pipewire-pulse.conf.d'
AC_SUBST([pwpuconfdir])
# Paths for read-only copy of configuration files:
spdconforigdir='${datadir}/speech-dispatcher/conf'
AC_SUBST([spdconforigdir])
clientconforigdir='${spdconforigdir}/clients'
AC_SUBST([clientconforigdir])
spddesktopconforigdir='${spdconforigdir}/desktop'
AC_SUBST([spddesktopconforigdir])
moduleconforigdir='${spdconforigdir}/modules'
AC_SUBST([moduleconforigdir])
# Path for sound files:
snddatadir='${datadir}/sounds/speech-dispatcher'
AC_SUBST([snddatadir])
# Path for locale files:
localedatadir='${datadir}/speech-dispatcher/locale'
AC_SUBST([localedatadir])
# Path for module binaries:
AC_ARG_WITH([module-bindir],
AS_HELP_STRING([--with-module-bindir],[Directory where to install speech-dispatcher modules (defaults to ${libexecdir}/speech-dispatcher-modules)]),
[modulebindir=$withval], [modulebindir='${libexecdir}/speech-dispatcher-modules'])
AC_SUBST([modulebindir])
oldmodulebindir='${libdir}/speech-dispatcher-modules'
AC_SUBST([oldmodulebindir])
# Path for speech-dispatcher libraries:
spdlibdir='${libdir}/speech-dispatcher'
AC_SUBST([spdlibdir])
# Path for audio libraries and plugins:
audiodir="$spdlibdir"
AC_SUBST([audiodir])
# Path for speech-dispatcher include files:
spdincludedir=${includedir}/speech-dispatcher
AC_SUBST([spdincludedir])
includedir=${spdincludedir}
AC_SUBST([includedir])
# support for systemd unit files
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
if test "x$with_systemdsystemunitdir" != xno; then
AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
fi
AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
AC_ARG_WITH([systemduserunitdir],
AS_HELP_STRING([--with-systemduserunitdir=DIR], [Directory for systemd user service files]),
[], [with_systemduserunitdir=$($PKG_CONFIG --variable=systemduserunitdir systemd)])
if test -n "$have_libsystemd" -a -n "$with_systemduserunitdir" -a "x$with_systemduserunitdir" != xno ; then
use_libsystemd=yes
AC_SUBST([systemduserunitdir], [$with_systemduserunitdir])
AC_DEFINE([USE_LIBSYSTEMD], [1], [Used for activation via socket])
fi
AM_CONDITIONAL([USE_LIBSYSTEMD], [test "x$use_libsystemd" = "xyes"])
AM_CONDITIONAL(BUILD_HTML_DOC, [test "$EMAIL" = samuel.thibault@ens-lyon.org])
AC_CONFIG_FILES([Makefile
run-speechd
run-spd-say
speech-dispatcher.pc
config/Makefile
config/clients/Makefile
config/modules/Makefile
doc/Makefile
include/Makefile
locale/Makefile
po/Makevars
po/Makefile.in
src/Makefile
src/api/Makefile
src/api/c/Makefile
src/api/python/Makefile
src/api/python/speechd/Makefile
src/api/python/speechd_config/Makefile
src/audio/Makefile
src/clients/Makefile
src/clients/say/Makefile
src/clients/spdsend/Makefile
src/common/Makefile
src/modules/Makefile
src/server/Makefile
src/tests/Makefile],
[chmod +x run-speechd run-spd-say])
AC_OUTPUT
AC_MSG_NOTICE([output modules to be built are $output_modules])
AC_MSG_NOTICE([audio methods to be built are $audio_methods])
AC_MSG_NOTICE([Default audio method is $default_audio_method])