Fixed the legacy build system

git-svn-id: https://svn.pjsip.org/repos/pjproject/branches/split-3rd-party@1202 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
Benny Prijono 2007-04-18 09:24:31 +00:00
parent 25dfd1dfa1
commit d962784580
25 changed files with 566 additions and 314 deletions

View File

@ -1,7 +1,7 @@
include build.mak include build.mak
include build/host-$(HOST_NAME).mak include build/host-$(HOST_NAME).mak
DIRS = pjlib pjlib-util pjnath pjmedia pjsip pjsip-apps DIRS = pjlib pjlib-util pjnath third_party pjmedia pjsip pjsip-apps
ifdef MINSIZE ifdef MINSIZE
MAKE_FLAGS := MINSIZE=1 MAKE_FLAGS := MINSIZE=1
@ -9,13 +9,11 @@ endif
all clean dep depend distclean doc print realclean: all clean dep depend distclean doc print realclean:
for dir in $(DIRS); do \ for dir in $(DIRS); do \
if [ -d $$dir ]; then \
if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \ if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \
true; \ true; \
else \ else \
exit 1; \ exit 1; \
fi; \ fi; \
fi; \
done done
LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \ LIBS = pjlib/lib/libpj-$(TARGET_NAME).a \

View File

@ -308,7 +308,7 @@ ac_includes_default="\
# include <unistd.h> # include <unistd.h>
#endif" #endif"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX ac_pjdir CPP EGREP ac_os_objs ac_pjmedia_snd ac_pa_cflags ac_pa_use_alsa ac_no_small_filter ac_no_large_filter ac_no_g711_plc ac_no_speex_aec ac_no_g711_codec ac_no_l16_codec ac_no_gsm_codec ac_no_speex_codec ac_no_ilbc_codec ac_no_ssl openssl_h_present libssl_present libcrypto_present ac_cross_compile ac_linux_poll ac_host ac_main_obj LIBOBJS LTLIBOBJS' ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX ac_pjdir CPP EGREP ac_os_objs ac_pjmedia_snd ac_pa_cflags ac_pa_use_alsa ac_no_small_filter ac_no_large_filter ac_no_speex_aec ac_no_g711_codec ac_no_l16_codec ac_no_gsm_codec ac_no_speex_codec ac_no_ilbc_codec ac_no_ssl openssl_h_present libssl_present libcrypto_present ac_cross_compile ac_linux_poll ac_host ac_main_obj LIBOBJS LTLIBOBJS'
ac_subst_files='' ac_subst_files=''
# Initialize some variables set by options. # Initialize some variables set by options.
@ -1439,7 +1439,7 @@ test -n "$target_alias" &&
program_prefix=${target_alias}- program_prefix=${target_alias}-
ac_config_headers="$ac_config_headers pjlib/include/pj/compat/os_auto.h pjlib/include/pj/compat/m_auto.h pjmedia/include/pjmedia/config_auto.h pjmedia/include/pjmedia-codec/config_auto.h pjsip/include/pjsip/sip_autoconf.h" ac_config_headers="$ac_config_headers pjlib/include/pj/compat/os_auto.h pjlib/include/pj/compat/m_auto.h pjmedia/include/pjmedia/config_auto.h pjmedia/include/pjmedia-codec/config_auto.h pjsip/include/pjsip/sip_autoconf.h"
ac_config_files="$ac_config_files build.mak build/os-auto.mak pjlib/build/os-auto.mak pjlib-util/build/os-auto.mak pjmedia/build/os-auto.mak pjsip/build/os-auto.mak third_party/Makefile third_party/build/portaudio/Makefile" ac_config_files="$ac_config_files build.mak build/os-auto.mak pjlib/build/os-auto.mak pjlib-util/build/os-auto.mak pjmedia/build/os-auto.mak pjsip/build/os-auto.mak third_party/build/portaudio/os-auto.mak third_party/build/os-auto.mak"
@ -9013,9 +9013,6 @@ else
echo "${ECHO_T}Checking if large filter is disabled... no" >&6 echo "${ECHO_T}Checking if large filter is disabled... no" >&6
fi; fi;
ac_no_g711_plc=yes
# Check whether --enable-speex-aec or --disable-speex-aec was given. # Check whether --enable-speex-aec or --disable-speex-aec was given.
if test "${enable_speex_aec+set}" = set; then if test "${enable_speex_aec+set}" = set; then
@ -10081,8 +10078,8 @@ do
"pjlib-util/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjlib-util/build/os-auto.mak" ;; "pjlib-util/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjlib-util/build/os-auto.mak" ;;
"pjmedia/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjmedia/build/os-auto.mak" ;; "pjmedia/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjmedia/build/os-auto.mak" ;;
"pjsip/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjsip/build/os-auto.mak" ;; "pjsip/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES pjsip/build/os-auto.mak" ;;
"third_party/Makefile" ) CONFIG_FILES="$CONFIG_FILES third_party/Makefile" ;; "third_party/build/portaudio/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES third_party/build/portaudio/os-auto.mak" ;;
"third_party/build/portaudio/Makefile" ) CONFIG_FILES="$CONFIG_FILES third_party/build/portaudio/Makefile" ;; "third_party/build/os-auto.mak" ) CONFIG_FILES="$CONFIG_FILES third_party/build/os-auto.mak" ;;
"pjlib/include/pj/compat/os_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/os_auto.h" ;; "pjlib/include/pj/compat/os_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/os_auto.h" ;;
"pjlib/include/pj/compat/m_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/m_auto.h" ;; "pjlib/include/pj/compat/m_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjlib/include/pj/compat/m_auto.h" ;;
"pjmedia/include/pjmedia/config_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjmedia/include/pjmedia/config_auto.h" ;; "pjmedia/include/pjmedia/config_auto.h" ) CONFIG_HEADERS="$CONFIG_HEADERS pjmedia/include/pjmedia/config_auto.h" ;;
@ -10203,7 +10200,6 @@ s,@ac_pa_cflags@,$ac_pa_cflags,;t t
s,@ac_pa_use_alsa@,$ac_pa_use_alsa,;t t s,@ac_pa_use_alsa@,$ac_pa_use_alsa,;t t
s,@ac_no_small_filter@,$ac_no_small_filter,;t t s,@ac_no_small_filter@,$ac_no_small_filter,;t t
s,@ac_no_large_filter@,$ac_no_large_filter,;t t s,@ac_no_large_filter@,$ac_no_large_filter,;t t
s,@ac_no_g711_plc@,$ac_no_g711_plc,;t t
s,@ac_no_speex_aec@,$ac_no_speex_aec,;t t s,@ac_no_speex_aec@,$ac_no_speex_aec,;t t
s,@ac_no_g711_codec@,$ac_no_g711_codec,;t t s,@ac_no_g711_codec@,$ac_no_g711_codec,;t t
s,@ac_no_l16_codec@,$ac_no_l16_codec,;t t s,@ac_no_l16_codec@,$ac_no_l16_codec,;t t
@ -10707,3 +10703,25 @@ if test "$no_create" != yes; then
fi fi
echo "$as_me:$LINENO: result:
The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories.
Customizations can be put in:
- 'user.mak'
- 'pjlib/include/pj/config_site.h'
The next step now is to run 'make dep' and 'make'.
" >&5
echo "${ECHO_T}
The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories.
Customizations can be put in:
- 'user.mak'
- 'pjlib/include/pj/config_site.h'
The next step now is to run 'make dep' and 'make'.
" >&6

