1*53ee8cc1Swenshuai.xi#!/bin/sh 2*53ee8cc1Swenshuai.xi 3*53ee8cc1Swenshuai.xi# 4*53ee8cc1Swenshuai.xi# buildtar 0.0.4 5*53ee8cc1Swenshuai.xi# 6*53ee8cc1Swenshuai.xi# (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de> 7*53ee8cc1Swenshuai.xi# 8*53ee8cc1Swenshuai.xi# This script is used to compile a tarball from the currently 9*53ee8cc1Swenshuai.xi# prepared kernel. Based upon the builddeb script from 10*53ee8cc1Swenshuai.xi# Wichert Akkerman <wichert@wiggy.net>. 11*53ee8cc1Swenshuai.xi# 12*53ee8cc1Swenshuai.xi 13*53ee8cc1Swenshuai.xiset -e 14*53ee8cc1Swenshuai.xi 15*53ee8cc1Swenshuai.xi# 16*53ee8cc1Swenshuai.xi# Some variables and settings used throughout the script 17*53ee8cc1Swenshuai.xi# 18*53ee8cc1Swenshuai.xitmpdir="${objtree}/tar-install" 19*53ee8cc1Swenshuai.xitarball="${objtree}/linux-${KERNELRELEASE}.tar" 20*53ee8cc1Swenshuai.xi 21*53ee8cc1Swenshuai.xi 22*53ee8cc1Swenshuai.xi# 23*53ee8cc1Swenshuai.xi# Figure out how to compress, if requested at all 24*53ee8cc1Swenshuai.xi# 25*53ee8cc1Swenshuai.xicase "${1}" in 26*53ee8cc1Swenshuai.xi tar-pkg) 27*53ee8cc1Swenshuai.xi compress="cat" 28*53ee8cc1Swenshuai.xi file_ext="" 29*53ee8cc1Swenshuai.xi ;; 30*53ee8cc1Swenshuai.xi targz-pkg) 31*53ee8cc1Swenshuai.xi compress="gzip -c9" 32*53ee8cc1Swenshuai.xi file_ext=".gz" 33*53ee8cc1Swenshuai.xi ;; 34*53ee8cc1Swenshuai.xi tarbz2-pkg) 35*53ee8cc1Swenshuai.xi compress="bzip2 -c9" 36*53ee8cc1Swenshuai.xi file_ext=".bz2" 37*53ee8cc1Swenshuai.xi ;; 38*53ee8cc1Swenshuai.xi tarxz-pkg) 39*53ee8cc1Swenshuai.xi compress="xz -c9" 40*53ee8cc1Swenshuai.xi file_ext=".xz" 41*53ee8cc1Swenshuai.xi ;; 42*53ee8cc1Swenshuai.xi *) 43*53ee8cc1Swenshuai.xi echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2 44*53ee8cc1Swenshuai.xi exit 1 45*53ee8cc1Swenshuai.xi ;; 46*53ee8cc1Swenshuai.xiesac 47*53ee8cc1Swenshuai.xi 48*53ee8cc1Swenshuai.xi 49*53ee8cc1Swenshuai.xi# 50*53ee8cc1Swenshuai.xi# Clean-up and re-create the temporary directory 51*53ee8cc1Swenshuai.xi# 52*53ee8cc1Swenshuai.xirm -rf -- "${tmpdir}" 53*53ee8cc1Swenshuai.ximkdir -p -- "${tmpdir}/boot" 54*53ee8cc1Swenshuai.xi 55*53ee8cc1Swenshuai.xi 56*53ee8cc1Swenshuai.xi# 57*53ee8cc1Swenshuai.xi# Try to install modules 58*53ee8cc1Swenshuai.xi# 59*53ee8cc1Swenshuai.xiif grep -q '^CONFIG_MODULES=y' "${objtree}/.config"; then 60*53ee8cc1Swenshuai.xi make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install 61*53ee8cc1Swenshuai.xifi 62*53ee8cc1Swenshuai.xi 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi# 65*53ee8cc1Swenshuai.xi# Install basic kernel files 66*53ee8cc1Swenshuai.xi# 67*53ee8cc1Swenshuai.xicp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}" 68*53ee8cc1Swenshuai.xicp -v -- "${objtree}/.config" "${tmpdir}/boot/config-${KERNELRELEASE}" 69*53ee8cc1Swenshuai.xicp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 70*53ee8cc1Swenshuai.xi 71*53ee8cc1Swenshuai.xi 72*53ee8cc1Swenshuai.xi# 73*53ee8cc1Swenshuai.xi# Install arch-specific kernel image(s) 74*53ee8cc1Swenshuai.xi# 75*53ee8cc1Swenshuai.xicase "${ARCH}" in 76*53ee8cc1Swenshuai.xi x86|i386|x86_64) 77*53ee8cc1Swenshuai.xi [ -f "${objtree}/arch/x86/boot/bzImage" ] && cp -v -- "${objtree}/arch/x86/boot/bzImage" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 78*53ee8cc1Swenshuai.xi ;; 79*53ee8cc1Swenshuai.xi alpha) 80*53ee8cc1Swenshuai.xi [ -f "${objtree}/arch/alpha/boot/vmlinux.gz" ] && cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}" 81*53ee8cc1Swenshuai.xi ;; 82*53ee8cc1Swenshuai.xi parisc*) 83*53ee8cc1Swenshuai.xi [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}" 84*53ee8cc1Swenshuai.xi [ -f "${objtree}/lifimage" ] && cp -v -- "${objtree}/lifimage" "${tmpdir}/boot/lifimage-${KERNELRELEASE}" 85*53ee8cc1Swenshuai.xi ;; 86*53ee8cc1Swenshuai.xi vax) 87*53ee8cc1Swenshuai.xi [ -f "${objtree}/vmlinux.SYS" ] && cp -v -- "${objtree}/vmlinux.SYS" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.SYS" 88*53ee8cc1Swenshuai.xi [ -f "${objtree}/vmlinux.dsk" ] && cp -v -- "${objtree}/vmlinux.dsk" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.dsk" 89*53ee8cc1Swenshuai.xi ;; 90*53ee8cc1Swenshuai.xi *) 91*53ee8cc1Swenshuai.xi [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}" 92*53ee8cc1Swenshuai.xi echo "" >&2 93*53ee8cc1Swenshuai.xi echo '** ** ** WARNING ** ** **' >&2 94*53ee8cc1Swenshuai.xi echo "" >&2 95*53ee8cc1Swenshuai.xi echo "Your architecture did not define any architecture-dependent files" >&2 96*53ee8cc1Swenshuai.xi echo "to be placed into the tarball. Please add those to ${0} ..." >&2 97*53ee8cc1Swenshuai.xi echo "" >&2 98*53ee8cc1Swenshuai.xi sleep 5 99*53ee8cc1Swenshuai.xi ;; 100*53ee8cc1Swenshuai.xiesac 101*53ee8cc1Swenshuai.xi 102*53ee8cc1Swenshuai.xi 103*53ee8cc1Swenshuai.xi# 104*53ee8cc1Swenshuai.xi# Create the tarball 105*53ee8cc1Swenshuai.xi# 106*53ee8cc1Swenshuai.xi( 107*53ee8cc1Swenshuai.xi cd "${tmpdir}" 108*53ee8cc1Swenshuai.xi opts= 109*53ee8cc1Swenshuai.xi if tar --owner=root --group=root --help >/dev/null 2>&1; then 110*53ee8cc1Swenshuai.xi opts="--owner=root --group=root" 111*53ee8cc1Swenshuai.xi fi 112*53ee8cc1Swenshuai.xi tar cf - . $opts | ${compress} > "${tarball}${file_ext}" 113*53ee8cc1Swenshuai.xi) 114*53ee8cc1Swenshuai.xi 115*53ee8cc1Swenshuai.xiecho "Tarball successfully created in ${tarball}${file_ext}" 116*53ee8cc1Swenshuai.xi 117*53ee8cc1Swenshuai.xiexit 0 118*53ee8cc1Swenshuai.xi 119