From ccd90bbee297e3144f4aaec0fefeacf6f68cc138 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Tue, 10 Mar 2009 15:14:11 +0000 Subject: [PATCH] Continuing task #741 for aps-direct: updated GNU build system for the new audiodev git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/projects/aps-direct@2501 74dad513-b988-da41-8d7b-12977e46ad98 --- Makefile | 1 + build.mak.in | 1 + pjmedia/build/Makefile | 33 +++++++++++++++++++++++++-------- pjmedia/build/os-auto.mak.in | 18 +++++++++--------- pjsip-apps/build/Makefile | 1 + 5 files changed, 37 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index 507bb6820..288f6eab4 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \ pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \ pjnath/lib/libpjnath-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-$(TARGET_NAME).a \ + pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME).a \ pjmedia/lib/libpjmedia-codec-$(TARGET_NAME).a \ pjsip/lib/libpjsip-$(TARGET_NAME).a \ pjsip/lib/libpjsip-ua-$(TARGET_NAME).a \ diff --git a/build.mak.in b/build.mak.in index d0fea1590..82f6a11bd 100644 --- a/build.mak.in +++ b/build.mak.in @@ -60,6 +60,7 @@ export APP_LDLIBS := -lpjsua-$(TARGET_NAME)\ -lpjsip-$(TARGET_NAME)\ -lpjmedia-codec-$(TARGET_NAME)\ -lpjmedia-$(TARGET_NAME)\ + -lpjmedia-audiodev-$(TARGET_NAME)\ -lpjnath-$(TARGET_NAME)\ -lpjlib-util-$(TARGET_NAME)\ $(APP_THIRD_PARTY_LIBS)\ diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 291339a76..e12541678 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -18,8 +18,8 @@ PJNATH_LIB:=$(PJDIR)/pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT) export PJMEDIA_LIB:=../lib/libpjmedia-$(TARGET_NAME)$(LIBEXT) export PJMEDIA_CODEC_LIB:=../lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT) export PJSDP_LIB:=../lib/libpjsdp-$(TARGET_NAME)$(LIBEXT) +export PJMEDIA_AUDIODEV_LIB:=../lib/libpjmedia-audiodev-$(TARGET_NAME)$(LIBEXT) -NULLSOUND_OBJS := nullsound.o ############################################################################### # Gather all flags. @@ -34,6 +34,7 @@ export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ $(HOST_CXXFLAGS) $(CXXFLAGS) export _LDFLAGS := $(subst /,$(HOST_PSEP),$(PJMEDIA_LIB)) \ + $(subst /,$(HOST_PSEP),$(PJMEDIA_AUDIODEV_LIB)) \ $(subst /,$(HOST_PSEP),$(PJMEDIA_CODEC_LIB)) \ $(subst /,$(HOST_PSEP),$(PJLIB_LIB)) \ $(subst /,$(HOST_PSEP),$(PJLIB_UTIL_LIB)) \ @@ -49,23 +50,32 @@ 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 delaybuf.o echo_common.o echo_port.o \ - echo_suppress.o endpoint.o errno.o \ + conference.o conf_switch.o delaybuf.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 \ resample_resample.o resample_libsamplerate.o \ resample_port.o rtcp.o rtcp_xr.o rtp.o \ - sdp.o sdp_cmp.o sdp_neg.o \ - session.o silencedet.o sound_port.o stereo_port.o \ + sdp.o sdp_cmp.o sdp_neg.o session.o silencedet.o \ + sound_legacy.o sound_port.o stereo_port.o \ stream.o tonegen.o transport_adapter_sample.o \ transport_ice.o transport_loop.o \ transport_srtp.o transport_udp.o \ wav_player.o wav_playlist.o wav_writer.o wave.o \ - wsola.o $(SOUND_OBJS) $(NULLSOUND_OBJS) + wsola.o export PJMEDIA_CFLAGS += $(_CFLAGS) +############################################################################### +# Defines for building PJMEDIA-AUDIODEV library +# +export PJMEDIA_AUDIODEV_SRCDIR = ../src/pjmedia-audiodev +export PJMEDIA_AUDIODEV_OBJS += audiodev.o audiotest.o errno.o legacy_dev.o pa_dev.o \ + wmme_dev.o +export PJMEDIA_AUDIODEV_CFLAGS += $(_CFLAGS) + + ############################################################################### # Defines for building PJSDP library # Note that SDP functionality is already INCLUDED in PJMEDIA. @@ -106,7 +116,7 @@ export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT # # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory. # -TARGETS := pjmedia pjmedia-codec pjsdp pjmedia-test +TARGETS := pjmedia pjmedia-audiodev pjmedia-codec pjsdp pjmedia-test all: $(TARGETS) @@ -121,7 +131,7 @@ doc: dep: depend distclean: realclean -.PHONY: dep depend pjmedia pjmedia-codec pjmedia-test clean realclean distclean +.PHONY: dep depend pjmedia pjmedia-codec pjmedia-audiodev pjmedia-test clean realclean distclean pjmedia: $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $(PJMEDIA_LIB) @@ -129,6 +139,9 @@ pjmedia: pjmedia-codec: $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $(PJMEDIA_CODEC_LIB) +pjmedia-audiodev: + $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $(PJMEDIA_AUDIODEV_LIB) + pjsdp: $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $(PJSDP_LIB) @@ -152,22 +165,26 @@ pjmedia-test: $(PJMEDIA_LIB) clean: $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ + $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_AUDIODEV app=pjmedia-audiodev $@ $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ realclean: $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-$(TARGET_NAME).depend),$(HOST_RMR)) + $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-audiodev-$(TARGET_NAME).depend),$(HOST_RMR)) $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-codec-$(TARGET_NAME).depend),$(HOST_RMR)) $(subst @@,$(subst /,$(HOST_PSEP),.pjmedia-test-$(TARGET_NAME).depend),$(HOST_RMR)) $(subst @@,$(subst /,$(HOST_PSEP),.pjsdp-$(TARGET_NAME).depend),$(HOST_RMR)) $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ + $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia-audiodev $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ depend: $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia $@ + $(MAKE) -f $(RULES_MAK) APP=PJMEDIA app=pjmedia-audiodev $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_CODEC app=pjmedia-codec $@ $(MAKE) -f $(RULES_MAK) APP=PJMEDIA_TEST app=pjmedia-test $@ $(MAKE) -f $(RULES_MAK) APP=PJSDP app=pjsdp $@ diff --git a/pjmedia/build/os-auto.mak.in b/pjmedia/build/os-auto.mak.in index 656e3d58b..74911aea6 100644 --- a/pjmedia/build/os-auto.mak.in +++ b/pjmedia/build/os-auto.mak.in @@ -78,23 +78,24 @@ 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 +export CFLAGS += -I$(THIRD_PARTY)/build/portaudio -I$(THIRD_PARTY)/portaudio/include -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=1 endif # -# Win32 DirectSound +# Windows specific # -ifeq ($(AC_PJMEDIA_SND),ds) -export SOUND_OBJS = dsound.o -export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_WIN32_DIRECT_SOUND +ifneq ($(findstring win32,$(AC_PJMEDIA_SND)),) +export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=1 +else +export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_WMME=0 endif # # Null sound device # ifeq ($(AC_PJMEDIA_SND),null) -export SOUND_OBJS = nullsound.o +# ***** Error ****** +# This will not work either with the new Audiodev export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_NULL_SOUND endif @@ -102,8 +103,7 @@ endif # External sound device # ifeq ($(AC_PJMEDIA_SND),external) -export SOUND_OBJS = -export CFLAGS += -DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_EXTERNAL +export CFLAGS += -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0 -DPJMEDIA_AUDIO_DEV_HAS_WMME=0 endif diff --git a/pjsip-apps/build/Makefile b/pjsip-apps/build/Makefile index ac004c581..56e540fb2 100644 --- a/pjsip-apps/build/Makefile +++ b/pjsip-apps/build/Makefile @@ -8,6 +8,7 @@ PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT) PJNATH_LIB:=../../pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT) PJMEDIA_LIB:=../../pjmedia/lib/libpjmedia-$(TARGET_NAME)$(LIBEXT) +PJMEDIA_AUDIODEV_LIB:=../../pjmedia/lib/libpjmedia-audiodev-$(TARGET_NAME)$(LIBEXT) PJMEDIA_CODEC_LIB:=../../pjmedia/lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT) PJSIP_LIB:=../../pjsip/lib/libpjsip-$(TARGET_NAME)$(LIBEXT) PJSIP_UA_LIB:=../../pjsip/lib/libpjsip-ua-$(TARGET_NAME)$(LIBEXT)