summaryrefslogtreecommitdiff
path: root/pjmedia/build/os-linux.mak
diff options
context:
space:
mode:
Diffstat (limited to 'pjmedia/build/os-linux.mak')
-rw-r--r--pjmedia/build/os-linux.mak87
1 files changed, 79 insertions, 8 deletions
diff --git a/pjmedia/build/os-linux.mak b/pjmedia/build/os-linux.mak
index adc1936b..f707eb5c 100644
--- a/pjmedia/build/os-linux.mak
+++ b/pjmedia/build/os-linux.mak
@@ -1,14 +1,85 @@
+# Linux
+
+# Define the desired sound device backend
+# Valid values are:
+# - pa_unix: PortAudio on Unix (OSS or ALSA)
+# - pa_darwinos: PortAudio on MacOSX (CoreAudio)
+# - pa_old_darwinos: PortAudio on MacOSX (old CoreAudio, for OSX 10.2)
+# - pa_win32: PortAudio on Win32 (WMME)
+# - ds: Win32 DirectSound (dsound.c)
+# - null: Null sound device (nullsound.c)
+AC_PJMEDIA_SND=pa_unix
+
+#
+# Codecs
+#
+AC_NO_G711_CODEC=0
+AC_NO_L16_CODEC=0
+AC_NO_GSM_CODEC=0
+AC_NO_SPEEX_CODEC=0
+AC_NO_ILBC_CODEC=0
+
+export CODEC_OBJS=
+
+ifeq ($(AC_NO_G711_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0
+else
+export CODEC_OBJS +=
+endif
+
+ifeq ($(AC_NO_L16_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_L16_CODEC=0
+else
+export CODEC_OBJS += l16.o
+endif
+
+ifeq ($(AC_NO_GSM_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_GSM_CODEC=0
+else
+export CODEC_OBJS += gsm.o
+endif
+
+ifeq ($(AC_NO_SPEEX_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0
+else
+export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include
+export CODEC_OBJS += speex_codec.o
+
+ifeq (1,1)
+export PJMEDIA_OBJS += echo_speex.o
+endif
+
+endif
+
+ifeq ($(AC_NO_ILBC_CODEC),1)
+export CFLAGS += -DPJMEDIA_HAS_ILBC_CODEC=0
+else
+export CODEC_OBJS += ilbc.o
+endif
+
+
#
-# OS specific configuration for Linux OS target.
+# PortAudio
#
+ifneq ($(findstring pa,$(AC_PJMEDIA_SND)),)
+export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND
+export SOUND_OBJS = pasound.o
+endif
#
-# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA
-# (the library) for this specific operating system. Object files common
-# to all operating systems should go in Makefile instead.
+# Win32 DirectSound
#
-export PJMEDIA_OBJS += $(PA_DIR)/pa_unix_hostapis.o $(PA_DIR)/pa_unix_util.o \
- $(PA_DIR)/pa_unix_oss.o
-# $(PA_DIR)/pa_linux_alsa.o
+ifeq ($(AC_PJMEDIA_SND),ds)
+export SOUND_OBJS = dsound.o
+export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND
+endif
+
+#
+# Last resort, null sound device
+#
+ifeq ($(AC_PJMEDIA_SND),null)
+export SOUND_OBJS = nullsound.o
+export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND
+endif
+
-export OS_CFLAGS += $(CC_DEF)PA_USE_OSS=1