xref: /openbmc/linux/scripts/package/builddeb (revision 810e8437)
11da177e4SLinus Torvalds#!/bin/sh
21da177e4SLinus Torvalds#
34964451aSFrans Pop# builddeb 1.3
41da177e4SLinus Torvalds# Copyright 2003 Wichert Akkerman <wichert@wiggy.net>
51da177e4SLinus Torvalds#
61da177e4SLinus Torvalds# Simple script to generate a deb package for a Linux kernel. All the
74f66199bSFrans Pop# complexity of what to do with a kernel after it is installed or removed
81da177e4SLinus Torvalds# is left to other scripts and packages: they can install scripts in the
9fe233cb6SFrans Pop# /etc/kernel/{pre,post}{inst,rm}.d/ directories (or an alternative location
10fe233cb6SFrans Pop# specified in KDEB_HOOKDIR) that will be called on package install and
11fe233cb6SFrans Pop# removal.
121da177e4SLinus Torvalds
131da177e4SLinus Torvaldsset -e
141da177e4SLinus Torvalds
153e2ab256SFrans Popcreate_package() {
163e2ab256SFrans Pop	local pname="$1" pdir="$2"
173e2ab256SFrans Pop
189461f666SFrans Pop	cp debian/copyright "$pdir/usr/share/doc/$pname/"
191ab18486Smaximilian attems	cp debian/changelog "$pdir/usr/share/doc/$pname/changelog.Debian"
201ab18486Smaximilian attems	gzip -9 "$pdir/usr/share/doc/$pname/changelog.Debian"
21b59a1225SFEJES Jozsef	sh -c "cd '$pdir'; find . -type f ! -path './DEBIAN/*' -printf '%P\0' \
22b59a1225SFEJES Jozsef		| xargs -r0 md5sum > DEBIAN/md5sums"
239461f666SFrans Pop
243e2ab256SFrans Pop	# Fix ownership and permissions
253e2ab256SFrans Pop	chown -R root:root "$pdir"
263e2ab256SFrans Pop	chmod -R go-w "$pdir"
273e2ab256SFrans Pop
2810f26fa6SAsbjoern Sloth Toennesen	# Attempt to find the correct Debian architecture
2910f26fa6SAsbjoern Sloth Toennesen	local forcearch="" debarch=""
3010f26fa6SAsbjoern Sloth Toennesen	case "$UTS_MACHINE" in
3110f26fa6SAsbjoern Sloth Toennesen	i386|ia64|alpha)
3210f26fa6SAsbjoern Sloth Toennesen		debarch="$UTS_MACHINE" ;;
3310f26fa6SAsbjoern Sloth Toennesen	x86_64)
3410f26fa6SAsbjoern Sloth Toennesen		debarch=amd64 ;;
3510f26fa6SAsbjoern Sloth Toennesen	sparc*)
3610f26fa6SAsbjoern Sloth Toennesen		debarch=sparc ;;
3710f26fa6SAsbjoern Sloth Toennesen	s390*)
3810f26fa6SAsbjoern Sloth Toennesen		debarch=s390 ;;
3910f26fa6SAsbjoern Sloth Toennesen	ppc*)
4010f26fa6SAsbjoern Sloth Toennesen		debarch=powerpc ;;
4110f26fa6SAsbjoern Sloth Toennesen	parisc*)
4210f26fa6SAsbjoern Sloth Toennesen		debarch=hppa ;;
4310f26fa6SAsbjoern Sloth Toennesen	mips*)
44d2091767SAnisse Astier		debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y $KCONFIG_CONFIG && echo el) ;;
4510f26fa6SAsbjoern Sloth Toennesen	arm*)
46d2091767SAnisse Astier		debarch=arm$(grep -q CONFIG_AEABI=y $KCONFIG_CONFIG && echo el) ;;
4710f26fa6SAsbjoern Sloth Toennesen	*)
4810f26fa6SAsbjoern Sloth Toennesen		echo "" >&2
4910f26fa6SAsbjoern Sloth Toennesen		echo "** ** **  WARNING  ** ** **" >&2
5010f26fa6SAsbjoern Sloth Toennesen		echo "" >&2
5110f26fa6SAsbjoern Sloth Toennesen		echo "Your architecture doesn't have it's equivalent" >&2
5210f26fa6SAsbjoern Sloth Toennesen		echo "Debian userspace architecture defined!" >&2
5310f26fa6SAsbjoern Sloth Toennesen		echo "Falling back to using your current userspace instead!" >&2
5410f26fa6SAsbjoern Sloth Toennesen		echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
5510f26fa6SAsbjoern Sloth Toennesen		echo "" >&2
5610f26fa6SAsbjoern Sloth Toennesen	esac
5755f88eccSAsbjoern Sloth Toennesen	if [ -n "$KBUILD_DEBARCH" ] ; then
5855f88eccSAsbjoern Sloth Toennesen		debarch="$KBUILD_DEBARCH"
5955f88eccSAsbjoern Sloth Toennesen	fi
6010f26fa6SAsbjoern Sloth Toennesen	if [ -n "$debarch" ] ; then
6110f26fa6SAsbjoern Sloth Toennesen		forcearch="-DArchitecture=$debarch"
6210f26fa6SAsbjoern Sloth Toennesen	fi
6310f26fa6SAsbjoern Sloth Toennesen
643e2ab256SFrans Pop	# Create the package
6510f26fa6SAsbjoern Sloth Toennesen	dpkg-gencontrol -isp $forcearch -p$pname -P"$pdir"
663e2ab256SFrans Pop	dpkg --build "$pdir" ..
673e2ab256SFrans Pop}
683e2ab256SFrans Pop
691da177e4SLinus Torvalds# Some variables and settings used throughout the script
701da177e4SLinus Torvaldsversion=$KERNELRELEASE
714f66199bSFrans Poprevision=$(cat .version)
72c72c75dbSFrans Popif [ -n "$KDEB_PKGVERSION" ]; then
73c72c75dbSFrans Pop	packageversion=$KDEB_PKGVERSION
74c72c75dbSFrans Popelse
75c72c75dbSFrans Pop	packageversion=$version-$revision
76c72c75dbSFrans Popfi
771da177e4SLinus Torvaldstmpdir="$objtree/debian/tmp"
78bf1b3644SJonathan McDowellfwdir="$objtree/debian/fwtmp"
79ee81b786Smaximilian attemskernel_headers_dir="$objtree/debian/hdrtmp"
80ee81b786Smaximilian attemslibc_headers_dir="$objtree/debian/headertmp"
81810e8437SAnisse Astierdbg_dir="$objtree/debian/dbgtmp"
82f7a2c31fSmaximilian attemspackagename=linux-image-$version
83bf1b3644SJonathan McDowellfwpackagename=linux-firmware-image
84ee81b786Smaximilian attemskernel_headers_packagename=linux-headers-$version
85ee81b786Smaximilian attemslibc_headers_packagename=linux-libc-dev
86810e8437SAnisse Astierdbg_packagename=$packagename-dbg
87687c3dacSSam Ravnborg
884f66199bSFrans Popif [ "$ARCH" = "um" ] ; then
89687c3dacSSam Ravnborg	packagename=user-mode-linux-$version
90687c3dacSSam Ravnborgfi
911da177e4SLinus Torvalds
92810e8437SAnisse AstierBUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
93810e8437SAnisse Astier
941da177e4SLinus Torvalds# Setup the directory structure
95810e8437SAnisse Astierrm -rf "$tmpdir" "$fwdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir"
96e86c2412Smaximilian attemsmkdir -m 755 -p "$tmpdir/DEBIAN"
97e86c2412Smaximilian attemsmkdir -p  "$tmpdir/lib" "$tmpdir/boot" "$tmpdir/usr/share/doc/$packagename"
98e86c2412Smaximilian attemsmkdir -m 755 -p "$fwdir/DEBIAN"
996607ddadSmaximilian attemsmkdir -p "$fwdir/lib/firmware/$version/" "$fwdir/usr/share/doc/$fwpackagename"
100ee81b786Smaximilian attemsmkdir -m 755 -p "$libc_headers_dir/DEBIAN"
101ee81b786Smaximilian attemsmkdir -p "$libc_headers_dir/usr/share/doc/$libc_headers_packagename"
102ee81b786Smaximilian attemsmkdir -m 755 -p "$kernel_headers_dir/DEBIAN"
103ee81b786Smaximilian attemsmkdir -p "$kernel_headers_dir/usr/share/doc/$kernel_headers_packagename"
104a47b6c61SJoerg Roedelmkdir -p "$kernel_headers_dir/lib/modules/$version/"
1054f66199bSFrans Popif [ "$ARCH" = "um" ] ; then
1069461f666SFrans Pop	mkdir -p "$tmpdir/usr/lib/uml/modules/$version" "$tmpdir/usr/bin"
107687c3dacSSam Ravnborgfi
108810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then
109810e8437SAnisse Astier	mkdir -p "$dbg_dir/usr/share/doc/$dbg_packagename"
110810e8437SAnisse Astier	mkdir -m 755 -p "$dbg_dir/DEBIAN"
111810e8437SAnisse Astierfi
1121da177e4SLinus Torvalds
1131da177e4SLinus Torvalds# Build and install the kernel
1144f66199bSFrans Popif [ "$ARCH" = "um" ] ; then
115687c3dacSSam Ravnborg	$MAKE linux
116687c3dacSSam Ravnborg	cp System.map "$tmpdir/usr/lib/uml/modules/$version/System.map"
117d2091767SAnisse Astier	cp $KCONFIG_CONFIG "$tmpdir/usr/share/doc/$packagename/config"
118687c3dacSSam Ravnborg	gzip "$tmpdir/usr/share/doc/$packagename/config"
119687c3dacSSam Ravnborg	cp $KBUILD_IMAGE "$tmpdir/usr/bin/linux-$version"
120687c3dacSSam Ravnborgelse
1211da177e4SLinus Torvalds	cp System.map "$tmpdir/boot/System.map-$version"
122d2091767SAnisse Astier	cp $KCONFIG_CONFIG "$tmpdir/boot/config-$version"
123a89b433bSFrans Pop	# Not all arches include the boot path in KBUILD_IMAGE
124242c5ab0SGuillem Jover	if [ -e $KBUILD_IMAGE ]; then
125242c5ab0SGuillem Jover		cp $KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
126242c5ab0SGuillem Jover	else
127a89b433bSFrans Pop		cp arch/$ARCH/boot/$KBUILD_IMAGE "$tmpdir/boot/vmlinuz-$version"
128a89b433bSFrans Pop	fi
129687c3dacSSam Ravnborgfi
1301da177e4SLinus Torvalds
131d2091767SAnisse Astierif grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
132dddcbb7cSJoerg Roedel	INSTALL_MOD_PATH="$tmpdir" $MAKE KBUILD_SRC= modules_install
133a47b6c61SJoerg Roedel	rm -f "$tmpdir/lib/modules/$version/build"
134a47b6c61SJoerg Roedel	rm -f "$tmpdir/lib/modules/$version/source"
1354f66199bSFrans Pop	if [ "$ARCH" = "um" ] ; then
136687c3dacSSam Ravnborg		mv "$tmpdir/lib/modules/$version"/* "$tmpdir/usr/lib/uml/modules/$version/"
137687c3dacSSam Ravnborg		rmdir "$tmpdir/lib/modules/$version"
138687c3dacSSam Ravnborg	fi
139810e8437SAnisse Astier	if [ -n "$BUILD_DEBUG" ] ; then
140810e8437SAnisse Astier		(
141810e8437SAnisse Astier			cd $tmpdir
142810e8437SAnisse Astier			for module in $(find lib/modules/ -name *.ko); do
143810e8437SAnisse Astier				mkdir -p $(dirname $dbg_dir/usr/lib/debug/$module)
144810e8437SAnisse Astier				# only keep debug symbols in the debug file
145810e8437SAnisse Astier				objcopy --only-keep-debug $module $dbg_dir/usr/lib/debug/$module
146810e8437SAnisse Astier				# strip original module from debug symbols
147810e8437SAnisse Astier				objcopy --strip-debug $module
148810e8437SAnisse Astier				# then add a link to those
149810e8437SAnisse Astier				objcopy --add-gnu-debuglink=$dbg_dir/usr/lib/debug/$module $module
150810e8437SAnisse Astier			done
151810e8437SAnisse Astier		)
152810e8437SAnisse Astier	fi
1531da177e4SLinus Torvaldsfi
1541da177e4SLinus Torvalds
155d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then
156dddcbb7cSJoerg Roedel	$MAKE headers_check KBUILD_SRC=
157dddcbb7cSJoerg Roedel	$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
158d7d357bcSJoerg Roedelfi
159e6807785Smaximilian attems
1601da177e4SLinus Torvalds# Install the maintainer scripts
161fe233cb6SFrans Pop# Note: hook scripts under /etc/kernel are also executed by official Debian
162fe233cb6SFrans Pop# kernel packages, as well as kernel packages built using make-kpkg
163fe233cb6SFrans Popdebhookdir=${KDEB_HOOKDIR:-/etc/kernel}
1641da177e4SLinus Torvaldsfor script in postinst postrm preinst prerm ; do
165fe233cb6SFrans Pop	mkdir -p "$tmpdir$debhookdir/$script.d"
1661da177e4SLinus Torvalds	cat <<EOF > "$tmpdir/DEBIAN/$script"
1671da177e4SLinus Torvalds#!/bin/sh
1681da177e4SLinus Torvalds
1691da177e4SLinus Torvaldsset -e
1701da177e4SLinus Torvalds
1714964451aSFrans Pop# Pass maintainer script parameters to hook scripts
172241ad11fSmaximilian attemsexport DEB_MAINT_PARAMS="\$*"
1734964451aSFrans Pop
174fe233cb6SFrans Poptest -d $debhookdir/$script.d && run-parts --arg="$version" $debhookdir/$script.d
1751da177e4SLinus Torvaldsexit 0
1761da177e4SLinus TorvaldsEOF
1771da177e4SLinus Torvalds	chmod 755 "$tmpdir/DEBIAN/$script"
1781da177e4SLinus Torvaldsdone
1791da177e4SLinus Torvalds
180edec611dSmaximilian attems# Try to determine maintainer and email values
181edec611dSmaximilian attemsif [ -n "$DEBEMAIL" ]; then
182edec611dSmaximilian attems       email=$DEBEMAIL
183edec611dSmaximilian attemselif [ -n "$EMAIL" ]; then
184edec611dSmaximilian attems       email=$EMAIL
185edec611dSmaximilian attemselse
186edec611dSmaximilian attems       email=$(id -nu)@$(hostname -f)
187edec611dSmaximilian attemsfi
188edec611dSmaximilian attemsif [ -n "$DEBFULLNAME" ]; then
189edec611dSmaximilian attems       name=$DEBFULLNAME
190edec611dSmaximilian attemselif [ -n "$NAME" ]; then
191edec611dSmaximilian attems       name=$NAME
192edec611dSmaximilian attemselse
193edec611dSmaximilian attems       name="Anonymous"
194edec611dSmaximilian attemsfi
195edec611dSmaximilian attemsmaintainer="$name <$email>"
196edec611dSmaximilian attems
1971da177e4SLinus Torvalds# Generate a simple changelog template
1981da177e4SLinus Torvaldscat <<EOF > debian/changelog
1994bf4cd49SFrans Poplinux-upstream ($packageversion) unstable; urgency=low
2001da177e4SLinus Torvalds
201a83ca277SFrans Pop  * Custom built Linux kernel.
2021da177e4SLinus Torvalds
203edec611dSmaximilian attems -- $maintainer  $(date -R)
2041da177e4SLinus TorvaldsEOF
2051da177e4SLinus Torvalds
2069461f666SFrans Pop# Generate copyright file
2079461f666SFrans Popcat <<EOF > debian/copyright
2089461f666SFrans PopThis is a packacked upstream version of the Linux kernel.
2099461f666SFrans Pop
2109461f666SFrans PopThe sources may be found at most Linux ftp sites, including:
2119461f666SFrans Popftp://ftp.kernel.org/pub/linux/kernel
2129461f666SFrans Pop
2139461f666SFrans PopCopyright: 1991 - 2009 Linus Torvalds and others.
2149461f666SFrans Pop
2159461f666SFrans PopThe git repository for mainline kernel development is at:
2169461f666SFrans Popgit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
2179461f666SFrans Pop
2189461f666SFrans Pop    This program is free software; you can redistribute it and/or modify
2199461f666SFrans Pop    it under the terms of the GNU General Public License as published by
2209461f666SFrans Pop    the Free Software Foundation; version 2 dated June, 1991.
2219461f666SFrans Pop
2229461f666SFrans PopOn Debian GNU/Linux systems, the complete text of the GNU General Public
2239461f666SFrans PopLicense version 2 can be found in \`/usr/share/common-licenses/GPL-2'.
2249461f666SFrans PopEOF
2259461f666SFrans Pop
2261da177e4SLinus Torvalds# Generate a control file
2271da177e4SLinus Torvaldscat <<EOF > debian/control
2284bf4cd49SFrans PopSource: linux-upstream
229aa42abedSRogério BritoSection: kernel
2301da177e4SLinus TorvaldsPriority: optional
231edec611dSmaximilian attemsMaintainer: $maintainer
2322d7204acSRogério BritoStandards-Version: 3.8.4
233ee6eed80SRogério BritoHomepage: http://www.kernel.org/
2343e2ab256SFrans PopEOF
2353e2ab256SFrans Pop
2363e2ab256SFrans Popif [ "$ARCH" = "um" ]; then
2373e2ab256SFrans Pop	cat <<EOF >> debian/control
2381da177e4SLinus Torvalds
239687c3dacSSam RavnborgPackage: $packagename
2408ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version
2411da177e4SLinus TorvaldsArchitecture: any
242dc5962fdSSam RavnborgDescription: User Mode Linux kernel, version $version
243dc5962fdSSam Ravnborg User-mode Linux is a port of the Linux kernel to its own system call
244dc5962fdSSam Ravnborg interface.  It provides a kind of virtual machine, which runs Linux
245dc5962fdSSam Ravnborg as a user process under another Linux kernel.  This is useful for
246dc5962fdSSam Ravnborg kernel development, sandboxes, jails, experimentation, and
247dc5962fdSSam Ravnborg many other things.
248dc5962fdSSam Ravnborg .
2491da177e4SLinus Torvalds This package contains the Linux kernel, modules and corresponding other
250a83ca277SFrans Pop files, version: $version.
2511da177e4SLinus TorvaldsEOF
2521da177e4SLinus Torvalds
253dc5962fdSSam Ravnborgelse
2543e2ab256SFrans Pop	cat <<EOF >> debian/control
255dc5962fdSSam Ravnborg
256dc5962fdSSam RavnborgPackage: $packagename
2578ebc2fe9Smaximilian attemsProvides: linux-image, linux-image-2.6, linux-modules-$version
258bf1b3644SJonathan McDowellSuggests: $fwpackagename
259dc5962fdSSam RavnborgArchitecture: any
260dc5962fdSSam RavnborgDescription: Linux kernel, version $version
261dc5962fdSSam Ravnborg This package contains the Linux kernel, modules and corresponding other
262a83ca277SFrans Pop files, version: $version.
263dc5962fdSSam RavnborgEOF
2644f66199bSFrans Pop
265dc5962fdSSam Ravnborgfi
266dc5962fdSSam Ravnborg
267cd8d60a2STheodore Ts'o# Build header package
2685f011d71Smaximilian attems(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
2696c635224SBen Hutchings(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
270d2091767SAnisse Astier(cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
271ee81b786Smaximilian attemsdestdir=$kernel_headers_dir/usr/src/linux-headers-$version
272ee81b786Smaximilian attemsmkdir -p "$destdir"
2736c635224SBen Hutchings(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
2746c635224SBen Hutchings(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
275d2091767SAnisse Astier(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
276a47b6c61SJoerg Roedelln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
2776c635224SBen Hutchingsrm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
278cd8d60a2STheodore Ts'oarch=$(dpkg --print-architecture)
279cd8d60a2STheodore Ts'o
280cd8d60a2STheodore Ts'ocat <<EOF >> debian/control
281cd8d60a2STheodore Ts'o
282ee81b786Smaximilian attemsPackage: $kernel_headers_packagename
283cd8d60a2STheodore Ts'oProvides: linux-headers, linux-headers-2.6
284cd8d60a2STheodore Ts'oArchitecture: $arch
285cd8d60a2STheodore Ts'oDescription: Linux kernel headers for $KERNELRELEASE on $arch
286cd8d60a2STheodore Ts'o This package provides kernel header files for $KERNELRELEASE on $arch
287cd8d60a2STheodore Ts'o .
288cd8d60a2STheodore Ts'o This is useful for people who need to build external modules
289cd8d60a2STheodore Ts'oEOF
290cd8d60a2STheodore Ts'o
291bf1b3644SJonathan McDowell# Do we have firmware? Move it out of the way and build it into a package.
292bf1b3644SJonathan McDowellif [ -e "$tmpdir/lib/firmware" ]; then
2936607ddadSmaximilian attems	mv "$tmpdir/lib/firmware"/* "$fwdir/lib/firmware/$version/"
2946607ddadSmaximilian attems	rmdir "$tmpdir/lib/firmware"
295bf1b3644SJonathan McDowell
296bf1b3644SJonathan McDowell	cat <<EOF >> debian/control
297bf1b3644SJonathan McDowell
298bf1b3644SJonathan McDowellPackage: $fwpackagename
299bf1b3644SJonathan McDowellArchitecture: all
300bf1b3644SJonathan McDowellDescription: Linux kernel firmware, version $version
301a83ca277SFrans Pop This package contains firmware from the Linux kernel, version $version.
302bf1b3644SJonathan McDowellEOF
303bf1b3644SJonathan McDowell
3043e2ab256SFrans Pop	create_package "$fwpackagename" "$fwdir"
305bf1b3644SJonathan McDowellfi
306bf1b3644SJonathan McDowell
307e6807785Smaximilian attemscat <<EOF >> debian/control
308e6807785Smaximilian attems
309ee81b786Smaximilian attemsPackage: $libc_headers_packagename
310e6807785Smaximilian attemsSection: devel
311e6807785Smaximilian attemsProvides: linux-kernel-headers
312e6807785Smaximilian attemsArchitecture: any
313e6807785Smaximilian attemsDescription: Linux support headers for userspace development
314e6807785Smaximilian attems This package provides userspaces headers from the Linux kernel.  These headers
315e6807785Smaximilian attems are used by the installed headers for GNU glibc and other system libraries.
316e6807785Smaximilian attemsEOF
317e6807785Smaximilian attems
318d7d357bcSJoerg Roedelif [ "$ARCH" != "um" ]; then
319d7d357bcSJoerg Roedel	create_package "$kernel_headers_packagename" "$kernel_headers_dir"
320ee81b786Smaximilian attems	create_package "$libc_headers_packagename" "$libc_headers_dir"
321d7d357bcSJoerg Roedelfi
322d7d357bcSJoerg Roedel
3233e2ab256SFrans Popcreate_package "$packagename" "$tmpdir"
3241da177e4SLinus Torvalds
325810e8437SAnisse Astierif [ -n "$BUILD_DEBUG" ] ; then
326810e8437SAnisse Astier	# Build debug package
327810e8437SAnisse Astier	# Different tools want the image in different locations
328810e8437SAnisse Astier	# perf
329810e8437SAnisse Astier	mkdir -p $dbg_dir/usr/lib/debug/lib/modules/$version/
330810e8437SAnisse Astier	cp vmlinux $dbg_dir/usr/lib/debug/lib/modules/$version/
331810e8437SAnisse Astier	# systemtap
332810e8437SAnisse Astier	mkdir -p $dbg_dir/usr/lib/debug/boot/
333810e8437SAnisse Astier	ln -s ../lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/boot/vmlinux-$version
334810e8437SAnisse Astier	# kdump-tools
335810e8437SAnisse Astier	ln -s lib/modules/$version/vmlinux $dbg_dir/usr/lib/debug/vmlinux-$version
336810e8437SAnisse Astier
337810e8437SAnisse Astier	cat <<EOF >> debian/control
338810e8437SAnisse Astier
339810e8437SAnisse AstierPackage: $dbg_packagename
340810e8437SAnisse AstierSection: debug
341810e8437SAnisse AstierProvides: linux-debug, linux-debug-$version
342810e8437SAnisse AstierArchitecture: any
343810e8437SAnisse AstierDescription: Linux kernel debugging symbols for $version
344810e8437SAnisse Astier This package will come in handy if you need to debug the kernel. It provides
345810e8437SAnisse Astier all the necessary debug symbols for the kernel and its modules.
346810e8437SAnisse AstierEOF
347810e8437SAnisse Astier
348810e8437SAnisse Astier	create_package "$dbg_packagename" "$dbg_dir"
349810e8437SAnisse Astierfi
350810e8437SAnisse Astier
3511da177e4SLinus Torvaldsexit 0
352