From dea8f8aa43006bce1daf71893b65585d201a43ff Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Sun, 28 Jan 2007 11:54:39 +0000 Subject: [PATCH] configure.ac: Only look for ALSA libraries on Linux. On other platforms, we don't try to build the speaker subprocess. server/speaker.c: Don't build on platforms without ALSA. Organization: Straylight/Edgeware From: Richard Kettlewell These two files are tied together via the BUILD_SPEAKER define, so that when the speaker process supports other APIs, it can be turned back on. --- configure.ac | 30 ++++++++++++++++++++++++++---- server/speaker.c | 13 +++++++++++-- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 08139f6..f328610 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ # Process this file with autoconf to produce a configure script. # # This file is part of DisOrder. -# Copyright (C) 2004, 2005, 2006 Richard Kettlewell +# Copyright (C) 2004, 2005, 2006, 2007 Richard Kettlewell # # 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 @@ -25,11 +25,23 @@ AM_INIT_AUTOMAKE(disorder, 1.5.1+) AC_CONFIG_SRCDIR([server/disorderd.c]) AM_CONFIG_HEADER([config.h]) +# Find host type +AC_CANONICAL_HOST + # What we want to build want_server=yes want_gtk=yes want_python=yes +case "$host" in +*linux* | *Linux* ) + want_speaker=yes + ;; +* ) + want_speaker=no + ;; +esac + # Checks for programs. AC_PROG_CC AC_SET_MAKE @@ -122,9 +134,19 @@ if test $want_server = yes; then AC_CHECK_LIB([ao], [ao_initialize], [AC_SUBST(LIBAO,[-lao])], [missing_libraries="$missing_libraries libao"]) - AC_CHECK_LIB([asound], [snd_pcm_open], - [AC_SUBST(LIBASOUND,[-lasound])], - [missing_libraries="$missing_libraries libasound"]) + if test $want_speaker = yes; then + case "$host" in + *linux* | *Linux* ) + AC_CHECK_LIB([asound], [snd_pcm_open], + [AC_SUBST(LIBASOUND,[-lasound])], + [missing_libraries="$missing_libraries libasound"]) + AC_DEFINE([BUILD_SPEAKER],[disorder-speaker],[define to build the speaker subprocess]) + ;; + * ) + AC_MSG_ERROR([want to build speaker for unknown sound API]) + ;; + esac + fi fi if test $want_gtk = yes; then diff --git a/server/speaker.c b/server/speaker.c index 6296169..1593b78 100644 --- a/server/speaker.c +++ b/server/speaker.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder - * Copyright (C) 2005, 2006 Richard Kettlewell + * Copyright (C) 2005, 2006, 2007 Richard Kettlewell * * 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 @@ -41,7 +41,6 @@ #include #include #include -#include #include "configuration.h" #include "syscalls.h" @@ -51,6 +50,9 @@ #include "speaker.h" #include "user.h" +#if BUILD_SPEAKER +#include + #define BUFFER_SECONDS 5 /* How many seconds of input to * buffer. */ @@ -622,6 +624,13 @@ int main(int argc, char **argv) { info("stopped (parent terminated)"); exit(0); } +#else +int main(int attribute((unused)) argc, char **argv) { + set_progname(argv); + mem_init(0); + fatal(0, "disorder-speaker not supported on this platform"); +} +#endif /* Local Variables: -- [mdw]