diff --git a/.gitmodules b/.gitmodules index be0709523..7bd25d80b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -31,9 +31,9 @@ [submodule "submodules/externals/libvpx"] path = submodules/externals/libvpx url = http://git.chromium.org/webm/libvpx.git -[submodule "submodules/externals/zrtpcpp"] - path = submodules/externals/zrtpcpp - url = https://github.com/wernerd/ZRTPCPP.git +[submodule "submodules/bzrtp"] + path = submodules/bzrtp + url = git://git.linphone.org/bzrtp.git [submodule "submodules/mssilk"] path = submodules/mssilk url = git://git.linphone.org/mssilk.git diff --git a/README b/README index e5d59d472..9e80c75f3 100644 --- a/README +++ b/README @@ -51,11 +51,11 @@ BUILDING THE SDK xcode prior to 4.5: $ make -f Makefile.xcode4.4 + * ZRTP support - You can enable ZRTP support in GPL mode only, by adding "enable_zrtp=yes" to the make command, for example: - $ make all enable_gpl_third_parties=yes enable_zrtp=yes - + You can disable adding "enable_zrtp=no" to the make command, for example: + $ make all enable_zrtp=no The resulting sdk is in liblinphone-sdk/ directory. @@ -75,13 +75,6 @@ The liblinphone-sdk is compiled with third parties code that are subject to pate Linphone controls the embedding of these codecs thanks to the preprocessor macros HAVE_SILK, HAVE_AMR, HAVE_G729 HAVE_X264 positioned in xcode project. Before embeding these 4 codecs in the final application, make sure to have the right to do so. -TRANSLATE THE APPLICATION -************************* - -You have to download the application Localization Suite(http://www.loc-suite.org/) -Each modification in a xib has to be scanned and synchronized - - LIMITATIONS, KNOWN BUGS *********************** diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 687fcf205..fb77fc4cf 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -7,9 +7,9 @@ objects = { /* Begin PBXBuildFile section */ + 045B5CB318D72E9A0088350C /* libbzrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 045B5CB218D72E9A0088350C /* libbzrtp.a */; }; 15017E701773578400784ACB /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15017E6F1773578400784ACB /* libxml2.a */; }; 15017E71177357C500784ACB /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15017E6F1773578400784ACB /* libxml2.a */; }; - 154227D117BA81CE005E686A /* libzrtpcppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154227D017BA81CE005E686A /* libzrtpcppcore.a */; }; 1599105316F746B2007BF52B /* route_bluetooth_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */; }; 1599105416F746B2007BF52B /* route_bluetooth_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */; }; 1599105516F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1599104416F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png */; }; @@ -1377,9 +1377,6 @@ F03A9B8D18C0DABE00C4D7FE /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD3010765B400068D98F /* libspeexdsp.a */; }; F03A9B8E18C0DABE00C4D7FE /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; }; F03A9B8F18C0DABE00C4D7FE /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0B13E830E400EFC6DC /* libvpx.a */; }; - F03A9B9118C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A9B9018C0DACC00C4D7FE /* libzrtpcppcore.a */; }; - F03A9B9218C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A9B9018C0DACC00C4D7FE /* libzrtpcppcore.a */; }; - F03A9B9318C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A9B9018C0DACC00C4D7FE /* libzrtpcppcore.a */; }; F03A9B9918C0DB8800C4D7FE /* libc++.1.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDEF14850AE9007420B6 /* libc++.1.dylib */; }; F03A9B9A18C0DB8800C4D7FE /* libstdc++.6.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 344ABDF014850AE9007420B6 /* libstdc++.6.dylib */; }; F03A9B9B18C0DBAF00C4D7FE /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8213C73D3100210156 /* libswscale.a */; }; @@ -1489,8 +1486,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 045B5CB218D72E9A0088350C /* libbzrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbzrtp.a; path = "liblinphone-sdk/apple-darwin/lib/libbzrtp.a"; sourceTree = ""; }; 15017E6F1773578400784ACB /* libxml2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxml2.a; path = "liblinphone-sdk/apple-darwin/lib/libxml2.a"; sourceTree = ""; }; - 154227D017BA81CE005E686A /* libzrtpcppcore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzrtpcppcore.a; path = "liblinphone-sdk/apple-darwin/lib/libzrtpcppcore.a"; sourceTree = ""; }; 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = route_bluetooth_off_default_landscape.png; path = Resources/route_bluetooth_off_default_landscape.png; sourceTree = ""; }; 1599104416F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = route_bluetooth_off_disabled_landscape.png; path = Resources/route_bluetooth_off_disabled_landscape.png; sourceTree = ""; }; 1599104516F746B2007BF52B /* route_bluetooth_off_over_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = route_bluetooth_off_over_landscape.png; path = Resources/route_bluetooth_off_over_landscape.png; sourceTree = ""; }; @@ -2486,7 +2483,6 @@ F03A9B6E18C0D1A500C4D7FE /* upnp_tester.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = upnp_tester.c; path = submodules/linphone/tester/upnp_tester.c; sourceTree = SOURCE_ROOT; }; F03A9B7A18C0D5A000C4D7FE /* sal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = sal.h; path = submodules/linphone/include/sal/sal.h; sourceTree = SOURCE_ROOT; }; F03A9B7E18C0D9C900C4D7FE /* libcunit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcunit.a; path = "liblinphone-sdk/apple-darwin/lib/libcunit.a"; sourceTree = ""; }; - F03A9B9018C0DACC00C4D7FE /* libzrtpcppcore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libzrtpcppcore.a; path = "liblinphone-sdk/apple-darwin/lib/libzrtpcppcore.a"; sourceTree = ""; }; F03A9B9418C0DAE100C4D7FE /* libstdc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.dylib"; path = "usr/lib/libstdc++.dylib"; sourceTree = SDKROOT; }; F03A9B9718C0DB6F00C4D7FE /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; }; F03A9C6318C0E2ED00C4D7FE /* certificates */ = {isa = PBXFileReference; lastKnownFileType = folder; name = certificates; path = submodules/linphone/tester/certificates; sourceTree = SOURCE_ROOT; }; @@ -2593,12 +2589,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 154227D117BA81CE005E686A /* libzrtpcppcore.a in Frameworks */, 15017E701773578400784ACB /* libxml2.a in Frameworks */, 22AF73C21754C0D100BE8398 /* libopus.a in Frameworks */, 57B0E360173C010400A476B8 /* libpolarssl.a in Frameworks */, 223CA7E616D9255800EF1BEC /* libantlr3c.a in Frameworks */, 223CA7E716D9255800EF1BEC /* libbellesip.a in Frameworks */, + 045B5CB318D72E9A0088350C /* libbzrtp.a in Frameworks */, D30562151671DC4900C97967 /* libNinePatch.a in Frameworks */, D30562161671DC4900C97967 /* libXMLRPC.a in Frameworks */, 22B5F03510CE6B2F00777D97 /* AddressBook.framework in Frameworks */, @@ -2635,7 +2631,6 @@ 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */, 226183B0147259670037138E /* libmssilk.a in Frameworks */, 22AA8AFE13D7125600B30535 /* libmsx264.a in Frameworks */, - F03A9B9118C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */, 22A10F3B11F8960300373793 /* libortp.a in Frameworks */, 226F2ED71344B0EF00F6EF27 /* libopencore-amrnb.a in Frameworks */, 226F2ED61344B0EF00F6EF27 /* libopencore-amrwb.a in Frameworks */, @@ -2667,7 +2662,6 @@ 22D8F171147548E2008C97DB /* AddressBookUI.framework in Frameworks */, 22D8F176147548E2008C97DB /* CFNetwork.framework in Frameworks */, 22D8F169147548E2008C97DB /* AudioToolbox.framework in Frameworks */, - F03A9B9218C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */, 22D8F168147548E2008C97DB /* CoreAudio.framework in Frameworks */, 22D8F167147548E2008C97DB /* CoreGraphics.framework in Frameworks */, 22D8F15E147548E2008C97DB /* CoreMedia.framework in Frameworks */, @@ -2733,7 +2727,6 @@ F03A9B8D18C0DABE00C4D7FE /* libspeexdsp.a in Frameworks */, F03A9B8E18C0DABE00C4D7FE /* libsrtp.a in Frameworks */, F03A9B8F18C0DABE00C4D7FE /* libvpx.a in Frameworks */, - F03A9B9318C0DACC00C4D7FE /* libzrtpcppcore.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -3307,7 +3300,6 @@ isa = PBXGroup; children = ( F04892FE180C3296002FED35 /* ImageOptim.sh */, - 154227D017BA81CE005E686A /* libzrtpcppcore.a */, 15017E6F1773578400784ACB /* libxml2.a */, 57B0E35F173C010400A476B8 /* libpolarssl.a */, 223CA7E416D9255800EF1BEC /* libantlr3c.a */, @@ -3336,7 +3328,7 @@ 226183AB1472527D0037138E /* libsrtp.a */, 22276E8213C73D3100210156 /* libswscale.a */, 7066FC0B13E830E400EFC6DC /* libvpx.a */, - F03A9B9018C0DACC00C4D7FE /* libzrtpcppcore.a */, + 045B5CB218D72E9A0088350C /* libbzrtp.a */, 22AA8AFB13D7125500B30535 /* libx264.a */, 344ABDEF14850AE9007420B6 /* libc++.1.dylib */, 22D1B68012A3E0BE001AE361 /* libresolv.dylib */, @@ -6480,7 +6472,7 @@ PRODUCT_NAME = linphone; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Debug; }; @@ -6540,8 +6532,9 @@ IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\\\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\\\"", + "/Users/johan/linphone-iphone/liblinphone-sdk/apple-darwin/lib", ); LINK_WITH_STANDARD_LIBRARIES = YES; ORDER_FILE = ""; @@ -6549,7 +6542,7 @@ PRODUCT_NAME = linphone; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = DistributionAdhoc; }; @@ -6754,8 +6747,9 @@ IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\\\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\\\"", + "/Users/johan/linphone-iphone/liblinphone-sdk/apple-darwin/lib", ); LINK_WITH_STANDARD_LIBRARIES = YES; ORDER_FILE = ""; @@ -6763,7 +6757,7 @@ PRODUCT_NAME = linphone; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Release; }; @@ -6822,8 +6816,9 @@ IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ( "$(BUILT_PRODUCTS_DIR)", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\"", - "\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins\\\"", + "\\\"$(SRCROOT)/liblinphone-sdk/apple-darwin/lib\\\"", + "/Users/johan/linphone-iphone/liblinphone-sdk/apple-darwin/lib", ); LINK_WITH_STANDARD_LIBRARIES = YES; ORDER_FILE = ""; @@ -6831,7 +6826,7 @@ PRODUCT_NAME = linphone; PROVISIONING_PROFILE = ""; SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; + TARGETED_DEVICE_FAMILY = 1; }; name = Distribution; }; diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk index ea399394a..a202fe74f 100644 --- a/submodules/build/builder-iphone-os.mk +++ b/submodules/build/builder-iphone-os.mk @@ -134,7 +134,7 @@ veryclean: veryclean-linphone veryclean-msbcg729 # list of the submodules to build MS_MODULES := msilbc libilbc msamr mssilk msx264 msisac -SUBMODULES_LIST := polarssl libantlr cunit belle-sip srtp zrtpcpp speex libgsm libvpx libxml2 ffmpeg opus +SUBMODULES_LIST := polarssl libantlr cunit belle-sip srtp speex libgsm libvpx libxml2 bzrtp ffmpeg opus .NOTPARALLEL build-linphone: init $(addprefix build-,$(SUBMODULES_LIST)) mode_switch_check $(LINPHONE_BUILD_DIR)/Makefile cd $(LINPHONE_BUILD_DIR) && export PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig export CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make newdate && make && make install diff --git a/submodules/build/builders.d/zrtp.mk b/submodules/build/builders.d/zrtp.mk index 6a8e6457f..4d5395937 100644 --- a/submodules/build/builders.d/zrtp.mk +++ b/submodules/build/builders.d/zrtp.mk @@ -1,28 +1,60 @@ -zrtpcpp_dir=externals/zrtpcpp -$(BUILDER_BUILD_DIR)/$(zrtpcpp_dir)/Makefile: - mkdir -p $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir) - cd $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir)/\ - && host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \ - && cmake $(BUILDER_SRC_DIR)/$(zrtpcpp_dir) -DCORE_LIB=true -DSDES=false -DCMAKE_TOOLCHAIN_FILE=$(BUILDER_SRC_DIR)build/iphone-toolchain.cmake \ - -LH -Wdev -DCMAKE_C_COMPILER=`xcrun --find clang` -DCMAKE_CXX_COMPILER=`xcrun --find clang` \ - -DCMAKE_SYSTEM_PROCESSOR=$$ARCH -DCMAKE_C_FLAGS="$$COMMON_FLAGS" -DCMAKE_CXX_FLAGS="$$COMMON_FLAGS" \ - -DCMAKE_INSTALL_PREFIX=$(prefix) -DCMAKE_FIND_ROOT_PATH="$(prefix) -DBUILD_STATIC=ON " -# Used toolchain: $(TC) +############################################################################ +# zrtp.mk +# Copyright (C) 2014 Belledonne Communications,Grenoble France +# +############################################################################ +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +############################################################################ +bzrtp_dir?=bzrtp +enable_zrtp?=yes +$(BUILDER_SRC_DIR)/$(bzrtp_dir)/configure: + @echo -e "\033[01;32m Running autogen for bzrtp in $(BUILDER_SRC_DIR)/$(bzrtp_dir) \033[0m" + cd $(BUILDER_SRC_DIR)/$(bzrtp_dir) && ./autogen.sh -build-zrtpcpp: $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir)/Makefile - @echo "Build ZRTP - prefix $(prefix)" - cd $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir) \ - && host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \ - && make VERBOSE=1 && make install +$(BUILDER_BUILD_DIR)/$(bzrtp_dir)/Makefile: $(BUILDER_SRC_DIR)/$(bzrtp_dir)/configure + @echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(bzrtp_dir) \033[0m" + mkdir -p $(BUILDER_BUILD_DIR)/$(bzrtp_dir) + cd $(BUILDER_BUILD_DIR)/$(bzrtp_dir)/ \ + && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + $(BUILDER_SRC_DIR)/$(bzrtp_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \ + --enable-static -clean-zrtpcpp: - -cd $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir) && make clean +ifeq ($(enable_zrtp),yes) -clean-makefile-zrtpcpp: clean-zrtpcpp - -rm -f $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir)/Makefile +build-bzrtp: $(BUILDER_BUILD_DIR)/$(bzrtp_dir)/Makefile + @echo -e "\033[01;32m building bzrtp \033[0m" + cd $(BUILDER_BUILD_DIR)/$(bzrtp_dir) \ + && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig \ + CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \ + make -j1 && make install -veryclean-zrtpcpp: - -rm -rf $(BUILDER_BUILD_DIR)/$(zrtpcpp_dir) +else +build-bzrtp: + @echo "ZRTP is disabled" +endif +clean-bzrtp: + -cd $(BUILDER_BUILD_DIR)/$(bzrtp_dir) && make clean + +veryclean-bzrtp: + -cd $(BUILDER_BUILD_DIR)/$(bzrtp_dir) && make distclean + rm -f $(BUILDER_SRC_DIR)/$(bzrtp_dir)/configure + +clean-makefile-bzrtp: + -cd $(BUILDER_BUILD_DIR)/$(bzrtp_dir) && rm -f Makefile diff --git a/submodules/bzrtp b/submodules/bzrtp new file mode 160000 index 000000000..7f4c4333c --- /dev/null +++ b/submodules/bzrtp @@ -0,0 +1 @@ +Subproject commit 7f4c4333c5d8b3b328815996d0eea061bc539860 diff --git a/submodules/externals/polarssl b/submodules/externals/polarssl index 8dd0e974e..e9f7b4487 160000 --- a/submodules/externals/polarssl +++ b/submodules/externals/polarssl @@ -1 +1 @@ -Subproject commit 8dd0e974ee330fffb29f5daa386979cbd2c6487c +Subproject commit e9f7b4487464909a786b156b149de7769d1df3a2 diff --git a/submodules/externals/zrtpcpp b/submodules/externals/zrtpcpp deleted file mode 160000 index 761339643..000000000 --- a/submodules/externals/zrtpcpp +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 761339643ee278e1f532713b959c6bb212040206