BACKEND?=openal
+CURDIR=$(shell pwd)
ifeq "$(BACKEND)" "dsound"
LINK?=$(CXX)
else ifeq "$(BACKEND)" "oss"
+
EXTRALIBS=-lpthread
+# Get OSS emulation on BSD's
+EXTRALIBS+=$(if $(findstring $(shell uname),"BSD"),-lossaudio,)
+
LINK?="$(CC)"
else ifeq "$(BACKEND)" "openal"
EXTRALIBS=-lopenal
CC?=gcc
CXX?=g++
CCFLAGS?=-Wall -Wextra -pedantic -Wshadow -Wenum-compare -Wno-switch $(CIN_DEBUGFLAGS) $(CIN_FPICFLAGS)
-CFLAGS?=$(CCFLAGS) -ansi
-CXXFLAGS?=$(CCFLAGS) -std=c++98 -fno-rtti -fno-exceptions
+CFLAGS=$(CCFLAGS) -ansi
+CXXFLAGS=$(CCFLAGS) -std=c++98 -fno-rtti -fno-exceptions
AR?=ar
RANLIB?=ranlib
LINKFLAGS?=$(CIN_DEBUGFLAGS) $(CIN_FPICFLAGS)
BACKEND?=oss
+CURDIR=${PWD}
.if "${BACKEND}" == "dsound"
LINK?=$(CXX)
.else
LINK=$(CC)
.endif
+.if ${BACKEND} == oss
+EXTRALIBS=-lossaudio -lpthread
+.endif
+
.include "unix.mk"
#define _DEFAULT_SOURCE
#define _BSD_SOURCE
-#if defined __GNUC__
-#include <alloca.h>
-#endif
-
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
drv->id_counter = 0;
{
- int dev = -1, val = 0;
+ int dev = -1, val;
+ char buffer[] = "/dev/audio\0";
const char *const devname = getenv("AUDIODEV");
if(devname != NULL)
dev = open(devname, O_WRONLY);
if(dev == -1 && devname == NULL)
dev = open("/dev/dsp", O_WRONLY);
+ /* Some BSD systems have /dev/audio* instead. */
+ for(val = 0; dev == -1 && val <= 10; val++){
+ dev = open(buffer, O_WRONLY);
+ buffer[sizeof(buffer)-2] = '0' + val;
+ }
+
if(dev == -1){
ret = Cin_eDriverNoDevice;
goto fail_mutex;
libcin_oss.a: $(CIN_COMMONLIB) $(CIN_MIXERLIB) libcin_oss_x.a
if [ -f libcin_oss2.a ] ; then rm libcin_oss2.a ; fi
- echo 'create libcin_oss2.a\naddlib libcin_oss_x.a\naddlib $(CIN_COMMONLIB)\naddlib $(CIN_MIXERLIB)\nsave\nend\n' | $(AR) M
+ echo 'create libcin_oss2.a\naddlib libcin_oss_x.a\naddlib $(CIN_COMMONLIB)\naddlib $(CIN_MIXERLIB)\nsave\nend\n' | $(AR) -M
$(RANLIB) libcin_oss2.a
mv libcin_oss2.a libcin_oss.a