From a651a3ab04f118b6de4a99f90efceff7f850d850 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 20 Apr 2006 20:42:17 +0000
Subject: [PATCH] On the BSDs, the speaker device headers only exist on
 platforms which support it.  Therefore, check for the appropriate header, and
 make the /dev/speaker code dependant on it.

---
 src/xpdev/Common.gmake | 8 ++++++++
 src/xpdev/xpbeep.c     | 6 +++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/xpdev/Common.gmake b/src/xpdev/Common.gmake
index 0473c3b499..a810bef79a 100644
--- a/src/xpdev/Common.gmake
+++ b/src/xpdev/Common.gmake
@@ -29,6 +29,14 @@ ifeq ($(shell if [ -c /dev/random ] ; then echo YES ; fi),YES)
  XPDEV-MT_CFLAGS	+=	-DHAS_DEV_RANDOM -DRANDOM_DEV=\"/dev/random\"
  XPDEV_CFLAGS		+=	-DHAS_DEV_RANDOM -DRANDOM_DEV=\"/dev/random\"
 endif
+ifeq ($(shell if [ -f /usr/include/machine/speaker.h ] ; then echo YES ; fi),YES)
+ XPDEV-MT_CFLAGS	+=	-DHAS_MACHINE_SPEAKER_H
+ XPDEV_CFLAGS		+=	-DHAS_MACHINE_SPEAKER_H
+endif
+ifeq ($(shell if [ -f /usr/include/machine/spkr.h ] ; then echo YES ; fi),YES)
+ XPDEV-MT_CFLAGS	+=	-DHAS_MACHINE_SPKR_H
+ XPDEV_CFLAGS		+=	-DHAS_MACHINE_SPKR_H
+endif
 
 # FreeBSD, OpenBSD, NetBSD, Linux, SunOS, and Darwin all have random()/srandom()
 ifeq ($(os),freebsd)
diff --git a/src/xpdev/xpbeep.c b/src/xpdev/xpbeep.c
index d9ba58062e..9d43fd3bc5 100644
--- a/src/xpdev/xpbeep.c
+++ b/src/xpdev/xpbeep.c
@@ -31,9 +31,9 @@
 		#include <sys/kbio.h>
 		#include <sys/kbd.h>
 	#endif
-	#if defined(__OpenBSD__) || defined(__NetBSD__)
+	#if (defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H)
 		#include <machine/spkr.h>
-	#elif defined(__FreeBSD__)
+	#elif defined(__FreeBSD__) && defined(HAS_MACHINE_SPEAKER_H)
 		#include <machine/speaker.h>
 	#endif
 #endif
@@ -354,7 +354,7 @@ void DLLCALL unix_beep(int freq, int dur)
 {
 	static int console_fd=-1;
 
-#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
+#if (defined(__FreeBSD__) && defined(HAS_MACHINE_SPEAKER_H)) || ((defined(__OpenBSD__) || defined(__NetBSD__)) && defined(HAS_MACHINE_SPKR_H))
 	int speaker_fd=-1;
 	tone_t tone;
 
-- 
GitLab