Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Added native OpenBSD audio driver (thanks vedge!)
  • Loading branch information
Sam Lantinga committed May 26, 2001
1 parent 80d11f2 commit 72d1775
Show file tree
Hide file tree
Showing 9 changed files with 581 additions and 7 deletions.
81 changes: 81 additions & 0 deletions README.OpenBSD
@@ -0,0 +1,81 @@
=============================================================
Using the Simple DirectMedia Layer with OpenBSD 2.9 and later
=============================================================

Author:
Peter Valchev <pvalchev@openbsd.org>

=======
Install
=======
There is an OpenBSD port for SDL and various other tools. Using
this port is recommended, since it contains all the needed patches
and configure arguments nicely organized in several FLAVORS you
can pick from. If you're unfamiliar with the OpenBSD ports system
please visit:
http://www.openbsd.org/ports.html
http://www.openbsd.org/anoncvs.html

You should have a precompiled binary package on your OpenBSD 2.9
or later CD-ROM, which you can easily add with pkg_add(1).

If for whatever reason you're unable to take the advantage of the
created port, or you want to stick with the newest fresh SDL from
the current CVS repository, here are some hints of what has left
unresolved and needs to be disabled/changed.

To build SDL with OSS + esound:

1. ./configure --disable-joystick \
--disable-pthread-sem \
--disable-nasm \
--enable-esd \
--enable-oss \
--disable-arts \
--disable-video-opengl

OR

To build SDL with native audio + esound (remove --disable-esd otherwise):
1. ./configure --disable-joystick \
--disable-pthread-sem \
--disable-nasm \
--enable-openbsdaudio \
--enable-esd \
--disable-arts \
--disable-video-opengl

If you need arts or GL, omit the responding --disable lines. In the
port, they're disabled by default, you need to specify flavors to
make use of them.

2. gmake # Yeah, GNU make is required, install the package
3. sudo gmake install

=========
Todo List
=========

Feedback is always welcome with anything you may find useful and
you can suggest.
For now, the following things have to be worked on:

1. The native audio should be widely tested and will eventually
become the default. At that moment I have not received any
feedback which should explain its current condition.

2. There are occurences of dynamic loading of drivers in the OpenGL
code section, and our a.out architectures need an underscore prefixed
to symbol names. Some solution to that may be a good thing. I can
fix it theoretically, but unfortunately I do not have the needed
hardware/configuration to test it. If you bump into that, email me.

===================
Contact Information
===================
Everybody is welcome to give me any suggestions and to report bugs
(as well as fixing them ;-) You can contact me by email:
Peter Valchev <pvalchev@openbsd.org>

$Id$

24 changes: 18 additions & 6 deletions configure.in
Expand Up @@ -278,6 +278,19 @@ CheckALSA()
fi
}

dnl Check whether we want to use OpenBSD native audio or not
CheckOPENBSDAUDIO()
{
AC_ARG_ENABLE(openbsdaudio,
[ --enable-openbsdaudio OpenBSD native audio support [default=no]],
, enable_openbsdaudio=no)
if test x$enable_audio = xyes -a x$enable_openbsdaudio = xyes; then
SYSTEM_LIBS="$SYSTEM_LIBS $ESD_LIBS"
AUDIO_SUBDIRS="$AUDIO_SUBDIRS openbsd"
AUDIO_DRIVERS="$AUDIO_DRIVERS openbsd/libaudio_openbsd.la"
fi
}

dnl Find the ESD includes and libraries
CheckESD()
{
Expand Down Expand Up @@ -1275,7 +1288,6 @@ case "$target" in
;;
*-*-openbsd*)
ARCH=openbsd
CFLAGS="$CFLAGS -Dunix"
CheckDummyVideo
CheckNASM
CheckOSS
Expand All @@ -1289,10 +1301,7 @@ case "$target" in
# Set up files for the main() stub
COPY_ARCH_SRC(src/main, linux, SDL_main.c)
# Set up files for the audio library
if test x$enable_audio = xyes; then
AUDIO_SUBDIRS="$AUDIO_SUBDIRS sun"
AUDIO_DRIVERS="$AUDIO_DRIVERS sun/libaudio_sun.la"
fi
CheckOPENBSDAUDIO
# Set up files for the joystick library
# (No joystick support yet)
if test x$enable_joystick = xyes; then
Expand Down Expand Up @@ -1322,6 +1331,8 @@ case "$target" in
if test x$enable_timers = xyes; then
COPY_ARCH_SRC(src/timer, linux, SDL_systimer.c)
fi
# OpenBSD does not define "unix"
CFLAGS="$CFLAGS -Dunix"
;;
*-*-sysv5*)
ARCH=sysv5
Expand Down Expand Up @@ -1882,7 +1893,7 @@ if test $ARCH = solaris; then
fi

