| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/bin/sh
- # SPDX-License-Identifier: GPL-2.0
- #
- # buildtar 0.0.5
- #
- # (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de>
- #
- # This script is used to compile a tarball from the currently
- # prepared kernel. Based upon the builddeb script from
- # Wichert Akkerman <wichert@wiggy.net>.
- #
- set -eu
- #
- # Some variables and settings used throughout the script
- #
- tmpdir=$1
- #
- # Clean-up and re-create the temporary directory
- #
- rm -rf -- "${tmpdir}"
- mkdir -p -- "${tmpdir}/boot"
- #
- # Try to install dtbs
- #
- if grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then
- # Only some architectures with OF support have this target
- if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
- $MAKE ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install
- fi
- fi
- #
- # Install modules
- #
- make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_MOD_PATH="${tmpdir}" modules_install
- #
- # Install basic kernel files
- #
- cp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
- cp -v -- "${KCONFIG_CONFIG}" "${tmpdir}/boot/config-${KERNELRELEASE}"
- cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- #
- # Install arch-specific kernel image(s)
- #
- # Note:
- # mips and arm64 copy the first image found. This may not produce the desired
- # outcome because it may pick up a stale file remaining in the build tree.
- #
- case "${ARCH}" in
- alpha)
- cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- ;;
- parisc*)
- cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- [ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}"
- ;;
- mips)
- # Please note the following code may copy a stale file.
- if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
- cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" ]; then
- cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.srec" ]; then
- cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.srec" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- elif [ -f "${objtree}/vmlinux.32" ]; then
- cp -v -- "${objtree}/vmlinux.32" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- elif [ -f "${objtree}/vmlinux.64" ]; then
- cp -v -- "${objtree}/vmlinux.64" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- elif [ -f "${objtree}/arch/mips/boot/vmlinux.bin" ]; then
- cp -v -- "${objtree}/arch/mips/boot/vmlinux.bin" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- elif [ -f "${objtree}/arch/mips/boot/vmlinux.ecoff" ]; then
- cp -v -- "${objtree}/arch/mips/boot/vmlinux.ecoff" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- elif [ -f "${objtree}/arch/mips/boot/vmlinux.srec" ]; then
- cp -v -- "${objtree}/arch/mips/boot/vmlinux.srec" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- elif [ -f "${objtree}/vmlinux" ]; then
- cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
- fi
- ;;
- arm64)
- # Please note the following code may copy a stale file.
- for i in Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo vmlinuz.efi ; do
- if [ -f "${objtree}/arch/arm64/boot/${i}" ] ; then
- cp -v -- "${objtree}/arch/arm64/boot/${i}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- break
- fi
- done
- ;;
- riscv)
- case "${KBUILD_IMAGE##*/}" in
- Image.*|vmlinuz.efi)
- cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}";;
- *)
- cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}";;
- esac
- ;;
- *)
- cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
- ;;
- esac
|