1
0
Fork 0

Add the audio handling changes to build system and documentation

This commit is contained in:
krcroft 2019-11-05 17:29:58 -08:00 committed by Patryk Obara
parent edad78b5e0
commit dfc9b2db31
5 changed files with 95 additions and 34 deletions

42
INSTALL
View file

@ -1,4 +1,4 @@
Things needed for compilation.
DOSBox uses the following libraries:
SDL
The Simple DirectMedia Library available at http://www.libsdl.org
@ -10,6 +10,25 @@ SDL
Note that only version 1.2 and its subversions (1.2.8, 1.2.13 etc.)
are currently supported.
Opusfile, by Xiph
For compressed audio tracks (.opus) used with CDROM images.
Sources are available at https://opus-codec.org, however it is
also conveniently packages by all popular package managers for
Windows (MSYS2, MinGW, and Chocolatey), Linux (apt, dnf, zypper,
pacman), and OS X (Homebrew and MacPorts). Opus is today's
leading compression format and has replaced Vorbis as Ogg's
recommended lossy format. Is widely used in the largest audio and
video distribution platforms such as YouTube.
License: three-clause BSD
SpeexDSP, by Xiph
Needed to perform on-the-fly resampling of Opus-compressed CDROM
audio data in the event DOSBox's mixer sampling rate differs from
that of the Opus sampling rate. Sources are available at
https://opus-codec.org, however it is also conveniently packages
by all popular package managers.
License: three-clause BSD
Curses (optional)
If you want to enable the debugger you need a curses library.
ncurses should be installed on just about every unix distro.
@ -32,19 +51,18 @@ SDL_Net (optional)
For modem/ipx support. Get it from http://www.libsdl.org/projects/SDL_net/
Licensed under LGPL
SDL_Sound
For compressed audio on diskimages. (optional)
This is for cue/bin cdrom images with compressed (mp3/ogg) audio tracks.
Get it from http://icculus.org/SDL_sound
Licenced under LGPL
ALSA_Headers
(optional)
for Alsa support under linux. Part of the linux kernel sources
alsa-lib (optional)
For ALSA audio support under linux. Get it from https://www.alsa-project.org/
Licensed under LGPL
If you want compile from developer sources (SVN) under a unix system, you'll also need
automake (>=1.6), autoconf(>=2.50). Should be available at http://www.gnu.org
If you want compile from developer sources (SVN) under a unix system, you will need:
- Subversion to checkout the sources, or gzip and tar to unpack them from archive
- GCC (>=4.8.1) or Clang (>=3.3)
- automake (>=1.6)
- autoconf (>=2.50)
- autoconf-archive (>=2009.x)
- make (>= 3.8)
- pkg-config (>= 0.25)
For building on unix systems.
If you are building from developer sources run ./autogen.sh first before doing the following.

View file

