ALSA: rme: Avoid non-standard macro usage
[linux-2.6-block.git] / scripts / package / mkspec
CommitLineData
1da177e4
LT
1#!/bin/sh
2#
2174d292
MM
3# Output a simple RPM spec file.
4# This version assumes a minimum of RPM 4.0.3.
1da177e4
LT
5#
6# The only gothic bit here is redefining install_post to avoid
7# stripping the symbols from files in the kernel which we want
8#
9# Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
10#
11
12# how we were called determines which rpms we build and how we build them
5289c322 13if [ "$1" = prebuilt ]; then
8c5d4b64 14 S=DEL
21b42eb4 15 MAKE="$MAKE -f $srctree/Makefile"
1da177e4 16else
8c5d4b64 17 S=
1da177e4
LT
18fi
19
0b7f12f5
MY
20if grep -q CONFIG_MODULES=y .config; then
21 M=
22else
23 M=DEL
24fi
25
5289c322 26if grep -q CONFIG_DRM=y .config; then
1da177e4
LT
27 PROVIDES=kernel-drm
28fi
29
30PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
5289c322 31__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
b7dca6dd 32EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
5289c322 33--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
c93a0368 34--exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
1da177e4 35
8c5d4b64
MY
36# We can label the here-doc lines for conditional output to the spec file
37#
38# Labels:
39# $S: this line is enabled only when building source package
0b7f12f5 40# $M: this line is enabled only when CONFIG_MODULES is enabled
8c5d4b64
MY
41sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
42 Name: kernel
43 Summary: The Linux Kernel
44 Version: $__KERNELRELEASE
45 Release: $(cat .version 2>/dev/null || echo 1)
46 License: GPL
47 Group: System Environment/Kernel
48 Vendor: The Linux Community
49 URL: http://www.kernel.org
50$S Source: kernel-$__KERNELRELEASE.tar.gz
51 Provides: $PROVIDES
52 %define __spec_install_post /usr/lib/rpm/brp-compress || :
53 %define debug_package %{nil}
1da177e4 54
8c5d4b64
MY
55 %description
56 The Linux Kernel, the operating system core itself
1da177e4 57
8c5d4b64
MY
58 %package headers
59 Summary: Header files for the Linux kernel for use by glibc
60 Group: Development/System
61 Obsoletes: kernel-headers
62 Provides: kernel-headers = %{version}
63 %description headers
64 Kernel-headers includes the C header files that specify the interface
65 between the Linux kernel and userspace libraries and programs. The
66 header files define structures and constants that are needed for
67 building most standard programs and are also needed for rebuilding the
68 glibc package.
5289c322 69
0b7f12f5
MY
70$S$M %package devel
71$S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
72$S$M Group: System Environment/Kernel
73$S$M AutoReqProv: no
74$S$M %description -n kernel-devel
75$S$M This package provides kernel headers and makefiles sufficient to build modules
76$S$M against the $__KERNELRELEASE kernel package.
77$S$M
8c5d4b64
MY
78$S %prep
79$S %setup -q
80$S
81$S %build
21b42eb4 82$S $MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
8c5d4b64
MY
83$S
84 %install
002494d8 85 mkdir -p %{buildroot}/boot
8c5d4b64 86 %ifarch ia64
002494d8 87 mkdir -p %{buildroot}/boot/efi
21b42eb4 88 cp \$($MAKE image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
002494d8 89 ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
8c5d4b64 90 %else
21b42eb4 91 cp \$($MAKE image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
8c5d4b64 92 %endif
21b42eb4
MY
93$M $MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install
94 $MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
002494d8
MY
95 cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
96 cp .config %{buildroot}/boot/config-$KERNELRELEASE
8c5d4b64 97 bzip2 -9 --keep vmlinux
002494d8
MY
98 mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
99$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
100$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
101$S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
8a6105c4 102$S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
002494d8 103$S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
0b7f12f5
MY
104$S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
105$S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
1da177e4 106
8c5d4b64 107 %clean
002494d8 108 rm -rf %{buildroot}
fc370ecf 109
8c5d4b64
MY
110 %post
111 if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
112 cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
113 cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
114 rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
115 /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
116 rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
117 fi
2174d292 118
8c5d4b64
MY
119 %preun
120 if [ -x /sbin/new-kernel-pkg ]; then
121 new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
eea6f62b
JMC
122 elif [ -x /usr/bin/kernel-install ]; then
123 kernel-install remove $KERNELRELEASE
8c5d4b64
MY
124 fi
125
126 %postun
127 if [ -x /sbin/update-bootloader ]; then
128 /sbin/update-bootloader --remove $KERNELRELEASE
129 fi
130
131 %files
132 %defattr (-, root, root)
0b7f12f5
MY
133$M /lib/modules/$KERNELRELEASE
134$M %exclude /lib/modules/$KERNELRELEASE/build
135$M %exclude /lib/modules/$KERNELRELEASE/source
8c5d4b64
MY
136 /boot/*
137
138 %files headers
139 %defattr (-, root, root)
140 /usr/include
0b7f12f5
MY
141$S$M
142$S$M %files devel
143$S$M %defattr (-, root, root)
144$S$M /usr/src/kernels/$KERNELRELEASE
145$S$M /lib/modules/$KERNELRELEASE/build
146$S$M /lib/modules/$KERNELRELEASE/source
8c5d4b64 147EOF