build: officially deprecating autotools build version - updated README and old Makefile in consequence

This commit is contained in:
Gautier Pelloux-Prayer 2015-07-03 11:27:27 +02:00
parent f0912a3bbb
commit 69ec4c340a
41 changed files with 47 additions and 2386 deletions

Binary file not shown.

View file

@ -2,90 +2,31 @@
[![Build Status](https://travis-ci.org/BelledonneCommunications/linphone-iphone.svg?branch=master)](https://travis-ci.org/BelledonneCommunications/linphone-iphone)
## Build prerequisite
## BUILDING THE SDK
Linphone for iPhone depends on liblinphone SDK. This SDK is generated from makefiles and shell scripts.
* Xcode (download from apple or using appstore application)
* [Java SE](http://www.oracle.com/technetwork/java/javase/downloads/index.html) or openJDK
This is required to generate a C sourcefile from SIP grammar using [antlr3](http://www.antlr3.org/) generator.
* [HomeBrew](http://brew.sh) or [Macports](http://www.macports.org/).
### Install dependencies
* Using HomeBrew:
brew install autoconf automake pkg-config doxygen nasm gettext wget yasm optipng imagemagick coreutils intltool
brew link gettext --force
# antlr3.2 is faster than default homebrew version 3.4 - you can install official antlr3 though
brew tap Gui13/linphone
brew install antlr3.2
* Using MacPorts:
sudo port install autoconf automake pkgconfig doxygen antlr3 nasm gettext wget yasm optipng ImageMagick coreutils intltool
### System linking
* For this part, we assume that `LOCAL_BIN_DIR` is set as following depending on which tool you use:
For MacPorts: `LOCAL_BIN_DIR=/opt/local/bin`
For HomeBrew: `LOCAL_BIN_DIR=/usr/local/bin`
* Modify your `PATH` so that the tools are taken in place of the versions brought by Apple in `/usr/bin`. Otherwise the build will fail with obscure errors:
export PATH=$LOCAL_BIN_DIR:$PATH
* Install [gas-preprocessor.pl](http://github.com/yuvi/gas-preprocessor/) (version above July 2013) into your PATH. Suppose you use `LOCAL_BIN_DIR` directory:
wget --no-check-certificate https://raw.github.com/yuvi/gas-preprocessor/master/gas-preprocessor.pl
chmod +x gas-preprocessor.pl
sudo mv gas-preprocessor.pl $LOCAL_BIN_DIR
* (HomeBrew only) Link `libtoolize` to `glibtoolize`
sudo ln -s $LOCAL_BIN_DIR/glibtoolize $LOCAL_BIN_DIR/libtoolize
* Link host's `strings` to simulator SDK
sudo ln -s /usr/bin/strings /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/strings
## BUILDING THE SDK
* GPL third parties versus non GPL third parties
This SDK can be generated in 2 flavors. First is with GPL third parties, it means liblinphone includes GPL third parties like FFMPEG or X264.
If you choose this flavor, your final application must comply with GPL in any case. This is the default mode.
Note: We are not compiling for the 32 bits i386 simulator by default, for speed reasons. If you want to activate it, you should call make with "enable_i386=yes".
Note: We are not compiling for the 32 bits i386 simulator by default because since iPhone 6 / iOS 8 simulators run in 64 bits. If you want to activate it, you should call prepare.py "i386" architecture.
To generate the liblinphone multi arch sdk in GPL mode, do:
To generate the liblinphone multi arch SDK in GPL mode, do:
cd submodules/build && make all
./prepare.py && make
ALTERNATIVELY, you can force liblinphone to use only non GPL code except for liblinphone, mediastreamer2, oRTP, belle-sip.
If you choose this flavor, your final application is still subject to GPL except if you have a commercial license for liblinphone, mediastreamer2, oRTP, belle-sip.
To generate the liblinphone multi arch sdk in non GPL mode, do:
To generate the liblinphone multi arch SDK in non GPL mode, do:
cd submodules/build && make all enable_gpl_third_parties=no
* For Xcode prior to 4.5, use:
make -f Makefile.xcode4.4
* ZRTP support
You can disable ZRTP support with:
make all enable_zrtp=no
./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO && make
* In case you upgrade your IOS SDK, you may force rebuilding everything, by doing
make veryclean && make all
./prepare.py -c && ./prepare.py && make
**The resulting sdk is in `liblinphone-sdk/` root directory.**
@ -110,17 +51,12 @@ Simply press `Command + U` and the default simulator / device will launch and tr
* Video capture does not work in simulator (not implemented by simulator?).
* Link errors with x86_64: this happens when you try to run linphone on the iPhone 5S/6/6+ simulators.
This is due to the fact that we're not building the SDK for the x86_64 architecture, due to it being redundant with i386 (and increasing dramatically the compile time and build size).
The solution (temporary) is to force the acceptable architectures to be 'armv7' only (remove 'arm64') and disable the "build active architecture" flag in the linphone, XMLRPC and NinePatch projects.
Don't forget to re-enable them when archiving your project.
## DEBUGING THE SDK
Sometime it can be useful to step into liblinphone SDK functions. To allow Xcode to enable breakpoint within liblinphone, SDK must be built with debug symbols.
To add debug symbol to liblinphone SDK, add make option `enable_debug=yes`:
To add debug symbol to liblinphone SDK, use:
make all enable_gpl_third_parties=no enable_debug=yes
./prepare.py -d && make
## DEBUGING MEDIASTREAMER2

View file

@ -109,6 +109,7 @@
57F005C815EE2D9200914747 /* linphonerc-factory in Resources */ = {isa = PBXBuildFile; fileRef = 57F005C615EE2D9200914747 /* linphonerc-factory */; };
57F005CA15EE2D9200914747 /* linphonerc-factory~ipad in Resources */ = {isa = PBXBuildFile; fileRef = 57F005C715EE2D9200914747 /* linphonerc-factory~ipad */; };
630CF5571AF7CE1500539F7A /* UITextField+DoneButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 630CF5561AF7CE1500539F7A /* UITextField+DoneButton.m */; };
63158FAD1B468E0E00969917 /* ImageOptim.sh in Resources */ = {isa = PBXBuildFile; fileRef = 63158FAC1B468E0E00969917 /* ImageOptim.sh */; };
631C4FB119D2A8F2004BFE77 /* UIDigitButtonLongPlus.m in Sources */ = {isa = PBXBuildFile; fileRef = 631C4FB019D2A8F2004BFE77 /* UIDigitButtonLongPlus.m */; };
631C4FB719D2C3A6004BFE77 /* UIDigitButtonLongVoiceMail.m in Sources */ = {isa = PBXBuildFile; fileRef = 631C4FB619D2C3A6004BFE77 /* UIDigitButtonLongVoiceMail.m */; };
632DA24D1B43EE9400EB356A /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = D35860D515B549B500513429 /* Utils.m */; };
@ -1015,6 +1016,7 @@
57F005C715EE2D9200914747 /* linphonerc-factory~ipad */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = "linphonerc-factory~ipad"; path = "Resources/linphonerc-factory~ipad"; sourceTree = "<group>"; };
630CF5551AF7CE1500539F7A /* UITextField+DoneButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextField+DoneButton.h"; sourceTree = "<group>"; };
630CF5561AF7CE1500539F7A /* UITextField+DoneButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextField+DoneButton.m"; sourceTree = "<group>"; };
63158FAC1B468E0E00969917 /* ImageOptim.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = ImageOptim.sh; path = Tools/ImageOptim.sh; sourceTree = "<group>"; };
631C4FAF19D2A8F2004BFE77 /* UIDigitButtonLongPlus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButtonLongPlus.h; sourceTree = "<group>"; };
631C4FB019D2A8F2004BFE77 /* UIDigitButtonLongPlus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDigitButtonLongPlus.m; sourceTree = "<group>"; };
631C4FB519D2C3A6004BFE77 /* UIDigitButtonLongVoiceMail.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButtonLongVoiceMail.h; sourceTree = "<group>"; };
@ -1652,7 +1654,6 @@
F03A9B9718C0DB6F00C4D7FE /* libc++.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.dylib"; path = "usr/lib/libc++.dylib"; sourceTree = SDKROOT; };
F03CA84118C72F1A0008889D /* UITextViewNoDefine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UITextViewNoDefine.h; sourceTree = "<group>"; };
F03CA84218C72F1A0008889D /* UITextViewNoDefine.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UITextViewNoDefine.m; sourceTree = "<group>"; };
F04892FE180C3296002FED35 /* ImageOptim.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = ImageOptim.sh; sourceTree = "<group>"; };
F05BAA611A5D594E00411815 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
F0642EF019DAC891009DB336 /* MainStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard.storyboard; sourceTree = "<group>"; };
F0642EF719DAF32E009DB336 /* DTWeakSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DTWeakSupport.h; sourceTree = "<group>"; };
@ -2187,7 +2188,6 @@
080E96DDFE201D6D7F000001 /* Classes */,
F0F952011A6AEB1000254160 /* UITests */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
F04892FE180C3296002FED35 /* ImageOptim.sh */,
F0938158188E629800A55DFA /* iTunesArtwork */,
F0BB8BD91936208100974404 /* LinphoneTester */,
29B97315FDCFA39411CA2CEA /* Other Sources */,
@ -2238,6 +2238,7 @@
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
63158FAC1B468E0E00969917 /* ImageOptim.sh */,
152F22351B15E889008C0621 /* libxml2.dylib */,
152F22331B15E83B008C0621 /* libilbcrfc3951.a */,
F0FF66AA1ACAEEB0008A4486 /* IOKit.framework */,
@ -3713,6 +3714,7 @@
D33988D215C6DD1600CAF1E4 /* options_default_landscape~ipad.png in Resources */,
D33988D415C6DD1600CAF1E4 /* options_disabled_landscape~ipad.png in Resources */,
D33988D615C6DD1600CAF1E4 /* options_over_landscape~ipad.png in Resources */,
63158FAD1B468E0E00969917 /* ImageOptim.sh in Resources */,
D33988D815C6DD1600CAF1E4 /* options_selected_landscape~ipad.png in Resources */,
D33988DA15C6DD1600CAF1E4 /* options_transfer_default_landscape~ipad.png in Resources */,
D33988DC15C6DD1600CAF1E4 /* options_transfer_disabled_landscape~ipad.png in Resources */,
@ -3924,7 +3926,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = $SRCROOT/ImageOptim.sh;
shellScript = $SRCROOT/Tools/ImageOptim.sh;
};
F08F11A219C0AC2F007D70C2 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;

View file

@ -27,11 +27,15 @@ import os
import re
import shutil
import sys
from distutils.spawn import find_executable
from subprocess import Popen, PIPE
sys.dont_write_bytecode = True
sys.path.insert(0, 'submodules/cmake-builder')
import prepare
from distutils.spawn import find_executable
try:
import prepare
except:
print("Could not find prepare module, probably missing submodules/cmake-builder? Try running git submodule update --init --recursive")
exit(1)
class IOSTarget(prepare.Target):
@ -152,7 +156,7 @@ def extract_libs_list():
def check_installed(binary, prog=None, warn=True):
if not find_executable(binary):
if warn:
print("Could not find {}. Please install {}".format(binary, prog))
print("Could not find {}. Please install {}.".format(binary, prog))
return 1
return 0
@ -161,7 +165,7 @@ def check_tools():
ret = 0
if " " in os.path.dirname(os.path.realpath(__file__)):
print("Invalid location: your location should not contain spaces")
print("Invalid location: linphone-iphone path should not contain any spaces.")
ret = 1
for prog in ["autoconf", "automake", "pkg-config", "doxygen", "java", "nasm", "gettext", "wget", "yasm", "optipng"]:
@ -174,18 +178,24 @@ def check_tools():
if check_installed("glibtoolize", "libtool"):
glibtoolize_path = find_executable(glibtoolize)
ret = 1
error = "Please do a symbolic link from glibtoolize to libtoolize: 'ln -s {} ${}'"
error = "Please do a symbolic link from glibtoolize to libtoolize: 'ln -s {} ${}'."
print(error.format(glibtoolize_path, glibtoolize_path.replace("glibtoolize", "libtoolize")))
devnull = open(os.devnull, 'wb')
# just ensure that JDK is installed - if not, it will automatiaclyl display a popup to user
if not Popen("java -version".split(" "), stderr=PIPE, stdout=PIPE):
print("Please install Java JDK (not just JRE)")
p = Popen("java -version".split(" "), stderr=devnull, stdout=devnull)
p.wait()
if p.returncode != 0:
print(p.returncode)
print("Please install Java JDK (not just JRE).")
ret = 1
# needed by x264
check_installed("gas-preprocessor.pl", "it following the README.md")
check_installed("gas-preprocessor.pl", """it:
wget --no-check-certificate https://raw.github.com/yuvi/gas-preprocessor/master/gas-preprocessor.pl
chmod +x gas-preprocessor.pl
sudo mv gas-preprocessor.pl /usr/local/bin/""")
devnull = open(os.devnull, 'wb')
nasm_output = Popen("nasm -f elf32".split(" "), stderr=PIPE, stdout=PIPE).stderr.read()
if "fatal: unrecognised output format" in nasm_output:
print(
@ -195,15 +205,17 @@ def check_tools():
if not os.path.isdir("submodules/linphone/mediastreamer2") or not os.path.isdir("submodules/linphone/oRTP"):
print("Missing some git submodules. Did you run 'git submodule update --init --recursive'?")
ret = 1
if not Popen("xcrun --sdk iphoneos --show-sdk-path".split(" "), stdout=devnull, stderr=devnull):
print("iOS SDK not found, please install Xcode from AppStore or equivalent")
p = Popen("xcrun --sdk iphoneos --show-sdk-path".split(" "), stdout=devnull, stderr=devnull)
p.wait()
if p.returncode != 0:
print("iOS SDK not found, please install Xcode from AppStore or equivalent.")
ret = 1
else:
sdk_platform_path = Popen("xcrun --sdk iphonesimulator --show-sdk-platform-path".split(" "), stdout=PIPE, stderr=devnull).stdout.read()[:-1]
sdk_strings_path = "{}/{}".format(sdk_platform_path, "Developer/usr/bin/strings")
if not os.path.isfile(sdk_strings_path):
strings_path = find_executable("strings")
print("strings binary missing, please run 'sudo ln -s {} {}'".format(strings_path, sdk_strings_path))
print("strings binary missing, please run 'sudo ln -s {} {}'.".format(strings_path, sdk_strings_path))
ret = 1
if ret == 1:

View file

@ -19,196 +19,13 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
############################################################################
enable_gpl_third_parties=yes
enable_zrtp=yes
enable_ffmpeg=yes
enable_opus=yes
enable_debug=no
enable_i386=no
TUNNEL_AVAILABLE=$(shell git submodule status ../tunnel 2>/dev/null 1>/dev/null && echo yes)
ifneq ($(TUNNEL_AVAILABLE),)
enable_tunnel=yes
enable_gpl_third_parties=no
else
enable_tunnel=no
endif
.NOTPARALLEL all: checks build warning
# check that the selected options are correct
CHECKOPT_MSG := ""
ifeq ($(enable_gpl_third_parties)$(enable_ffmpeg),noyes)
# ffmpeg is not compatible with no GPL.
enable_ffmpeg:=no
endif
checks: check_options check_progs
ifneq ($(CHECKOPT_MSG),"")
check_options:
@echo $(CHECKOPT_MSG)
else
check_options:
endif
# you can skip the tool check by export BYPASS_TOOLCHECK=1
ifneq ($(BYPASS_TOOLCHECK),1)
# Checks
CHECK_MSG=$(shell ../../Tools/check_tools.sh)
check_progs:
ifneq ($(CHECK_MSG),)
$(error Some tools are missing.)
else
$(info All tools are present.)
endif
else
check_progs:
$(info Skipping tool checks)
endif
# setup footer
ifeq ($(enable_gpl_third_parties),yes)
warning:
@echo
@echo "***************************************************************************"
@echo "***************************************************************************"
@echo "*****CAUTION, this liblinphone SDK is built using 3rd party GPL code ******"
@echo "*****Even if you acquired a proprietary license from Belledonne ******"
@echo "*****Communications, this SDK is GPL and GPL only. ******"
@echo "*****To disable 3rd party gpl code, please use: ******"
@echo "*****$ make enable_gpl_third_parties=no ******"
@echo "***************************************************************************"
@echo "***************************************************************************"
else
warning:
@echo
@echo "*****************************************************************"
@echo "*****************************************************************"
@echo "*****Linphone SDK without 3rd party GPL software ******"
@echo "*****If you acquired a proprietary license from Belledonne ******"
@echo "*****Communications, this SDK can be used to create ******"
@echo "*****a proprietary linphone-based application. ******"
@echo "*****************************************************************"
@echo "*****************************************************************"
endif
LINPHONE_OPTIONS=enable_gpl_third_parties=$(enable_gpl_third_parties) \
enable_zrtp=$(enable_zrtp) \
enable_opus=$(enable_opus) \
enable_debug=$(enable_debug) \
enable_ffmpeg=$(enable_ffmpeg) \
enable_tunnel=$(enable_tunnel) \
enable_i386=$(enable_i386)
armv7_host=armv7-apple-darwin.ios
aarch64_host=aarch64-apple-darwin.ios
i386_host=i386-apple-darwin.ios
x86_64_host=x86_64-apple-darwin.ios
all_archs=armv7 aarch64 i386 x86_64
active_arch=$(filter-out i386,$(all_archs))
ifeq ($(enable_i386),yes)
active_arch+=i386
endif
all_hosts=$(addsuffix -apple-darwin.ios,$(active_arch))
armv7-%:
make -f builder-iphone-os.mk host=$(armv7_host) $(LINPHONE_OPTIONS) $*
aarch64-%:
make -f builder-iphone-os.mk host=$(aarch64_host) $(LINPHONE_OPTIONS) $*
i386-%:
make -f builder-iphone-os.mk host=$(i386_host) $(LINPHONE_OPTIONS) $*
x86_64-%:
make -f builder-iphone-os.mk host=$(x86_64_host) $(LINPHONE_OPTIONS) $*
# sends the target after 'broadcast_' to all sub-architectures
broadcast_%:
@echo "Broadcasting target '$*' to $(all_hosts)"
@for h in $(all_hosts); do \
echo "==== starting build for host $$h ===="; \
make -f builder-iphone-os.mk host=$$h $(LINPHONE_OPTIONS) $* || exit 1 ; \
done
build-% clean-% veryclean-%:
@for h in $(all_hosts); do \
echo "==== starting build of $@ for host $$h ===="; \
make -f builder-iphone-os.mk host=$$h $(LINPHONE_OPTIONS) $@ || exit 1 ; \
done
sdk:
make -f builder-iphone-os.mk delivery-sdk
libs:
make -f builder-iphone-os.mk multi-arch
download-sdk:
make -f builder-iphone-os.mk download-sdk
build: broadcast_all sdk
ipa: build broadcast_ipa
clean: broadcast_clean
veryclean: broadcast_veryclean
list-packages:
@make -f builder-iphone-os.mk list-packages
pull-transifex:
cd ../../ && tx pull -af
push-transifex:
cd ../../ && ./Tools/i18n_generate_strings_files.sh && tx push -s -t -f --no-interactive
zipres:
@tar -C ../.. -czf ../../ios_assets.tar.gz Resources iTunesArtwork
@echo Archive 'ios_assets.tar.gz' placed in root directory
empty:=
space:= $(empty) $(empty)
arch_opt=$(subst $(space),|,$(all_archs))
help:
@echo "(please read the README.md file first)"
@echo "Available architectures: $(all_archs)"
@echo "Activated architectures: $(active_arch)"
@echo ""
@echo "Invoke with 'enable_i386=yes' to add i386 build"
@echo ""
@echo "Available targets:"
@echo ""
@echo " * all : builds all architectures and creates the liblinphone sdk"
@echo " * ipa : builds all, creates the SDK, then builds an IPA of the Linphone-iphone application"
@echo " * clean : clean all packages for all architectures"
@echo " * veryclean : completely clean all packages for all architectures"
@echo " * zipres : creates a tar.gz file with all the resources (images)"
@echo ""
@echo "=== Advanced usage ==="
@echo ""
@echo " * list-packages : lists the packages that you can build"
@echo ""
@echo " * build-[package] : builds the package for all architectures"
@echo " * clean-[package] : clean the package for all architectures"
@echo " * veryclean-[package] : completely clean the package for all architectures"
@echo ""
@echo " * [$(arch_opt)]-build-[package] : builds a package for the selected architecture"
@echo " * [$(arch_opt)]-clean-[package] : clean the package for the selected architecture"
@echo " * [$(arch_opt)]-veryclean-[package] : completely clean the package for the selected architecture"
@echo ""
@echo " * sdk : re-add all generated libraries to the SDK. Use this only after a full build."
@echo " * libs : after a rebuild of a subpackage, will mix the new libs in liblinphone-sdk/apple-darwin directory"
all:
@echo "*******************************************************************************"
@echo "This makefile is deprecated. Please see README.md for compilation instructions. Here are some equivalents:"
@echo "Equivalent of make is: cd ../../ && ./prepare.py && make"
@echo "Equivalent of make enable_gpl_third_parties=no is: cd ../../ && ./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO && make"
@echo "Equivalent of make enable_debug=yes is: cd ../../ && ./prepare.py -d && make"
@echo "Equivalent of make enable_i386=yes is: cd ../../ && ./prepare.py all && make"
@echo "Equivalent of make enable_zrpt=yes enable_opus=yes enable_ffmpeg is: cd ../../ && ./prepare.py -DENABLE_ZRTP=YES -DENABLE_OPUS=YES -DENABLE_FFMPEG=YES && make"
@echo "*******************************************************************************"

View file

@ -1,81 +0,0 @@
############################################################################
# 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.
#
############################################################################
enable_gpl_third_parties=yes
enable_zrtp=no
.NOTPARALLEL all: check_options build warning
ifeq ($(enable_gpl_third_parties)$(enable_zrtp),noyes)
check_options:
@echo "ZRTP is not available in non-gpl build."
@exit -1
else
check_options:
endif
ifeq ($(enable_gpl_third_parties),yes)
warning:
@echo
@echo "*****************************************************************"
@echo "*****************************************************************"
@echo "*****CAUTION, this liblinphone SDK is built using GPL code ******"
@echo "*****To disable gpl code, use make enable_gpl_third_parties=no***"
@echo "*****************************************************************"
@echo "*****************************************************************"
else
warning:
@echo
@echo "*****************************************************************"
@echo "*****************************************************************"
@echo "*****linphone SDK without GPL code ******"
@echo "*****************************************************************"
@echo "*****************************************************************"
endif
LINPHONE_OPTIONS=enable_gpl_third_parties=$(enable_gpl_third_parties) enable_zrtp=$(enable_zrtp)
build:
make -f builder-iphone-os.mk host=armv6-apple-darwin $(LINPHONE_OPTIONS) all \
&& make -f builder-iphone-simulator.mk $(LINPHONE_OPTIONS) all \
&& make -f builder-iphone-os.mk host=armv7-apple-darwin $(LINPHONE_OPTIONS) all \
&& make -f builder-iphone-os.mk delivery-sdk
ipa: build
make -f builder-iphone-simulator.mk ipa \
&& make -f builder-iphone-os.mk host=armv6-apple-darwin ipa \
&& make -f builder-iphone-os.mk host=armv7-apple-darwin ipa
clean:
make -f builder-iphone-simulator.mk clean \
&& make -f builder-iphone-os.mk host=armv6-apple-darwin 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 host=armv6-apple-darwin clean-makefile \
&& make -f builder-iphone-os.mk host=armv7-apple-darwin clean-makefile
veryclean:
make -f builder-iphone-simulator.mk veryclean \
&& make -f builder-iphone-os.mk host=armv6-apple-darwin veryclean \
&& make -f builder-iphone-os.mk host=armv7-apple-darwin veryclean

View file

@ -1,287 +0,0 @@
############################################################################
# builder-generic.mk
# 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.
#
############################################################################
host?=armv7-apple-darwin.ios
enable_i386?=no
config_site:=iphone-config.site
library_mode:= --disable-shared --enable-static
linphone_configure_controls = \
--with-readline=none \
--enable-gtk_ui=no \
--enable-console_ui=no \
--with-gsm=$(prefix) \
--with-srtp=$(prefix) \
--with-antlr=$(prefix) \
--disable-strict \
--disable-nls \
--disable-theora \
--disable-sdl \
--disable-x11 \
--disable-tutorials \
--disable-tools \
--enable-msg-storage=yes \
--with-polarssl=$(prefix) \
--enable-dtls
#path
BUILDER_SRC_DIR?=$(shell pwd)/../
ifeq ($(enable_debug),yes)
BUILDER_BUILD_DIR?=$(shell pwd)/../build-$(host)-debug
linphone_configure_controls += CFLAGS="-g"
prefix?=$(BUILDER_SRC_DIR)/../liblinphone-sdk/$(host)-debug
else
BUILDER_BUILD_DIR?=$(shell pwd)/../build-$(host)
prefix?=$(BUILDER_SRC_DIR)/../liblinphone-sdk/$(host)
endif
LINPHONE_SRC_DIR=$(BUILDER_SRC_DIR)/linphone
LINPHONE_BUILD_DIR=$(BUILDER_BUILD_DIR)/linphone
LINPHONE_IPHONE_VERSION=$(shell git describe --always)
# list of the submodules to build, the order is important
MEDIASTREAMER_PLUGINS := msilbc \
libilbc \
msamr \
mssilk \
msx264 \
msopenh264 \
msbcg729
# TODO: add mswebrtc when it is commatible again
SUBMODULES_LIST := polarssl
ifeq ($(enable_tunnel),yes)
SUBMODULES_LIST += tunnel
endif
SUBMODULES_LIST += libantlr \
cunit \
belle-sip \
srtp \
speex \
libgsm \
libvpx \
libxml2 \
bzrtp \
ffmpeg \
opus
# build linphone (which depends on submodules) and then the plugins
all: build-linphone $(addprefix build-,$(MEDIASTREAMER_PLUGINS))
####################################################################
# setup the switches that might trigger a linphone recompilation
####################################################################
enable_gpl_third_parties?=yes
enable_ffmpeg?=yes
enable_zrtp?=yes
SWITCHES:=
ifeq ($(enable_zrtp), yes)
linphone_configure_controls+= --enable-zrtp
SWITCHES += enable_zrtp
else
linphone_configure_controls+= --disable-zrtp
SWITCHES += disable_zrtp
endif
ifeq ($(enable_tunnel), yes)
linphone_configure_controls+= --enable-tunnel
SWITCHES += enable_tunnel
else
linphone_configure_controls+= --disable-tunnel
SWITCHES += disable_tunnel
endif
ifeq ($(enable_gpl_third_parties),yes)
SWITCHES+= enable_gpl_third_parties
ifeq ($(enable_ffmpeg), yes)
linphone_configure_controls+= --enable-ffmpeg
SWITCHES += enable_ffmpeg
else
linphone_configure_controls+= --disable-ffmpeg
SWITCHES += disable_ffmpeg
endif
else # !enable gpl
linphone_configure_controls+= --disable-ffmpeg
SWITCHES += disable_gpl_third_parties disable_ffmpeg
endif
SWITCHES := $(addprefix $(LINPHONE_BUILD_DIR)/,$(SWITCHES))
mode_switch_check: $(SWITCHES)
#generic rule to force recompilation of linphone if some options require it
$(LINPHONE_BUILD_DIR)/enable_% $(LINPHONE_BUILD_DIR)/disable_%:
mkdir -p $(LINPHONE_BUILD_DIR)
cd $(LINPHONE_BUILD_DIR) && rm -f *able_$*
touch $@
cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile
####################################################################
# Base rules:
####################################################################
clean-makefile: clean-makefile-linphone
clean: clean-linphone
init:
mkdir -p $(prefix)/include
mkdir -p $(prefix)/lib/pkgconfig
veryclean: veryclean-linphone
rm -rf $(BUILDER_BUILD_DIR)
list-packages:
@echo "Submodules:"
@echo "$(addprefix \nbuild-,$(SUBMODULES_LIST))"
@echo "\nPlugins: "
@echo "$(addprefix \nbuild-,$(MEDIASTREAMER_PLUGINS))"
####################################################################
# Linphone compilation
####################################################################
build-submodules: $(addprefix build-,$(SUBMODULES_LIST))
.NOTPARALLEL build-linphone: init build-submodules 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 all && make install
mkdir -p $(prefix)/share/linphone/tutorials && cp -f $(LINPHONE_SRC_DIR)/coreapi/help/*.c $(prefix)/share/linphone/tutorials/
clean-linphone: $(addprefix clean-,$(SUBMODULES_LIST)) $(addprefix clean-,$(MEDIASTREAMER_PLUGINS))
cd $(LINPHONE_BUILD_DIR) && make clean
veryclean-linphone: $(addprefix veryclean-,$(SUBMODULES_LIST)) $(addprefix veryclean-,$(MEDIASTREAMER_PLUGINS))
#-cd $(LINPHONE_BUILD_DIR) && make distclean
-cd $(LINPHONE_SRC_DIR) && rm -f configure
clean-makefile-linphone: $(addprefix clean-makefile-,$(SUBMODULES_LIST)) $(addprefix clean-makefile-,$(MEDIASTREAMER_PLUGINS))
cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile
$(LINPHONE_SRC_DIR)/configure:
cd $(LINPHONE_SRC_DIR) && ./autogen.sh
$(LINPHONE_BUILD_DIR)/Makefile: $(LINPHONE_SRC_DIR)/configure
mkdir -p $(LINPHONE_BUILD_DIR)
@echo -e "\033[1mPKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(LINPHONE_SRC_DIR)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \
${linphone_configure_controls}\033[0m"
cd $(LINPHONE_BUILD_DIR) && \
PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(LINPHONE_SRC_DIR)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \
${linphone_configure_controls}
#libphone only (asume dependencies are met)
build-liblinphone: $(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
clean-makefile-liblinphone:
cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile
clean-liblinphone:
cd $(LINPHONE_BUILD_DIR) && make clean
include builders.d/*.mk
####################################################################
# sdk generation and distribution
####################################################################
multi-arch:
@arm_archives=`find $(prefix) -name *.a` ;\
mkdir -p $(prefix)/../apple-darwin; \
cp -rf $(prefix)/include $(prefix)/../apple-darwin/. ; \
cp -rf $(prefix)/share $(prefix)/../apple-darwin/. ; \
for archive in $$arm_archives ; do \
i386_path=`echo $$archive | sed -e "s/armv7/i386/"` ;\
arm64_path=`echo $$archive | sed -e "s/armv7/aarch64/"` ;\
x64_path=`echo $$archive | sed -e "s/armv7/x86_64/"` ;\
destpath=`echo $$archive | sed -e "s/-debug//" | sed -e "s/armv7-//" | sed -e "s/\.ios//"` ;\
all_paths=`echo $$archive $$arm64_path`; \
all_archs="armv7,aarch64"; \
mkdir -p `dirname $$destpath` ; \
if test $(enable_i386) = yes ; then \
if test -f "$$i386_path"; then \
all_paths=`echo $$all_paths $$i386_path`; \
all_archs="$$all_archs,i386" ; \
else \
echo "WARNING: archive `basename $$archive` exists in arm tree but does not exists in i386 tree: $$i386_path."; \
fi; \
fi; \
if test -f "$$x64_path"; then \
all_paths=`echo $$all_paths $$x64_path`; \
all_archs="$$all_archs,x86_64" ; \
else \
echo "WARNING: archive `basename $$archive` exists in arm tree but does not exists in x86_64 tree: $$x64_path."; \
fi; \
echo "[$$all_archs] Mixing `basename $$archive` in $$destpath"; \
lipo -create $$all_paths -output $$destpath; \
done
if ! test -f $(prefix)/../apple-darwin/lib/libtunnel.a ; then \
cp -f $(BUILDER_SRC_DIR)/../submodules/binaries/libdummy.a $(prefix)/../apple-darwin/lib/libtunnel.a ; \
fi
delivery-sdk: multi-arch
echo "Generating SDK zip file for version $(LINPHONE_IPHONE_VERSION)"
cd $(BUILDER_SRC_DIR)/../ \
&& zip -r $(BUILDER_SRC_DIR)/liblinphone-iphone-sdk-$(LINPHONE_IPHONE_VERSION).zip \
liblinphone-sdk/apple-darwin \
liblinphone-tutorials \
-x liblinphone-tutorials/hello-world/build\* \
-x liblinphone-tutorials/hello-world/hello-world.xcodeproj/*.pbxuser \
-x liblinphone-tutorials/hello-world/hello-world.xcodeproj/*.mode1v3
download-sdk:
@echo "Downloading the latest binary SDK"
cd $(BUILDER_SRC_DIR)/../
rm -fr liblinphone-iphone-sdk-latest*
wget http://linphone.org/snapshots/ios/liblinphone-iphone-sdk-latest.zip
unzip -o -q liblinphone-iphone-sdk-latest.zip
rm -fr ../../liblinphone-sdk/
mv liblinphone-sdk ../..
.PHONY delivery:
cd $(BUILDER_SRC_DIR)/../../ \
&& zip -r $(BUILDER_SRC_DIR)/linphone-iphone.zip \
linphone-iphone \
-x linphone-iphone/build\* \
--exclude linphone-iphone/.git\* --exclude \*.[od] --exclude \*.so.\* --exclude \*.a --exclude linphone-iphone/liblinphone-sdk/apple-darwin/\* --exclude \*.lo
ipa:
cd $(BUILDER_SRC_DIR)/../ \
&& xcodebuild -configuration Release \
&& xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/linphone.app -o $(BUILDER_SRC_DIR)/../linphone-iphone.ipa

View file

@ -1,43 +0,0 @@
############################################################################
# belle-sip.mk
# Copyright (C) 2013 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.
#
############################################################################
belle-sip_dir?=belle-sip
$(BUILDER_SRC_DIR)/$(belle-sip_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(belle-sip_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(belle-sip_dir)/Makefile: $(BUILDER_SRC_DIR)/$(belle-sip_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(belle-sip_dir)
cd $(BUILDER_BUILD_DIR)/$(belle-sip_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(belle-sip_dir)/configure --prefix=$(prefix) --host=$(host) ${library_mode} --enable-tls --enable-tunnel --with-polarssl=$(prefix) --disable-tests
build-belle-sip: $(BUILDER_BUILD_DIR)/$(belle-sip_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(belle-sip_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-belle-sip:
cd $(BUILDER_BUILD_DIR)/$(belle-sip_dir) && make clean
veryclean-belle-sip:
-cd $(BUILDER_BUILD_DIR)/$(belle-sip_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(belle-sip_dir)/configure
clean-makefile-belle-sip:
cd $(BUILDER_BUILD_DIR)/$(belle-sip_dir) && rm -f Makefile

View file

@ -1,24 +0,0 @@
cunit_dir?=cunit
SRC_CUNIT=$(BUILDER_SRC_DIR)/${cunit_dir}
BUILD_CUNIT=$(BUILDER_BUILD_DIR)/${cunit_dir}
${BUILD_CUNIT}/CMakeCache.txt:
mkdir -p ${BUILD_CUNIT} && \
cd ${BUILD_CUNIT} && \
cmake -DENABLE_STATIC=YES -DCMAKE_TOOLCHAIN_FILE=$(BUILDER_SRC_DIR)/build/toolchain.cmake \
-DIOS_ARCH=${ARCH} -DCMAKE_INSTALL_PREFIX=$(prefix) ${SRC_CUNIT}
build-cunit: ${BUILD_CUNIT}/CMakeCache.txt
cd ${BUILD_CUNIT} && \
make && \
make install
clean-cunit:
cd $(BUILD_CUNIT)/$(cunit_dir) && \
make clean
veryclean-cunit:
rm -rf $(BUILD_CUNIT)/$(cunit_dir)
clean-makefile-cunit: veryclean-cunit

View file

@ -1,55 +0,0 @@
ffmpeg_configure_options=\
--disable-mmx \
--enable-cross-compile \
--disable-ffprobe --disable-ffserver --disable-avdevice --disable-doc \
--disable-avfilter --disable-network \
--disable-everything --enable-decoder=mjpeg --enable-encoder=mjpeg --enable-decoder=mpeg4 --enable-encoder=mpeg4 \
--enable-decoder=h264 --disable-avformat --enable-pic\
--enable-decoder=h263p --enable-encoder=h263p --enable-decoder=h263 --enable-encoder=h263 \
--cross-prefix=$$SDK_BIN_PATH/ \
--sysroot=$$SYSROOT_PATH --arch=$$ARCH \
--enable-static --disable-shared --target-os=darwin \
--extra-cflags="-w $$COMMON_FLAGS" --extra-ldflags="$$COMMON_FLAGS" \
--disable-iconv \
--ar="$$AR" \
--nm="$$NM" \
--cc="$$CC"
# --as=$(BUILDER_SRC_DIR)/externals/x264/extras/gas-preprocessor.pl
#--sysinclude=PATH location of cross-build system headers
ifneq (,$(findstring armv6,$(host)))
ffmpeg_configure_options+= --cpu=arm1176jzf-s --disable-armv5te --enable-armv6 --enable-armv6t2
endif
ifneq (,$(findstring armv7,$(host)))
ffmpeg_configure_options+= --enable-neon --cpu=cortex-a8 --disable-armv5te --enable-armv6 --enable-armv6t2
endif
ffmpeg_dir?=externals/ffmpeg
$(BUILDER_SRC_DIR)/$(ffmpeg_dir)/patched :
cd $(BUILDER_SRC_DIR)/$(ffmpeg_dir) \
&& git apply $(BUILDER_SRC_DIR)/build/builders.d/ffmpeg.patch \
&& touch $(BUILDER_SRC_DIR)/$(ffmpeg_dir)/patched
$(BUILDER_BUILD_DIR)/$(ffmpeg_dir)/config.mak:
mkdir -p $(BUILDER_BUILD_DIR)/$(ffmpeg_dir)
cd $(BUILDER_BUILD_DIR)/$(ffmpeg_dir)/ \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& $(BUILDER_SRC_DIR)/$(ffmpeg_dir)/configure --prefix=$(prefix) $(ffmpeg_configure_options)
build-ffmpeg: $(BUILDER_BUILD_DIR)/$(ffmpeg_dir)/config.mak
cd $(BUILDER_BUILD_DIR)/$(ffmpeg_dir) \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig make RANLIB="$$RANLIB" && make RANLIB="$$RANLIB" install
clean-ffmpeg:
-cd $(BUILDER_BUILD_DIR)/$(ffmpeg_dir) && make clean
veryclean-ffmpeg:
-cd $(BUILDER_BUILD_DIR)/$(ffmpeg_dir) && make distclean
rm -rf $(BUILDER_BUILD_DIR)/$(ffmpeg_dir)
clean-makefile-ffmpeg:
cd $(BUILDER_BUILD_DIR)/$(ffmpeg_dir) && rm -f config.mak

View file

@ -1,23 +0,0 @@
#GSM
gsm_dir?=externals/gsm
build-libgsm:
cp -rf $(BUILDER_SRC_DIR)/$(gsm_dir) $(BUILDER_BUILD_DIR)/$(gsm_dir)
rm -rf $(BUILDER_BUILD_DIR)/$(gsm_dir)/gsm/.git $(BUILDER_BUILD_DIR)/$(gsm_dir)/.git
rm -f $(prefix)/lib/libgsm.a
rm -rf $(prefix)/include/gsm
cd $(BUILDER_BUILD_DIR)/$(gsm_dir)\
&& mkdir -p $(prefix)/include/gsm \
&& host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& make -j1 CC="$${CC}" INSTALL_ROOT=$(prefix) GSM_INSTALL_INC=$(prefix)/include/gsm install
clean-libgsm:
cd $(BUILDER_BUILD_DIR)/$(gsm_dir)\
&& make clean
veryclean-libgsm:
-cd $(BUILDER_BUILD_DIR)/$(gsm_dir) \
&& make uninstall

View file

@ -1,43 +0,0 @@
############################################################################
# libantlr.mk
# Copyright (C) 2013 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.
#
############################################################################
libantlr_dir?=externals/antlr3/runtime/C
$(BUILDER_SRC_DIR)/$(libantlr_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(libantlr_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(libantlr_dir)/Makefile: $(BUILDER_SRC_DIR)/$(libantlr_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(libantlr_dir)
cd $(BUILDER_BUILD_DIR)/$(libantlr_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(libantlr_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode}
build-libantlr: $(BUILDER_BUILD_DIR)/$(libantlr_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(libantlr_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-libantlr:
cd $(BUILDER_BUILD_DIR)/$(libantlr_dir) && make clean
veryclean-libantlr:
-cd $(BUILDER_BUILD_DIR)/$(libantlr_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(libantlr_dir)/configure
clean-makefile-libantlr:
cd $(BUILDER_BUILD_DIR)/$(libantlr_dir) && rm -f Makefile

View file

@ -1,29 +0,0 @@
# libilbc
LIBILBC_SRC_DIR:=$(BUILDER_SRC_DIR)/libilbc-rfc3951
LIBILBC_BUILD_DIR:=$(BUILDER_BUILD_DIR)/libilbc-rfc3951
$(LIBILBC_SRC_DIR)/configure:
cd $(LIBILBC_SRC_DIR) && ./autogen.sh
$(LIBILBC_BUILD_DIR)/Makefile: $(LIBILBC_SRC_DIR)/configure
mkdir -p $(LIBILBC_BUILD_DIR)
cd $(LIBILBC_BUILD_DIR) && \
PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(LIBILBC_SRC_DIR)/configure -prefix=$(prefix) --host=$(host) $(library_mode)
build-libilbc: $(LIBILBC_BUILD_DIR)/Makefile
cd $(LIBILBC_BUILD_DIR) && make && make install && \
mv $(prefix)/lib/libilbc.a $(prefix)/lib/libilbcrfc3951.a
clean-libilbc:
cd $(LIBILBC_BUILD_DIR) && make clean
veryclean-libilbc:
-cd $(LIBILBC_BUILD_DIR) && make distclean
-rm -f $(LIBILBC_SRC_DIR)/configure
clean-makefile-libilbc:
cd $(LIBILBC_BUILD_DIR) && rm -f Makefile

View file

@ -1,90 +0,0 @@
# /!\ Unset compiler env variable is set by user to avoid error in configure such as:
# 1) Requested extra CFLAGS '-fno-strict-aliasing' not supported by compiler
# OR
# 2) Unable to invoke compiler
unexport CC
libvpx_dir?=externals/libvpx
libvpx_configure_options=\
--enable-static --disable-shared \
--disable-examples --disable-unit-tests \
--enable-realtime-only --enable-spatial-resampling \
--enable-vp8 --enable-multithread --disable-vp9
ifeq ($(enable_debug),yes)
libvpx_configure_options += --enable-debug
endif
take_binary=
# force take binary, it seems libvpx was fixed since http://git.chromium.org/gitweb/?p=webm/libvpx.git;a=commit;h=33df6d1fc1d268b4901b74b4141f83594266f041
force_non_binary_libvpx=1
ifneq (,$(findstring armv6,$(host)))
libvpx_configure_options+= --target=armv6-darwin-gcc --cpu=arm1176jzf-s
else ifneq (,$(findstring armv7s,$(host)))
libvpx_configure_options+= --target=armv7s-darwin-gcc
take_binary = armv7s
else ifneq (,$(findstring armv7,$(host)))
libvpx_configure_options+= --target=armv7-darwin-gcc
take_binary = armv7
else ifneq (,$(findstring aarch64,$(host)))
libvpx_configure_options+= --target=arm64-darwin-gcc
take_binary = arm64
else ifneq (,$(findstring x86_64,$(host)))
libvpx_configure_options+= --target=x86_64-iphonesimulator-gcc
take_binary = x86_64
else
libvpx_configure_options+= --target=x86-darwin10-gcc
take_binary = i386
endif
ifeq ($(LINPHONE_CCACHE),ccache)
libvpx_configure_options+= --enable-ccache
endif
all_p+=armv7-darwin-gcc #neon Cortex-A8
ifeq ($(force_non_binary_libvpx),1)
take_binary=
libvpx_configure_options+= --extra-cflags="-fno-strict-aliasing"
endif
$(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk:
mkdir -p $(BUILDER_BUILD_DIR)/$(libvpx_dir)
cd $(BUILDER_BUILD_DIR)/$(libvpx_dir)/ \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& export all_platforms="${all_p}" && $(BUILDER_SRC_DIR)/$(libvpx_dir)/configure --prefix=$(prefix) --sdk-path=$$SDK_BIN_PATH/../../ --libc=$$SYSROOT_PATH $(libvpx_configure_options)
build-libvpx: $(BUILDER_BUILD_DIR)/$(libvpx_dir)/config.mk
cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
ifeq ($(force_non_binary_libvpx),1)
@echo "\033[01;32m DON'T get BINARY version of libvpx for $(take_binary), because 'force_non_binary_libvpx' is 1 \033[0m"
endif
ifneq (,$(take_binary))
# sometimes when clang gets updated we have to take binary version of libvpx for ARM because the compiler introduces bugs in optimized assembly
@echo "\033[01;32m Getting BINARY version of libvpx for $(take_binary) \033[0m"
cp $(BUILDER_SRC_DIR)/binaries/libvpx-$(take_binary).a $(prefix)/lib/libvpx.a
endif
clean-libvpx:
cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && make clean
veryclean-libvpx:
-cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && make distclean
cd $(BUILDER_SRC_DIR)/$(libvpx_dir) \
&& git clean -f && git reset --hard
rm -rf $(BUILDER_BUILD_DIR)/$(libvpx_dir)
clean-makefile-libvpx:
cd $(BUILDER_BUILD_DIR)/$(libvpx_dir) && rm -f config.mak

View file

@ -1,62 +0,0 @@
############################################################################
# libxml2.mk
# Copyright (C) 2013 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.
#
############################################################################
libxml2_dir?=externals/libxml2
libxml2_configure_options= --enable-static --disable-shared
libxml2_configure_options+= --disable-rebuild-docs --enable-rebuild-docs=no --with-iconv=no --with-python=no --with-zlib=no
$(BUILDER_SRC_DIR)/$(libxml2_dir)/patched.stamp:
cd $(BUILDER_SRC_DIR)/$(libxml2_dir) \
&& git apply $(BUILDER_SRC_DIR)/build/builders.d/libxml2.patch \
&& touch $@
$(BUILDER_SRC_DIR)/$(libxml2_dir)/configure: $(BUILDER_SRC_DIR)/$(libxml2_dir)/patched.stamp
@echo -e "\033[01;32m Running autogen for libxml2 in $(BUILDER_SRC_DIR)/$(libxml2_dir) \033[0m"
cd $(BUILDER_SRC_DIR)/$(libxml2_dir) \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) NOCONFIGURE=1 \
$(BUILDER_SRC_DIR)/$(libxml2_dir)/autogen.sh -prefix=$(prefix) --host=$(host) ${library_mode}
$(BUILDER_BUILD_DIR)/$(libxml2_dir)/Makefile: $(BUILDER_SRC_DIR)/$(libxml2_dir)/configure
@echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(libxml2_dir) \033[0m"
mkdir -p $(BUILDER_BUILD_DIR)/$(libxml2_dir)
cd $(BUILDER_BUILD_DIR)/$(libxml2_dir) \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(libxml2_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} ${libxml2_configure_options} CFLAGS=-w
build-libxml2: $(BUILDER_BUILD_DIR)/$(libxml2_dir)/Makefile
@echo -e "\033[01;32m building libxml2 \033[0m"
cd $(BUILDER_BUILD_DIR)/$(libxml2_dir) \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
make && make install
clean-libxml2:
-cd $(BUILDER_BUILD_DIR)/$(libxml2_dir) && make clean
veryclean-libxml2:
-cd $(BUILDER_BUILD_DIR)/$(libxml2_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(libxml2_dir)/configure
cd $(BUILDER_SRC_DIR)/$(libxml2_dir) \
&& git checkout configure.in \
&& rm -f patched.stamp
clean-makefile-libxml2:
-cd $(BUILDER_BUILD_DIR)/$(libxml2_dir) && rm -f Makefile

View file

@ -1,13 +0,0 @@
diff --git a/configure.in b/configure.in
index 0fb4983..a5f86ca 100644
--- a/configure.in
+++ b/configure.in
@@ -1,7 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT(entities.c)
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS(config.h)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST

View file

@ -1,50 +0,0 @@
############################################################################
# msamr.mk
# Copyright (C) 2011 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.
#
############################################################################
msamr_dir?=msamr
configure-options=
ifeq ($(LINPHONE_CCACHE), ccache)
configure-options+= --disable-strict
endif
$(BUILDER_SRC_DIR)/$(msamr_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(msamr_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(msamr_dir)/Makefile: $(BUILDER_SRC_DIR)/$(msamr_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(msamr_dir)
cd $(BUILDER_BUILD_DIR)/$(msamr_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(msamr_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} ${configure-options}
build-msamr: build-opencore-amr $(BUILDER_BUILD_DIR)/$(msamr_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(msamr_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-msamr: clean-opencore-amr
cd $(BUILDER_BUILD_DIR)/$(msamr_dir) && make clean
veryclean-msamr: veryclean-opencore-amr
-cd $(BUILDER_BUILD_DIR)/$(msamr_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(msamr_dir)/configure
clean-makefile-msamr: clean-makefile-opencore-amr
cd $(BUILDER_BUILD_DIR)/$(msamr_dir) && rm -f Makefile

View file

@ -1,66 +0,0 @@
############################################################################
# msbcg729.mk
# Copyright (C) 2011 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.
#
############################################################################
msbcg729_dir?=bcg729
enable_bcg729?=yes
configure-options=
ifeq ($(LINPHONE_CCACHE), ccache)
configure-options+= --disable-strict
endif
$(BUILDER_SRC_DIR)/$(msbcg729_dir)/configure:
@echo -e "\033[01;32m Running autogen for msbcg729 in $(BUILDER_SRC_DIR)/$(msbcg729_dir) \033[0m"
cd $(BUILDER_SRC_DIR)/$(msbcg729_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(msbcg729_dir)/Makefile: $(BUILDER_SRC_DIR)/$(msbcg729_dir)/configure
@echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(msbcg729_dir) \033[0m"
mkdir -p $(BUILDER_BUILD_DIR)/$(msbcg729_dir)
cd $(BUILDER_BUILD_DIR)/$(msbcg729_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(msbcg729_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \
--enable-static ${configure-options}
ifeq ($(enable_bcg729),yes)
build-msbcg729: $(BUILDER_BUILD_DIR)/$(msbcg729_dir)/Makefile
@echo -e "\033[01;32m building bcg729 \033[0m"
cd $(BUILDER_BUILD_DIR)/$(msbcg729_dir) \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig \
CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
make -j1 && make install
else
build-msbcg729:
@echo "G729 is disabled"
endif
clean-msbcg729:
-cd $(BUILDER_BUILD_DIR)/$(msbcg729_dir) && make clean
veryclean-msbcg729:
-cd $(BUILDER_BUILD_DIR)/$(msbcg729_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(msbcg729_dir)/configure
clean-makefile-msbcg729:
-cd $(BUILDER_BUILD_DIR)/$(msbcg729_dir) && rm -f Makefile

View file

@ -1,29 +0,0 @@
# msilbc plugin
msilbc_dir?=msilbc
MSILBC_SRC_DIR:=$(BUILDER_SRC_DIR)/$(msilbc_dir)
MSILBC_BUILD_DIR:=$(BUILDER_BUILD_DIR)/$(msilbc_dir)
$(MSILBC_SRC_DIR)/configure:
cd $(MSILBC_SRC_DIR) && ./autogen.sh
$(MSILBC_BUILD_DIR)/Makefile: $(MSILBC_SRC_DIR)/configure
mkdir -p $(MSILBC_BUILD_DIR)
cd $(MSILBC_BUILD_DIR) && \
PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(MSILBC_SRC_DIR)/configure -prefix=$(prefix) --host=$(host) $(library_mode)
build-msilbc: build-libilbc $(MSILBC_BUILD_DIR)/Makefile
cd $(MSILBC_BUILD_DIR) && make && make install
clean-msilbc:
cd $(MSILBC_BUILD_DIR) && make clean
veryclean-msilbc:
# -cd $(MSILBC_BUILD_DIR) && make distclean
-cd $(MSILBC_SRC_DIR) && rm configure
clean-makefile-msilbc:
cd $(MSILBC_BUILD_DIR) && rm -f Makefile

View file

@ -1,44 +0,0 @@
############################################################################
# msopenh264.mk
# Copyright (C) 2011 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.
#
############################################################################
msopenh264_dir?=msopenh264
$(BUILDER_SRC_DIR)/$(msopenh264_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(msopenh264_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(msopenh264_dir)/Makefile: $(BUILDER_SRC_DIR)/$(msopenh264_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(msopenh264_dir)
cd $(BUILDER_BUILD_DIR)/$(msopenh264_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(msopenh264_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode}
build-msopenh264: build-openh264 $(BUILDER_BUILD_DIR)/$(msopenh264_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(msopenh264_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-msopenh264: clean-openh264
cd $(BUILDER_BUILD_DIR)/$(msopenh264_dir) && make clean
veryclean-msopenh264: veryclean-openh264
-cd $(BUILDER_BUILD_DIR)/$(msopenh264_dir) && make distclean
-cd $(BUILDER_SRC_DIR)/$(msopenh264_dir) && rm -f configure
clean-makefile-msopenh264: clean-makefile-openh264
cd $(BUILDER_BUILD_DIR)/$(msopenh264_dir) && rm -f Makefile

View file

@ -1,70 +0,0 @@
############################################################################
# mssilk.mk
# Copyright (C) 2011 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.
#
############################################################################
mssilk_dir?=mssilk
enable_silk?=yes
configure-options=
ifeq ($(LINPHONE_CCACHE), ccache)
configure-options+= --disable-strict
endif
$(BUILDER_SRC_DIR)/$(mssilk_dir)/configure:
@echo -e "\033[01;32m Running autogen for mssilk in $(BUILDER_SRC_DIR)/$(mssilk_dir) \033[0m"
cd $(BUILDER_SRC_DIR)/$(mssilk_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile: $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure
@echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(mssilk_dir) \033[0m"
mkdir -p $(BUILDER_BUILD_DIR)/$(mssilk_dir)
cd $(BUILDER_BUILD_DIR)/$(mssilk_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(mssilk_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \
--enable-static ${configure-options}
ifeq ($(enable_silk),yes)
build-mssilk: $(BUILDER_BUILD_DIR)/$(mssilk_dir)/Makefile
@echo -e "\033[01;32m building silk \033[0m"
cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \
CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
make -j1 && make install
ifeq ($(host),armv7-apple-darwin)
echo -e "\033[01;32m Getting BINARY version of silk for armV7 \033[0m"
cp $(BUILDER_SRC_DIR)/$(mssilk_dir)/ios_bin/armv7/libSKP_SILK_SDK.a $(prefix)/lib/
endif
else
build-mssilk:
echo "SILK is disabled"
endif # enable_silk
clean-mssilk:
-cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && make clean
veryclean-mssilk:
-cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(mssilk_dir)/configure
clean-makefile-mssilk:
-cd $(BUILDER_BUILD_DIR)/$(mssilk_dir) && rm -f Makefile

View file

@ -1,46 +0,0 @@
############################################################################
# mswebrtc.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.
#
############################################################################
mswebrtc_dir?=mswebrtc
$(BUILDER_SRC_DIR)/$(mswebrtc_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(mswebrtc_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(mswebrtc_dir)/Makefile: $(BUILDER_SRC_DIR)/$(mswebrtc_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(mswebrtc_dir)
cd $(BUILDER_BUILD_DIR)/$(mswebrtc_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(mswebrtc_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} --disable-aec CFLAGS="-Wno-error"
build-mswebrtc: $(BUILDER_BUILD_DIR)/$(mswebrtc_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(mswebrtc_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-mswebrtc:
cd $(BUILDER_BUILD_DIR)/$(mswebrtc_dir) && make clean
veryclean-mswebrtc:
-cd $(BUILDER_BUILD_DIR)/$(mswebrtc_dir) && make distclean
-cd $(BUILDER_SRC_DIR)/$(mswebrtc_dir) && rm -f configure
clean-makefile-mswebrtc:
cd $(BUILDER_BUILD_DIR)/$(mswebrtc_dir) && rm -f Makefile

View file

@ -1,49 +0,0 @@
############################################################################
# msx264.mk
# Copyright (C) 2011 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.
#
############################################################################
msx264_dir?=msx264
configure-options=
ifeq ($(LINPHONE_CCACHE), ccache)
configure-options+= --disable-strict
endif
$(BUILDER_SRC_DIR)/$(msx264_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(msx264_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(msx264_dir)/Makefile: $(BUILDER_SRC_DIR)/$(msx264_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(msx264_dir)
cd $(BUILDER_BUILD_DIR)/$(msx264_dir)/ \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(msx264_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} ${configure-options}
build-msx264: build-x264 $(BUILDER_BUILD_DIR)/$(msx264_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(msx264_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-msx264: clean-x264
cd $(BUILDER_BUILD_DIR)/$(msx264_dir) && make clean
veryclean-msx264: veryclean-x264
-cd $(BUILDER_BUILD_DIR)/$(msx264_dir) && make distclean
-cd $(BUILDER_SRC_DIR)/$(msx264_dir) && rm -f configure
clean-makefile-msx264: clean-makefile-x264
cd $(BUILDER_BUILD_DIR)/$(msx264_dir) && rm -f Makefile

View file

@ -1,48 +0,0 @@
############################################################################
# opencore-amr.mk
# Copyright (C) 2011 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.
#
############################################################################
opencore-amr_dir?=externals/opencore-amr
$(BUILDER_SRC_DIR)/$(opencore-amr_dir)/autoreconf.stamp: $(BUILDER_SRC_DIR)/$(opencore-amr_dir)/configure.ac
cd $(BUILDER_SRC_DIR)/$(opencore-amr_dir) \
&& libtoolize --copy --force \
&& aclocal -I m4 \
&& automake --add-missing --force-missing --copy && autoreconf && touch autoreconf.stamp
$(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/Makefile: $(BUILDER_SRC_DIR)/$(opencore-amr_dir)/autoreconf.stamp
mkdir -p $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)
cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/ \
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(opencore-amr_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} ${opencore-amr-configure-option}
build-opencore-amr: $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
clean-opencore-amr:
cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && make clean
veryclean-opencore-amr:
-cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && make distclean
-rm -rf $(BUILDER_BUILD_DIR)/$(opencore-amr_dir)
clean-makefile-opencore-amr:
cd $(BUILDER_BUILD_DIR)/$(opencore-amr_dir) && rm -f Makefile

View file

@ -1,40 +0,0 @@
commit 6b3de978d928b6c0baec3305c9803c21a4367d0c
Author: Simon Morlat <simon.morlat@linphone.org>
Date: Tue Apr 15 15:19:37 2014 +0200
permissive mode: allow reference frames to be used even if there were lost slices.
diff --git a/codec/decoder/core/src/manage_dec_ref.cpp b/codec/decoder/core/src/manage_dec_ref.cpp
index dcf61ca..5582ec9 100644
--- a/codec/decoder/core/src/manage_dec_ref.cpp
+++ b/codec/decoder/core/src/manage_dec_ref.cpp
@@ -165,6 +165,7 @@ int32_t WelsReorderRefList (PWelsDecoderContext pCtx) {
&& (pSliceHeader->iSpsId != ppRefList[i]->iSpsId)) { //check;
WelsLog (pCtx, WELS_LOG_WARNING, "WelsReorderRefList()-1::::BASE LAYER::::iSpsId:%d, ref_sps_id:%d\n",
pSliceHeader->iSpsId, ppRefList[i]->iSpsId);
+ return ERR_NONE;
pCtx->iErrorCode = dsNoParamSets; //cross-IDR reference frame selection, SHOULD request IDR.--
return ERR_INFO_REFERENCE_PIC_LOST;
} else {
commit a1f3b95ad18d0788c2c803fac80e78d6365673ce
Author: Simon Morlat <simon.morlat@linphone.org>
Date: Tue Apr 15 17:54:58 2014 +0200
permissive mode (2)
diff --git a/codec/decoder/core/src/decoder_core.cpp b/codec/decoder/core/src/decoder_core.cpp
index a14e971..e742dbf 100644
--- a/codec/decoder/core/src/decoder_core.cpp
+++ b/codec/decoder/core/src/decoder_core.cpp
@@ -1738,8 +1738,8 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int3
if ((iLastIdD < 0) || //case 1: first layer
(iLastIdD == iCurrIdD)) { //case 2: same uiDId
InitDqLayerInfo (dq_cur, &pLayerInfo, pNalCur, pCtx->pDec);
-
- if (!dq_cur->sLayerInfo.pSps->bGapsInFrameNumValueAllowedFlag) {
+ if (0){
+ //if (!dq_cur->sLayerInfo.pSps->bGapsInFrameNumValueAllowedFlag) {
const bool kbIdrFlag = dq_cur->sLayerInfo.sNalHeaderExt.bIdrFlag
|| (dq_cur->sLayerInfo.sNalHeaderExt.sNalUnitHeader.eNalUnitType == NAL_UNIT_CODED_SLICE_IDR);
// Subclause 8.2.5.2 Decoding process for gaps in frame_num

View file

@ -1,71 +0,0 @@
############################################################################
# openh264.mk
# Copyright (C) 2011 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.
#
############################################################################
ifneq (,$(findstring i386-,$(host)))
ARCH=i386
endif
ifneq (,$(findstring armv7-,$(host)))
ARCH=armv7
endif
ifneq (,$(findstring aarch64-,$(host)))
ARCH=arm64
endif
ifneq (,$(findstring x86_64-,$(host)))
ARCH=x86_64
endif
ifeq (,$(ARCH))
$(error Undefined arch for openh264)
endif
openh264_dir?=externals/openh264
$(BUILDER_SRC_DIR)/$(openh264_dir)/openh264-permissive.patch.stamp:
cd $(BUILDER_SRC_DIR)/$(openh264_dir) \
&& patch -p1 < $(BUILDER_SRC_DIR)/build/builders.d/openh264-permissive.patch
touch $(BUILDER_SRC_DIR)/$(openh264_dir)/openh264-permissive.patch.stamp
patch-openh264: $(BUILDER_SRC_DIR)/$(openh264_dir)/openh264-permissive.patch.stamp
#update 03/2015; with openh264 v1.4.0 patches seems no longer useful.
update-openh264:
mkdir -p $(BUILDER_BUILD_DIR)/$(openh264_dir) \
&& cd $(BUILDER_BUILD_DIR)/$(openh264_dir)/ \
&& rsync -rvLpgoc --exclude ".git" $(BUILDER_SRC_DIR)/$(openh264_dir)/* .
make-target-%:
cd $(BUILDER_BUILD_DIR)/$(openh264_dir) \
&& echo ===== OpenH264: make $* ===== \
&& make CC="xcrun clang" CXX="xcrun clang++" AR="xcrun ar" LD="xcrun clang" RANLIB="xcrun ranlib" OS=ios ARCH=$(ARCH) PREFIX=$(prefix) $*
build-openh264: update-openh264 make-target-libraries make-target-install
clean-openh264:
cd $(BUILDER_BUILD_DIR)/$(openh264_dir) \
&& make clean OS=ios ARCH=$(ARCH)
veryclean-openh264:
cd $(BUILDER_SRC_DIR)/$(openh264_dir)/ \
&& git clean -f && git reset --hard \
&& rm -rf $(BUILDER_BUILD_DIR)/$(openh264_dir)

View file

@ -1,40 +0,0 @@
openssl_version=1.0.1c
OPENSSL_BUILD_DIR?=$(BUILDER_BUILD_DIR)/externals/openssl
ifneq (,$(findstring mingw,$(host)))
CONFIGURE_OPTION := mingw
MAKE_PARAMS:= CC=i586-mingw32msvc-gcc RANLIB=i586-mingw32msvc-ranlib
endif
$(OPENSSL_BUILD_DIR)/Configure:
mkdir -p $(BUILDER_BUILD_DIR)/externals \
&& cd $(BUILDER_BUILD_DIR)/externals \
&& rm -rf openssl \
&& wget ftp://sunsite.cnlab-switch.ch/mirror/openssl/source/openssl-$(openssl_version).tar.gz \
&& tar xvzf openssl-$(openssl_version).tar.gz \
&& rm -f openssl-$(openssl_version).tar.gz \
&& mv openssl-$(openssl_version) openssl \
&& cd openssl && patch -p0 < $(BUILDER_SRC_DIR)/build/builders.d/openssl.patch
$(OPENSSL_BUILD_DIR)/Makefile: $(OPENSSL_BUILD_DIR)/Configure
cd $(OPENSSL_BUILD_DIR) \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& ./Configure --prefix=$(prefix) --cross-compile-prefix=$$SDK_BIN_PATH/ BSD-generic32 no-asm
build-openssl: $(OPENSSL_BUILD_DIR)/Makefile
cd $(OPENSSL_BUILD_DIR) && host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& make CC="$$CC" AR="$$AR r" RANLIB="$$RANLIB" build_crypto build_ssl libcrypto.pc libssl.pc\
&& cp -r include $(prefix)/ \
&& cp lib*.a $(prefix)/lib \
&& cp libcrypto.pc $(prefix)/lib/pkgconfig/. \
&& cp libssl.pc $(prefix)/lib/pkgconfig/. \
clean-openssl:
cd $(OPENSSL_BUILD_DIR) && make clean
clean-makefile-openssl:
touch $(OPENSSL_BUILD_DIR)/Configure
veryclean-openssl:
rm -rf $(OPENSSL_BUILD_DIR)

View file

@ -1,11 +0,0 @@
--- crypto/ui/ui_openssl.c.ori 2011-03-18 18:09:26.000000000 +0100
+++ crypto/ui/ui_openssl.c 2011-03-18 18:09:44.000000000 +0100
@@ -404,7 +404,7 @@
return 1;
}
-static volatile sig_atomic_t intr_signal;
+static volatile int intr_signal;
#endif
static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)

View file

@ -1,69 +0,0 @@
############################################################################
# opus.mk
# Copyright (C) 2013 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.
#
############################################################################
opus_dir?=externals/opus
enable_opus?=yes
libopus_configure_options=--disable-extra-programs --disable-doc
ifneq (,$(findstring armv7,$(host)))
libopus_configure_options+= --enable-fixed-point
endif
ifneq (,$(findstring armv7s,$(host)))
libopus_configure_options+= --enable-fixed-point
endif
$(BUILDER_SRC_DIR)/$(opus_dir)/configure:
@echo -e "\033[01;32m Running autogen for msopus in $(BUILDER_SRC_DIR)/$(opus_dir) \033[0m"
cd $(BUILDER_SRC_DIR)/$(opus_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(opus_dir)/Makefile: $(BUILDER_SRC_DIR)/$(opus_dir)/configure
@echo -e "\033[01;32m Running configure in $(BUILDER_BUILD_DIR)/$(opus_dir) \033[0m"
mkdir -p $(BUILDER_BUILD_DIR)/$(opus_dir)
cd $(BUILDER_BUILD_DIR)/$(opus_dir)/ \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(opus_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} \
${libopus_configure_options}
ifeq ($(enable_opus),yes)
build-opus: $(BUILDER_BUILD_DIR)/$(opus_dir)/Makefile
@echo -e "\033[01;32m building opus \033[0m"
cd $(BUILDER_BUILD_DIR)/$(opus_dir) \
&& PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \
CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
make && make install
else
build-opus:
@echo "opus is disabled"
endif
clean-opus:
-cd $(BUILDER_BUILD_DIR)/$(opus_dir) && make clean
veryclean-opus:
-cd $(BUILDER_BUILD_DIR)/$(opus_dir) && make distclean
rm -f $(BUILDER_SRC_DIR)/$(opus_dir)/configure
clean-makefile-opus:
-cd $(BUILDER_BUILD_DIR)/$(opus_dir) && rm -f Makefile

View file

@ -1,28 +0,0 @@
polarssl_dir?=externals/polarssl
SRC_DIR=$(BUILDER_SRC_DIR)
BUILD_DIR=$(BUILDER_BUILD_DIR)
$(SRC_DIR)/$(polarssl_dir)/configure:
cd $(SRC_DIR)/$(polarssl_dir) && ./autogen.sh
$(BUILD_DIR)/$(polarssl_dir)/Makefile: $(SRC_DIR)/$(polarssl_dir)/configure
mkdir -p $(BUILD_DIR)/$(polarssl_dir)
cd $(BUILD_DIR)/$(polarssl_dir) \
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(SRC_DIR)/build/$(config_site) \
$(SRC_DIR)/$(polarssl_dir)/configure --prefix=$(prefix) --host=$(host) ${library_mode}
build-polarssl: $(BUILD_DIR)/$(polarssl_dir)/Makefile
cd $(BUILD_DIR)/${polarssl_dir} && \
host_alias=$(host) PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(SRC_DIR)/build/$(config_site) make && make install
clean-polarssl:
-cd $(BUILD_DIR)/$(polarssl_dir) && make clean
veryclean-polarssl:
-rm -rf $(BUILD_DIR)/$(polarssl_dir)
-rm -f $(SRC_DIR)/$(polarssl_dir)/configure
clean-makefile-polarssl: veryclean-polarssl

View file

@ -1,43 +0,0 @@
#speex
speex_dir=externals/speex
ifeq (,$(findstring i386,$(host)))
CFLAGS := $(CFLAGS) -marm
SPEEX_CONFIGURE_OPTION := --disable-float-api --enable-fixed-point
endif
ifneq (,$(findstring armv7,$(host)))
SPEEX_CONFIGURE_OPTION += --enable-armv7neon-asm --enable-arm5e-asm
endif
ifneq (,$(findstring aarch64,$(host)))
SPEEX_CONFIGURE_OPTION += --enable-armv7neon-asm
endif
ifeq ($(enable_debug),yes)
CFLAGS := $(CFLAGS) -g
SPEEX_CONFIGURE_OPTION += --enable-debug
endif
$(BUILDER_SRC_DIR)/$(speex_dir)/configure:
cd $(BUILDER_SRC_DIR)/$(speex_dir) && ./autogen.sh
$(BUILDER_BUILD_DIR)/$(speex_dir)/Makefile: $(BUILDER_SRC_DIR)/$(speex_dir)/configure
mkdir -p $(BUILDER_BUILD_DIR)/$(speex_dir)
cd $(BUILDER_BUILD_DIR)/$(speex_dir)/\
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) CFLAGS="$(CFLAGS) -O2" \
$(BUILDER_SRC_DIR)/$(speex_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} --disable-ogg $(SPEEX_CONFIGURE_OPTION)
build-speex: $(BUILDER_BUILD_DIR)/$(speex_dir)/Makefile
cd $(BUILDER_BUILD_DIR)/$(speex_dir) && make && make install
clean-speex:
cd $(BUILDER_BUILD_DIR)/$(speex_dir) && make clean
veryclean-speex:
# -cd $(BUILDER_BUILD_DIR)/$(speex_dir) && make distclean
-rm -f $(BUILDER_SRC_DIR)/$(speex_dir)/configure
clean-makefile-speex:
cd $(BUILDER_BUILD_DIR)/$(speex_dir) && rm -f Makefile

View file

@ -1,26 +0,0 @@
srtp_dir?=externals/srtp
$(BUILDER_SRC_DIR)/$(srtp_dir)/configure: $(BUILDER_SRC_DIR)/$(srtp_dir)/configure.in
cd $(BUILDER_SRC_DIR)/$(srtp_dir) \
&& autoconf
$(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile: $(BUILDER_SRC_DIR)/$(srtp_dir)/configure $(BUILDER_SRC_DIR)/$(srtp_dir)/Makefile.in
mkdir -p $(BUILDER_BUILD_DIR)/$(srtp_dir)
cd $(BUILDER_BUILD_DIR)/$(srtp_dir)/\
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
$(BUILDER_SRC_DIR)/$(srtp_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode}
build-srtp: $(BUILDER_BUILD_DIR)/$(srtp_dir)/Makefile
host_alias=$(host) && . /$(BUILDER_SRC_DIR)/build/$(config_site) && \
cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make libsrtp.a AR="$$AR" && make install
clean-srtp:
-cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make clean
veryclean-srtp:
-cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && make distclean
-rm -rf $(BUILDER_BUILD_DIR)/$(srtp_dir)
-rm -f $(BUILDER_SRC_DIR)/$(srtp_dir)/configure
clean-makefile-srtp:
-cd $(BUILDER_BUILD_DIR)/$(srtp_dir) && rm -f Makefile

View file

@ -1,24 +0,0 @@
diff -rupN ../srtp_old/crypto/cipher/aes_icm.c ./crypto/cipher/aes_icm.c
--- ../srtp_old/crypto/cipher/aes_icm.c 2006-03-16 18:11:29.000000000 +0100
+++ ./crypto/cipher/aes_icm.c 2011-09-06 10:19:16.000000000 +0200
@@ -281,7 +281,7 @@ aes_icm_set_iv(aes_icm_ctx_t *c, void *i
* this is an internal, hopefully inlined function
*/
-inline void
+static void
aes_icm_advance_ismacryp(aes_icm_ctx_t *c, uint8_t forIsmacryp) {
/* fill buffer with new keystream */
v128_copy(&c->keystream_buffer, &c->counter);
diff -rupN ../srtp_old/crypto/math/datatypes.c ./crypto/math/datatypes.c
--- ../srtp_old/crypto/math/datatypes.c 2005-10-08 18:38:06.000000000 +0200
+++ ./crypto/math/datatypes.c 2011-09-06 10:02:55.000000000 +0200
@@ -124,7 +124,7 @@ octet_string_hex_string(const void *s, i
return bit_string;
}
-inline int
+static int
hex_char_to_nibble(uint8_t c) {
switch(c) {
case ('0'): return 0x0;

View file

@ -1,28 +0,0 @@
TUNNEL_SRC_DIR?=$(BUILDER_SRC_DIR)/tunnel
TUNNEL_BUILD_DIR?=$(BUILDER_BUILD_DIR)/tunnel
#############################TUNNEL############################
$(TUNNEL_SRC_DIR)/configure:
cd $(TUNNEL_SRC_DIR) && ./autogen.sh
$(TUNNEL_BUILD_DIR)/Makefile: $(TUNNEL_SRC_DIR)/configure
mkdir -p $(TUNNEL_BUILD_DIR) \
&& cd $(TUNNEL_BUILD_DIR) \
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) PKG_CONFIG_PATH=$(prefix)/lib/pkgconfig \
$(TUNNEL_SRC_DIR)/configure -prefix=$(prefix) --host=$(host) --enable-polarssl --with-polarssl=$(prefix) --disable-servers ${library_mode}
build-tunnel: $(TUNNEL_BUILD_DIR)/Makefile
cd $(TUNNEL_BUILD_DIR) \
&& host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& make RANLIB="$$RANLIB" && make install
clean-tunnel:
cd $(TUNNEL_BUILD_DIR) && make clean
veryclean-tunnel:
rm -f $(TUNNEL_SRC_DIR)/configure
clean-makefile-tunnel:
cd $(TUNNEL_BUILD_DIR) && rm -f Makefile

View file

@ -1,73 +0,0 @@
############################################################################
# x264.mk
# Copyright (C) 2011 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.
#
############################################################################
#--enable-static is mandatory otherwise the lib is not installed
x264-configure-option= \
--host=$(host)\
--enable-static --enable-pic \
--cross-prefix=$$SDK_BIN_PATH/ \
--extra-ldflags="$$COMMON_FLAGS"
XCFLAGS:=$$COMMON_FLAGS
ifneq (,$(findstring armv7,$(host)))
XCFLAGS+= -mfpu=neon -mfloat-abi=softfp
endif
x264-configure-option+= --extra-cflags="${XCFLAGS}"
x264_dir?=externals/x264
$(BUILDER_SRC_DIR)/$(x264_dir)/patched:
cd $(BUILDER_SRC_DIR)/$(x264_dir) \
&& git apply $(BUILDER_SRC_DIR)/build/builders.d/x264.patch \
&& touch $(BUILDER_SRC_DIR)/$(x264_dir)/patched
$(BUILDER_BUILD_DIR)/$(x264_dir)/configure: $(BUILDER_SRC_DIR)/$(x264_dir)/patched
mkdir -p $(BUILDER_BUILD_DIR)/$(x264_dir)
cd $(BUILDER_BUILD_DIR)/$(x264_dir)/ \
&& rsync -rvLpgoc --exclude ".git" $(BUILDER_SRC_DIR)/$(x264_dir)/* .
$(BUILDER_BUILD_DIR)/$(x264_dir)/config.mak: $(BUILDER_BUILD_DIR)/$(x264_dir)/configure
cd $(BUILDER_BUILD_DIR)/$(x264_dir)/ \
&& host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& CC="$$CC" STRINGS="$$STRINGS" ./configure --prefix=$(prefix) $(x264-configure-option)
build-x264: $(BUILDER_BUILD_DIR)/$(x264_dir)/config.mak
cd $(BUILDER_BUILD_DIR)/$(x264_dir) \
&& host_alias=$(host) . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& make STRIP="$$STRIP" AR="$$AR -r " RANLIB="$$RANLIB" CC="$$CC" STRINGS="$$STRINGS" && make STRIP="$$STRIP" AR="$$AR" RANLIB="$$RANLIB" STRINGS="$$STRINGS" install
clean-x264:
cd $(BUILDER_BUILD_DIR)/$(x264_dir) && make clean
veryclean-x264:
-cd $(BUILDER_BUILD_DIR)/$(x264_dir) && make distclean
cd $(BUILDER_SRC_DIR)/$(x264_dir)/ \
&& git clean -f && git reset --hard \
&& rm -f patched
rm -rf $(BUILDER_BUILD_DIR)/$(x264_dir)
clean-makefile-x264:
cd $(BUILDER_BUILD_DIR)/$(x264_dir) && rm -f config.mak

View file

@ -1,149 +0,0 @@
diff --git a/common/arm/cpu-a.S b/common/arm/cpu-a.S
index a459553..bc91505 100644
--- a/common/arm/cpu-a.S
+++ b/common/arm/cpu-a.S
@@ -26,7 +26,7 @@
#include "asm.S"
.fpu neon
-.align
+// .align
// done in gas because .fpu neon overrides the refusal to assemble
// instructions the selected -march/-mcpu doesn't support
@@ -95,7 +95,7 @@ average_loop:
sub r2, r2, r1
cmpgt r2, #30 << 3 // assume context switch if it took over 30 cycles
addle r3, r3, r2
- subles ip, ip, #1
+ suble ip, ip, #1
bgt average_loop
// disable counters if we enabled them
diff --git a/common/arm/mc-a.S b/common/arm/mc-a.S
index 507bbba..d5554be 100644
--- a/common/arm/mc-a.S
+++ b/common/arm/mc-a.S
@@ -166,7 +166,7 @@ function x264_pixel_avg_\w\()x\h\()_neon
ldr ip, [sp, #8]
push {r4-r6,lr}
cmp ip, #32
- ldrd r4, [sp, #16]
+ ldrd r4, r5, [sp, #16]
mov lr, #\h
beq x264_pixel_avg_w\w\()_neon
rsbs r6, ip, #64
@@ -446,7 +446,7 @@ avg2_w20_loop:
.ifc \type, full
ldr lr, [r4, #32] // denom
.endif
- ldrd r4, [r4, #32+4] // scale, offset
+ ldrd r4, r5, [r4, #32+4] // scale, offset
vdup.16 q0, r4
vdup.16 q1, r5
.ifc \type, full
@@ -815,7 +815,7 @@ copy_w16_aligned_loop:
// int dx, int dy, int i_width, int i_height );
function x264_mc_chroma_neon
push {r4-r6, lr}
- ldrd r4, [sp, #16]
+ ldrd r4, r5, [sp, #16]
ldr r6, [sp, #24]
asr lr, r5, #3
@@ -1271,8 +1271,8 @@ filter_h_loop:
function x264_frame_init_lowres_core_neon
push {r4-r10,lr}
vpush {d8-d15}
- ldrd r4, [sp, #96]
- ldrd r6, [sp, #104]
+ ldrd r4, r5, [sp, #96]
+ ldrd r6, r7, [sp, #104]
ldr lr, [sp, #112]
sub r10, r6, r7 // dst_stride - width
and r10, r10, #~15
diff --git a/common/arm/pixel-a.S b/common/arm/pixel-a.S
index 8bce3b6..0784ae6 100644
--- a/common/arm/pixel-a.S
+++ b/common/arm/pixel-a.S
@@ -328,9 +328,9 @@ SAD_FUNC_DUAL 16, 16
function x264_pixel_sad_x\x\()_\w\()x\h\()_neon
push {r6-r7,lr}
.if \x == 3
- ldrd r6, [sp, #12]
+ ldrd r6, r7, [sp, #12]
.else
- ldrd r6, [sp, #16]
+ ldrd r6, r7, [sp, #16]
ldr r12, [sp, #12]
.endif
mov lr, #FENC_STRIDE
@@ -596,7 +596,7 @@ function x264_pixel_var2_8x8_neon
vadd.s32 d1, d2, d3
vpadd.s32 d0, d0, d1
- vmov.32 r0, r1, d0
+ vmov r0, r1, d0
vst1.32 {d0[1]}, [ip,:32]
mul r0, r0, r0
sub r0, r1, r0, lsr #6
diff --git a/common/arm/predict-a.S b/common/arm/predict-a.S
index af65bd7..8cdaf50 100644
--- a/common/arm/predict-a.S
+++ b/common/arm/predict-a.S
@@ -181,9 +181,9 @@ function x264_predict_4x4_ddl_neon
function x264_predict_8x8_dc_neon
mov ip, #0
- ldrd r2, [r1, #8]
+ ldrd r2, r3, [r1, #8]
push {r4-r5,lr}
- ldrd r4, [r1, #16]
+ ldrd r4, r5, [r1, #16]
lsl r3, r3, #8
ldrb lr, [r1, #7]
usad8 r2, r2, ip
diff --git a/common/arm/quant-a.S b/common/arm/quant-a.S
index e851562..c159f9e 100644
--- a/common/arm/quant-a.S
+++ b/common/arm/quant-a.S
@@ -271,7 +271,7 @@ dequant_4x4_dc_rshift:
// int coeff_last( int16_t *l )
function x264_coeff_last4_arm
- ldrd r2, [r0]
+ ldrd r2, r3, [r0]
subs r0, r3, #0
movne r0, #2
movne r2, r3
@@ -300,7 +300,7 @@ function x264_coeff_last\size\()_neon
subs r1, ip, r1, lsr #2
addge r0, r1, #\size - 8
- sublts r0, r3, r0, lsr #2
+ sublt r0, r3, r0, lsr #2
movlt r0, #0
bx lr
.endfunc
@@ -349,7 +349,7 @@ function x264_coeff_last64_neon
subs r1, ip, r1
addge r0, r1, #32
- sublts r0, ip, r0
+ sublt r0, ip, r0
movlt r0, #0
bx lr
.endfunc
diff --git a/configure b/configure
index 250b0ac..af69d44 100755
--- a/configure
+++ b/configure
@@ -456,7 +456,7 @@ case $host_os in
;;
darwin*)
SYS="MACOSX"
- CFLAGS="$CFLAGS -falign-loops=16"
+ CFLAGS="$CFLAGS"
libm="-lm"
if [ "$pic" = "no" ]; then
cc_check "" -mdynamic-no-pic && CFLAGS="$CFLAGS -mdynamic-no-pic"

View file

@ -1,66 +0,0 @@
############################################################################
# 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
configure-options=
ifeq ($(LINPHONE_CCACHE), ccache)
configure-options+= --disable-strict
endif
$(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
$(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)/ \
&& host_alias=${host} . $(BUILDER_SRC_DIR)/build/$(config_site) \
&& 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 ${configure-options}
ifeq ($(enable_zrtp),yes)
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
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

View file

@ -1,75 +0,0 @@
# -*- shell-script -*-
SDK_VERSION_MAJOR=5
SDK_VERSION=5.0
MCPU=""
CLANG_TARGET_SPECIFIER=miphoneos-version-min
if test "${host_alias}" = "i386-apple-darwin.ios" ; then
PLATFORM=Simulator
ARCH=i386
CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=i386"
MCPU=""
CLANG_TARGET_SPECIFIER=mios-simulator-version-min
elif test "${host_alias}" = "armv7-apple-darwin.ios" ; then
ARCH=armv7
PLATFORM=OS
CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=arm"
MCPU="-mcpu=cortex-a8"
elif test "${host_alias}" = "aarch64-apple-darwin.ios" ; then
ARCH=arm64
PLATFORM=OS
CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=aarch64"
elif test "${host_alias}" = "x86_64-apple-darwin.ios" ; then
ARCH=x86_64
PLATFORM=Simulator
CMAKE_OPTS="-DCMAKE_SYSTEM_PROCESSOR=x86_64"
CLANG_TARGET_SPECIFIER=mios-simulator-version-min
else
echo "bad host ${host_alias} must be either i386-apple-darwin or arm[v7,64]-apple-darwin"
exit
fi
echo "Loading config.site for iPhone platform=${PLATFORM} version=${SDK_VERSION}"
XCODE_DEV_PATH=`xcode-select -print-path`
#new path with Xcode 4.3:
if test -d ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs ; then
SDK_PATH_LIST=`ls -drt ${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*`
SDK_BIN_PATH=${XCODE_DEV_PATH}/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin
else
SDK_PATH_LIST=`ls -drt /Developer/Platforms/iPhone${PLATFORM}.platform/Developer/SDKs/iPhone${PLATFORM}*`
SDK_BIN_PATH=/Developer/Platforms/iPhone${PLATFORM}.platform/Developer/usr/bin
fi
for SYSROOT_PATH in $SDK_PATH_LIST ; do echo $SYSROOT_PATH ; done ;
echo "Selecting SDK path = ${SYSROOT_PATH}"
COMMON_FLAGS=" -arch ${ARCH} ${MCPU} -isysroot ${SYSROOT_PATH} -${CLANG_TARGET_SPECIFIER}=${SDK_VERSION} -DTARGET_OS_IPHONE=1 -D__IOS -fms-extensions"
#workaround for polarssl conflicting symbols
COMMON_FLAGS="$COMMON_FLAGS -Dsha256=polarssl_sha256"
# silence clang unused operators. This is temporary, we should find a way to compile 3rd party with correct flags :(
COMMON_FLAGS="-Qunused-arguments -Wno-unknown-warning-option -Wno-unused-command-line-argument-hard-error-in-future $COMMON_FLAGS"
# you can use ccache to speed up build, in which case just define LINPHONE_CCACHE to 'ccache'
if test "$LINPHONE_CCACHE" = "ccache" ; then
# ccache doesn't like some options
COMMON_FLAGS="$COMMON_FLAGS -Wno-variadic-macros -Wno-pointer-arith -Wno-return-type -Wno-tautological-compare -Wno-unused-function -Wno-error"
fi
CC="xcrun $LINPHONE_CCACHE clang -std=c99 $COMMON_FLAGS"
OBJC="xcrun $LINPHONE_CCACHE clang -std=c99 $COMMON_FLAGS"
CXX="xcrun $LINPHONE_CCACHE clang++ $COMMON_FLAGS"
LD="xcrun ld -arch ${ARCH}"
AR="xcrun ar"
RANLIB="xcrun ranlib"
STRIP="xcrun strip"
NM="xcrun nm"
CPPFLAGS="-Dasm=__asm"
OBJCFLAGS="-x objective-c -fexceptions -gdwarf-2 -fobjc-abi-version=2 -fobjc-legacy-dispatch"
#Force install script to use -C so that header files don't get re-written if not changed.
INSTALL_DATA="ginstall -C"

View file

@ -1,6 +0,0 @@
SET (CMAKE_SYSTEM_NAME "Generic")
SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

View file

@ -1,205 +0,0 @@
# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake
# files which are included with CMake 2.8.4
# It has been altered for iOS development
# Options:
#
# IOS_PLATFORM = OS (default) or SIMULATOR
# This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders
# OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch.
# SIMULATOR - used to build for the Simulator platforms, which have an x86 arch.
# IOS_ARCH = armv7 or armv6 or x86_64 or i386
# This decides arch to build. Note that arm7 and arm6 are available only for OS IOS_PLATFORM and
# x86_64 and i386 are available only for OS SIMULATOR
#
# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder
# By default this location is automatcially chosen based on the IOS_PLATFORM value above.
# If set manually, it will override the default location and force the user of a particular Developer Platform
#
# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
# By default this location is automatcially chosen based on the CMAKE_IOS_DEVELOPER_ROOT value.
# In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path.
# If set manually, this will force the use of a specific SDK version
# Macros:
#
# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
# A convenience macro for setting xcode specific properties on targets
# example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
#
# find_host_package (PROGRAM ARGS)
# A macro used to find executable programs on the host system, not within the iOS environment.
# Thanks to the android-cmake project for providing the command
# Standard settings
set (CMAKE_SYSTEM_NAME Darwin)
set (CMAKE_SYSTEM_VERSION 1)
set (UNIX True)
set (APPLE True)
set (IOS True)
# Required as of cmake 2.8.10
set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE)
# Determine the cmake host system version so we know where to find the iOS SDKs
find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin)
if (CMAKE_UNAME)
exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
endif (CMAKE_UNAME)
set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
# Skip the platform compiler checks for cross compiling
set (CMAKE_CXX_COMPILER_WORKS TRUE)
set (CMAKE_C_COMPILER_WORKS TRUE)
# All iOS/Darwin specific settings - some may be redundant
set (CMAKE_SHARED_LIBRARY_PREFIX "lib")
set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
set (CMAKE_SHARED_MODULE_PREFIX "lib")
set (CMAKE_SHARED_MODULE_SUFFIX ".so")
set (CMAKE_MODULE_EXISTS 1)
set (CMAKE_DL_LIBS "")
set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
# Hidden visibilty is required for cxx on iOS
set (CMAKE_C_FLAGS_INIT "")
set (CMAKE_CXX_FLAGS_INIT "-fvisibility=hidden -fvisibility-inlines-hidden -isysroot ${CMAKE_OSX_SYSROOT}")
set (CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
set (CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
set (CMAKE_PLATFORM_HAS_INSTALLNAME 1)
set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names")
set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names")
set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,")
set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,")
set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a")
# We force default installation path to be build directory since we do NOT want to install in /usr/local...
if ("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local/")
message("CMAKE_INSTALL_PREFIX not defined, forcing to CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}")
set (CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR} CACHE INTERNAL "INSTALL directory")
endif()
# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex
if (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
# set the architecture for iOS
# NOTE: Currently both ARCHS_STANDARD_32_BIT and ARCHS_UNIVERSAL_IPHONE_OS set armv7 only, so set both manually
if (NOT IOS_ARCH)
if ("${IOS_PLATFORM}" STREQUAL "OS")
set(IOS_ARCH armv7)
else()
set(IOS_ARCH x86_64)
endif()
elseif(NOT IOS_PLATFORM)
if (${IOS_ARCH} STREQUAL "armv6" OR ${IOS_ARCH} STREQUAL "armv7" OR ${IOS_ARCH} STREQUAL "arm64")
set(IOS_PLATFORM "OS")
else()
set(IOS_PLATFORM "SIMULATOR")
endif()
endif()
# Setup iOS platform unless specified manually with IOS_PLATFORM
if (NOT DEFINED IOS_PLATFORM)
set (IOS_PLATFORM "OS")
endif (NOT DEFINED IOS_PLATFORM)
set (IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform")
# Check the platform selection and setup for developer root
if (${IOS_PLATFORM} STREQUAL "OS")
set (IOS_PLATFORM_LOCATION "iPhoneOS.platform")
# This causes the installers to properly locate the output libraries
set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos")
elseif (${IOS_PLATFORM} STREQUAL "SIMULATOR")
set (IOS_PLATFORM_LOCATION "iPhoneSimulator.platform")
# This causes the installers to properly locate the output libraries
set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator")
else (${IOS_PLATFORM} STREQUAL "OS")
message (FATAL_ERROR "Unsupported IOS_PLATFORM value selected. Please choose OS or SIMULATOR")
endif (${IOS_PLATFORM} STREQUAL "OS")
# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
# Note Xcode 4.3 changed the installation location, choose the most recent one available
set (XCODE_POST_43_ROOT "/Applications/Xcode.app/Contents/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
set (XCODE_PRE_43_ROOT "/Developer/Platforms/${IOS_PLATFORM_LOCATION}/Developer")
if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
if (EXISTS ${XCODE_POST_43_ROOT})
set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_POST_43_ROOT})
elseif(EXISTS ${XCODE_PRE_43_ROOT})
set (CMAKE_IOS_DEVELOPER_ROOT ${XCODE_PRE_43_ROOT})
endif (EXISTS ${XCODE_POST_43_ROOT})
endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
set (CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform")
# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT
if (NOT DEFINED CMAKE_IOS_SDK_ROOT)
file (GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*")
if (_CMAKE_IOS_SDKS)
list (SORT _CMAKE_IOS_SDKS)
list (REVERSE _CMAKE_IOS_SDKS)
list (GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT)
else (_CMAKE_IOS_SDKS)
message (FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.")
endif (_CMAKE_IOS_SDKS)
message (STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}")
endif (NOT DEFINED CMAKE_IOS_SDK_ROOT)
set (CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK")
# Set the sysroot default to the most recent SDK
set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
set (CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE string "Build architecture for iOS")
# Set the find root to the iOS developer roots and to user defined paths
set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string "iOS find search path root")
# default to searching for frameworks first
set (CMAKE_FIND_FRAMEWORK FIRST)
# set up the default search directories for frameworks
set (CMAKE_SYSTEM_FRAMEWORK_PATH
${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks
${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks
)
# only search the iOS sdks, not the remainder of the host filesystem
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# This little macro lets you set any XCode specific property
macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
endmacro (set_xcode_property)
# This macro lets you find executable programs on the host system
macro (find_host_package)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
set (IOS FALSE)
find_package(${ARGN})
set (IOS TRUE)
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endmacro (find_host_package)