xref: /utopia/UTPA2-700.0.x/projects/build/scripts/package/buildtar (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
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