if test $ARCH = openbsd; then
SDL_RLD_FLAGS="-Wl,-R\${exec_prefix}/lib -Wl,-R\${X11BASE}/lib"
SDL_RLD_FLAGS="-L${X11BASE}/lib -Wl,-rpath,\${exec_prefix}/lib -Wl,-rpath,${X11BASE}/lib"
fi

dnl Output the video drivers we use
Expand Down Expand Up @@ -1947,6 +1958,7 @@ src/audio/esd/Makefile
src/audio/macrom/Makefile
src/audio/nas/Makefile
src/audio/nto/Makefile
src/audio/openbsd/Makefile
src/audio/paudio/Makefile
src/audio/sun/Makefile
src/audio/ums/Makefile
Expand Down
1 change: 1 addition & 0 deletions docs.html
Expand Up @@ -16,6 +16,7 @@ <H2>
Major changes since SDL 1.0.0:
</H2>
<UL>
<LI> 1.2.1: Added native OpenBSD audio driver (thanks vedge!)
<LI> 1.2.1: Added detection of Open Sound System on Solaris x86
<LI> 1.2.1: Added initial support for Nano-X (thanks Hsieh-Fu!)
<LI> 1.2.1: Fixed endian detection on IA64 architectures (thanks Bill!)
Expand Down
2 changes: 1 addition & 1 deletion src/audio/Makefile.am
Expand Up @@ -6,7 +6,7 @@ noinst_LTLIBRARIES = libaudio.la
# Define which subdirectories need to be built
SUBDIRS = @AUDIO_SUBDIRS@
DIST_SUBDIRS = alsa arts baudio dma dmedia dsp esd macrom nas nto \
paudio sun ums windib windx5
openbsd paudio sun ums windib windx5

DRIVERS = @AUDIO_DRIVERS@

Expand Down
3 changes: 3 additions & 0 deletions src/audio/SDL_audio.c
Expand Up @@ -47,6 +47,9 @@ static AudioBootStrap *bootstrap[] = {
#ifdef ALSA_SUPPORT
&ALSA_bootstrap,
#endif
#ifdef __OpenBSD__
&OBSD_bootstrap;
#endif
#if (defined(unix) && !defined(__CYGWIN32__)) && \
!defined(OSS_SUPPORT) && !defined(ALSA_SUPPORT)
&AUDIO_bootstrap,
Expand Down
3 changes: 3 additions & 0 deletions src/audio/SDL_sysaudio.h
Expand Up @@ -106,6 +106,9 @@ extern AudioBootStrap DMA_bootstrap;
#ifdef ALSA_SUPPORT
extern AudioBootStrap ALSA_bootstrap;
#endif
#ifdef __OpenBSD__
extern AudioBootStrap OBSD_bootstrap;
#endif
#if (defined(unix) && !defined(__CYGWIN32__)) && \
!defined(OSS_SUPPORT) && !defined(ALSA_SUPPORT)
extern AudioBootStrap AUDIO_bootstrap;
Expand Down
9 changes: 9 additions & 0 deletions src/audio/openbsd/Makefile.am
@@ -0,0 +1,9 @@

## Makefile.am for SDL using the native OpenBSD sound driver

noinst_LTLIBRARIES = libaudio_openbsd.la
libaudio_openbsd_la_SOURCES = $(SRCS)

# The SDL audio driver sources
SRCS = SDL_openbsdaudio.c \
SDL_openbsdaudio.h

0 comments on commit 72d1775

Please sign in to comment.