mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
android: build with clang
* adapt contrib flags for clang * fix pjsip using CFLAGS to compile c++ * fix minor OpenSL issues Change-Id: I8c45441052fb5efef44d54a3cb6f75407e543b7b Tuleap: #575
This commit is contained in:
@ -53,7 +53,7 @@ ifdef HAVE_WIN32
|
||||
cd $< && echo ";" >> user-config.jam
|
||||
endif
|
||||
ifdef HAVE_ANDROID
|
||||
cd $< && echo "using gcc : android : g++" > user-config.jam
|
||||
cd $< && echo "using gcc : android : clang++" > user-config.jam
|
||||
cd $< && echo ":" >> user-config.jam
|
||||
cd $< && echo "<archiver>${HOST}-ar" >> user-config.jam
|
||||
cd $< && echo "<compileflags>-DANDROID" >> user-config.jam
|
||||
|
@ -117,8 +117,8 @@ endif
|
||||
endif
|
||||
|
||||
ifdef HAVE_ANDROID
|
||||
CC := $(CROSS_COMPILE)gcc --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
|
||||
CXX := $(CROSS_COMPILE)g++ --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
|
||||
CC := clang
|
||||
CXX := clang++
|
||||
endif
|
||||
|
||||
ifdef HAVE_MACOSX
|
||||
|
@ -79,6 +79,15 @@ diff --git a/pjsip/build/Makefile b/pjsip/build/Makefile
|
||||
index d2a5c2a..7e2ec60 100644
|
||||
--- a/pjsip/build/Makefile
|
||||
+++ b/pjsip/build/Makefile
|
||||
@@ -140,7 +140,7 @@ export PJSUA2_LIB_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
|
||||
account.o endpoint.o json.o persistent.o types.o \
|
||||
siptypes.o call.o presence.o media.o
|
||||
export PJSUA2_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
-export PJSUA2_LIB_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
|
||||
+export PJSUA2_LIB_CXXFLAGS = $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
export PJSUA2_LIB_LDFLAGS += $(PJSUA_LIB_LDLIB) \
|
||||
$(PJSIP_UA_LDLIB) \
|
||||
$(PJSIP_SIMPLE_LDLIB) \
|
||||
@@ -165,7 +165,6 @@ export PJSUA2_TEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \
|
||||
export PJSUA2_TEST_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
|
||||
export PJSUA2_TEST_CXXFLAGS = $(PJSUA2_LIB_CFLAGS)
|
||||
|
@ -15,9 +15,12 @@ PJPROJECT_OPTIONS := --disable-oss \
|
||||
--disable-speex-codec \
|
||||
--disable-ilbc-codec \
|
||||
--disable-opencore-amr \
|
||||
--disable-silk \
|
||||
--disable-sdl \
|
||||
--disable-ffmpeg \
|
||||
--disable-v4l2 \
|
||||
--disable-openh264 \
|
||||
--disable-resample \
|
||||
--enable-ssl=gnutls
|
||||
|
||||
ifdef HAVE_ANDROID
|
||||
@ -30,7 +33,8 @@ ifdef HAVE_IOS
|
||||
PJPROJECT_OPTIONS += --with-ssl=$(PREFIX)
|
||||
endif
|
||||
|
||||
PJPROJECT_EXTRA_CFLAGS = -DPJ_ICE_MAX_CAND=32 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2
|
||||
PJPROJECT_EXTRA_CFLAGS = -DPJ_ICE_MAX_CAND=32 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -std=gnu11
|
||||
PJPROJECT_EXTRA_CXXFLAGS = -DPJ_ICE_MAX_CAND=32 -DPJ_ICE_MAX_CHECKS=150 -DPJ_ICE_COMP_BITS=2 -std=gnu++11
|
||||
|
||||
ifdef HAVE_WIN64
|
||||
PJPROJECT_EXTRA_CFLAGS += -DPJ_WIN64=1
|
||||
@ -76,5 +80,5 @@ ifdef HAVE_IOS
|
||||
else
|
||||
cd $< && $(HOSTVARS) ./aconfigure $(HOSTCONF) $(PJPROJECT_OPTIONS)
|
||||
endif
|
||||
cd $< && CFLAGS="$(PJPROJECT_EXTRA_CFLAGS)" $(MAKE) && $(MAKE) install
|
||||
cd $< && CFLAGS="$(PJPROJECT_EXTRA_CFLAGS)" CXXFLAGS="$(PJPROJECT_EXTRA_CXXFLAGS)" $(MAKE) && $(MAKE) install
|
||||
touch $@
|
||||
|
11
contrib/src/vorbis/android.patch
Normal file
11
contrib/src/vorbis/android.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- libvorbis/configure.ac.orig 2012-09-07 00:17:47.000000000 +0200
|
||||
+++ libvorbis/configure.ac 2012-09-07 00:18:01.000000000 +0200
|
||||
@@ -130,5 +130,5 @@
|
||||
DEBUG="-g -Wall -Wextra -D_REENTRANT -D__NO_MATH_INLINES -fsigned-char"
|
||||
- CFLAGS="-O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char"
|
||||
+ CFLAGS="-O20 -ffast-math -D_REENTRANT -fsigned-char"
|
||||
# PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline -static"
|
||||
- PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -mno-ieee-fp -D_REENTRANT -fsigned-char -fno-inline"
|
||||
+ PROFILE="-Wall -Wextra -pg -g -O20 -ffast-math -D_REENTRANT -fsigned-char -fno-inline"
|
||||
|
||||
|
@ -29,6 +29,9 @@ ifndef HAVE_IOS
|
||||
$(APPLY) $(SRC)/vorbis/osx.patch
|
||||
else
|
||||
$(APPLY) $(SRC)/vorbis/ios.patch
|
||||
endif
|
||||
ifdef HAVE_ANDROID
|
||||
$(APPLY) $(SRC)/vorbis/android.patch
|
||||
endif
|
||||
$(UPDATE_AUTOCONFIG)
|
||||
$(MOVE)
|
||||
|
@ -1,10 +1,10 @@
|
||||
# libvpx
|
||||
|
||||
#Libav doesnt support new vpx version
|
||||
ifdef HAVE_IOS
|
||||
VPX_HASH := cbecf57f3e0d85a7b7f97f3ab7c507f6fe640a93
|
||||
else
|
||||
ifdef HAVE_MACOSX
|
||||
VPX_HASH := c74bf6d889992c3cabe017ec353ca85c323107cd
|
||||
else
|
||||
VPX_HASH := v1.6.0
|
||||
endif
|
||||
VPX_URL := https://github.com/webmproject/libvpx/archive/$(VPX_HASH).tar.gz
|
||||
#VPX_GITURL := https://code.google.com/p/webm.libvpx
|
||||
@ -115,9 +115,9 @@ LOCAL_HOSTVARS=
|
||||
ifdef HAVE_ANDROID
|
||||
# vpx configure.sh overrides our sysroot and it looks for it itself, and
|
||||
# uses that path to look for the compiler (which we already know)
|
||||
VPX_CONF += --sdk-path=$(shell dirname $(shell which $(CROSS_COMPILE)gcc))
|
||||
VPX_CONF += --sdk-path=$(ANDROID_TOOLCHAIN)/bin
|
||||
# needed for cpu-features.h
|
||||
VPX_CONF += --extra-cflags="-I $(ANDROID_NDK)/sources/cpufeatures/"
|
||||
VPX_CONF += --extra-cflags="-I$(ANDROID_NDK)/sources/cpufeatures/"
|
||||
# set an explicit alternative libc since the sysroot override can make it blank
|
||||
VPX_CONF += --libc=$(SYSROOT)
|
||||
LOCAL_HOSTVARS=$(HOSTVARS)
|
||||
|
@ -195,11 +195,11 @@ OpenSLLayer::dbgEngineGetBufCount() {
|
||||
return count_player;
|
||||
}
|
||||
|
||||
bool
|
||||
void
|
||||
OpenSLLayer::engineServicePlay(bool waiting) {
|
||||
if (waiting) {
|
||||
playCv.notify_one();
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
sample_buf* buf;
|
||||
while (player_ and freePlayBufQueue_.front(&buf)) {
|
||||
@ -214,14 +214,13 @@ OpenSLLayer::engineServicePlay(bool waiting) {
|
||||
} else
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
void
|
||||
OpenSLLayer::engineServiceRing(bool waiting) {
|
||||
if (waiting) {
|
||||
playCv.notify_one();
|
||||
return false;
|
||||
return;
|
||||
}
|
||||
sample_buf* buf;
|
||||
while (ringtone_ and freeRingBufQueue_.front(&buf)) {
|
||||
@ -239,14 +238,13 @@ OpenSLLayer::engineServiceRing(bool waiting) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
void
|
||||
OpenSLLayer::engineServiceRec(bool waiting) {
|
||||
playCv.notify_one();
|
||||
recCv.notify_one();
|
||||
return true;
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -113,9 +113,9 @@ class OpenSLLayer : public AudioLayer {
|
||||
return "";
|
||||
}
|
||||
|
||||
bool engineServicePlay(bool waiting);
|
||||
bool engineServiceRing(bool waiting);
|
||||
bool engineServiceRec(bool waiting);
|
||||
void engineServicePlay(bool waiting);
|
||||
void engineServiceRing(bool waiting);
|
||||
void engineServiceRec(bool waiting);
|
||||
|
||||
private:
|
||||
void audioCaptureFillBuffer(AudioBuffer &buffer);
|
||||
|
Reference in New Issue
Block a user