From 44d9c946fc77600985b869552887497c2a539d5c Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 18 Apr 2007 09:24:31 +0000 Subject: Fixed the legacy build system git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/split-3rd-party@1202 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/build/Makefile | 7 ++- pjmedia/build/os-auto.mak.in | 5 +++ pjmedia/build/os-darwinos.mak | 94 ++++++++++++++++++++++++++++++++++----- pjmedia/build/os-linux.mak | 87 ++++++++++++++++++++++++++++++++---- pjmedia/build/os-win32.mak | 95 +++++++++++++++++++++++++++++++++------- pjmedia/src/pjmedia/errno.c | 4 +- pjmedia/src/pjmedia/sound_port.c | 8 ---- 7 files changed, 254 insertions(+), 46 deletions(-) (limited to 'pjmedia') diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 7e9d060d..11ffdc9d 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -1,7 +1,10 @@ include ../../build.mak + +THIRD_PARTY:=$(PJDIR)/third_party +PA_DIR := $(THIRD_PARTY)/build/portaudio/src + include $(PJDIR)/build/common.mak -THIRD_PARTY:=../../third_party RULES_MAK := $(PJDIR)/build/rules.mak PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) @@ -38,7 +41,7 @@ export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \ export PJMEDIA_SRCDIR = ../src/pjmedia export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ alaw_ulaw.o alaw_ulaw_table.o clock_thread.o codec.o \ - conference.o echo_common.o echo_port.o echo_speex.o \ + conference.o echo_common.o echo_port.o \ echo_suppress.o endpoint.o errno.o \ g711.o jbuf.o master_port.o mem_capture.o mem_player.o \ null_port.o plc_common.o port.o splitcomb.o \ diff --git a/pjmedia/build/os-auto.mak.in b/pjmedia/build/os-auto.mak.in index 3c95d0d9..7e18ea92 100644 --- a/pjmedia/build/os-auto.mak.in +++ b/pjmedia/build/os-auto.mak.in @@ -52,6 +52,11 @@ 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 + +ifneq (@ac_no_speex_aec@,1) +export PJMEDIA_OBJS += echo_speex.o +endif + endif ifeq ($(AC_NO_ILBC_CODEC),1) diff --git a/pjmedia/build/os-darwinos.mak b/pjmedia/build/os-darwinos.mak index ea7492a5..f76d3403 100644 --- a/pjmedia/build/os-darwinos.mak +++ b/pjmedia/build/os-darwinos.mak @@ -1,17 +1,91 @@ + +# PJMEDIA features exclusion +export CFLAGS += + +# 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_old_darwinos + +# For Unix, specify if ALSA should be supported +AC_PA_USE_ALSA=0 + +# +# 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 (@ac_no_speex_aec@,1) +ifeq (0,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 + + +# +# 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 + # -# OS specific configuration for Darwin/MacOS target. +# Win32 DirectSound # +ifeq ($(AC_PJMEDIA_SND),ds) +export SOUND_OBJS = dsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +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. +# Last resort, null sound device # -export PJMEDIA_OBJS += $(PA_DIR)/pa_mac_hostapis.o \ - $(PA_DIR)/pa_unix_util.o \ - $(PA_DIR)/pa_mac_core.o +ifeq ($(AC_PJMEDIA_SND),null) +export SOUND_OBJS = nullsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND +endif -# $(PA_DIR)/pa_mac_alt.o -# $(PA_DIR)/ringbuffer.o -export OS_CFLAGS += $(CC_DEF)PA_USE_COREAUDIO=1 $(CC_DEF)PA_BIG_ENDIAN=1 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 diff --git a/pjmedia/build/os-win32.mak b/pjmedia/build/os-win32.mak index 78095336..0767ceec 100644 --- a/pjmedia/build/os-win32.mak +++ b/pjmedia/build/os-win32.mak @@ -1,26 +1,87 @@ +# PJMEDIA features exclusion +export CFLAGS += + +# 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_win32 + # -# OS specific configuration for Win32 OS target. +# 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 (@ac_no_speex_aec@,1) +ifeq (0,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 + # -# 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. +# PortAudio # -export PJMEDIA_OBJS += $(PA_DIR)/pa_win_hostapis.o $(PA_DIR)/pa_win_util.o \ - $(PA_DIR)/pa_win_wmme.o +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 -export OS_CFLAGS += -DPA_NO_ASIO -DPA_NO_DS \ - -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND +# +# Win32 DirectSound +# +ifeq ($(AC_PJMEDIA_SND),ds) +export SOUND_OBJS = dsound.o +export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +endif -# Example: -# to activate Null sound, uncomment these two lines below. -#export SOUND_OBJS = $(NULLSOUND_OBJS) -#export OS_CFLAGS += $(CC_DEF)PJMEDIA_HAS_NULL_SOUND +# +# 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 -# Example: -# to include only GSM and exclude Speex codec, uncomment the "export" line below. -# Note that you'll need to put "#define PJMEDIA_HAS_SPEEX_CODEC 0" in -# -#export CODEC_OBJS = $(GSM_OBJS) diff --git a/pjmedia/src/pjmedia/errno.c b/pjmedia/src/pjmedia/errno.c index e23c9a89..c2093430 100644 --- a/pjmedia/src/pjmedia/errno.c +++ b/pjmedia/src/pjmedia/errno.c @@ -19,7 +19,9 @@ #include #include #include -#include +#if PJMEDIA_SOUND_IMPLEMENTATION == PJMEDIA_SOUND_PORTAUDIO_SOUND +# include +#endif diff --git a/pjmedia/src/pjmedia/sound_port.c b/pjmedia/src/pjmedia/sound_port.c index 358f616c..1f64344b 100644 --- a/pjmedia/src/pjmedia/sound_port.c +++ b/pjmedia/src/pjmedia/sound_port.c @@ -25,14 +25,6 @@ #include #include /* pj_memset() */ -#ifndef PJMEDIA_SOUND_HAS_AEC -# define PJMEDIA_SOUND_HAS_AEC 1 -#endif - -#if defined(PJMEDIA_SOUND_HAS_AEC) && PJMEDIA_SOUND_HAS_AEC!=0 -# include -#endif - //#define SIMULATE_LOST_PCT 20 #define AEC_TAIL 128 /* default AEC length in ms */ #define AEC_SUSPEND_LIMIT 5 /* seconds of no activity */ -- cgit v1.2.3