r3104 - in branches/kernel-image-2.6.11: . arch/i386 debian
Jurij Smakov
jurij-guest@costa.debian.org
Sat, 14 May 2005 05:55:08 +0000
Author: jurij-guest
Date: 2005-05-14 05:55:07 +0000 (Sat, 14 May 2005)
New Revision: 3104
Added:
branches/kernel-image-2.6.11/header-install.in
Removed:
branches/kernel-image-2.6.11/header-install
Modified:
branches/kernel-image-2.6.11/README
branches/kernel-image-2.6.11/arch/i386/Makefile.inc
branches/kernel-image-2.6.11/debian/rules
Log:
* Updated README.
* Mostly implemented all necessary target. Does not
build yet and a number of problems still need to
be resolved (see debian/rules for details).
Modified: branches/kernel-image-2.6.11/README
===================================================================
--- branches/kernel-image-2.6.11/README 2005-05-14 05:30:22 UTC (rev 3103)
+++ branches/kernel-image-2.6.11/README 2005-05-14 05:55:07 UTC (rev 3104)
@@ -46,42 +46,61 @@
include_common_config
Setting it to 'no' will prevent the common kernel config from being
- included for this particular architecture.
+ included for this particular architecture. Typical usage:
-header_dirs
+ include_common_config := no
+headers_dirs
+
This variable is substituted into the headers-install script,
controlling which asm-* directories are included into the
kernel-headers package. By default it is set to karch (see
- above). For sparc, for example, if will have to be set to
- 'sparc | sparc64' for the correct packages to be generated. See
- headers-install file for details.
+ above). See header-install.in file for detail. Typical usage:
+
+ headers_dirs := sparc | sparc64
-arch_makeflags
+headers_subarch
- This variable may contain the make flags settings for the
- make-kpkg invocation in the 'build' target. Currently it is
- only used by amd64, where it should be set to something like
+ The subarch to pass to the --subarch option for the make-kpkg
+ call to build the kernel-headers. Typical usage:
- arch_makeflags = 'CC=amd64-linux-gcc V=1"
+ headers_subarch := sparc64
added_patches
Setting this variable to non-empty value will cause an option
- --added_patches to be added to the make-kpkg call in 'build'
- target, followed by the contents of this variable. Currently
- hppa is using it and it looks like ia64 have used it before.
+ --added_patches to be added to the make-kpkg 'build' and
+ 'kernel-image' calls. The value of the variable will be
+ given as an argument for the --added-patchs option. The value
+ of this variable may contain a special string @uver@ which
+ is going to be expanded into the upstream kernel's version
+ with dots replaced by underscores (for example, 2_6_11 for the
+ kernel version 2.6.11). Typical usage:
-arch_with_subarch
+ added_patches := debian,hppa-@uver@
+build_subarch
+
Setting this variable to non-empty value will cause an option
- --subarch to be added to make-kpkg call in 'build' target,
- followed by the flavour for which the kernel is built. NOTE
- that the contents of this variable are completely ignored,
- any non-empty value indicates that --subarch option should
- be added. In general, if you wish to add subarch support for
- your architecture, you should contact kernel-package maintainer
+ --subarch to be added to 'build' and 'kernel-image' make-kpkg
+ calls, followed by the flavour for which the kernel is built.
+ In general, if you wish to add subarch support for your
+ architecture, you should contact kernel-package maintainer
to ensure that the flavour name correctly maps onto a kernel
subarch name. Currently only mips and sparc are using this
- facility, and both of them should be fine.
+ facility, and both of them should be fine. Typical usage:
+
+ build_subarch := yes
+
+ Note that the value of this variable is ignored.
+
+build_makeflags
+
+ This variable may contain the make flags settings for the
+ make-kpkg invocation in the 'build' target. Currently it is
+ only used by amd64, where it should be set to something like
+
+ build_makeflags := 'CC=amd64-linux-gcc V=1'
+
+ The value of the variable must be properly quoted.
Modified: branches/kernel-image-2.6.11/arch/i386/Makefile.inc
===================================================================
--- branches/kernel-image-2.6.11/arch/i386/Makefile.inc 2005-05-14 05:30:22 UTC (rev 3103)
+++ branches/kernel-image-2.6.11/arch/i386/Makefile.inc 2005-05-14 05:55:07 UTC (rev 3104)
@@ -2,6 +2,3 @@
# Variables
#
include_common_config = no
-added_patches = blah
-arch_with_subarch = yes
-arch_makeflags = 'CC=gcc-2.95'
Modified: branches/kernel-image-2.6.11/debian/rules
===================================================================
--- branches/kernel-image-2.6.11/debian/rules 2005-05-14 05:30:22 UTC (rev 3103)
+++ branches/kernel-image-2.6.11/debian/rules 2005-05-14 05:55:07 UTC (rev 3104)
@@ -1,102 +1,156 @@
#!/usr/bin/make -f
#
-version = 2.6.11
-abiname = 1
-ktver = 2
-kbuildver = 2.6-3
+# Required variables
#
+version := 2.6.11
+abiname := 1
+ktver := 2
+kbuildver := 2.6-3
+#
# Generally nothing needs to be modified below this line
#
-debver = $(version)-$(abiname)
-debnum = -$(abiname)
-appvan = --append_to_version $(debnum)
-bpkg = kernel-build-$(debver)
-kdir = kernel-source-$(version)
-kbpkg = kernel-kbuild-$(kbuildver)
-kpatch = /usr/src/kernel-patches/all/$(version)/apply/debian
-DEBIAN_SRCTOP = $(CURDIR)/$(kdir)
-DEBIAN_UPSTREAM_VERSION = $(version)
+debver := $(version)-$(abiname)
+uver := $(subst .,_,$(version))
+debnum := -$(abiname)
+bpkg := kernel-build-$(debver)
+kdir := kernel-source-$(version)
+kbpkg := kernel-kbuild-$(kbuildver)
+kpatch := /usr/src/kernel-patches/all/$(version)/apply/debian
+export DEBIAN_SRCTOP := $(CURDIR)/$(kdir)
+export DEBIAN_UPSTREAM_VERSION := $(version)
ifeq (,$(DEB_HOST_ARCH))
- DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH)
- DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH)
+ DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+ DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
endif
+#
+# The CROSS variable is only used on sparc to call
+# the correct 'strip' binary on the kernel-image.
+# Not sure whether we really need it.
+#
ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
- CROSS = $(DEB_HOST_ARCH)-linux-
+ CROSS := $(DEB_HOST_ARCH)-linux-
endif
-karch = $(DEB_HOST_ARCH)
+karch := $(DEB_HOST_ARCH)
-controls = $(wildcard arch/*/control.in)
-configs = $(notdir $(wildcard arch/$(karch)/config.*))
+controls := $(wildcard arch/*/control.in)
+configs := $(notdir $(wildcard arch/$(karch)/config.*))
ifndef flavours
- flavours = $(filter-out common, $(patsubst config.%,%,$(configs)))
+ flavours := $(filter-out common, $(patsubst config.%,%,$(configs)))
endif
-include arch/$(karch)/Makefile.inc
-
-ifndef header_dirs
- header_dirs = $(karch)
+#
+# Here we construct the command lines for different make-kpkg
+# calls (build, kernel-image, kernel-headers) based on the values
+# of variables defined so far and provided by the architecture
+# in Makefile.inc. Note that $$i in these expressions is going to
+# become a reference to the shell variable $i, which is expected
+# to have the current flavour. This is slightly evil, but saves
+# a lot of grief.
+#
+kpkg_headers_cmd := HEADER_CLEAN_HOOK='$(CURDIR)/header-install' make-kpkg
+kpkg_headers_cmd += --append-to-version $(debnum)
+kpkg_build_cmd := make-kpkg --append-to-version $(debnum)-$$i
+ifdef added_patches
+ kpkg_headers_cmd += --added_patches $(subst @uver@,$(uver),$(added_patches))
+ kpkg_build_cmd += --added_patches $(subst @uver@,$(uver),$(added_patches))
endif
+ifdef build_subarch
+ kpkg_build_cmd += --subarch $$i
+endif
+ifdef headers_subarch
+ kpkg_headers_cmd += --subarch $(headers_subarch)
+endif
+ifdef build_makeflags
+ kpkg_build_cmd := MAKEFLAGS=$(build_makeflags) $(kpkg_build_cmd)
+endif
+kpkg_image_cmd := $(kpkg_build_cmd) --initrd kernel_image
+kpkg_build_cmd += build
+kpkg_headers_cmd += kernel-headers
+ifndef headers_dirs
+ headers_dirs = $(karch)
+endif
#
-# Unresolved issues:
-# Where does the default config comes from?
+# Problems:
+# * What to do with default config?
+# TODO:
+# * Check that make oldconfig does not actually
+# change the config file. If it does, something
+# is wrong (missing/extra options, etc).
#
unpack: unpack-stamp
-unpack-stamp: $(kdir) $(configs) header-install.out
- for i in $(flavours); do \
- cp -al $(kdir) build-$$i; \
- cp config.$$i build-$$i/.config; \
- make -C build-$$i ARCH=$(karch) oldconfig; \
+unpack-stamp: $(kdir) $(configs) header-install
+ for i in $(flavours); do \
+ cp -al $(kdir) build-$$i; \
+ cp config.$$i build-$$i/.config; \
+ make -C build-$$i ARCH=$(karch) oldconfig; \
done
-# cp default $(kdir)/.config
ln -s $$(command -v touch) bin/touch.orig
touch unpack-stamp
-
#
-# Subarch usage:
-# Currently only mips and sparc are calling make-kpkg
-# with --subarch. mips is just using the names of the
-# flavours, while for sparc it is more complicated.
-# After looking at /usr/share/kernel-package/rules, I
-# believe that everything will work correctly in sparc
-# if use flavour as an argument to subarch.
-#
-# Unresolved issues:
-# m68k,mips have no-op build targets
-# How to handle subarch (mips, sparc)?
-# What's the deal with sparc trying to strip
-# the kernel and copy System.map?
+# Problems:
+# * m68k,mips have no-op build targets
+# * sparc strips parts of the kernel after building
+# otherwise it is too big for silo to boot.
+# TODO:
+# * Implement optional stripping of the kernel
+# (for sparc).
+# * Check that it is really ok to call --subarch
+# with the name of the flavour. For mips which
+# is another --subarch user it should be fine.
#
build: build-stamp
build-stamp: unpack-stamp
dh_testdir
- PATH=$$PWD/bin:$$PATH; \
- for i in $(flavours); do \
- cd build-$$i; \
- OPTS="--append_to_version $(debnum)-$$i"; \
- if [ -n '$(added_patches)' ]; then \
- OPTS="$${OPTS} --added_patches $(added_patches)"; \
- fi; \
- if [ -n '$(arch_with_subarch)' ]; then \
- OPTS="$${OPTS} --subarch $$i"; \
- fi; \
- MAKEFLAGS='$(arch_makeflags)' make-kpkg $${OPTS}; \
- cd ..; \
+ PATH=$$PWD/bin:$$PATH; \
+ for i in $(flavours); do \
+ cd build-$$i; \
+ $(kpkg_build_cmd); \
+ cd ..; \
done
touch build-stamp
clean:
- rm -f *-stamp header-install.out config.*
+ rm -f *-stamp header-install config.*
rm -rf $(kdir) build-* install-* bin/touch.orig
dh_clean
-header-install.out: header-install
- sed -e 's/@kbpkg@/$(kbpkg)/g' \
- -e 's/@karch@/$(karch)/g' \
- -e 's/@header_dirs@/$(header_dirs)/g' \
- header-install > header-install.out
- chmod u+x header-install.out
+binary-indep: build
#
+# Problems:
+# * sparc prepends the 'kernel-image' make-kpkg call
+# by 'sparc32' and 'sparc64', depending on the flavour.
+# Need to figure out the role of these binaries.
+#
+binary-arch: build
+ dh_testdir
+ dh_clean -k
+ dh_installdirs
+
+ cd $(kdir); $(kpkg_headers_cmd)
+
+ mv $(kdir)/debian/files debian
+
+ for i in $(flavours); do \
+ cp -al build-$$i install-$$i; \
+ cd install-$$i; \
+ $(kpkg_image_cmd); \
+ cd ..; \
+ cat install-$$i/debian/files >> debian/files \
+ rm -rf install-$$i
+ done
+ mv *.deb ..
+
+binary: binary-indep binary-arch
+
+header-install: header-install.in
+ sed -e 's/@kbpkg@/$(kbpkg)/g' \
+ -e 's/@karch@/$(karch)/g' \
+ -e 's/@headers_dirs@/$(headers_dirs)/g' \
+ header-install.in > header-install
+ chmod u+x header-install
+#
# Generates the kernel config file for a subarch by merging
# the arch-independent config file (arch/config.common),
# arch-specific config file (arch/$(karch)/config.common),
@@ -123,7 +177,7 @@
cat $${include} > $@
@echo " done."
#
-# Prepare debian/control by cat'ing together all the
+# Prepares debian/control by cat'ing together all the
# control files, substituting variables, removing all
# empty lines and inserting a newline before every
# line starting with 'Package:'
Deleted: branches/kernel-image-2.6.11/header-install
===================================================================
--- branches/kernel-image-2.6.11/header-install 2005-05-14 05:30:22 UTC (rev 3103)
+++ branches/kernel-image-2.6.11/header-install 2005-05-14 05:55:07 UTC (rev 3104)
@@ -1,29 +0,0 @@
-#!/bin/sh
-
-set -e
-
-kbpkg=@kbpkg@
-
-cd $DEBIAN_SRCTOP
-{
- find . -path './scripts/*' -prune -o \
- -path './Documentation/*' -prune -o \
- -path './debian/*' -prune -o \
- -type f \( -name Makefile -o -name 'Kconfig*' \) -print
- echo arch/@karch@/kernel/asm-offsets.s
-} | cpio -pd --preserve-modification-time $OLDPWD
-cd - > /dev/null
-ln -s ../$kbpkg/scripts .
-
-remove=
-cd include
-for i in asm-*; do
- case ${i#asm-} in
- generic | @header_dirs@)
- ;;
- *)
- remove="$remove $i"
- ;;
- esac
-done
-${remove:+rm -r $remove}
Copied: branches/kernel-image-2.6.11/header-install.in (from rev 3063, branches/kernel-image-2.6.11/header-install)