diff options
Diffstat (limited to 'resources')
-rwxr-xr-x | resources/scripts/build/payload/u-boot | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/resources/scripts/build/payload/u-boot b/resources/scripts/build/payload/u-boot index 39e825c1..e75ede93 100755 --- a/resources/scripts/build/payload/u-boot +++ b/resources/scripts/build/payload/u-boot @@ -28,17 +28,19 @@ RET=0 printf "Building U-Boot payloads\n" +pdir="payload/u-boot" + # Build for all boards if no argument is given if [ "$#" -eq 0 ]; then for board_dir in resources/u-boot/*; do - if [ -d "${board_dir}/config/" ]; then - set -- "$@" "${board_dir#resources/u-boot/}" - fi + [ ! -d "${board_dir}/config/" ] && \ + continue + set -- "$@" "${board_dir#resources/u-boot/}" done fi [ ! -d "payload/" ] && mkdir -p payload/ -[ ! -d "payload/u-boot" ] && mkdir -p payload/u-boot/ +[ ! -d "${pdir}" ] && mkdir -p ${pdir}/ # Appends additional version info to U-Boot our_version="$(cat version)" @@ -47,15 +49,15 @@ export LOCALVERSION="-${projectname}-${our_version}" for board in "$@"; do board_dir="resources/u-boot/${board}" - rm -rf "payload/u-boot/${board}" - mkdir -p "payload/u-boot/${board}" + rm -rf "${pdir}/${board}" + mkdir -p "${pdir}/${board}" ubtree="undefined" arch="undefined" if [ ! -f "${board_dir}/board.cfg" ]; then - printf "%s: Target %s does not have a board.cfg. Skipping build.\n" \ - "build/payload/u-boot" "${board}" + printf "build/u-boot %s: Missing board.cfg.\n" \ + "${board}" RET=1 continue fi @@ -64,14 +66,14 @@ for board in "$@"; do . "${board_dir}/board.cfg" # source if [ "${ubtree}" = "undefined" ]; then - printf "%s: Target %s does not define a U-Boot tree. Skipping build.\n" \ - "build/payload/u-boot" "${board}" + printf "build/u-boot %s: ubtree undefined\n" \ + "${board}" RET=1 continue fi if [ "${arch}" = "undefined" ]; then - printf "%s: Target %s does not define a CPU type. Skipping build.\n" \ - "build/payload/u-boot" "${board}" + printf "build/u-boot %s: undefined cpu type\n" \ + "${board}" RET=1 continue fi @@ -86,30 +88,30 @@ for board in "$@"; do fi if [ ! -d "${ubdir}" ]; then - printf "%s: Failed to download U-Boot for target %s. Skipping build.\n" \ - "build/payload/u-boot" "${board}" + printf "build/u-boot %s: uboot download failed\n" \ + "${board}" RET=1 continue fi for config in "${board_dir}/config"/*; do if [ ! -f "${config}" ]; then - printf "%s: Target %s has no configs to build for. Skipping build.\n" \ - "build/payload/u-boot" "${board}" + printf "build/u-boot %s: configs missing\n" \ + ${board} RET=1 continue fi config_name="${config#$board_dir/config/}" if [ "$config_name" = "default" ]; then - dest_dir="payload/u-boot/${board}" + dest_dir="${pdir}/${board}" else - dest_dir="payload/u-boot/${board}/${config_name}" + dest_dir="${pdir}/${board}/${config_name}" fi mkdir -p "${dest_dir}" - printf "%s: Building for target %s (config %s).\n" \ - "build/payload/u-boot" "${board}" "${config_name}" + printf "build/u-boot %s: building config %s).\n" \ + ${board} ${config_name} make -C "${ubdir}" distclean @@ -117,8 +119,11 @@ for board in "$@"; do make -C "${ubdir}" olddefconfig make -C "${ubdir}" -j"$(nproc)" all - for f in "${ubdir}"/u-boot "${ubdir}"/u-boot.bin "${ubdir}"/u-boot.dtb \ - "${ubdir}"/u-boot.img "${ubdir}"/u-boot.itb "${ubdir}"/u-boot.elf; do + for f in "${ubdir}"/u-boot "${ubdir}"/u-boot.bin \ + "${ubdir}"/u-boot.dtb \ + "${ubdir}"/u-boot.img \ + "${ubdir}"/u-boot.itb \ + "${ubdir}"/u-boot.elf; do if [ -f "$f" ]; then mv "$f" "${dest_dir}/" fi @@ -126,12 +131,10 @@ for board in "$@"; do make -C "${ubdir}" distclean - printf "%s: Built for target %s (config %s).\n" \ - "build/payload/u-boot" "${board}" "${config_name}" + printf "build/u-boot %s: build config %s\n" \ + "${board}" "${config_name}" done done -printf "Done! U-Boot files are in payload/u-boot/\n\n" +printf "Done! U-Boot files are in %s/\n\n" ${pdir} exit $RET - -# ------------------- DONE ---------------------- |