163 lines
3.7 KiB
Bash
Executable File
163 lines
3.7 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
BOARD=$(echo ${RK_KERNEL_DTS_NAME:-$(echo "$RK_DEFCONFIG" | \
|
|
sed -n "s/.*\($RK_CHIP.*\)_defconfig/\1/p")} | \
|
|
tr '[:lower:]' '[:upper:]')
|
|
|
|
build_all()
|
|
{
|
|
echo "=========================================="
|
|
echo " Start building all images"
|
|
echo "=========================================="
|
|
|
|
rm -rf "$RK_FIRMWARE_DIR" "$RK_SECURITY_FIRMWARE_DIR"
|
|
mkdir -p "$RK_FIRMWARE_DIR" "$RK_SECURITY_FIRMWARE_DIR"
|
|
|
|
if [ "$RK_RTOS" ]; then
|
|
"$SCRIPTS_DIR/mk-loader.sh"
|
|
"$SCRIPTS_DIR/mk-rtos.sh"
|
|
"$SCRIPTS_DIR/mk-firmware.sh"
|
|
finish_build
|
|
return 0
|
|
fi
|
|
|
|
if [ "$RK_SECURITY" ]; then
|
|
"$SCRIPTS_DIR/mk-security.sh" security_check
|
|
fi
|
|
|
|
if [ "$RK_AMP" ]; then
|
|
"$SCRIPTS_DIR/mk-amp.sh"
|
|
fi
|
|
|
|
if [ "$RK_RTT" ]; then
|
|
"$SCRIPTS_DIR/mk-rtt.sh"
|
|
fi
|
|
|
|
if [ "$RK_KERNEL_CFG" ]; then
|
|
"$SCRIPTS_DIR/mk-kernel.sh"
|
|
"$SCRIPTS_DIR/mk-rootfs.sh"
|
|
"$SCRIPTS_DIR/mk-recovery.sh"
|
|
fi
|
|
|
|
if [ "$RK_SECURITY" ]; then
|
|
"$SCRIPTS_DIR/mk-security.sh" security_ramboot
|
|
fi
|
|
|
|
# Will repack boot and recovery images when security enabled
|
|
"$SCRIPTS_DIR/mk-loader.sh"
|
|
|
|
"$SCRIPTS_DIR/mk-firmware.sh"
|
|
"$SCRIPTS_DIR/mk-updateimg.sh"
|
|
|
|
finish_build
|
|
}
|
|
|
|
build_save()
|
|
{
|
|
echo "=========================================="
|
|
echo " Start saving images and build info"
|
|
echo "=========================================="
|
|
|
|
shift
|
|
SAVE_BASE_DIR="$RK_OUTDIR/$BOARD${1:+/$1}"
|
|
case "$(grep "^ID=" "$RK_OUTDIR/os-release" 2>/dev/null)" in
|
|
ID=buildroot) SAVE_DIR="$SAVE_BASE_DIR/BUILDROOT" ;;
|
|
ID=debian) SAVE_DIR="$SAVE_BASE_DIR/DEBIAN" ;;
|
|
ID=poky) SAVE_DIR="$SAVE_BASE_DIR/YOCTO" ;;
|
|
*) SAVE_DIR="$SAVE_BASE_DIR" ;;
|
|
esac
|
|
[ "$1" ] || SAVE_DIR="$SAVE_DIR/$(date +%Y%m%d_%H%M%S)"
|
|
mkdir -p "$SAVE_DIR"
|
|
rm -rf "$SAVE_BASE_DIR/latest"
|
|
ln -rsf "$SAVE_DIR" "$SAVE_BASE_DIR/latest"
|
|
|
|
echo "Saving into $SAVE_DIR..."
|
|
|
|
if [ "$RK_KERNEL_CFG" ]; then
|
|
mkdir -p "$SAVE_DIR/kernel"
|
|
|
|
echo "Saving linux-headers..."
|
|
"$SCRIPTS_DIR/mk-kernel.sh" linux-headers \
|
|
"$SAVE_DIR/kernel"
|
|
|
|
echo "Saving kernel files..."
|
|
cp kernel/.config kernel/System.map kernel/vmlinux \
|
|
$RK_KERNEL_DTB "$SAVE_DIR/kernel"
|
|
fi
|
|
|
|
echo "Saving images..."
|
|
mkdir -p "$SAVE_DIR/IMAGES"
|
|
cp "$RK_FIRMWARE_DIR"/* "$SAVE_DIR/IMAGES/"
|
|
|
|
# echo "Saving build info..."
|
|
# if yes | ${PYTHON3:-python3} .repo/repo/repo manifest -r \
|
|
# -o "$SAVE_DIR/manifest.xml"; then
|
|
# # Only do this when repositories are available
|
|
# echo "Saving patches..."
|
|
# PATCHES_DIR="$SAVE_DIR/PATCHES"
|
|
# mkdir -p "$PATCHES_DIR"
|
|
# .repo/repo/repo forall -j $(( $CPUS + 1 )) -c \
|
|
# "\"$SCRIPTS_DIR/save-patches.sh\" \
|
|
# \"$PATCHES_DIR/\$REPO_PATH\" \$REPO_PATH \$REPO_LREV"
|
|
# install -D -m 0755 "$RK_DATA_DIR/apply-all.sh" "$PATCHES_DIR"
|
|
# fi
|
|
|
|
cp "$RK_FINAL_ENV" "$RK_CONFIG" "$RK_DEFCONFIG_LINK" "$SAVE_DIR/"
|
|
cp "$RK_CONFIG" "$SAVE_DIR/build_info"
|
|
|
|
echo "Saving build logs..."
|
|
cp -rp "$RK_LOG_BASE_DIR" "$SAVE_DIR/"
|
|
|
|
finish_build
|
|
}
|
|
|
|
build_allsave()
|
|
{
|
|
echo "=========================================="
|
|
echo " Start building allsave"
|
|
echo "=========================================="
|
|
|
|
build_all
|
|
build_save $@
|
|
|
|
finish_build
|
|
}
|
|
|
|
# Hooks
|
|
|
|
usage_hook()
|
|
{
|
|
echo -e "all \tbuild all images"
|
|
echo -e "save \tsave images and build info"
|
|
echo -e "allsave \tbuild all images and save them"
|
|
}
|
|
|
|
clean_hook()
|
|
{
|
|
rm -rf "$RK_OUTDIR"/$BOARD*
|
|
}
|
|
|
|
BUILD_CMDS="all allsave"
|
|
build_hook()
|
|
{
|
|
case "$1" in
|
|
all) build_all ;;
|
|
allsave) build_allsave $@ ;;
|
|
esac
|
|
}
|
|
|
|
POST_BUILD_CMDS="save"
|
|
post_build_hook()
|
|
{
|
|
build_save $@
|
|
}
|
|
|
|
source "${BUILD_HELPER:-$(dirname "$(realpath "$0")")/../build-hooks/build-helper}"
|
|
|
|
case "${1:-allsave}" in
|
|
all) build_all ;;
|
|
allsave) build_allsave $@ ;;
|
|
save) build_save $@ ;;
|
|
*) usage ;;
|
|
esac
|