File: rules

package info (click to toggle)
kernel-source-2.4.27 2.4.27-10sarge5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 191,224 kB
  • ctags: 610,077
  • sloc: ansic: 3,299,602; asm: 164,708; makefile: 10,962; sh: 3,725; perl: 2,273; yacc: 1,651; cpp: 820; lex: 752; tcl: 577; awk: 251; lisp: 218; sed: 79
file content (138 lines) | stat: -rwxr-xr-x 4,848 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/make -f
#
# debian/rules for kernel-source.
#
# GNU copyright 1997 to 1999 by Joey Hess.
# Copyright (c) 1999-2002 Herbert Xu <herbert@debian.org>
#
# $Id: rules,v 1.12 2003/06/14 12:24:43 herbert Exp $

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

release := $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }')
upstream := $(shell echo "$(release)" | sed 's/:\?\([0-9\.]\+\)-[0-9].*/\1/')
patch_home := debian/kernel-patch-debian-$(upstream)/usr/src/kernel-patches/all/$(upstream)

# Helpful things for developers
patch:
	override_version=$(release) home=debian/patches sh debian/apply

unpatch:
	override_version=$(release) home=debian/patches sh debian/apply $(upstream)

../orig/kernel-source-$(upstream)-$(upstream):
	if [ ! -f "../kernel-source-$(upstream)_$(upstream).orig.tar.gz" ]; then \
		echo "Can't find orig tarball." >&2; \
		exit 1; \
	fi
	mkdir -p ../orig
	tar -C ../orig -xzf ../kernel-source-$(upstream)_$(upstream).orig.tar.gz
	rsync -av --delete --exclude .svn --exclude debian ../orig/kernel-source-$(upstream)-$(upstream)/ .

orig: ../orig/kernel-source-$(upstream)-$(upstream)
	rsync -av --delete --exclude .svn --exclude debian ../orig/kernel-source-$(upstream)-$(upstream)/ .

diff: ../orig/kernel-source-$(upstream)-$(upstream)
	(cd .. && diff --exclude debian --exclude .svn -ur orig/kernel-source-$(upstream)-$(upstream) kernel-source-$(upstream)-$(upstream))

debian/kernel-tree-$(upstream).substvars: debian/patches debian/make-substvars
	sh debian/make-substvars $(upstream) > $@

clean: debian/official
	dh_testdir
	dh_testroot
	rm -f install-stamp

ifneq (,$(wildcard version.Debian))
ifneq ($(shell cat version.Debian),$(upstream))
	override_version=$(release) home=debian/patches sh debian/apply $(upstream)
endif
endif

	make-kpkg clean
	rm -f .config* version.Debian stamp-*
	rm -rf Documentation/man

	dh_clean

install: 
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs -A

binary-kernel-patch:
	mkdir -p $(patch_home) $(patch_home)/apply $(patch_home)/debian $(patch_home)/unpatch
	cp debian/patches/*.diff $(patch_home)/debian
	mkdir -p $(patch_home)/debian/series
	cp debian/patches/series/* $(patch_home)/debian/series/

	sed 's/@version@/$(release)/' debian/apply > $(patch_home)/apply/debian
	sed 's/@upstream@/$(upstream)/' debian/unpatch > $(patch_home)/unpatch/debian
	chmod a+x $(patch_home)/apply/debian $(patch_home)/unpatch/debian
	bzip2 -9 $(patch_home)/debian/*.diff
	
	dh_fixperms -pkernel-patch-debian-$(upstream)
	dh_installdocs -pkernel-patch-debian-$(upstream)
	dh_installchangelogs -pkernel-patch-debian-$(upstream)
	dh_compress -pkernel-patch-debian-$(upstream)
	dh_installdeb -pkernel-patch-debian-$(upstream)
	dh_gencontrol -pkernel-patch-debian-$(upstream)
	dh_builddeb -pkernel-patch-debian-$(upstream)

# Build architecture-independent files here.
binary-indep: install binary-kernel-patch debian/kernel-tree-$(upstream).substvars
	dh_testdir
	dh_testroot

# Patch kernel with the Debian patch!
	home=$(patch_home)/debian sh $(patch_home)/apply/debian
	make-kpkg kernel-doc
	make-kpkg kernel-source
# Clean up after yourself
	home=$(patch_home)/debian sh $(patch_home)/apply/debian $(upstream)

	dh_fixperms -pkernel-patch-debian-$(upstream)
	dh_installdocs -pkernel-tree-$(upstream)
	dh_installchangelogs -pkernel-tree-$(upstream)
	dh_compress -pkernel-tree-$(upstream)
	dh_installdeb -pkernel-tree-$(upstream)
	dh_gencontrol -pkernel-tree-$(upstream)
	dh_builddeb -pkernel-tree-$(upstream)

build binary-arch:
# Ye olde no-op.

binary: binary-indep
.PHONY: clean binary-indep binary-arch binary install

#####################
# The following targets set the stage for building the Debian packages.
# 
# They unpack the vanilla kernel, remove the tainted bits, and package
# everything again.  This produces both a free .orig.tar.gz in the
# parent directory and an unpacked version plus the debian
# subdirectory in the current directory.  In order to use these
# targets, download the vanilla kernel as a gzipped tarball, put it
# into the parent directory as linux-<release>.tar.gz, and run
# 'debian/rules prune'.

# phony target for easy reference
.PHONY:	prune
prune:../kernel-source-$(upstream)_$(upstream).orig.tar.gz

# prune the tainted bits from the vanilla kernel and package the result
../kernel-source-$(upstream)_$(upstream).orig.tar.gz: ../linux-$(upstream).tar.gz
	tar xzCf .. $<
	mv ../linux-$(upstream)/* .
	rmdir ../linux-$(upstream)
	sh debian/prune-non-free
	test $(notdir $(CURDIR)) = kernel-source-$(upstream)-$(upstream)
	tar czCf .. $@ --exclude debian --exclude .svn kernel-source-$(upstream)-$(upstream)

debian/official: 
	echo This is the Debian version of Linux $(upstream). > $@

../linux-$(upstream).tar.gz:
	if [ ! -f "$@" ]; then wget -P .. http://kernel.org/pub/linux/kernel/v2.4/$(notdir $@); fi