blob: 09a0d8726064d919260290208a117007a02a7adc [file] [log] [blame]
#!/bin/bash
#
# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
export TARGET_PLATFORM="rpi3"
export C_PREFIX="aarch64-none-linux-gnu-"
export RUST_PREFIX="aarch64-unknown-none"
export CANTRIP_TARGET_ARCH="aarch64-unknown-elf"
# For non-Shodan targets we use CARGO_HOME or RUSTUP_HOME (if set) to find
# the Rust toolchain. Otherwise we fallback to the search path and look for
# cargo. The rest of the build system uses CARGO_HOME and RUSTUP_HOME so we
# force set them below. See
# https://rust-lang.github.io/rustup/environment-variables.html
# and/or
# https://doc.rust-lang.org/cargo/reference/environment-variables.html
RUSTDIR=
for path in "${CARGO_HOME}" "${RUSTUP_HOME}"; do
if [[ -x "${path}/bin/cargo" ]]; then
export RUSTDIR="${path}"
break
fi
done
if [[ -z "${RUSTDIR}" ]]; then
# Fall back to the search path to find cargo (where cbindgen is also
# expected to be found).
cargo_binary="$(which cargo)"
if [[ -x "${cargo_binary}" ]]; then
export RUSTDIR="$(dirname $(dirname ${cargo_binary}))";
fi
fi
if [[ -z "${RUSTDIR}" ]]; then
echo '!!! Cannot locate Rust. Please install and/or fix your search path!'
else
export CARGO_HOME="${RUSTDIR}"
export RUSTUP_HOME="${RUSTDIR}"
export PATH="${RUSTDIR}/bin:${PATH}"
fi