mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-10 06:26:57 +02:00
setup_board: move all wrapper gen code into one func
Makes the code flow easier to follow, and makes it easier to skip wrapper generation if we so desire. BUG=chromium-os:34519 TEST=`./setup_board --board=lumpy` output looked ok TEST=`cbuildbot {x86,amd64,arm}-generic-full chromiumos-sdk` worked Change-Id: Ie7a1d387fb21a495c6a2da2c9147587743240929 Reviewed-on: https://gerrit.chromium.org/gerrit/33485 Reviewed-by: Zdenek Behan <zbehan@chromium.org> Commit-Ready: Mike Frysinger <vapier@chromium.org> Tested-by: Mike Frysinger <vapier@chromium.org>
This commit is contained in:
parent
80c426856a
commit
70c8db6806
65
setup_board
65
setup_board
@ -89,15 +89,18 @@ fi
|
||||
export ROOT="$BOARD_ROOT"
|
||||
exec sudo -E ${command} ${extra_args} "\$@"
|
||||
EOF
|
||||
sudo chmod +rx ${target}
|
||||
sudo chown root:root ${target}
|
||||
local cmds=(
|
||||
"chmod a+rx '${target}'"
|
||||
"chown root:root '${target}'"
|
||||
)
|
||||
sudo_multi "${cmds[@]}"
|
||||
eval ${command^^}_WRAPPER="${target}" # ${foo^^} returns toupper($foo)
|
||||
echo created wrapper ${target}
|
||||
}
|
||||
|
||||
generate_pkgconfig_wrapper() {
|
||||
local target="/usr/local/bin/pkg-config-${BOARD_VARIANT}"
|
||||
sudo_clobber "${target}" <<EOF
|
||||
generate_all_wrappers() {
|
||||
local wrapper="/usr/local/bin/pkg-config-${BOARD_VARIANT}"
|
||||
sudo_clobber "${wrapper}" <<EOF
|
||||
#!/bin/bash
|
||||
|
||||
PKG_CONFIG_LIBDIR="${BOARD_ROOT}/usr/lib/pkgconfig:\
|
||||
@ -109,9 +112,32 @@ export PKG_CONFIG_SYSROOT_DIR="${BOARD_ROOT}"
|
||||
|
||||
exec pkg-config "\$@"
|
||||
EOF
|
||||
sudo chmod a+rx ${target}
|
||||
sudo chown root:root ${target}
|
||||
local cmds=(
|
||||
"chmod a+rx '${wrapper}'"
|
||||
"chown root:root '${wrapper}'"
|
||||
)
|
||||
sudo_multi "${cmds[@]}"
|
||||
echo created wrapper pkg-config
|
||||
|
||||
for wrapper in 'emerge --root-deps' ebuild eclean equery portageq \
|
||||
qcheck qfile qlist; do
|
||||
generate_wrapper $wrapper
|
||||
done
|
||||
|
||||
if [ "${CHOST}" != "$FLAGS_toolchain" ] ; then
|
||||
# TODO(cmasone): Do this more cleanly, if we figure out what "cleanly"
|
||||
# means. Set up wrapper for pkg-config. Point a board-specific wrapper
|
||||
# at the generic wrapper script created by crossdev-wrapper.
|
||||
sudo ln -sf "/usr/bin/cross-pkg-config" \
|
||||
"/usr/bin/${FLAGS_toolchain}-pkg-config"
|
||||
fi
|
||||
|
||||
wrapper="/usr/local/bin/cros_workon-${BOARD_VARIANT}"
|
||||
sudo_clobber "${wrapper}" <<EOF
|
||||
#!/bin/bash
|
||||
exec cros_workon --board ${BOARD_VARIANT} "\$@"
|
||||
EOF
|
||||
sudo chmod +x "${wrapper}"
|
||||
}
|
||||
|
||||
# Checks whether the libc version installed in the board
|
||||
@ -434,14 +460,6 @@ fi
|
||||
|
||||
sudo mkdir -p "${BOARD_ROOT}" "${BOARD_ETC}" "${BOARD_PROFILE}"
|
||||
|
||||
if [ "${CHOST}" != "$FLAGS_toolchain" ] ; then
|
||||
# TODO(cmasone): Do this more cleanly, if we figure out what "cleanly" means.
|
||||
# Set up wrapper for pkg-config. Point a board-specific wrapper at the
|
||||
# generic wrapper script created by crossdev-wrapper
|
||||
sudo ln -sf "/usr/bin/cross-pkg-config" \
|
||||
"/usr/bin/${FLAGS_toolchain}-pkg-config"
|
||||
fi
|
||||
|
||||
# Setup the make.confs. We use the following:
|
||||
# make.conf <- Overall target make.conf [arm, x86, etc. version]
|
||||
# make.conf.board_setup <- Declares CHOST, ROOT, etc.
|
||||
@ -467,7 +485,7 @@ if ${HOST_BOARD}; then
|
||||
fi
|
||||
sudo ln -sf "${CHROMIUMOS_CONFIG}/make.conf.common-target" \
|
||||
"${BOARD_ETC}/make.conf.common"
|
||||
cat <<EOF | sudo dd of="${BOARD_SETUP}" > /dev/null 2>&1
|
||||
sudo_clobber "${BOARD_SETUP}" <<EOF
|
||||
# Created by setup_board
|
||||
CHOST="${FLAGS_toolchain}"
|
||||
ROOT="${BOARD_ROOT}/"
|
||||
@ -503,20 +521,7 @@ if ! cros_choose_profile \
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
for wrapper in 'emerge --root-deps' ebuild eclean equery portageq \
|
||||
qcheck qfile qlist ; do
|
||||
generate_wrapper $wrapper
|
||||
done
|
||||
|
||||
generate_pkgconfig_wrapper
|
||||
|
||||
CROS_WORKON_WRAPPER="/usr/local/bin/cros_workon-${BOARD_VARIANT}"
|
||||
cat <<EOF | sudo dd of="$CROS_WORKON_WRAPPER" > /dev/null 2>&1
|
||||
#!/bin/bash
|
||||
exec cros_workon --board ${BOARD_VARIANT} "\$@"
|
||||
EOF
|
||||
sudo chmod +x "$CROS_WORKON_WRAPPER"
|
||||
generate_all_wrappers
|
||||
|
||||
if ${HOST_BOARD}; then
|
||||
EMERGE_CMD="emerge"
|
||||
|
Loading…
Reference in New Issue
Block a user