View File

@ -17,8 +17,8 @@ AC_CONFIG_FILES([build.mak
pjlib-util/build/os-auto.mak pjlib-util/build/os-auto.mak
pjmedia/build/os-auto.mak pjmedia/build/os-auto.mak
pjsip/build/os-auto.mak pjsip/build/os-auto.mak
third_party/Makefile third_party/build/portaudio/os-auto.mak
third_party/build/portaudio/Makefile third_party/build/os-auto.mak
]) ])
@ -517,3 +517,15 @@ esac
AC_SUBST(CC) AC_SUBST(CC)
AC_OUTPUT() AC_OUTPUT()
AC_MSG_RESULT([
The configuration for current target has been written to 'build.mak', and 'os-auto.mak' in various build directories.
Customizations can be put in:
- 'user.mak'
- 'pjlib/include/pj/config_site.h'
The next step now is to run 'make dep' and 'make'.
])

View File

@ -2,7 +2,7 @@ export OS_CFLAGS := $(CC_DEF)PJ_LINUX=1
export OS_CXXFLAGS := export OS_CXXFLAGS :=
export OS_LDFLAGS := $(CC_LIB)pthread$(LIBEXT2) -lm export OS_LDFLAGS := -lportaudio-$(TARGET_NAME) -lgsmcodec-$(TARGET_NAME) -lilbccodec-$(TARGET_NAME) -lspeex-$(TARGET_NAME) -lresample-$(TARGET_NAME) $(CC_LIB)pthread$(LIBEXT2) -lm
export OS_SOURCES := export OS_SOURCES :=

