chiark / gitweb /
configure.ac: Only look for ALSA libraries on Linux. On other platforms,
authorRichard Kettlewell <rjk@greenend.org.uk>
Sun, 28 Jan 2007 11:54:39 +0000 (11:54 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sun, 28 Jan 2007 11:54:39 +0000 (11:54 +0000)
              we don't try to build the speaker subprocess.
server/speaker.c: Don't build on platforms without ALSA.

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
server/speaker.c

index 08139f6b792442930788dfb91496eada19cd0320..f328610ee3faa37976cb4aff00ba0137d4ae995a 100644 (file)
@@ -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
index 6296169b1058d9733792b487f0cbf47876efc8d1..1593b781e3a0f23a160ccf3c32c664b3335d241c 100644 (file)
@@ -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 <assert.h>
 #include <sys/select.h>
 #include <time.h>
-#include <alsa/asoundlib.h>
 
 #include "configuration.h"
 #include "syscalls.h"
@@ -51,6 +50,9 @@
 #include "speaker.h"
 #include "user.h"
 
+#if BUILD_SPEAKER
+#include <alsa/asoundlib.h>
+
 #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: