Navigation Menu

Skip to content

Commit

Permalink
Add cross.sh to cross compile for one or more targets, and tweak make…
Browse files Browse the repository at this point in the history
….sh to

produce different output names for different ${TARGET}s.
  • Loading branch information
landley committed Sep 7, 2019
1 parent 7ea6dee commit 3356140
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 1 deletion.
53 changes: 53 additions & 0 deletions scripts/cross.sh
@@ -0,0 +1,53 @@
#!/bin/bash

# Convenience wrapper to set $CROSS_COMPILE from short name using "ccc"
# symlink (Cross C Compiler) to a directory of cross compilers named
# $TARGET-*-cross. Tested with scripts/mcm-buildall.sh output.

# Usage: ./cross.sh $TARGET make distclean defconfig toybox
# With no arguments, lists available targets. Use target "all" to iterate
# through each $TARGET from the list.

CCC="$(dirname "$(readlink -f "$0")")"/ccc
if [ ! -d "$CCC" ]
then
echo "Create symlink 'ccc' to cross compiler directory"
exit 1
fi

unset X Y

# Display target list?
list()
{
ls "$CCC" | sed 's/-.*//' | sort -u | xargs
}
[ $# -eq 0 ] && list && exit

X="$1"
shift

# build all targets?
if [ "$X" == all ]
then
for TARGET in $(list)
do
mkdir -p output/$TARGET
{
export TARGET
"$0" $TARGET "$@" 2>&1 || mv output/$TARGET{,.failed}
} | tee output/$TARGET/log.txt
done

exit
fi

# Call command with CROSS_COMPILE= as its first argument

Y=$(readlink -f "$CCC"/$X-*cross)
X=$(basename "$Y")
export TARGET="${X/-*/}"
X="$Y/bin/${X/-cross/-}"
[ ! -e "${X}cc" ] && echo "${X}cc not found" && exit 1

CROSS_COMPILE="$X" "$@"
2 changes: 1 addition & 1 deletion scripts/make.sh
Expand Up @@ -15,7 +15,7 @@ set -o pipefail
source scripts/portability.sh

[ -z "$KCONFIG_CONFIG" ] && KCONFIG_CONFIG=.config
[ -z "$OUTNAME" ] && OUTNAME=toybox
[ -z "$OUTNAME" ] && OUTNAME=toybox"${TARGET:+-$TARGET}"
UNSTRIPPED="generated/unstripped/$(basename "$OUTNAME")"

# Try to keep one more cc invocation going than we have processors
Expand Down

0 comments on commit 3356140

Please sign in to comment.