From 13399e424af69b695f0ccca10a6d6bf99977fedc Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 23 Mar 2011 14:01:05 +0100 Subject: [PATCH 1/2] migrate liblinphone sdk compilation to xcode4 --- README | 4 ++- submodules/build/Makefile | 34 ++++++++++++++++++++++++++ submodules/build/builder-iphone-os.mk | 21 ++++++++-------- submodules/build/builders.d/openssl.mk | 3 +++ submodules/build/iphone-config.site | 3 +++ 5 files changed, 54 insertions(+), 11 deletions(-) create mode 100644 submodules/build/Makefile diff --git a/README b/README index f0e58f4d9..f8bf14208 100644 --- a/README +++ b/README @@ -15,7 +15,9 @@ You may update variable SDK_VERSION from file submodules/build/iphone-config.sit To generate the liblinphone dual arch sdk, once the above commands have been executed: cd submodules/build - make -f builder-iphone-simulator.mk all && make -f builder-iphone-os.mk all &&make -f builder-iphone-os.mk delivery-sdk + make all + +In case you upgrade your IOS SDK, you may force configure by using make targets and Libraries are available from liblinphone-sdk/ diff --git a/submodules/build/Makefile b/submodules/build/Makefile new file mode 100644 index 000000000..0b6b48f02 --- /dev/null +++ b/submodules/build/Makefile @@ -0,0 +1,34 @@ +############################################################################ +# Makefile +# Copyright (C) 2009 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. +# +############################################################################ +all: + make -f builder-iphone-simulator.mk all \ + && make -f builder-iphone-os.mk all \ + && make -f builder-iphone-os.mk host=armv7-apple-darwin all \ + && make -f builder-iphone-os.mk delivery-sdk +clean: + make -f builder-iphone-simulator.mk clean \ + && make -f builder-iphone-os.mk clean \ + && make -f builder-iphone-os.mk host=armv7-apple-darwin clean +clean-makefile: + make -f builder-iphone-simulator.mk clean-makefile \ + && make -f builder-iphone-os.mk clean-makefile \ + && make -f builder-iphone-os.mk host=armv7-apple-darwin clean-makefile diff --git a/submodules/build/builder-iphone-os.mk b/submodules/build/builder-iphone-os.mk index ff42435e6..380d77b67 100644 --- a/submodules/build/builder-iphone-os.mk +++ b/submodules/build/builder-iphone-os.mk @@ -78,17 +78,17 @@ init: veryclean: rm -rf $(BUILDER_BUILD_DIR) -build-linphone: init build-openssl build-osip2 build-eXosip2 build-speex build-libgsm $(LINPHONE_BUILD_DIR)/Makefile +.NOTPARALLEL build-linphone: init build-openssl build-osip2 build-eXosip2 build-speex build-libgsm $(LINPHONE_BUILD_DIR)/Makefile cd $(LINPHONE_BUILD_DIR) && PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make newdate && make && make install -clean-linphone: clean-osip2 clean-eXosip2 clean-speex clean-libgsm clean-msilbc clean-libilbc +clean-linphone: clean-osip2 clean-eXosip2 clean-speex clean-libgsm clean-msilbc clean-libilbc clean-openssl cd $(LINPHONE_BUILD_DIR) && make clean -veryclean-linphone: clean-linphone veryclean-osip2 veryclean-eXosip2 veryclean-speex veryclean-libgsm veryclean-msilbc veryclean-libilbc +veryclean-linphone: clean-linphone veryclean-osip2 veryclean-eXosip2 veryclean-speex veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl cd $(LINPHONE_BUILD_DIR) && make distclean cd $(LINPHONE_SRC_DIR) && rm -f configure -clean-makefile-linphone: clean-makefile-osip2 clean-makefile-eXosip2 clean-makefile-speex clean-makefile-libilbc clean-makefile-msilbc +clean-makefile-linphone: clean-makefile-osip2 clean-makefile-eXosip2 clean-makefile-speex clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile @@ -182,7 +182,7 @@ veryclean-speex: cd $(BUILDER_BUILD_DIR)/$(speex_dir) && make distclean clean-makefile-speex: - cd $(BUILDER_SRC_DIR)/$(speex_dir) && rm -f Makefile + cd $(BUILDER_BUILD_DIR)/$(speex_dir) && rm -f Makefile #GSM @@ -220,14 +220,14 @@ build-msilbc: build-libilbc $(MSILBC_BUILD_DIR)/Makefile cd $(MSILBC_BUILD_DIR) && make && make install clean-msilbc: - cd $(MSILBC_BUILD_DIR) && make -f clean + cd $(MSILBC_BUILD_DIR) && make clean veryclean-msilbc: cd $(MSILBC_BUILD_DIR) && make distclean - cd $(MSILBC_SRC_DIR) && rm configure + cd $(MSILBC_BUILD_DIR) && rm configure clean-makefile-msilbc: - cd $(MSILBC_SRC_DIR) && rm -f Makefile + cd $(MSILBC_BUILD_DIR) && rm -f Makefile # libilbc @@ -248,7 +248,7 @@ clean-libilbc: veryclean-libilbc: cd $(LIBILBC_BUILD_DIR) && make distclean - cd $(LIBILBC_SRC_DIR) && rm -f configure + cd $(LIBILBC_BUILD_DIR) && rm -f configure clean-makefile-libilbc: cd $(LIBILBC_BUILD_DIR) && rm -f Makefile @@ -264,11 +264,12 @@ multi-arch: cp -rf $(prefix)/share $(prefix)/../apple-darwin/. ; \ for archive in $$arm_archives ; do \ i386_path=`echo $$archive | sed -e "s/armv6/i386/"` ;\ + armv7_path=`echo $$archive | sed -e "s/armv6/armv7/"` ;\ destpath=`echo $$archive | sed -e "s/armv6-//"` ;\ if test -f "$$i386_path"; then \ echo "Mixing $$archive and $$i386_path into $$destpath"; \ mkdir -p `dirname $$destpath` ; \ - lipo -create $$archive $$i386_path -output $$destpath; \ + lipo -create $$archive $$armv7_path $$i386_path -output $$destpath; \ else \ echo "WARNING: archive `basename $$archive` exists in arm tree but does not exists in i386 tree."; \ fi \ diff --git a/submodules/build/builders.d/openssl.mk b/submodules/build/builders.d/openssl.mk index d7c76cfc7..54a2b517e 100644 --- a/submodules/build/builders.d/openssl.mk +++ b/submodules/build/builders.d/openssl.mk @@ -30,6 +30,9 @@ build-openssl: $(OPENSSL_BUILD_DIR)/Makefile clean-openssl: cd $(OPENSSL_BUILD_DIR) && make clean +clean-makefile-openssl: + touch $(OPENSSL_BUILD_DIR)/Configure + veryclean-openssl: rm -rf $(OPENSSL_BUILD_DIR) diff --git a/submodules/build/iphone-config.site b/submodules/build/iphone-config.site index 1eef5cce9..6b156a5fe 100644 --- a/submodules/build/iphone-config.site +++ b/submodules/build/iphone-config.site @@ -10,6 +10,9 @@ if test "${host_alias}" = "i386-apple-darwin" ; then elif test "${host_alias}" = "armv6-apple-darwin" ; then ARCH=armv6 PLATFORM=OS +elif test "${host_alias}" = "armv7-apple-darwin" ; then + ARCH=armv7 + PLATFORM=OS else echo "bad host ${host_alias} must be either i386-apple-darwin or armv6-apple-darwin" exit From 3ffce6888647951454a20da26f4436fe30e5796f Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 23 Mar 2011 14:36:36 +0100 Subject: [PATCH 2/2] add dependency on ssl for totorials build --- .../hello-world.xcodeproj/project.pbxproj | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/liblinphone-tutorials/hello-world/hello-world.xcodeproj/project.pbxproj b/liblinphone-tutorials/hello-world/hello-world.xcodeproj/project.pbxproj index d6434c78c..1954ee871 100755 --- a/liblinphone-tutorials/hello-world/hello-world.xcodeproj/project.pbxproj +++ b/liblinphone-tutorials/hello-world/hello-world.xcodeproj/project.pbxproj @@ -78,6 +78,14 @@ 229499FB12A5433F00D6CF48 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D1B6A012A3E159001AE361 /* libresolv.dylib */; }; 22D1B6A112A3E159001AE361 /* libresolv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 22D1B6A012A3E159001AE361 /* libresolv.dylib */; }; 22DF2B1612A65892007C6B74 /* buddy_status.c in Sources */ = {isa = PBXBuildFile; fileRef = 2294995512A53FD800D6CF48 /* buddy_status.c */; }; + 22E5AFC5133A2E260044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFC3133A2E260044EA25 /* libssl.a */; }; + 22E5AFC6133A2E260044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFC4133A2E260044EA25 /* libcrypto.a */; }; + 22E5AFC9133A2E3F0044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFC7133A2E3F0044EA25 /* libssl.a */; }; + 22E5AFCA133A2E3F0044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFC8133A2E3F0044EA25 /* libcrypto.a */; }; + 22E5AFCD133A2E5C0044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFCB133A2E5C0044EA25 /* libssl.a */; }; + 22E5AFCE133A2E5C0044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFCC133A2E5C0044EA25 /* libcrypto.a */; }; + 22E5AFD1133A2E760044EA25 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFCF133A2E760044EA25 /* libssl.a */; }; + 22E5AFD2133A2E760044EA25 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22E5AFD0133A2E760044EA25 /* libcrypto.a */; }; 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765FC0DF74451002DB57D /* CoreGraphics.framework */; }; /* End PBXBuildFile section */ @@ -107,6 +115,14 @@ 229499BA12A5417D00D6CF48 /* hello-world.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "hello-world.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 229499FF12A5433F00D6CF48 /* hello-world.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "hello-world.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 22D1B6A012A3E159001AE361 /* libresolv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.dylib; path = usr/lib/libresolv.dylib; sourceTree = SDKROOT; }; + 22E5AFC3133A2E260044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = ""; }; + 22E5AFC4133A2E260044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../liblinphone-sdk/apple-darwin/lib/libcrypto.a"; sourceTree = ""; }; + 22E5AFC7133A2E3F0044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = ""; }; + 22E5AFC8133A2E3F0044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../liblinphone-sdk/apple-darwin/lib/libcrypto.a"; sourceTree = ""; }; + 22E5AFCB133A2E5C0044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = ""; }; + 22E5AFCC133A2E5C0044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../liblinphone-sdk/apple-darwin/lib/libcrypto.a"; sourceTree = ""; }; + 22E5AFCF133A2E760044EA25 /* libssl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libssl.a; path = "../../liblinphone-sdk/apple-darwin/lib/libssl.a"; sourceTree = ""; }; + 22E5AFD0133A2E760044EA25 /* libcrypto.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libcrypto.a; path = "../../liblinphone-sdk/apple-darwin/lib/libcrypto.a"; sourceTree = ""; }; 288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 32CA4F630368D1EE00C91783 /* hello_world_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hello_world_Prefix.pch; sourceTree = ""; }; 8D1107310486CEB800E47090 /* helloworld-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "helloworld-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = ""; }; @@ -117,6 +133,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22E5AFC5133A2E260044EA25 /* libssl.a in Frameworks */, + 22E5AFC6133A2E260044EA25 /* libcrypto.a in Frameworks */, 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, 288765FD0DF74451002DB57D /* CoreGraphics.framework in Frameworks */, @@ -141,6 +159,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22E5AFC9133A2E3F0044EA25 /* libssl.a in Frameworks */, + 22E5AFCA133A2E3F0044EA25 /* libcrypto.a in Frameworks */, 2294996912A53FEE00D6CF48 /* Foundation.framework in Frameworks */, 2294996A12A53FEE00D6CF48 /* UIKit.framework in Frameworks */, 2294996B12A53FEE00D6CF48 /* CoreGraphics.framework in Frameworks */, @@ -165,6 +185,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22E5AFCD133A2E5C0044EA25 /* libssl.a in Frameworks */, + 22E5AFCE133A2E5C0044EA25 /* libcrypto.a in Frameworks */, 229499A612A5417D00D6CF48 /* Foundation.framework in Frameworks */, 229499A712A5417D00D6CF48 /* UIKit.framework in Frameworks */, 229499A812A5417D00D6CF48 /* CoreGraphics.framework in Frameworks */, @@ -189,6 +211,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 22E5AFD1133A2E760044EA25 /* libssl.a in Frameworks */, + 22E5AFD2133A2E760044EA25 /* libcrypto.a in Frameworks */, 229499EB12A5433F00D6CF48 /* Foundation.framework in Frameworks */, 229499EC12A5433F00D6CF48 /* UIKit.framework in Frameworks */, 229499ED12A5433F00D6CF48 /* CoreGraphics.framework in Frameworks */, @@ -233,6 +257,14 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( + 22E5AFCF133A2E760044EA25 /* libssl.a */, + 22E5AFD0133A2E760044EA25 /* libcrypto.a */, + 22E5AFCB133A2E5C0044EA25 /* libssl.a */, + 22E5AFCC133A2E5C0044EA25 /* libcrypto.a */, + 22E5AFC7133A2E3F0044EA25 /* libssl.a */, + 22E5AFC8133A2E3F0044EA25 /* libcrypto.a */, + 22E5AFC3133A2E260044EA25 /* libssl.a */, + 22E5AFC4133A2E260044EA25 /* libcrypto.a */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97315FDCFA39411CA2CEA /* Other Sources */, 29B97317FDCFA39411CA2CEA /* Resources */, @@ -505,6 +537,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos; @@ -523,6 +556,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos; @@ -544,6 +578,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\\\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\\\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos; @@ -562,6 +597,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\\\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\\\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos; @@ -583,6 +619,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\\\\\\\\\\\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\\\\\\\\\\\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos; @@ -601,6 +638,7 @@ LIBRARY_SEARCH_PATHS = ( "$(inherited)", "\\\\\\\\\\\\\\\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\\\\\\\\\\\\\\\"", + "\"$(SRCROOT)/../../liblinphone-sdk/apple-darwin/lib\"", ); PRODUCT_NAME = "hello-world"; SDKROOT = iphoneos;