162306a36Sopenharmony_ci#!/bin/sh
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci# buildtar 0.0.5
662306a36Sopenharmony_ci#
762306a36Sopenharmony_ci# (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de>
862306a36Sopenharmony_ci#
962306a36Sopenharmony_ci# This script is used to compile a tarball from the currently
1062306a36Sopenharmony_ci# prepared kernel. Based upon the builddeb script from
1162306a36Sopenharmony_ci# Wichert Akkerman <wichert@wiggy.net>.
1262306a36Sopenharmony_ci#
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciset -e
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci#
1762306a36Sopenharmony_ci# Some variables and settings used throughout the script
1862306a36Sopenharmony_ci#
1962306a36Sopenharmony_citmpdir=$1
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#
2262306a36Sopenharmony_ci# Clean-up and re-create the temporary directory
2362306a36Sopenharmony_ci#
2462306a36Sopenharmony_cirm -rf -- "${tmpdir}"
2562306a36Sopenharmony_cimkdir -p -- "${tmpdir}/boot"
2662306a36Sopenharmony_cidirs=boot
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci#
3062306a36Sopenharmony_ci# Try to install dtbs
3162306a36Sopenharmony_ci#
3262306a36Sopenharmony_ciif grep -q '^CONFIG_OF_EARLY_FLATTREE=y' include/config/auto.conf; then
3362306a36Sopenharmony_ci	# Only some architectures with OF support have this target
3462306a36Sopenharmony_ci	if [ -d "${srctree}/arch/${SRCARCH}/boot/dts" ]; then
3562306a36Sopenharmony_ci		$MAKE ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_DTBS_PATH="${tmpdir}/boot/dtbs/${KERNELRELEASE}" dtbs_install
3662306a36Sopenharmony_ci    fi
3762306a36Sopenharmony_cifi
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#
4162306a36Sopenharmony_ci# Try to install modules
4262306a36Sopenharmony_ci#
4362306a36Sopenharmony_ciif grep -q '^CONFIG_MODULES=y' include/config/auto.conf; then
4462306a36Sopenharmony_ci	make ARCH="${ARCH}" -f ${srctree}/Makefile INSTALL_MOD_PATH="${tmpdir}" modules_install
4562306a36Sopenharmony_ci	dirs="$dirs lib"
4662306a36Sopenharmony_cifi
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci#
5062306a36Sopenharmony_ci# Install basic kernel files
5162306a36Sopenharmony_ci#
5262306a36Sopenharmony_cicp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
5362306a36Sopenharmony_cicp -v -- "${KCONFIG_CONFIG}" "${tmpdir}/boot/config-${KERNELRELEASE}"
5462306a36Sopenharmony_cicp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ci#
5862306a36Sopenharmony_ci# Install arch-specific kernel image(s)
5962306a36Sopenharmony_ci#
6062306a36Sopenharmony_cicase "${ARCH}" in
6162306a36Sopenharmony_ci	x86|i386|x86_64)
6262306a36Sopenharmony_ci		[ -f "${objtree}/arch/x86/boot/bzImage" ] && cp -v -- "${objtree}/arch/x86/boot/bzImage" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
6362306a36Sopenharmony_ci		;;
6462306a36Sopenharmony_ci	alpha)
6562306a36Sopenharmony_ci		[ -f "${objtree}/arch/alpha/boot/vmlinux.gz" ] && cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
6662306a36Sopenharmony_ci		;;
6762306a36Sopenharmony_ci	parisc*)
6862306a36Sopenharmony_ci		[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
6962306a36Sopenharmony_ci		[ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}"
7062306a36Sopenharmony_ci		;;
7162306a36Sopenharmony_ci	mips)
7262306a36Sopenharmony_ci		if [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.bin" ]; then
7362306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.bin" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
7462306a36Sopenharmony_ci		elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" ]; then
7562306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.ecoff" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
7662306a36Sopenharmony_ci		elif [ -f "${objtree}/arch/mips/boot/compressed/vmlinux.srec" ]; then
7762306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/compressed/vmlinux.srec" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
7862306a36Sopenharmony_ci		elif [ -f "${objtree}/vmlinux.32" ]; then
7962306a36Sopenharmony_ci			cp -v -- "${objtree}/vmlinux.32" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
8062306a36Sopenharmony_ci		elif [ -f "${objtree}/vmlinux.64" ]; then
8162306a36Sopenharmony_ci			cp -v -- "${objtree}/vmlinux.64" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
8262306a36Sopenharmony_ci		elif [ -f "${objtree}/arch/mips/boot/vmlinux.bin" ]; then
8362306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/vmlinux.bin" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
8462306a36Sopenharmony_ci		elif [ -f "${objtree}/arch/mips/boot/vmlinux.ecoff" ]; then
8562306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/vmlinux.ecoff" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
8662306a36Sopenharmony_ci		elif [ -f "${objtree}/arch/mips/boot/vmlinux.srec" ]; then
8762306a36Sopenharmony_ci			cp -v -- "${objtree}/arch/mips/boot/vmlinux.srec" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
8862306a36Sopenharmony_ci		elif [ -f "${objtree}/vmlinux" ]; then
8962306a36Sopenharmony_ci			cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
9062306a36Sopenharmony_ci		fi
9162306a36Sopenharmony_ci		;;
9262306a36Sopenharmony_ci	arm64)
9362306a36Sopenharmony_ci		for i in Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo vmlinuz.efi ; do
9462306a36Sopenharmony_ci			if [ -f "${objtree}/arch/arm64/boot/${i}" ] ; then
9562306a36Sopenharmony_ci				cp -v -- "${objtree}/arch/arm64/boot/${i}" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
9662306a36Sopenharmony_ci				break
9762306a36Sopenharmony_ci			fi
9862306a36Sopenharmony_ci		done
9962306a36Sopenharmony_ci		;;
10062306a36Sopenharmony_ci	riscv)
10162306a36Sopenharmony_ci		for i in Image.bz2 Image.gz Image; do
10262306a36Sopenharmony_ci			if [ -f "${objtree}/arch/riscv/boot/${i}" ] ; then
10362306a36Sopenharmony_ci				cp -v -- "${objtree}/arch/riscv/boot/${i}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
10462306a36Sopenharmony_ci				break
10562306a36Sopenharmony_ci			fi
10662306a36Sopenharmony_ci		done
10762306a36Sopenharmony_ci		;;
10862306a36Sopenharmony_ci	*)
10962306a36Sopenharmony_ci		[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}"
11062306a36Sopenharmony_ci		echo "" >&2
11162306a36Sopenharmony_ci		echo '** ** **  WARNING  ** ** **' >&2
11262306a36Sopenharmony_ci		echo "" >&2
11362306a36Sopenharmony_ci		echo "Your architecture did not define any architecture-dependent files" >&2
11462306a36Sopenharmony_ci		echo "to be placed into the tarball. Please add those to ${0} ..." >&2
11562306a36Sopenharmony_ci		echo "" >&2
11662306a36Sopenharmony_ci		sleep 5
11762306a36Sopenharmony_ci		;;
11862306a36Sopenharmony_ciesac
119