View File

@ -1,5 +1,7 @@
#!/bin/sh #!/bin/sh
PJDIR=`pwd`
# #
# Detect machine, unless the choice has been made already. # Detect machine, unless the choice has been made already.
# #
@ -91,16 +93,18 @@ if test -f build.mak; then
cp -f build.mak build.mak.old cp -f build.mak build.mak.old
fi fi
echo 'Writing build.mak as follows:' echo 'build.mak configurations are set as follows:'
echo " MACHINE_NAME = $MACHINE_NAME" echo " PJDIR = $PJDIR"
echo " OS_NAME = $OS_NAME" echo " MACHINE_NAME = $MACHINE_NAME"
echo " HOST_NAME = $HOST_NAME" echo " OS_NAME = $OS_NAME"
echo " CC_NAME = $CC_NAME" echo " HOST_NAME = $HOST_NAME"
echo " TARGET_NAME = $TARGET_NAME" echo " CC_NAME = $CC_NAME"
echo " CROSS_COMPILE= $CROSS_COMPILE" echo " TARGET_NAME = $TARGET_NAME"
echo " LINUX_POLL = $LINUX_POLL" echo " CROSS_COMPILE = $CROSS_COMPILE"
echo " LINUX_POLL = $LINUX_POLL"
echo "# Auto-generated build.mak" > build.mak echo "# Auto-generated build.mak" > build.mak
echo "export PJDIR := $PJDIR" >> build.mak
echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak echo "export MACHINE_NAME := $MACHINE_NAME" >> build.mak
echo "export OS_NAME := $OS_NAME" >> build.mak echo "export OS_NAME := $OS_NAME" >> build.mak
echo "export HOST_NAME := $HOST_NAME" >> build.mak echo "export HOST_NAME := $HOST_NAME" >> build.mak
@ -109,8 +113,31 @@ echo "export TARGET_NAME := $TARGET_NAME" >> build.mak
echo "export CROSS_COMPILE := $CROSS_COMPILE" >> build.mak echo "export CROSS_COMPILE := $CROSS_COMPILE" >> build.mak
echo "export LINUX_POLL := $LINUX_POLL" >> build.mak echo "export LINUX_POLL := $LINUX_POLL" >> build.mak
echo >> build.mak
cat << EOF >> build.mak
export APP_CC = \$(CROSS_COMPILE)\$(CC_NAME)
export APP_CFLAGS = \$(CC_CFLAGS) \$(OS_CFLAGS) \$(HOST_CFLAGS) \$(M_CFLAGS) \$(CFLAGS) -I\$(PJDIR)/pjlib/include -I\$(PJDIR)/pjlib-util/include -I\$(PJDIR)/pjnath/include -I\$(PJDIR)/pjmedia/include -I\$(PJDIR)/pjsip/include
export APP_CXXFLAGS = \$(APP_CFLAGS)
export APP_LDFLAGS = -L\$(PJDIR)/pjlib/lib -L\$(PJDIR)/pjlib-util/lib -L\$(PJDIR)/pjnath/lib -L\$(PJDIR)/pjmedia/lib -L\$(PJDIR)/pjsip/lib -L\$(PJDIR)/third_party/lib
export APP_LDLIBS = -lpjsua-\$(TARGET_NAME) -lpjsip-ua-\$(TARGET_NAME) -lpjsip-simple-\$(TARGET_NAME) -lpjsip-\$(TARGET_NAME) -lpjmedia-codec-\$(TARGET_NAME) -lpjmedia-\$(TARGET_NAME) -lpjnath-\$(TARGET_NAME) -lpjlib-util-\$(TARGET_NAME) \$(APP_THIRD_PARTY_LIBS) -lpj-\$(TARGET_NAME) \$(CC_LDFLAGS) \$(OS_LDFLAGS) \$(M_LDFLAGS) \$(HOST_LDFLAGS) \$(LDFLAGS)
export PJ_DIR = \$(PJDIR)
export PJ_CC = \$(APP_CC)
export PJ_CFLAGS = \$(APP_CFLAGS)
export PJ_CXXFLAGS = \$(APP_CXXFLAGS)
export PJ_LDFLAGS = \$(APP_LDFLAGS)
export PJ_LDLIBS = \$(APP_LDLIBS)
EOF
touch user.mak touch user.mak
echo echo
echo "The configuration for current host has been written to 'build.mak'." echo "The configuration for current host has been written to 'build.mak'."
echo "Customizations can be put in:" echo "Customizations can be put in:"

