mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-18 11:38:08 +00:00
346 lines
13 KiB
Makefile
346 lines
13 KiB
Makefile
############################################################################
|
|
# 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
|
|
config_site:=iphone-config.site
|
|
library_mode:= --disable-shared --enable-static
|
|
linphone_configure_controls= \
|
|
--disable-strict \
|
|
--disable-nls \
|
|
--with-readline=none \
|
|
--enable-gtk_ui=no \
|
|
--enable-console_ui=no \
|
|
--enable-ssl-hmac=no \
|
|
--enable-ssl=yes \
|
|
--disable-theora \
|
|
--disable-sdl \
|
|
--disable-x11 \
|
|
--with-gsm=$(prefix) \
|
|
--disable-tests \
|
|
--with-srtp=$(prefix)
|
|
|
|
ifeq ($(enable_zrtp),yes)
|
|
linphone_configure_controls+= --enable-zrtp
|
|
else
|
|
linphone_configure_controls+= --disable-zrtp
|
|
endif
|
|
|
|
#path
|
|
BUILDER_SRC_DIR?=$(shell pwd)/../
|
|
BUILDER_BUILD_DIR?=$(shell pwd)/../build-$(host)
|
|
|
|
LINPHONE_SRC_DIR=$(BUILDER_SRC_DIR)/linphone
|
|
LINPHONE_BUILD_DIR=$(BUILDER_BUILD_DIR)/linphone
|
|
|
|
all: build-linphone build-msilbc build-msamr build-msx264 build-mssilk build-msbcg729
|
|
|
|
$(LINPHONE_BUILD_DIR)/enable_gpl_third_parties:
|
|
mkdir -p $(LINPHONE_BUILD_DIR)
|
|
touch $(LINPHONE_BUILD_DIR)/enable_gpl_third_parties
|
|
rm -f $(LINPHONE_BUILD_DIR)/disable_gpl_third_parties
|
|
cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile
|
|
|
|
$(LINPHONE_BUILD_DIR)/disable_gpl_third_parties:
|
|
mkdir -p $(LINPHONE_BUILD_DIR)
|
|
touch $(LINPHONE_BUILD_DIR)/disable_gpl_third_parties
|
|
rm -f $(LINPHONE_BUILD_DIR)/enable_gpl_third_parties
|
|
cd $(LINPHONE_BUILD_DIR) && rm -f Makefile && rm -f oRTP/Makefile && rm -f mediastreamer2/Makefile
|
|
|
|
ifeq ($(enable_gpl_third_parties),yes)
|
|
linphone_configure_controls+= --enable-ffmpeg
|
|
detect_gpl_mode_switch: $(LINPHONE_BUILD_DIR)/enable_gpl_third_parties
|
|
|
|
else
|
|
linphone_configure_controls+= --disable-ffmpeg
|
|
detect_gpl_mode_switch: $(LINPHONE_BUILD_DIR)/disable_gpl_third_parties
|
|
|
|
endif
|
|
|
|
osip_dir=externals/osip
|
|
eXosip_dir=externals/exosip
|
|
speex_dir=externals/speex
|
|
gsm_dir=externals/gsm
|
|
|
|
MSILBC_SRC_DIR:=$(BUILDER_SRC_DIR)/msilbc
|
|
MSILBC_BUILD_DIR:=$(BUILDER_BUILD_DIR)/msilbc
|
|
|
|
LIBILBC_SRC_DIR:=$(BUILDER_SRC_DIR)/libilbc-rfc3951
|
|
LIBILBC_BUILD_DIR:=$(BUILDER_BUILD_DIR)/libilbc-rfc3951
|
|
|
|
ifneq (,$(findstring arm,$(host)))
|
|
#SPEEX_CONFIGURE_OPTION := --enable-fixed-point --disable-float-api
|
|
CFLAGS := $(CFLAGS) -marm
|
|
SPEEX_CONFIGURE_OPTION := --disable-float-api --enable-arm5e-asm --enable-fixed-point
|
|
endif
|
|
|
|
ifneq (,$(findstring armv7,$(host)))
|
|
SPEEX_CONFIGURE_OPTION += --enable-armv7neon-asm
|
|
endif
|
|
|
|
prefix?=$(BUILDER_SRC_DIR)/../liblinphone-sdk/$(host)
|
|
|
|
|
|
clean-makefile: clean-makefile-linphone clean-makefile-msbcg729
|
|
clean: clean-linphone clean-msbcg729
|
|
init:
|
|
mkdir -p $(prefix)/include
|
|
mkdir -p $(prefix)/lib/pkgconfig
|
|
|
|
veryclean: veryclean-linphone veryclean-msbcg729
|
|
rm -rf $(BUILDER_BUILD_DIR)
|
|
|
|
|
|
.NOTPARALLEL build-linphone: init build-openssl build-srtp build-zrtpcpp build-osip2 build-eXosip2 build-speex build-libgsm build-ffmpeg build-libvpx detect_gpl_mode_switch $(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-linphone: clean-osip2 clean-eXosip2 clean-speex clean-libgsm clean-srtp clean-zrtpcpp clean-msilbc clean-libilbc clean-openssl clean-msamr clean-mssilk clean-ffmpeg clean-libvpx clean-msx264
|
|
cd $(LINPHONE_BUILD_DIR) && make clean
|
|
|
|
veryclean-linphone: veryclean-osip2 veryclean-eXosip2 veryclean-speex veryclean-srtp veryclean-zrtpcpp veryclean-libgsm veryclean-msilbc veryclean-libilbc veryclean-openssl veryclean-msamr veryclean-mssilk veryclean-msx264 veryclean-libvpx
|
|
#-cd $(LINPHONE_BUILD_DIR) && make distclean
|
|
-cd $(LINPHONE_SRC_DIR) && rm -f configure
|
|
|
|
clean-makefile-linphone: clean-makefile-osip2 clean-makefile-eXosip2 clean-makefile-speex clean-makefile-srtp clean-makefile-zrtpcpp clean-makefile-libilbc clean-makefile-msilbc clean-makefile-openssl clean-makefile-msamr clean-makefile-ffmpeg clean-makefile-libvpx clean-makefile-mssilk
|
|
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) \
|
|
CFLAGS="$(CFLAGS) -DMS2_MINIMAL_SIZE" $(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
|
|
#osip2
|
|
|
|
$(BUILDER_SRC_DIR)/$(osip_dir)/configure:
|
|
cd $(BUILDER_SRC_DIR)/$(osip_dir) && ./autogen.sh
|
|
|
|
$(BUILDER_BUILD_DIR)/$(osip_dir)/Makefile: $(BUILDER_SRC_DIR)/$(osip_dir)/configure
|
|
mkdir -p $(BUILDER_BUILD_DIR)/$(osip_dir)
|
|
cd $(BUILDER_BUILD_DIR)/$(osip_dir)/ \
|
|
&& CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
|
|
$(BUILDER_SRC_DIR)/$(osip_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode}
|
|
|
|
build-osip2: $(BUILDER_BUILD_DIR)/$(osip_dir)/Makefile
|
|
cd $(BUILDER_BUILD_DIR)/$(osip_dir) && PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) make && make install
|
|
|
|
clean-osip2:
|
|
cd $(BUILDER_BUILD_DIR)/$(osip_dir) && make clean
|
|
|
|
veryclean-osip2:
|
|
# -cd $(BUILDER_BUILD_DIR)/$(osip_dir) && make distclean
|
|
-cd $(BUILDER_SRC_DIR)/$(osip_dir) && rm -f configure
|
|
|
|
clean-makefile-osip2:
|
|
cd $(BUILDER_BUILD_DIR)/$(osip_dir) && rm -f Makefile
|
|
#eXosip
|
|
|
|
$(BUILDER_SRC_DIR)/$(eXosip_dir)/configure:
|
|
cd $(BUILDER_SRC_DIR)/$(eXosip_dir) && ./autogen.sh
|
|
|
|
$(BUILDER_BUILD_DIR)/$(eXosip_dir)/Makefile: $(BUILDER_SRC_DIR)/$(eXosip_dir)/configure
|
|
mkdir -p $(BUILDER_BUILD_DIR)/$(eXosip_dir)
|
|
cd $(BUILDER_BUILD_DIR)/$(eXosip_dir)/\
|
|
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
|
|
$(BUILDER_SRC_DIR)/$(eXosip_dir)/configure -prefix=$(prefix) --host=$(host) ${library_mode} CFLAGS="-I$(prefix)/include -L$(prefix)/lib -lcrypto" --enable-openssl --disable-tools
|
|
|
|
build-eXosip2: $(BUILDER_BUILD_DIR)/$(eXosip_dir)/Makefile
|
|
cd $(BUILDER_BUILD_DIR)/$(eXosip_dir) \
|
|
&& PKG_CONFIG_LIBDIR=$(prefix)/lib/pkgconfig CONFIG_SITE=$(BUILDER_SRC_DIR)/build/$(config_site) \
|
|
make DEFS="-DHAVE_CONFIG_H -include $(BUILDER_SRC_DIR)/$(eXosip_dir)/include/eXosip2/eXosip_transport_hook.h" && make install
|
|
|
|
clean-eXosip2:
|
|
cd $(BUILDER_BUILD_DIR)/$(eXosip_dir) && make clean
|
|
|
|
veryclean-eXosip2:
|
|
# -cd $(BUILDER_BUILD_DIR)/$(eXosip_dir) && make distclean
|
|
-rm -f $(BUILDER_SRC_DIR)/$(eXosip_dir)/configure
|
|
|
|
clean-makefile-eXosip2:
|
|
cd $(BUILDER_BUILD_DIR)/$(eXosip_dir) && rm -f Makefile
|
|
|
|
#speex
|
|
|
|
$(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
|
|
|
|
|
|
#GSM
|
|
|
|
build-libgsm:
|
|
cp -rf $(BUILDER_SRC_DIR)/$(gsm_dir) $(BUILDER_BUILD_DIR)/$(gsm_dir)
|
|
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
|
|
|
|
|
|
|
|
# msilbc plugin
|
|
|
|
$(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
|
|
|
|
# libilbc
|
|
|
|
$(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
|
|
|
|
clean-libilbc:
|
|
cd $(LIBILBC_BUILD_DIR) && make clean
|
|
|
|
veryclean-libilbc:
|
|
# -cd $(LIBILBC_BUILD_DIR) && make distclean
|
|
-cd $(LIBILBC_SRC_DIR) && rm -f configure
|
|
|
|
clean-makefile-libilbc:
|
|
cd $(LIBILBC_BUILD_DIR) && rm -f Makefile
|
|
|
|
#openssl
|
|
#srtp
|
|
#zrtp
|
|
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/"` ;\
|
|
armv6_path=`echo $$archive | sed -e "s/armv7/armv6/"` ;\
|
|
if test ! -f "$$armv6_path"; then \
|
|
armv6_path= ; \
|
|
fi; \
|
|
armv7s_path=`echo $$archive | sed -e "s/armv7/armv7s/"` ;\
|
|
if test ! -f "$$armv7s_path"; then \
|
|
armv7s_path= ; \
|
|
fi; \
|
|
destpath=`echo $$archive | sed -e "s/armv7-//"` ;\
|
|
if test -f "$$i386_path"; then \
|
|
echo "Mixing $$archive into $$destpath"; \
|
|
mkdir -p `dirname $$destpath` ; \
|
|
lipo -create $$archive $$armv7s_path $$armv6_path $$i386_path -output $$destpath; \
|
|
else \
|
|
echo "WARNING: archive `basename $$archive` exists in arm tree but does not exists in i386 tree."; \
|
|
fi \
|
|
done
|
|
|
|
|
|
delivery-sdk: multi-arch
|
|
cd $(BUILDER_SRC_DIR)/../ \
|
|
&& zip -r $(BUILDER_SRC_DIR)/liblinphone-iphone-sdk.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
|
|
|
|
delivery:
|
|
cd $(BUILDER_SRC_DIR)/../ \
|
|
&& zip -r $(BUILDER_SRC_DIR)/linphone-iphone.zip \
|
|
liblinphone-sdk linphone-iphone linphone/pixmaps/red.png \
|
|
linphone/pixmaps/green.png linphone/share/ringback.wav \
|
|
linphone/share/rings/oldphone-mono.wav \
|
|
-x linphone-iphone/build\* \
|
|
-x \*.git\*
|
|
|
|
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
|
|
|