Add support for cross-compilation
[platform/framework/web/chromium-efl.git] / tizen_src / build / cross_build_mobile.sh
1 #!/bin/bash
2
3 SCRIPTDIR=$( cd $(dirname $0) ; pwd -P )
4 TOPDIR=$( cd ${SCRIPTDIR}/.. ; pwd -P )
5
6 source ${SCRIPTDIR}/common.sh
7 trap 'postBuild ${SYSROOTDIR};\
8       error_report $0 $LINENO' ERR SIGINT SIGTERM SIGQUIT
9
10 host_arch=$(getHostArch)
11
12
13 __SUFFIX=crosscompile.orig
14
15 function adaptGbsSysrootToCrossCompilation() {
16   echo "cd /etc/; [ -e ld.so.conf.d ] && mv ld.so.conf.d ld.so.conf.d.$__SUFFIX;" | gbs chroot --root ${1}
17 }
18 function rollbackGbsSysrootChanges() {
19   echo "cd /etc/; [ -e ld.so.conf.d.$__SUFFIX ] && mv ld.so.conf.d.$__SUFFIX ld.so.conf.d;" | gbs chroot --root ${1}
20 }
21
22 function preBuild() {
23   adaptGbsSysrootToCrossCompilation $1
24   ${SCRIPTDIR}/apply_patches.sh ${SCRIPTDIR}/patches
25 }
26
27 function postBuild() {
28   rollbackGbsSysrootChanges $1
29   ${SCRIPTDIR}/apply_patches.sh -r ${SCRIPTDIR}/patches
30 }
31
32 if [ -z "$GYP_GENERATOR_OUTPUT" ]; then
33   export GYP_GENERATOR_OUTPUT=${TOPDIR}/"out.cross.arm"
34 fi
35
36 parseHostBuildScriptParams crosscompile $@
37
38 if [ -z "$GBS_ROOT_PATH" ]; then
39   echo "Set GBS_ROOT_PATH for cross compilation"
40   exit 1
41 fi
42
43 if [ -z "$CROSS_COMPILE" ]; then
44   echo "Set CROSS_COMPILE for cross compilation like: /home/user/toolchains/bin/armv7l-tizen-linux-gnueabi-"
45   exit 1
46 fi
47
48 # Only override if not set to enable customization for distributed compiling.
49 export CC_target=$(setIfUndef CC_target ${CROSS_COMPILE}gcc)
50 export CXX_target=$(setIfUndef CXX_target ${CROSS_COMPILE}g++)
51 export AR_target=${CROSS_COMPILE}ar
52 export AS_target=${CROSS_COMPILE}as
53 export RANLIB_target=${CROSS_COMPILE}ranlib
54
55 export SYSROOTDIR="${GBS_ROOT_PATH}"/local/BUILD-ROOTS/scratch.armv7l.0
56 export PKG_CONFIG_SYSROOT_DIR="${SYSROOTDIR}"
57 export PKG_CONFIG_PATH="${SYSROOTDIR}/usr/lib/pkgconfig:${SYSROOTDIR}/usr/share/pkgconfig"
58 export GYP_CROSSCOMPILE=1
59
60 export PATH="${TOPDIR}/build/cross-shim:$PATH"
61
62 preBuild ${SYSROOTDIR}
63
64 export __GYP_CHROMIUMEFL_TARGET=crosscompile
65 hostGypChromiumEfl -Dbuilding_for_tizen_mobile=1
66
67 hostNinja crosscompile
68 RET=$?
69
70 postBuild ${SYSROOTDIR}
71
72 exit $RET