View File

@ -1,7 +1,10 @@
include ../../build.mak include ../../build.mak
THIRD_PARTY:=$(PJDIR)/third_party
PA_DIR := $(THIRD_PARTY)/build/portaudio/src
include $(PJDIR)/build/common.mak include $(PJDIR)/build/common.mak
THIRD_PARTY:=../../third_party
RULES_MAK := $(PJDIR)/build/rules.mak RULES_MAK := $(PJDIR)/build/rules.mak
PJLIB_LIB:=$(PJDIR)/pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT) 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_SRCDIR = ../src/pjmedia
export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ export PJMEDIA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
alaw_ulaw.o alaw_ulaw_table.o clock_thread.o codec.o \ 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 \ echo_suppress.o endpoint.o errno.o \
g711.o jbuf.o master_port.o mem_capture.o mem_player.o \ g711.o jbuf.o master_port.o mem_capture.o mem_player.o \
null_port.o plc_common.o port.o splitcomb.o \ null_port.o plc_common.o port.o splitcomb.o \

View File

@ -52,6 +52,11 @@ export CFLAGS += -DPJMEDIA_HAS_SPEEX_CODEC=0
else else
export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include export CFLAGS += -I$(THIRD_PARTY)/build/speex -I$(THIRD_PARTY)/speex/include
export CODEC_OBJS += speex_codec.o export CODEC_OBJS += speex_codec.o
ifneq (@ac_no_speex_aec@,1)
export PJMEDIA_OBJS += echo_speex.o
endif
endif endif
ifeq ($(AC_NO_ILBC_CODEC),1) ifeq ($(AC_NO_ILBC_CODEC),1)

View File

@ -1,17 +1,91 @@
#
# OS specific configuration for Darwin/MacOS target. # 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
# #
# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA # Codecs
# (the library) for this specific operating system. Object files common
# to all operating systems should go in Makefile instead.
# #
export PJMEDIA_OBJS += $(PA_DIR)/pa_mac_hostapis.o \ AC_NO_G711_CODEC=0
$(PA_DIR)/pa_unix_util.o \ AC_NO_L16_CODEC=0
$(PA_DIR)/pa_mac_core.o 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
#
# Win32 DirectSound
#
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
# $(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

View File

