summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2018-02-12 10:52:08 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-02-16 18:05:38 +0000
commitc129cbe1b88d5d497a55af3c66d5541133484a09 (patch)
treeaace59193564a0e48929b0881b492434ea595bca /meta/recipes-devtools
parentcf85c5a490b7044f2a5291c7df646248e81770f7 (diff)
downloadpoky-c129cbe1b88d5d497a55af3c66d5541133484a09.tar.gz
icecc-toolchain: Add SDK icecream setup
Icecream can now be optionally included in the generated SDK by including nativesdk-icecc-toolchain to TOOLCHAIN_HOST_TASK. When the SDK is installed a post-relocation script will check if icecc exists and if so will generate the toolchain environment. (From OE-Core rev: 7e524096879e821256812633ce37cda4b85b3073) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh37
-rw-r--r--meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh43
-rw-r--r--meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb38
3 files changed, 118 insertions, 0 deletions
diff --git a/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh
new file mode 100644
index 0000000000..9c9bb4dc4e
--- /dev/null
+++ b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-env.sh
@@ -0,0 +1,37 @@
1#! /bin/sh
2# Copyright (c) 2018 Joshua Watt, Garmin International,Inc.
3#
4# Permission is hereby granted, free of charge, to any person obtaining a copy
5# of this software and associated documentation files (the "Software"), to deal
6# in the Software without restriction, including without limitation the rights
7# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8# copies of the Software, and to permit persons to whom the Software is
9# furnished to do so, subject to the following conditions:
10#
11# The above copyright notice and this permission notice shall be included in
12# all copies or substantial portions of the Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20# SOFTWARE.
21#
22
23if [ -z "$ICECC_PATH" ]; then
24 ICECC_PATH=$(which icecc 2> /dev/null)
25fi
26
27if [ -n "$ICECC_PATH" ]; then
28 export ICECC_PATH
29 export ICECC_VERSION="$OECORE_NATIVE_SYSROOT/usr/share/icecream/@TOOLCHAIN_ENV@"
30 export ICECC="$(which ${CROSS_COMPILE}gcc)"
31 export ICECXX="$(which ${CROSS_COMPILE}g++)"
32 export ICEAS="$(which ${CROSS_COMPILE}as)"
33 export PATH="$OECORE_NATIVE_SYSROOT/usr/share/icecream/bin:$PATH"
34else
35 echo "Icecc not found. Disabling distributed compiling"
36fi
37
diff --git a/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh
new file mode 100644
index 0000000000..0480826578
--- /dev/null
+++ b/meta/recipes-devtools/icecc-toolchain/icecc-toolchain/icecc-setup.sh
@@ -0,0 +1,43 @@
1#! /bin/sh
2# Copyright (c) 2018 Joshua Watt, Garmin International,Inc.
3#
4# Permission is hereby granted, free of charge, to any person obtaining a copy
5# of this software and associated documentation files (the "Software"), to deal
6# in the Software without restriction, including without limitation the rights
7# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8# copies of the Software, and to permit persons to whom the Software is
9# furnished to do so, subject to the following conditions:
10#
11# The above copyright notice and this permission notice shall be included in
12# all copies or substantial portions of the Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20# SOFTWARE.
21#
22
23# Setup environment
24for env_setup_script in `ls $1/environment-setup-*`; do
25 . $env_setup_script
26done
27
28# ICECC_PATH will have been found icecc-env.sh
29if [ -z "$ICECC_PATH" ]; then
30 exit 0
31fi
32
33echo "Setting up IceCream distributed compiling..."
34
35# Create the environment
36mkdir -p "`dirname $ICECC_VERSION`"
37icecc-create-env $ICECC $ICECXX $ICEAS $ICECC_VERSION || exit $?
38
39# Create symbolic links
40d="$OECORE_NATIVE_SYSROOT/usr/share/icecream/bin"
41mkdir -p "$d"
42ln -s "$ICECC_PATH" "$d/${CROSS_COMPILE}gcc"
43ln -s "$ICECC_PATH" "$d/${CROSS_COMPILE}g++"
diff --git a/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb b/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb
new file mode 100644
index 0000000000..91958d7fbc
--- /dev/null
+++ b/meta/recipes-devtools/icecc-toolchain/nativesdk-icecc-toolchain_0.1.bb
@@ -0,0 +1,38 @@
1# Copyright (c) 2018 Joshua Watt, Garmin International,Inc.
2# Released under the MIT license (see COPYING.MIT for the terms)
3SUMMARY = "Generates Icecream toolchain for SDK"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://${WORKDIR}/icecc-env.sh;beginline=2;endline=20;md5=aafdb7bc2aa7ac5d039fda0c8733983c"
6
7INHIBIT_DEFAULT_DEPS = "1"
8
9SRC_URI = "\
10 file://icecc-env.sh \
11 file://icecc-setup.sh \
12 "
13
14inherit nativesdk
15
16ENV_NAME="${DISTRO}-${TCLIBC}-${SDK_ARCH}-${TUNE_PKGARCH}-${DISTRO_VERSION}.tar.gz"
17
18do_compile() {
19}
20
21do_install() {
22 install -d ${D}${SDKPATHNATIVE}${datadir}/icecream/bin
23
24 install -d ${D}${SDKPATHNATIVE}/environment-setup.d/
25 install -m 0644 ${WORKDIR}/icecc-env.sh ${D}${SDKPATHNATIVE}/environment-setup.d/
26 sed -i ${D}${SDKPATHNATIVE}/environment-setup.d/icecc-env.sh \
27 -e "s,@TOOLCHAIN_ENV@,${ENV_NAME},g"
28
29 install -d ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
30 install -m 0755 ${WORKDIR}/icecc-setup.sh ${D}${SDKPATHNATIVE}/post-relocate-setup.d/
31 sed -i ${D}${SDKPATHNATIVE}/post-relocate-setup.d/icecc-setup.sh \
32 -e "s,@TOOLCHAIN_ENV@,${ENV_NAME},g"
33}
34
35PACKAGES = "${PN}"
36FILES_${PN} = "${SDKPATHNATIVE}"
37RDEPENDS_${PN} += "nativesdk-icecc-create-env"
38