@ -63,6 +63,21 @@ AC_CHECK_SIZEOF(unsigned long)
AC_CHECK_SIZEOF(unsigned long long)
AC_CHECK_SIZEOF(int *)
dnl check and use C++ circa-2003 language constructs.
AX_CXX_COMPILE_STDCXX_0X(noext, mandatory)
if test "$ax_cv_cxx_compile_cxx0x_native" = no; then
if test "$ax_cv_cxx_compile_cxx0x_cxx" = yes; then
CXXFLAGS="$CXXFLAGS -std=c++0x"
else
AC_MSG_ERROR([A C++ compiler that supports the C++03 standard is required])
fi
fi
# Note that the above macro is deprecated in favor of AX_CXX_COMPILE_STDCXX_11:
# https://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_0x.html
# However we use it anyway because it is suggested that C++03 should
# be the limit for now: https://sourceforge.net/p/dosbox/patches/283/#cb9a
dnl some semi complex check for sys/socket so it works on darwin as well
AC_CHECK_HEADERS([stdlib.h sys/types.h])
AC_CHECK_HEADERS([sys/socket.h netinet/in.h pwd.h], [], [],
@ -451,6 +466,15 @@ else
AC_MSG_WARN([Can't find SDL_net, internal modem and ipx disabled])
fi
# Check for required Opus decoding libraries
PKG_CHECK_MODULES([OPUSFILE], [opusfile],
[ LIBS="$LIBS ${OPUSFILE_LIBS}"
CPPFLAGS="$CPPFLAGS ${OPUSFILE_CFLAGS}" ], [])
PKG_CHECK_MODULES([SPEEXDSP], [speexdsp],
[ LIBS="$LIBS ${SPEEXDSP_LIBS}"
CPPFLAGS="$CPPFLAGS ${SPEEXDSP_CFLAGS}" ], [])
AH_TEMPLATE(C_X11_XKB,[define to 1 if you have XKBlib.h and X11 lib])
AC_CHECK_LIB(X11, main, have_x11_lib=yes, have_x11_lib=no, )
AC_CHECK_HEADER(X11/XKBlib.h, have_x11_h=yes, have_x11_h=no, )
@ -514,22 +538,7 @@ case "$host" in
esac
fi
AH_TEMPLATE(C_SDL_SOUND,[Define to 1 to enable SDL_sound support])
AC_CHECK_HEADER(SDL_sound.h,have_SDL_sound_h=yes,)
AC_CHECK_LIB(SDL_sound, Sound_Init, have_SDL_sound_init=yes,,)
AC_CHECK_LIB(SDL_sound, Sound_Seek, have_SDL_sound_seek=yes,,)
if test x$have_SDL_sound_h = xyes -a x$have_SDL_sound_init = xyes ; then
if test x$have_SDL_sound_seek = xyes ; then
LIBS="-lSDL_sound $LIBS"
AC_DEFINE(C_SDL_SOUND,1)
else
AC_MSG_WARN([Can't find SoundSeek in libSDL_Sound, libSDL_sound support disabled])
fi
else
AC_MSG_WARN([Can't find libSDL_sound, libSDL_sound support disabled])
fi
dnl Check for mprotect. Needed for 64 bits linux
dnl Check for mprotect. Needed for 64 bits linux
AH_TEMPLATE(C_HAVE_MPROTECT,[Define to 1 if you have the mprotect function])
AC_CHECK_HEADER([sys/mman.h], [
AC_CHECK_FUNC([mprotect],[AC_DEFINE(C_HAVE_MPROTECT,1)])
@ -551,8 +560,9 @@ int main(int argc,char * argv[]) {
dnl Some target detection and actions for them
case "$host" in
*-*-cygwin* | *-*-mingw32*)
*-*-cygwin* | *-*-mingw* | *-*-msys*)
LIBS="$LIBS -lwinmm"
AC_DEFINE(WIN32, 1, [Compiling on Windows])
AC_DEFINE(C_DIRECTSERIAL, 1, [ Define to 1 if you want serial passthrough support (Win32, Posix and OS/2 only).])
if test x$have_sdl_net_lib = xyes -a x$have_sdl_net_h = xyes ; then
LIBS="$LIBS -lws2_32"
@ -619,6 +629,7 @@ src/ints/Makefile
src/libs/Makefile
src/libs/zmbv/Makefile
src/libs/gui_tk/Makefile
src/libs/decoders/Makefile
src/misc/Makefile
src/shell/Makefile
src/platform/Makefile

View file

@ -1,6 +1,6 @@
AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = cpu debug dos fpu gui hardware libs ints misc shell platform
SUBDIRS = cpu debug dos fpu gui hardware libs ints misc shell platform
bin_PROGRAMS = dosbox
@ -14,8 +14,6 @@ endif
dosbox_SOURCES = dosbox.cpp $(ico_stuff)
dosbox_LDADD = cpu/libcpu.a debug/libdebug.a dos/libdos.a fpu/libfpu.a hardware/libhardware.a gui/libgui.a \
ints/libints.a misc/libmisc.a shell/libshell.a hardware/mame/libmame.a \
hardware/serialport/libserial.a libs/gui_tk/libgui_tk.a
hardware/serialport/libserial.a libs/gui_tk/libgui_tk.a libs/decoders/libdecoders.a
EXTRA_DIST = winres.rc dosbox.ico

View file

@ -1,3 +1,4 @@
AM_CPPFLAGS = -I$(top_srcdir)/include
SUBDIRS = zmbv gui_tk
SUBDIRS = zmbv gui_tk decoders

View file

@ -0,0 +1,33 @@
noinst_LIBRARIES = libdecoders.a
libdecoders_a_SOURCES = \
SDL_sound.c \
SDL_sound.h \
SDL_sound_internal.h \
audio_convert.c \
wav.c \
dr_wav.h \
flac.c \
dr_flac.h \
opus.c \
vorbis.c \
stb_vorbis.h \
mp3.cpp \
mp3_seek_table.cpp \
mp3_seek_table.h \
dr_mp3.h \
archive.h \
xxhash.c \
xxhash.h
libdecoders_a_CXXFLAGS = \
$(AM_CXXFLAGS) \
$(CXXFLAGS) \
-Wpedantic \
-Wall
libdecoders_a_CFLAGS = \
$(AM_CFLAGS) \
$(CFLAGS) \
-Wpedantic \
-Wall