@ -1,14 +1,85 @@
# # Linux
# OS specific configuration for Linux OS target.
# # 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
# #
# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA # Codecs
# (the library) for this specific operating system. Object files common
# to all operating systems should go in Makefile instead.
# #
export PJMEDIA_OBJS += $(PA_DIR)/pa_unix_hostapis.o $(PA_DIR)/pa_unix_util.o \ AC_NO_G711_CODEC=0
$(PA_DIR)/pa_unix_oss.o AC_NO_L16_CODEC=0
# $(PA_DIR)/pa_linux_alsa.o 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
#
# 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
#
# Win32 DirectSound
#
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

View File

@ -1,26 +1,87 @@
# # PJMEDIA features exclusion
# OS specific configuration for Win32 OS target. 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
# #
# PJMEDIA_OBJS specified here are object files to be included in PJMEDIA # Codecs
# (the library) for this specific operating system. Object files common
# to all operating systems should go in Makefile instead.
# #
export PJMEDIA_OBJS += $(PA_DIR)/pa_win_hostapis.o $(PA_DIR)/pa_win_util.o \ AC_NO_G711_CODEC=0
$(PA_DIR)/pa_win_wmme.o AC_NO_L16_CODEC=0
AC_NO_GSM_CODEC=0
AC_NO_SPEEX_CODEC=0
AC_NO_ILBC_CODEC=0
export OS_CFLAGS += -DPA_NO_ASIO -DPA_NO_DS \ export CODEC_OBJS=
-DPJMEDIA_SOUND_IMPLEMENTATION=PJMEDIA_SOUND_PORTAUDIO_SOUND
# Example: ifeq ($(AC_NO_G711_CODEC),1)
# to activate Null sound, uncomment these two lines below. export CFLAGS += -DPJMEDIA_HAS_G711_CODEC=0
#export SOUND_OBJS = $(NULLSOUND_OBJS) else
#export OS_CFLAGS += $(CC_DEF)PJMEDIA_HAS_NULL_SOUND 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
#
# Win32 DirectSound
#
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
# 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
# <pj/config_site.h>
#export CODEC_OBJS = $(GSM_OBJS)

View File

@ -19,7 +19,9 @@
#include <pjmedia/errno.h> #include <pjmedia/errno.h>
#include <pjmedia/types.h> #include <pjmedia/types.h>
#include <pj/string.h> #include <pj/string.h>
#include <portaudio.h> #if PJMEDIA_SOUND_IMPLEMENTATION == PJMEDIA_SOUND_PORTAUDIO_SOUND
# include <portaudio.h>
#endif

View File

@ -25,14 +25,6 @@
#include <pj/rand.h> #include <pj/rand.h>
#include <pj/string.h> /* pj_memset() */ #include <pj/string.h> /* 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 <speex/speex_echo.h>
#endif
//#define SIMULATE_LOST_PCT 20 //#define SIMULATE_LOST_PCT 20
#define AEC_TAIL 128 /* default AEC length in ms */ #define AEC_TAIL 128 /* default AEC length in ms */
#define AEC_SUSPEND_LIMIT 5 /* seconds of no activity */ #define AEC_SUSPEND_LIMIT 5 /* seconds of no activity */

View File

@ -89,7 +89,7 @@ export TEST_OBJS += dlg_core_test.o dns_test.o msg_err_test.o \
tsx_basic_test.o tsx_bench.o tsx_uac_test.o \ tsx_basic_test.o tsx_bench.o tsx_uac_test.o \
tsx_uas_test.o txdata_test.o uri_test.o tsx_uas_test.o txdata_test.o uri_test.o
export TEST_CFLAGS += $(_CFLAGS) export TEST_CFLAGS += $(_CFLAGS)
export TEST_LDFLAGS += $(APP_LDFLAGS) $(APP_LDLIBS) export TEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS)
export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE) export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE)

49
third_party/Makefile vendored
View File

