xref: /linux/scripts/package/buildtar (revision 6d983feab80948cdd0e3920c40d453a6436eeb23)
1*6d983feaSJan-Benedict Glaw#!/bin/sh
2*6d983feaSJan-Benedict Glaw
3*6d983feaSJan-Benedict Glaw#
4*6d983feaSJan-Benedict Glaw# buildtar 0.0.3
5*6d983feaSJan-Benedict Glaw#
6*6d983feaSJan-Benedict Glaw# (C) 2004-2005 by Jan-Benedict Glaw <jbglaw@lug-owl.de>
7*6d983feaSJan-Benedict Glaw#
8*6d983feaSJan-Benedict Glaw# This script is used to compile a tarball from the currently
9*6d983feaSJan-Benedict Glaw# prepared kernel. Based upon the builddeb script from
10*6d983feaSJan-Benedict Glaw# Wichert Akkerman <wichert@wiggy.net>.
11*6d983feaSJan-Benedict Glaw#
12*6d983feaSJan-Benedict Glaw
13*6d983feaSJan-Benedict Glawset -e
14*6d983feaSJan-Benedict Glaw
15*6d983feaSJan-Benedict Glaw#
16*6d983feaSJan-Benedict Glaw# Some variables and settings used throughout the script
17*6d983feaSJan-Benedict Glaw#
18*6d983feaSJan-Benedict Glawversion="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}${EXTRANAME}"
19*6d983feaSJan-Benedict Glawtmpdir="${objtree}/tar-install"
20*6d983feaSJan-Benedict Glawtarball="${objtree}/linux-${version}.tar"
21*6d983feaSJan-Benedict Glaw
22*6d983feaSJan-Benedict Glaw
23*6d983feaSJan-Benedict Glaw#
24*6d983feaSJan-Benedict Glaw# Figure out how to compress, if requested at all
25*6d983feaSJan-Benedict Glaw#
26*6d983feaSJan-Benedict Glawcase "${1}" in
27*6d983feaSJan-Benedict Glaw	tar-pkg)
28*6d983feaSJan-Benedict Glaw		compress="cat"
29*6d983feaSJan-Benedict Glaw		file_ext=""
30*6d983feaSJan-Benedict Glaw		;;
31*6d983feaSJan-Benedict Glaw	targz-pkg)
32*6d983feaSJan-Benedict Glaw		compress="gzip -c9"
33*6d983feaSJan-Benedict Glaw		file_ext=".gz"
34*6d983feaSJan-Benedict Glaw		;;
35*6d983feaSJan-Benedict Glaw	tarbz2-pkg)
36*6d983feaSJan-Benedict Glaw		compress="bzip2 -c9"
37*6d983feaSJan-Benedict Glaw		file_ext=".bz2"
38*6d983feaSJan-Benedict Glaw		;;
39*6d983feaSJan-Benedict Glaw	*)
40*6d983feaSJan-Benedict Glaw		echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
41*6d983feaSJan-Benedict Glaw		exit 1
42*6d983feaSJan-Benedict Glaw		;;
43*6d983feaSJan-Benedict Glawesac
44*6d983feaSJan-Benedict Glaw
45*6d983feaSJan-Benedict Glaw
46*6d983feaSJan-Benedict Glaw#
47*6d983feaSJan-Benedict Glaw# Clean-up and re-create the temporary directory
48*6d983feaSJan-Benedict Glaw#
49*6d983feaSJan-Benedict Glawrm -rf -- "${tmpdir}"
50*6d983feaSJan-Benedict Glawmkdir -p -- "${tmpdir}/boot"
51*6d983feaSJan-Benedict Glaw
52*6d983feaSJan-Benedict Glaw
53*6d983feaSJan-Benedict Glaw#
54*6d983feaSJan-Benedict Glaw# Try to install modules
55*6d983feaSJan-Benedict Glaw#
56*6d983feaSJan-Benedict Glawif ! make INSTALL_MOD_PATH="${tmpdir}" modules_install; then
57*6d983feaSJan-Benedict Glaw	echo "" >&2
58*6d983feaSJan-Benedict Glaw	echo "Ignoring error at module_install time, since that could be" >&2
59*6d983feaSJan-Benedict Glaw	echo "a result of missing local modutils/module-init-tools," >&2
60*6d983feaSJan-Benedict Glaw	echo "or you just didn't compile in module support at all..." >&2
61*6d983feaSJan-Benedict Glaw	echo "" >&2
62*6d983feaSJan-Benedict Glawfi
63*6d983feaSJan-Benedict Glaw
64*6d983feaSJan-Benedict Glaw
65*6d983feaSJan-Benedict Glaw#
66*6d983feaSJan-Benedict Glaw# Install basic kernel files
67*6d983feaSJan-Benedict Glaw#
68*6d983feaSJan-Benedict Glawcp -v -- System.map "${tmpdir}/boot/System.map-${version}"
69*6d983feaSJan-Benedict Glawcp -v -- .config "${tmpdir}/boot/config-${version}"
70*6d983feaSJan-Benedict Glawcp -v -- vmlinux "${tmpdir}/boot/vmlinux-${version}"
71*6d983feaSJan-Benedict Glaw
72*6d983feaSJan-Benedict Glaw
73*6d983feaSJan-Benedict Glaw#
74*6d983feaSJan-Benedict Glaw# Install arch-specific kernel image(s)
75*6d983feaSJan-Benedict Glaw#
76*6d983feaSJan-Benedict Glawcase "${ARCH}" in
77*6d983feaSJan-Benedict Glaw	i386)
78*6d983feaSJan-Benedict Glaw		[ -f arch/i386/boot/bzImage ] && cp -v -- arch/i386/boot/bzImage "${tmpdir}/boot/vmlinuz-${version}"
79*6d983feaSJan-Benedict Glaw		;;
80*6d983feaSJan-Benedict Glaw	alpha)
81*6d983feaSJan-Benedict Glaw		[ -f arch/alpha/boot/vmlinux.gz ] && cp -v -- arch/alpha/boot/vmlinux.gz "${tmpdir}/boot/vmlinuz-${version}"
82*6d983feaSJan-Benedict Glaw		;;
83*6d983feaSJan-Benedict Glaw	vax)
84*6d983feaSJan-Benedict Glaw		[ -f vmlinux.SYS ] && cp -v -- vmlinux.SYS "${tmpdir}/boot/vmlinux-${version}.SYS"
85*6d983feaSJan-Benedict Glaw		[ -f vmlinux.dsk ] && cp -v -- vmlinux.dsk "${tmpdir}/boot/vmlinux-${version}.dsk"
86*6d983feaSJan-Benedict Glaw		;;
87*6d983feaSJan-Benedict Glaw	*)
88*6d983feaSJan-Benedict Glaw		[ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${version}"
89*6d983feaSJan-Benedict Glaw		echo "" >&2
90*6d983feaSJan-Benedict Glaw		echo '** ** **  WARNING  ** ** **' >&2
91*6d983feaSJan-Benedict Glaw		echo "" >&2
92*6d983feaSJan-Benedict Glaw		echo "Your architecture did not define any architecture-dependant files" >&2
93*6d983feaSJan-Benedict Glaw		echo "to be placed into the tarball. Please add those to ${0} ..." >&2
94*6d983feaSJan-Benedict Glaw		echo "" >&2
95*6d983feaSJan-Benedict Glaw		sleep 5
96*6d983feaSJan-Benedict Glaw		;;
97*6d983feaSJan-Benedict Glawesac
98*6d983feaSJan-Benedict Glaw
99*6d983feaSJan-Benedict Glaw
100*6d983feaSJan-Benedict Glaw#
101*6d983feaSJan-Benedict Glaw# Create the tarball
102*6d983feaSJan-Benedict Glaw#
103*6d983feaSJan-Benedict Glaw(
104*6d983feaSJan-Benedict Glaw	cd "${tmpdir}"
105*6d983feaSJan-Benedict Glaw	tar cf - . | ${compress} > "${tarball}${file_ext}"
106*6d983feaSJan-Benedict Glaw)
107*6d983feaSJan-Benedict Glaw
108*6d983feaSJan-Benedict Glawecho "Tarball successfully created in ${tarball}${file_ext}"
109*6d983feaSJan-Benedict Glaw
110*6d983feaSJan-Benedict Glawexit 0
111*6d983feaSJan-Benedict Glaw
112