@ -1,49 +0,0 @@
include ../build.mak
include $(PJDIR)/build/host-$(HOST_NAME).mak
DIRS = build/resample
ifeq (,1)
else
DIRS += build/gsm
endif
ifeq (,1)
else
DIRS += build/ilbc
endif
ifeq (,1)
else
DIRS += build/speex
endif
ifeq (pa_unix,pa_old_darwinos)
DIRS += build/portaudio
endif
ifeq (pa_unix,pa_darwinos)
DIRS += build/portaudio
endif
ifeq (pa_unix,pa_win32)
DIRS += build/portaudio
endif
ifeq (pa_unix,pa_unix)
DIRS += build/portaudio
endif
all clean dep depend distclean realclean:
for dir in $(DIRS); do \
if [ -d $$dir ]; then \
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
true; \
else \
exit 1; \
fi; \
fi; \
done

View File

@ -1,49 +0,0 @@
include ../build.mak
include $(PJDIR)/build/host-$(HOST_NAME).mak
DIRS = build/resample
ifeq (@ac_no_gsm_codec@,1)
else
DIRS += build/gsm
endif
ifeq (@ac_no_ilbc_codec@,1)
else
DIRS += build/ilbc
endif
ifeq (@ac_no_speex_codec@,1)
else
DIRS += build/speex
endif
ifeq (@ac_pjmedia_snd@,pa_old_darwinos)
DIRS += build/portaudio
endif
ifeq (@ac_pjmedia_snd@,pa_darwinos)
DIRS += build/portaudio
endif
ifeq (@ac_pjmedia_snd@,pa_win32)
DIRS += build/portaudio
endif
ifeq (@ac_pjmedia_snd@,pa_unix)
DIRS += build/portaudio
endif
all clean dep depend distclean realclean:
for dir in $(DIRS); do \
if [ -d $$dir ]; then \
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
true; \
else \
exit 1; \
fi; \
fi; \
done

12
third_party/build/Makefile vendored Normal file
View File

@ -0,0 +1,12 @@
include ../../build.mak
include $(PJDIR)/build/common.mak
all clean dep depend distclean realclean:
for dir in $(DIRS); do \
if $(MAKE) $(MAKE_FLAGS) -C $$dir $@; then \
true; \
else \
exit 1; \
fi; \
done

17
third_party/build/os-auto.mak.in vendored Normal file
View File

@ -0,0 +1,17 @@
DIRS = resample
ifneq (@ac_no_gsm_codec@,1)
DIRS += gsm
endif
ifneq (@ac_no_ilbc_codec@,1)
DIRS += ilbc
endif
ifneq (@ac_no_speex_codec@,1)
DIRS += speex
endif
ifneq ($(findstring pa,@ac_pjmedia_snd@),)
DIRS += portaudio
endif

7
third_party/build/os-darwinos.mak vendored Normal file
View File

@ -0,0 +1,7 @@
DIRS = resample
DIRS += gsm
DIRS += ilbc
DIRS += speex
DIRS += portaudio

7
third_party/build/os-linux.mak vendored Normal file
View File

@ -0,0 +1,7 @@
DIRS = resample
DIRS += gsm
DIRS += ilbc
DIRS += speex
DIRS += portaudio

7
third_party/build/os-win32.mak vendored Normal file
View File

@ -0,0 +1,7 @@
DIRS = resample
DIRS += gsm
DIRS += ilbc
DIRS += speex
DIRS += portaudio

69
third_party/build/portaudio/Makefile vendored Normal file
View File

@ -0,0 +1,69 @@
# @configure_input@
include ../../../build.mak
include $(PJDIR)/build/common.mak
export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT)
PORTAUDIO_OBJS += pa_allocation.o \
pa_converters.o \
pa_cpuload.o \
pa_dither.o \
pa_debugprint.o \
pa_front.o \
pa_process.o \
pa_skeleton.o \
pa_stream.o \
pa_trace.o
###############################################################################
# Gather all flags.
#
export _CFLAGS += $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(CFLAGS) $(CC_INC). $(CC_INC)src
export _CXXFLAGS+= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
export _LDFLAGS += $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
$(LDFLAGS)
###############################################################################
# Defines for building PORTAUDIO library
#
export PORTAUDIO_SRCDIR = src
export PORTAUDIO_OBJS +=
export PORTAUDIO_CFLAGS += $(_CFLAGS)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
###############################################################################
# Main entry
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
TARGETS := libportaudio
all: $(TARGETS)
dep: depend
distclean: realclean
.PHONY: dep depend libportaudio clean realclean distclean
libportaudio:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB)
clean:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
realclean:
$(subst @@,$(subst /,$(HOST_PSEP),.libportaudio-$(TARGET_NAME).depend),$(HOST_RMR))
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
depend:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
echo '$(PORTAUDIO_LIB): .libportaudio-$(TARGET_NAME).depend' >> .libportaudio-$(TARGET_NAME).depend; \

View File

@ -1,141 +0,0 @@
# @configure_input@
include ../../../build.mak
include $(PJDIR)/build/common.mak
export LIBDIR := ../../lib
RULES_MAK := $(PJDIR)/build/rules.mak
export PORTAUDIO_LIB:=../../lib/libportaudio-$(TARGET_NAME)$(LIBEXT)
PORTAUDIO_OBJS := pa_allocation.o \
pa_converters.o \
pa_cpuload.o \
pa_dither.o \
pa_front.o \
pa_process.o \
pa_skeleton.o \
pa_stream.o \
pa_trace.o
# 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)
#
# There are other values below, but these are handled by PJMEDIA's Makefile
# - ds: Win32 DirectSound (dsound.c)
# - null: Null sound device (nullsound.c)
AC_PJMEDIA_SND=@ac_pjmedia_snd@
# For Unix, specify if ALSA should be supported
AC_PA_USE_ALSA=@ac_pa_use_alsa@
# Additional PortAudio CFLAGS are in @ac_pa_cflags@
#
# PortAudio on Unix
#
ifeq ($(AC_PJMEDIA_SND),pa_unix)
# Host APIs and utils
export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o
# Include ALSA?
ifeq ($(AC_PA_USE_ALSA),1)
export CFLAGS += -DPA_USE_ALSA=1
export PORTAUDIO_OBJS += pa_linux_alsa.o
endif
export CFLAGS += -DPA_USE_OSS=1
export CFLAGS += @ac_pa_cflags@
export PORTAUDIO_OBJS += pa_unix_oss.o
endif
#
# PortAudio on MacOS X (using current PortAudio)
#
ifeq ($(AC_PJMEDIA_SND),pa_darwinos)
export PORTAUDIO_OBJS +=pa_mac_hostapis.o \
pa_unix_util.o \
pa_mac_core.o \
pa_mac_core_blocking.o \
pa_mac_core_utilities.o \
pa_ringbuffer.o
export CFLAGS += -DPA_USE_COREAUDIO=1
export CFLAGS += @ac_pa_cflags@
endif
#
# PortAudio on MacOS X (using old PortAudio, for MacOS X 10.2.x)
#
ifeq ($(AC_PJMEDIA_SND),pa_old_darwinos)
export PORTAUDIO_OBJS +=pa_mac_hostapis.o \
pa_unix_util.o \
pa_mac_core_old.o
export CFLAGS += -DPA_USE_COREAUDIO=1
export CFLAGS += @ac_pa_cflags@
endif
#
#
# PortAudio on Win32 (WMME)
#
ifeq ($(AC_PJMEDIA_SND),pa_win32)
export PORTAUDIO_OBJS += pa_win_hostapis.o pa_win_util.o \
pa_win_wmme.o
export CFLAGS += -DPA_NO_ASIO -DPA_NO_DS
endif
###############################################################################
# Gather all flags.
#
export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
$(CFLAGS) $(CC_INC). $(CC_INC)src
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
$(HOST_CXXFLAGS) $(CXXFLAGS)
export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
$(LDFLAGS)
###############################################################################
# Defines for building PORTAUDIO library
#
export PORTAUDIO_SRCDIR = src
export PORTAUDIO_OBJS +=
export PORTAUDIO_CFLAGS += $(_CFLAGS)
export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
###############################################################################
# Main entry
#
# $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
#
TARGETS := libportaudio
all: $(TARGETS)
dep: depend
distclean: realclean
.PHONY: dep depend libportaudio clean realclean distclean
libportaudio:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $(PORTAUDIO_LIB)
clean:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
realclean:
$(subst @@,$(subst /,$(HOST_PSEP),.libportaudio-$(TARGET_NAME).depend),$(HOST_RMR))
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
depend:
$(MAKE) -f $(RULES_MAK) APP=PORTAUDIO app=libportaudio $@
echo '$(PORTAUDIO_LIB): .libportaudio-$(TARGET_NAME).depend' >> .libportaudio-$(TARGET_NAME).depend; \

View File

@ -0,0 +1,73 @@
# @configure_input@
# 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)
#
# There are other values below, but these are handled by PJMEDIA's Makefile
# - ds: Win32 DirectSound (dsound.c)
# - null: Null sound device (nullsound.c)
AC_PJMEDIA_SND=@ac_pjmedia_snd@
# For Unix, specify if ALSA should be supported
AC_PA_USE_ALSA=@ac_pa_use_alsa@
# Additional PortAudio CFLAGS are in @ac_pa_cflags@
#
# PortAudio on Unix
#
ifeq ($(AC_PJMEDIA_SND),pa_unix)
# Host APIs and utils
export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o
# Include ALSA?
ifeq ($(AC_PA_USE_ALSA),1)
export CFLAGS += -DPA_USE_ALSA=1
export PORTAUDIO_OBJS += pa_linux_alsa.o
endif
export CFLAGS += -DPA_USE_OSS=1
export CFLAGS += @ac_pa_cflags@
export PORTAUDIO_OBJS += pa_unix_oss.o
endif
#
# PortAudio on MacOS X (using current PortAudio)
#
ifeq ($(AC_PJMEDIA_SND),pa_darwinos)
export PORTAUDIO_OBJS +=pa_mac_hostapis.o \
pa_unix_util.o \
pa_mac_core.o \
pa_mac_core_blocking.o \
pa_mac_core_utilities.o \
pa_ringbuffer.o
export CFLAGS += -DPA_USE_COREAUDIO=1
export CFLAGS += @ac_pa_cflags@
endif
#
# PortAudio on MacOS X (using old PortAudio, for MacOS X 10.2.x)
#
ifeq ($(AC_PJMEDIA_SND),pa_old_darwinos)
export PORTAUDIO_OBJS +=pa_mac_hostapis.o \
pa_unix_util.o \
pa_mac_core_old.o
export CFLAGS += -DPA_USE_COREAUDIO=1
export CFLAGS += @ac_pa_cflags@
endif
#
#
# PortAudio on Win32 (WMME)
#
ifeq ($(AC_PJMEDIA_SND),pa_win32)
export PORTAUDIO_OBJS += pa_win_hostapis.o pa_win_util.o \
pa_win_wmme.o
export CFLAGS += -DPA_NO_ASIO -DPA_NO_DS
endif

View File

@ -0,0 +1,34 @@
# @configure_input@
# 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)
#
# There are other values below, but these are handled by PJMEDIA's Makefile
# - ds: Win32 DirectSound (dsound.c)
# - null: Null sound device (nullsound.c)
AC_PJMEDIA_SND=pa_unix
# For Unix, specify if ALSA should be supported
AC_PA_USE_ALSA=0
#
# PortAudio on Unix
#
ifeq ($(AC_PJMEDIA_SND),pa_unix)
# Host APIs and utils
export PORTAUDIO_OBJS += pa_unix_hostapis.o pa_unix_util.o
# Include ALSA?
ifeq ($(AC_PA_USE_ALSA),1)
export CFLAGS += -DPA_USE_ALSA=1
export PORTAUDIO_OBJS += pa_linux_alsa.o
endif
export CFLAGS += -DPA_USE_OSS=1 -DHAVE_SYS_SOUNDCARD_H
export PORTAUDIO_OBJS += pa_unix_oss.o
endif

2
user.mak.sample Normal file
View File

@ -0,0 +1,2 @@
export CFLAGS += -Wno-unused-label -Werror
export LDFLAGS += -