r3860 - in trunk/kernel/source/linux-2.6/debian: . arch/powerpc bin templates

Bastian Blank waldi at costa.debian.org
Sun Aug 14 19:59:45 UTC 2005


Author: waldi
Date: 2005-08-14 19:59:43 +0000 (Sun, 14 Aug 2005)
New Revision: 3860

Added:
   trunk/kernel/source/linux-2.6/debian/rules.defs
   trunk/kernel/source/linux-2.6/debian/rules.real
Removed:
   trunk/kernel/source/linux-2.6/debian/Makefile
   trunk/kernel/source/linux-2.6/debian/README.PPC64
Modified:
   trunk/kernel/source/linux-2.6/debian/
   trunk/kernel/source/linux-2.6/debian/arch/powerpc/config.powerpc64
   trunk/kernel/source/linux-2.6/debian/arch/powerpc/defines
   trunk/kernel/source/linux-2.6/debian/bin/gencontrol.py
   trunk/kernel/source/linux-2.6/debian/rules
   trunk/kernel/source/linux-2.6/debian/templates/control.headers.main.in
   trunk/kernel/source/linux-2.6/debian/templates/post-install.in
Log:
* Use generated rules, effectively remove second flavour resolver.
* Implement generic support for cross compilation.
* Install generated files in the correct headers packages.

r3745: waldi | 2005-08-08 15:40:20 +0000
* debian/bin/gencontrol.py
  - Rename some variables.
  - Write debian/rules.gen.
* debian/rules: Use debian/rules.gen.

r3746: waldi | 2005-08-08 15:51:26 +0000
debian/bin/gencontrol.py: Simplify rules.

r3747: waldi | 2005-08-08 16:22:29 +0000
Use generated rules for unpack, effectively remove second flavour resolver.

* debian/Makefile: Updates.
* debian/bin/gencontrol.py: Generate unpack rules.
* debian/rules: Use new rules.

r3748: waldi | 2005-08-08 17:03:32 +0000
Use generated rules for build.

* debian/Makefile
  - Updates.
  - Generate bin/touch.orig.
* debian/bin/gencontrol.py: Generate build rules.
* debian/rules: Remove bin/touch.orig creation.

r3752: waldi | 2005-08-08 18:13:27 +0000
Use generated rules for binary target.

* debian/Makefile: Updates.
* debian/bin/gencontrol.py: Generate binary rules.

r3753: waldi | 2005-08-08 19:00:05 +0000
* debian/Makefile
  - Overwrite env.
  - Split binary target.
* debian/bin/gencontrol.py: Update.
* debian/rules: Call correct targets.

r3756: waldi | 2005-08-08 20:07:31 +0000
* debian/Makefile
  - Split unpack target.
  - Don't generate stamp files for install targets.
  - Update dir names.
* debian/bin/gencontrol.py: Split unpack target.
* debian/rules: Remove new stamp files.

r3793: waldi | 2005-08-09 19:57:44 +0000
* debian/Makefile
  - Fix directories.
  - Build anything in one subdir.
* debian/bin/gencontrol.py: Call debian/Makefile from package root.
* debian/rules: Updates.

r3794: waldi | 2005-08-09 21:43:07 +0000
debian/bin/gencontrol.py: Updates.

r3795: waldi | 2005-08-09 22:26:53 +0000
* debian/Makefile
  - Include debian/rules.defs.
  - Simplify kpkg command specs.
* debian/rules
  - Move directory definitions to debian/rules.defs.
  - Include debian/rules.defs.
* debian/rules.defs: Add.

r3796: waldi | 2005-08-09 22:30:23 +0000
* debian/bin/gencontrol.py: Use debian/rules.real.
* debian/rules.real: Move from debian/Makefile.

r3797: waldi | 2005-08-09 22:39:24 +0000
debian/bin/gencontrol.py, debian/rules, debian/rules.real:
Rename unpack to setup.

r3798: waldi | 2005-08-09 22:52:43 +0000
debian/bin/gencontrol.py, debian/rules.real: Use DH_OPTIONS.

r3799: waldi | 2005-08-09 22:53:37 +0000
debian/rules: Use host, not build architecture.

r3815: waldi | 2005-08-10 11:53:38 +0000
debian/rules.real: Update targets.

r3816: waldi | 2005-08-10 12:06:13 +0000
debian/rules.real: Move patch rules from debian/rules.

r3817: waldi | 2005-08-10 12:22:26 +0000
debian/bin/gencontrol.py, debian/rules.real: Small fixes.

r3818: waldi | 2005-08-10 12:29:17 +0000
debian/rules.real: Add seperate setup step for headers package.

r3819: waldi | 2005-08-10 12:36:57 +0000
debian/bin/gencontrol.py, debian/rules, debian/rules.real: Add binary-indep.

r3820: waldi | 2005-08-10 12:40:10 +0000
debian/bin/gencontrol.py: Fix typo.

r3821: waldi | 2005-08-10 12:56:58 +0000
* debian/bin/gencontrol.py: Use binary-indep.
* debian/rules.real: Move source package rules from debian/rules.

r3822: waldi | 2005-08-10 13:11:24 +0000
* debian/bin/gencontrol.py: Use install-dummy.
* debian/rules.real: Move tree package rules from debian/rules.

r3823: waldi | 2005-08-10 13:41:30 +0000
* debian/bin/gencontrol.py: Fix typos.
* debian/rules.real
  - Move doc package rules from debian/rules.
  - Fix some installation rules.

r3824: waldi | 2005-08-10 13:55:41 +0000
debian/rules.real: Move patch package rules from debian/rules.

r3825: waldi | 2005-08-10 14:17:33 +0000
debian/rules: Cleanup.

r3826: waldi | 2005-08-10 14:37:03 +0000
debian/rules.real: Fix typos.

r3827: waldi | 2005-08-10 14:57:07 +0000
debian: Update svn:ignore property.

r3828: waldi | 2005-08-10 15:07:29 +0000
debian/rules.real
- Move some install rules.
- Support cross compilation.

r3829: waldi | 2005-08-10 15:39:14 +0000
debian/rules.real: Realy rename the rules.

r3830: waldi | 2005-08-10 17:35:54 +0000
debian/rules.real
- Move one rule.
- Fix permissions of source tar ball.
Closes: 322409

r3832: waldi | 2005-08-10 18:57:51 +0000
debian/templates/control.headers.main.in: Fix command to install headers.

r3833: waldi | 2005-08-10 20:30:48 +0000
* debian/bin/gencontrol.py: Remove dash from ABINAME.
* debian/rules.real
  - Use abiname without dash.
  - Install patches with correct permissions.

r3847: waldi | 2005-08-13 09:11:40 +0000
debian/templates/post-install.in:
Install any executable file and files which matches *.sh and *.pl in the
scripts directory.
Closes: 322612

r3848: waldi | 2005-08-13 09:32:54 +0000
* arch/powerpc/defines: Add pseries definitions.
* arch/powerpc/config.pseries: Move from arch/powerpc/noconfig.pseries.
* bin/gencontrol.py
  - Export KPKG_SUBARCH.
  - Updates.
* rules.real: Use KPKG_SUBARCH.

r3853: waldi | 2005-08-14 10:01:06 +0000
debian/rules.real
- Fix cross compile options for make-kpkg.
- Fix architecture patches.
- Remove asm-offsets.s workaround, pending real fix.

r3854: waldi | 2005-08-14 12:07:36 +0000
debian/rules.real: Export version informations.

r3855: waldi | 2005-08-14 12:39:57 +0000
debian/templates/post-install.in: Always install generated files.

r3858: waldi | 2005-08-14 14:51:28 +0000
debian/rules.real: Integrate headers install fix.

r3859: waldi | 2005-08-14 15:29:21 +0000
* debian/arch/powerpc/config.powerpc64
  - Fix wrong formated entries.
  - Enable vscsi client.
* debian/arch/powerpc/defines: Fix flavour name.
* debian/README.PPC64: Remove.



Property changes on: trunk/kernel/source/linux-2.6/debian
___________________________________________________________________
Name: svn:ignore
   - control

   + control
control.md5sum
rules.gen

Name: svk:merge
   - 510b9475-24dd-0310-9b6c-e0eefe99d49f:/people/waldi/kernel/source/linux-2.6/debian:3741
   + 510b9475-24dd-0310-9b6c-e0eefe99d49f:/people/waldi/kernel/source/linux-2.6/debian:3859

Deleted: trunk/kernel/source/linux-2.6/debian/Makefile
===================================================================
--- trunk/kernel/source/linux-2.6/debian/Makefile	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/Makefile	2005-08-14 19:59:43 UTC (rev 3860)
@@ -1,258 +0,0 @@
-#
-# This Makefile executes the unpack/build/binary targets for a single
-# subarch, which is passed in the subarch variable. Empty subarch
-# variable means that we are building for an arch without the subarch.
-# Additionally, variables version, abiname and ltver are
-# expected to be available (need to be exported from the parent process).
-# It is possible to override the flavours by setting the flavours
-# variable. It will also be passed a list of source files
-#
-# This Makefile is run from the debian subdir. 
-#
-SHELL  := sh -e
-debver := $(version)-$(abiname)
-debnum := -$(abiname)
-#
-# These variables control the behaviour of make-kpkg
-#
-# enable cross-compiling for m68k
-#DEB_HOST_ARCH := m68k
-#
-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)
-endif
-ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
-  cross_compile := $(DEB_HOST_ARCH)
-endif
-export version debnum DEBIAN_UPSTREAM_VERSION DEBIAN_STEM
-
-karch := $(DEB_HOST_ARCH)
-#
-# Build the list of common config files to be included
-#
-ifeq ($(subarch),none)
-  basedir := arch/$(karch)
-  append  := 
-else
-  basedir := arch/$(karch)/$(subarch)
-  append  := $(subarch)-
-endif
-
-configs := $(notdir $(wildcard $(basedir)/config.*))
-configs := $(filter-out config, $(configs))
-tkdir   := linux-source-$(version)
-kdir    := linux-source-$(version)-$(subarch)
-ifndef flavours
-  flavours := $(patsubst config.%,%,$(configs))
-endif
-controls := templates/control.source.in templates/control.headers.in
-controls += $(basedir)/control.in
-
--include $(basedir)/Makefile.inc
-
-#
-# Here we construct the command lines for different make-kpkg
-# calls (build, linux-image, linux-headers) based on the values
-# of variables defined so far and provided by the arch/subarch
-# in Makefile.inc. @flavour@ in the expressions is going to be
-# replaced by the flavour for which the command is run. 
-#
-kpkg_headers_cmd := HEADER_CLEAN_HOOK='$(CURDIR)/header-install-$(subarch)'
-kpkg_headers_cmd += make-kpkg --append-to-version $(append)$(debnum)
-kpkg_headers_cmd += --stem linux --config defconfig
-kpkg_build_cmd := make-kpkg --append-to-version $(debnum)- at flavour@
-kpkg_build_cmd += --stem linux
-ifdef build_subarch
-  kpkg_build_cmd += --subarch $(build_subarch)
-endif
-# XXX: Instead of special-casing m68k here, we could make --arch and
-# --cross_compile options supported in Makefile.inc, and use them if
-#  DEB_HOST_ARCH != DEB_BUILD_ARCH..  -dil
-ifeq ($(cross_compile),m68k)
-  kpkg_headers_cmd +=  --arch m68k --cross_compile m68k-linux
-  kpkg_build_cmd +=  --arch m68k --cross_compile m68k-linux
-endif
-ifdef headers_subarch
-  kpkg_headers_cmd += --subarch $(headers_subarch)
-endif
-ifdef build_makeflags
-  export_makeflags := export MAKEFLAGS=$(build_makeflags)
-else
-  export_makeflags := true
-endif
-#
-# Note that next variable (kpkg_image_pre) is not going to be evaluated
-# immediately. When referenced, the variable $* will have the current
-# flavour for which the command is executed. So if this flavour will
-# happen to be in the image_prefix_flavours list, the call to make-kpkg
-# will be prepended with contents if image_prefix.
-#
-kpkg_image_pre = $(if $(filter $*,$(image_prefix_flavours)),$(image_prefix))
-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
-ccommon = arch/config arch/$(karch)/config arch/$(karch)/$(subarch)/config
-#
-# Here we build lists of directories and stamps which we will depend on.
-# For each class of such targets there is a pattern rule which will catch
-# it and do the right thing.
-#
-bdirs   := $(addprefix build-$(subarch)-, $(flavours))
-bstamps := $(addprefix build-stamp-$(subarch)-, $(flavours))
-istamps := $(addprefix install-stamp-$(subarch)-, $(flavours))
-
-#
-# Targets
-#
-unpack: unpack-stamp-$(subarch)
-unpack-stamp-$(subarch): $(configs) header-install-$(subarch) $(bdirs)
-	touch unpack-stamp-$(subarch)
-
-build: build-stamp-$(subarch)
-build-stamp-$(subarch): unpack-stamp-$(subarch) $(bstamps)
-	touch build-stamp-$(subarch)
-
-binary-indep: build
-binary-arch: build headers-stamp $(istamps)
-	mv *.deb ../..
-
-install-stamp-$(subarch)-%: build-$(subarch)-% build-stamp-$(subarch)-%
-	cp -al $< install-$*;
-	cd install-$*; 		\
-	$(export_makeflags); 	\
-	$(strip $(kpkg_image_pre) $(subst @flavour@,$*,$(kpkg_image_cmd)))
-	cat install-$*/debian/files >> files;
-	rm -rf install-$*;
-	touch install-stamp-$(subarch)-$*
-
-headers-stamp: $(kdir)
-	# The headers config is now automatically generated via the kernel's
-	# defconfig target.  Woo!
-	cd $(kdir); $(kpkg_headers_cmd)
-	cat $(kdir)/debian/files >> files
-	touch headers-stamp
-
-binary:	binary-indep binary-arch
-
-header-install-$(subarch): templates/header-install.in
-	sed -e 's, at kbpkg@,$(kbpkg),g'				\
-	    -e 's, at ksource_dir@,$(CURDIR)/$(kdir),g'		\
-	    -e 's, at flavours@,$(flavours),g'			\
-	    -e 's, at headers_dirs@,$(headers_dirs),g'		\
-            templates/header-install.in > header-install-$(subarch)
-	chmod u+x header-install-$(subarch)
-#
-# The way to make the correct package names is to make a
-# subarch-specific post-install script...
-#
-ifdef extra_postinstall_command
-  extra_command := $(extra_postinstall_command)
-else
-  extra_command := true
-endif
-post-install-$(subarch): templates/post-install.in
-	sed -e 's, at initrd_modules@,$(initrd_modules),'			\
-	    -e 's, at append_subarch@,$(append),'				\
-	    -e 's, at extra_postinstall_command@,$(extra_command),'	\
-	    -e 's, at headers_dirs@,$(headers_dirs),'			\
-	    templates/post-install.in > post-install-$(subarch)
-#
-# Generates the kernel config file for a subarch by merging
-# the arch-independent config file (arch/config),
-# arch-specific config file (arch/$(karch)/config),
-# and subarch specific one (arch/$(karch)/$(subarch)/config).
-# It is possible to avoid the inclusion of the arch-indep
-# config file by setting include_common_config = no in the
-# arch/$(karch)/Makefile.inc.
-#
-config.%:
-	@echo "configs=$(configs)"
-	@echo "Generating configuration file $@:"
-	rm -f $@
-	for i in $(ccommon); do	\
-	  if [ -f $${i} ]; then	\
-	    cat $${i} >> $@;	\
-	  fi;			\
-	done
-#	Flavour config file must be present
-	cat $(basedir)/$@ >> $@			 
-
-srcfiles := $(filter-out ../debian ../linux-source-$(version), $(shell echo ../*))
-patches  := $(wildcard patches-arch/$(subarch).*)
-patches  += $(wildcard patches-arch/$(subarch)_*)
-patches  += $(wildcard patches-arch/$(karch).*)
-patches  += $(wildcard patches-arch/$(karch)_*)
-patches  := $(strip $(patches))
-# substitute() and friends is duplicated in debian/rules; this should
-# be cleaned up in the long term.  watch out for relative paths, as
-# debian/rules runs in the top level directory, while debian/Makefile
-# runs from the debian directory!
-$(kdir): post-install-$(subarch) $(wildcard templates/control.*.in)
-	mkdir -p $(tkdir)
-	cp -al $(srcfiles) $(tkdir)
-	mkdir -p $(tkdir)/debian
-	cp changelog $(tkdir)/debian
-	cp copyright $(tkdir)/debian
-	cp control $(tkdir)/debian/control
-	touch $(tkdir)/debian/official
-	if [ -n '$(patches)' ]; then			\
-	  cd $(tkdir);					\
-	  cat $(addprefix ../,$(patches)) | patch -p1;	\
-	fi
-	install post-install-$(subarch) $(tkdir)/debian/post-install
-	mv $(tkdir) $@
-#
-# This target performs a build for a particular flavour. Note
-# that in this file it should be always placed *before* the
-# build-$(subarch)-% target, which creates the build directory.
-#
-# Some arches have extra arch/${ARCH}/kernel/asm-offsets.s files
-# which have to be included in linux-headers. The problem is that
-# they are only generated during build and we never performed a
-# full build in the directory $(kdir) where linux-headers are
-# built. So, after build we check whether current build arch has
-# such a file and symlink it into the $(kdir) if necessary. It will
-# then be picked up and included into the linux-headers package
-# by the headers-install script.
-#
-build-stamp-$(subarch)-%: build-$(subarch)-%
-	PATH=$$PWD/bin:$$PATH;					\
-	cd $<;							\
-	$(export_makeflags);					\
-	$(subst @flavour@,$*,$(kpkg_build_cmd));		\
-	$(if $(image_postproc),$(image_postproc),true);		\
-	arch=$$(basename $$(readlink include/asm));		\
-	arch="$${arch#asm-}";					\
-	src="arch/$${arch}/kernel/asm-offsets.s";		\
-	dst="../$(kdir)/$${src}";				\
-	if [ -f "$${src}" ] && [ ! -e "$${dst}" ]; then		\
-	  cp -a "$$(pwd)/$${src}" "$${dst}";			\
-	fi
-	touch build-stamp-$(subarch)-$*
-#
-# Creates a build directory for a particular flavour
-#
-build-$(subarch)-%: $(kdir) config.%
-	if [ ! -d $@ ]; then					\
-	  cp -al $(kdir) $@;					\
-	  cp config.$* $@/.config;				\
-	fi
-
-binary-dummy:
-	dh_testdir
-	dh_testroot
-	dh_installchangelogs $(PACKAGES_ARG)
-	dh_installdocs $(PACKAGES_ARG)
-	dh_compress $(PACKAGES_ARG)
-	dh_fixperms $(PACKAGES_ARG)
-	dh_installdeb $(PACKAGES_ARG)
-	dh_gencontrol $(PACKAGES_ARG) -- $(GENCONTROL_ARGS)
-	dh_md5sums $(PACKAGES_ARG)
-	dh_builddeb $(PACKAGES_ARG)
-
-.PHONY: build unpack binary-indep binary-arch binary

Deleted: trunk/kernel/source/linux-2.6/debian/README.PPC64
===================================================================
--- trunk/kernel/source/linux-2.6/debian/README.PPC64	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/README.PPC64	2005-08-14 19:59:43 UTC (rev 3860)
@@ -1,36 +0,0 @@
-Where did the power3/power4 ppc64 flavours go ?
-===============================================
-
-As of 2.6.12, and anticipating the inclusion of a powerpc biarch
-toolchain in debian sid and then etch, we have dropped the 32bit 
-ppc64 flavours. I will provide unofficial -pseries (replace all
-previous 64bit flavours) at :
-
-  http://people.debian.org/~luther/ppc64
-
-until we are able to build them inside of debian, which will
-hopefully be only a couple of weeks now.
-
-But if you feel impatient, here are the instructions on how to build 
-those arches yourselves :
-
-  1) install the ubuntu/breezy glibc and gcc-4.0 packages (preferably
-     in a sid chroot)
-  2) go into debian/arch/powerpc
-  3) rename the 32bit flavours to noconfig.powerpc[-smp]
-  4) rename the 64bit flavours to config.pseries
-  5) edit Makefile.inc, and change the last three lines to :
-	headers_subarch = powerpc
-	build_subarch = powerpc64
-  6) go into the toplevel, and launch :
-	dpkg-buildpackage -rfakeroot -us -uc -B
-
-This should build you a couple of packages, where you would be interested
-in the linux-image-2.6.12-1-pseries and linux-headers-2.6.12-1-pseries ones.
-
-Enjoy,
-
-Sven Luther
-
-
-

Modified: trunk/kernel/source/linux-2.6/debian/arch/powerpc/config.powerpc64
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/powerpc/config.powerpc64	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/arch/powerpc/config.powerpc64	2005-08-14 19:59:43 UTC (rev 3860)
@@ -1,5 +1,5 @@
 CONFIG_64BIT=y
-CONFIG_ADB is not set
+# CONFIG_ADB is not set
 CONFIG_AUDITSYSCALL=y
 CONFIG_COMPAT=y
 CONFIG_CPUSETS=y
@@ -53,6 +53,7 @@
 CONFIG_SCHED_SMT=y
 CONFIG_SCSI_QLOGIC_1280_1040=y
 CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_IBMVSCSI=m
 CONFIG_SECCOMP=y
 # CONFIG_SERIAL_ICOM is not set
 CONFIG_SMP=y

Modified: trunk/kernel/source/linux-2.6/debian/arch/powerpc/defines
===================================================================
--- trunk/kernel/source/linux-2.6/debian/arch/powerpc/defines	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/arch/powerpc/defines	2005-08-14 19:59:43 UTC (rev 3860)
@@ -1,2 +1,10 @@
 [DEFAULT]
+
+[powerpc]
 depends: mkvmlinuz (>= 13)
+
+[powerpc-smp]
+depends: mkvmlinuz (>= 13)
+
+[powerpc64]
+kpkg-subarch: powerpc64

Modified: trunk/kernel/source/linux-2.6/debian/bin/gencontrol.py
===================================================================
--- trunk/kernel/source/linux-2.6/debian/bin/gencontrol.py	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/bin/gencontrol.py	2005-08-14 19:59:43 UTC (rev 3860)
@@ -143,8 +143,8 @@
     return read_rfc822(file("debian/templates/control.%s.in" % name))
 
 def parse_version(version):
-    match = re.match("^((\d+\.\d+)\..+?)-([^-]+)$", version)
-    return (match.group(0), match.group(1), match.group(2), match.group(3))
+    match = re.match("^(?P<source>(?P<version>(?P<major>\d+\.\d+)\..+?)-(?P<debian>[^-]+))$", version)
+    return match.groupdict()
 
 def process_depends(key, e, in_e, vars):
     in_dep = in_e[key].split(',')
@@ -188,6 +188,9 @@
     return entries
 
 def process_real_image(in_entry, vars):
+    in_entry = in_entry.copy()
+    if vars.has_key('desc'):
+        in_entry['Description'] += "\n.\n" + vars['desc']
     entry = process_package(in_entry, vars)
     for i in (('Depends', 'Provides', 'Suggests')):
         value = []
@@ -209,8 +212,6 @@
             if t is not None:
                 value.append(t)
         entry[i] = ', '.join(value)
-    if vars.has_key('desc'):
-        entry['Description'] += "\n.\n" + vars['desc']
     return entry
 
 def process_real_tree(in_entry, changelog, vars):
@@ -225,19 +226,11 @@
         value = []
         tmp = entry.get(i, None)
         if tmp:
-            tmp = tmp.split(',')
-            for t in tmp:
-                value.append(t.strip())
+            value.extend([j.strip() for j in tmp.split(',')])
         if i == 'Depends':
-            tmp = []
-            for v in versions:
-                v = parse_version(v)
-                tmp.append("linux-source-%s (= %s)" % (v[1], v[0]))
-            value.append(' | '.join(tmp))
+            value.append(' | '.join(["linux-source-%(version)s (= %(source)s)" % parse_version(v) for v in versions]))
         elif i == 'Provides':
-            for v in versions:
-                v = parse_version(v)
-                value.append("linux-tree-%s" % v[0])
+            value.extend(["linux-tree-%(source)s" % parse_version(v) for v in versions])
         entry[i] = ', '.join(value)
     return entry
 
@@ -248,16 +241,16 @@
 
 def vars_changelog(vars, changelog):
     version = parse_version(changelog[0]['Version'])
-    vars['srcver'] = version[0]
-    vars['version'] = version[1]
-    vars['major'] = version[2]
+    vars['srcver'] = version['source']
+    vars['version'] = version['version']
+    vars['major'] = version['major']
     return vars
 
 def write_control(list):
     write_rfc822(file("debian/control", 'w'), list)
 
 def write_makefile(list):
-    f = file("debian/Makefile.inc", 'w')
+    f = file("debian/rules.gen", 'w')
     for i in list:
         f.write("%s\n" % i[0])
         if i[1] is not None:
@@ -281,6 +274,7 @@
     vars = {}
     vars = vars_changelog(vars, changelog)
 
+    version = vars['version']
     source_version = vars['srcver']
 
     vars.update(config().defaults())
@@ -323,16 +317,30 @@
     image = read_template("image")
     image_latest = read_template("image.latest")
 
-    i1 = arches.keys()
-    i1.sort()
-    for arch in i1:
+    makeflags = ["VERSION='%s'" % version, "SOURCE_VERSION='%s'" % source_version]
+    cmds_binary_indep = []
+    cmds_binary_indep.append(("$(MAKE) -f debian/rules.real binary-indep %s" % ' '.join(makeflags),))
+    makefile.append(("binary-indep:", cmds_binary_indep))
+
+    arch_list = arches.keys()
+    arch_list.sort()
+    for arch in arch_list:
         arch_vars = vars.copy()
         arch_vars['arch'] = arch
         arch_vars.update(config_arch(arch).defaults())
 
-        i2 = arches[arch].keys()
-        i2.sort()
-        for subarch in i2:
+        for i in (('setup',)):
+            makefile.append(("%s-%s:: %s-%s-real" % (i, arch, i, arch), None))
+
+        arch_makeflags = makeflags[:]
+        arch_makeflags.append("ARCH='%s'" % arch)
+        cmds_setup = []
+        cmds_setup.append(("$(MAKE) -f debian/rules.real setup-arch %s" % ' '.join(arch_makeflags),))
+        makefile.append(("setup-%s-real:" % arch, cmds_setup))
+
+        subarch_list = arches[arch].keys()
+        subarch_list.sort()
+        for subarch in subarch_list:
             subarch_config = config_subarch(arch, subarch)
             subarch_vars = arch_vars.copy()
             subarch_vars.update(subarch_config.defaults())
@@ -344,12 +352,24 @@
                 subarch_text = 'none'
                 subarch_vars['subarch'] = ''
 
-            for i in ('binary', 'build', 'unpack'):
+            for i in ('binary-arch', 'build', 'setup'):
                 makefile.append(("%s-%s:: %s-%s-%s" % (i, arch, i, arch, subarch_text), None))
+                makefile.append(("%s-%s-%s::" % (i, arch, subarch_text), None))
+            for i in ('binary-arch', 'setup'):
+                makefile.append(("%s-%s-%s:: %s-%s-%s-real" % (i, arch, subarch_text, i, arch, subarch_text), None))
 
-            i3 = arches[arch][subarch].keys()
-            i3.sort()
-            for flavour in i3:
+            subarch_makeflags = arch_makeflags[:]
+            subarch_makeflags.extend(["SUBARCH='%s'" % subarch_text, "ABINAME='%s'" % subarch_vars['abiname']])
+            cmds_binary_arch = []
+            cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-subarch %s" % ' '.join(subarch_makeflags),))
+            cmds_setup = []
+            cmds_setup.append(("$(MAKE) -f debian/rules.real setup-subarch %s" % ' '.join(subarch_makeflags),))
+            makefile.append(("binary-arch-%s-%s-real:" % (arch, subarch_text), cmds_binary_arch))
+            makefile.append(("setup-%s-%s-real:" % (arch, subarch_text), cmds_setup))
+
+            flavour_list = arches[arch][subarch].keys()
+            flavour_list.sort()
+            for flavour in flavour_list:
                 flavour_vars = subarch_vars.copy()
                 flavour_vars['flavour'] = flavour
                 try:
@@ -367,10 +387,25 @@
                 packages.append(process_package(headers[0], flavour_vars))
                 packages.extend(dummy_packages)
 
-                for i in ('binary', 'build', 'unpack'):
+                for i in ('binary-arch', 'build', 'setup'):
                     makefile.append(("%s-%s-%s:: %s-%s-%s-%s" % (i, arch, subarch_text, i, arch, subarch_text, flavour), None))
-                makefile.append(("binary-%s-%s-%s:" % (arch, subarch_text, flavour), ("$(MAKE) -f debian/Makefile binary-dummy PACKAGES_ARG='%s'" % ' '.join(["-p%s" % i['Package'] for i in dummy_packages]),)))
+                    makefile.append(("%s-%s-%s-%s:: %s-%s-%s-%s-real" % (i, arch, subarch_text, flavour, i, arch, subarch_text, flavour), None))
 
+                flavour_makeflags = subarch_makeflags[:]
+                flavour_makeflags.append("FLAVOUR='%s'" % flavour)
+                if flavour_vars.has_key('kpkg-subarch'):
+                    flavour_makeflags.append("KPKG_SUBARCH='%s'" % flavour_vars['kpkg-subarch'])
+                cmds_binary_arch = []
+                cmds_binary_arch.append(("$(MAKE) -f debian/rules.real binary-arch-flavour %s" % ' '.join(flavour_makeflags),))
+                cmds_binary_arch.append(("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='%s'" % ' '.join(["-p%s" % i['Package'] for i in dummy_packages]),))
+                cmds_build = []
+                cmds_build.append(("$(MAKE) -f debian/rules.real build %s" % ' '.join(flavour_makeflags),))
+                cmds_setup = []
+                cmds_setup.append(("$(MAKE) -f debian/rules.real setup-flavour %s" % ' '.join(flavour_makeflags),))
+                makefile.append(("binary-arch-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_binary_arch))
+                makefile.append(("build-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_build))
+                makefile.append(("setup-%s-%s-%s-real:" % (arch, subarch_text, flavour), cmds_setup))
+
     extra = read_template("extra")
     packages.extend(process_packages(extra, vars))
     extra_pn = {}
@@ -387,12 +422,12 @@
 
         cmds = []
         for i in extra_pn[arch]:
-            makeflags = ""
+            tmp = []
             if i.has_key('X-Version-Overwrite-Epoch'):
-                    makeflags = "GENCONTROL_ARGS='-v1:%s'" % source_version
-            cmds.append("$(MAKE) -f debian/Makefile binary-dummy PACKAGES_ARG='-p%s' %s" % (i['Package'], makeflags))
-        makefile.append(("binary-%s:: binary-%s-extra" % (arch, arch), None))
-        makefile.append(("binary-%s-extra:" % arch, cmds))
+                    tmp.append("-v1:%s" % source_version)
+            cmds.append("$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS='-p%s' GENCONTROL_ARGS='%s'" % (i['Package'], ' '.join(tmp)))
+        makefile.append(("binary-arch-%s:: binary-arch-%s-extra" % (arch, arch), None))
+        makefile.append(("binary-arch-%s-extra:" % arch, cmds))
 
     write_control(packages)
     write_makefile(makefile)

Modified: trunk/kernel/source/linux-2.6/debian/rules
===================================================================
--- trunk/kernel/source/linux-2.6/debian/rules	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/rules	2005-08-14 19:59:43 UTC (rev 3860)
@@ -1,204 +1,38 @@
 #!/usr/bin/make -f
 #
-# Required variables.  See README for a description of all the variables.
-# 
-abiname  := 1
-#
 # Generally nothing needs to be modified below this line
 #
 SHELL    := sh -e
 DEB_HOST_ARCH  := $(shell dpkg-architecture -qDEB_HOST_ARCH)
 DEB_BUILD_ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH)
-karch    := $(DEB_BUILD_ARCH)
 srcver   := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}')
-version  := $(word 1,$(subst -, ,$(srcver)))
-ltver    := $(word 2,$(subst -, ,$(srcver)))
-major_v  := $(word 1,$(subst ., ,$(version)))
-minor_v  := $(word 2,$(subst ., ,$(version)))
-major    := $(major_v).$(minor_v)
-release  := $(version)-$(ltver)
-uver     := $(subst .,_,$(version))
-#
-# If we are not passed a subarchs variable, we obtain the complete
-# subarch list as a list of subdirectories in arch/$(karch). We
-# also export the flavours variables, which allows to control which
-# flavours are built.
-#
-ifndef subarchs
-  subarchs := $(shell find debian/arch/$(karch) \
-                           -mindepth 1 -maxdepth 1 -type d \
-                           ! -name '.svn' -printf '%f\n')
-endif
-ifeq (,$(subarchs))
-  subarchs := none
-endif
-#
-# The following definition gets the list of relevant files in the top-level
-# directory. At this point we cannot verify that we are in top-level dir
-# (we probably are), so it should be referenced only in the targets which 
-# run dh_testdir in the beginning.
-#
-source_files = $(filter-out debian linux-source-$(version), $(shell echo *))
+VERSION  := $(word 1,$(subst -, ,$(srcver)))
+MAJOR    := $(word 1,$(subst ., ,$(VERSION))).$(word 2,$(subst ., ,$(VERSION)))
 
-export version abiname ltver kbuildver flavours major uver
+include debian/rules.defs
 
-patch: debian/patch-stamp
-debian/patch-stamp: debian/bin/apply
+setup: debian/setup-stamp
+debian/setup-stamp: $(BUILD_DIR) $(STAMPS_DIR)
 	dh_testdir
-	chmod +x debian/bin/apply
-	override_version=$(release) home=debian/patches-debian debian/bin/apply
-#	make-kpkg does this when building kernel-source.
-	mv scripts/package/Makefile scripts/package/Makefile.dist
-	mv scripts/package/builddeb scripts/package/builddeb.dist
-	echo "# Dummy Makefile" > scripts/package/Makefile
-	echo "all:" >> scripts/package/Makefile
-	touch debian/patch-stamp
+	$(MAKE) -f debian/rules.gen setup-$(DEB_HOST_ARCH)
+	touch $@
 
-unpatch:
-	dh_testdir
-	if [ -e debian/patch-stamp ]; then				\
-	  override_version=$(release) home=debian/patches-debian	\
-	    debian/bin/apply $(version);				\
-	  cd scripts/package;						\
-	  mv Makefile.dist Makefile;					\
-	  mv builddeb.dist builddeb;					\
-	fi
-	rm -f debian/patch-stamp
-#
-# linux-source package
-#
-spkg := linux-source-$(version)
-sdir := debian/$(spkg)/usr/src
-source: debian/source-stamp
-debian/source-stamp: debian/patch-stamp
-	dh_testdir
-	dh_testroot
-	dh_installdirs -p$(spkg) /usr/src
-#	Link the files and create a tarball in correct location
-	mkdir $(spkg)
-	cp -al $(source_files) $(spkg)
-	chmod -R u+rw,go=rX $(spkg)
-	tar -cjf $(sdir)/$(spkg).tar.bz2 $(spkg)
-	rm -rf $(spkg)
-	dh_installdocs -p$(spkg) README
-	dh_installchangelogs -p$(spkg)
-	dh_compress -p$(spkg)
-	dh_fixperms -p$(spkg)
-	dh_installdeb -p$(spkg)
-	dh_gencontrol -p$(spkg)
-	dh_md5sums -p$(spkg)
-	dh_builddeb -p$(spkg)
-	touch debian/source-stamp
-#
-# linux-tree package
-#
-tpkg := linux-tree-$(version)
-tree: debian/tree-stamp
-debian/tree-stamp:
-	dh_testdir
-	dh_testroot
-	dh_installdirs -p$(tpkg)
-	dh_installdocs -p$(tpkg)
-	dh_installchangelogs -p$(tpkg)
-	dh_compress -p$(tpkg)
-	dh_fixperms -p$(tpkg)
-	dh_installdeb -p$(tpkg)
-	dh_gencontrol -p$(tpkg)
-	dh_md5sums -p$(tpkg)
-	dh_builddeb -p$(tpkg)
-	touch debian/tree-stamp
-#
-# linux-patch-debian
-#
-ppkg  := linux-patch-debian-$(version)
-pbase := /usr/src/kernel-patches/all/$(version)
-pfull := debian/$(ppkg)$(pbase)
-pdirs := $(pbase) $(pbase)/apply $(pbase)/debian $(pbase)/unpatch
-ptchs := $(notdir $(wildcard debian/patches-arch/*))
-kptch := debian/$(ppkg).kpatches.arch
-pcdir := debian/patches-arch
-patch-debian: debian/patch-debian-stamp
-debian/patch-debian-stamp: debian/bin/apply debian/bin/unpatch
-	dh_testdir
-	dh_testroot
-	dh_installdirs -p$(ppkg) $(pdirs)
-	dh_install -p$(ppkg) debian/patches-debian/* $(pbase)/debian
-#	Install the debian patches
-	sed 's/@version@/$(release)/g' debian/bin/apply > $(pfull)/apply/debian
-	sed 's/@upstream@/$(version)/g' debian/bin/unpatch > $(pfull)/unpatch/debian
-	chmod a+x $(pfull)/apply/debian $(pfull)/unpatch/debian
-	chmod -x $(pfull)/debian/*.patch
-	bzip2 -9 $(pfull)/debian/*.patch
-#	Now the arch/subarch-specific patches
-	for i in $(ptchs); do					\
-	  rm -f $(kptch);					\
-	  arch=$${i%%.*};					\
-	  echo "Patch-name: $${arch}"       >> $(kptch);	\
-	  echo "Patch-id: $${arch}_$(uver)" >> $(kptch);	\
-	  echo "Path-strip-level: 1"        >> $(kptch);	\
-	  echo >> $(kptch);					\
-	  echo "Patch-file: $(pcdir)/$${i}" >> $(kptch);	\
-	  echo "Architecture: $${arch}"     >> $(kptch);	\
-	  echo "Kernel-version: $(version)" >> $(kptch);	\
-	  dh_installkpatches -p$(ppkg);				\
-	done
-	dh_fixperms -p$(ppkg)
-	dh_installdocs -p$(ppkg)
-	dh_installchangelogs -p$(ppkg)
-	dh_compress -p$(ppkg)
-	dh_installdeb -p$(ppkg)
-	dh_gencontrol -p$(ppkg)
-	dh_md5sums -p$(ppkg)
-	dh_builddeb -p$(ppkg)
-	touch debian/patch-debian-stamp
-#
-# linux-doc package
-#
-dbdir := debian/build-doc
-dbddir := $(dbdir)/debian
-doc: debian/doc-stamp
-debian/doc-stamp: debian/patch-stamp
-	dh_testdir
-	dh_testroot
-#	Create a build tree
-	mkdir -p $(dbdir)
-	cp -al $(source_files) $(dbdir)
-	mkdir -p $(dbddir)
-	cp debian/changelog $(dbddir)
-	cp debian/control   $(dbddir)
-	cp debian/copyright $(dbddir)
-	touch $(dbddir)/official
-	cd $(dbdir) && make-kpkg --stem linux kernel-doc
-	cat $(dbddir)/files >> debian/files
-	mv debian/*.deb ..
-	touch debian/doc-stamp
-
-unpack: debian/unpack-stamp
-debian/unpack-stamp: debian/patch-stamp
-	dh_testdir
-	cd debian;			\
-	for i in $(subarchs); do	\
-	  $(MAKE) subarch=$${i} unpack;	\
-	done
-	ln -s $$(command -v touch) debian/bin/touch.orig
-	touch debian/unpack-stamp
-
 build: debian/control debian/build-stamp
-debian/build-stamp: debian/unpack-stamp
+debian/build-stamp: $(BUILD_DIR) $(STAMPS_DIR) debian/setup-stamp
 	dh_testdir
-	cd debian; 			\
-	for i in $(subarchs); do	\
-	  $(MAKE) subarch=$${i} build;	\
-	done
-	touch debian/build-stamp
+	$(MAKE) -f debian/rules.gen build-$(DEB_HOST_ARCH)
+	touch $@
 
-orig: ../orig/linux-$(major)-$(version)
-	rsync --delete --exclude debian --exclude .svn -av ../orig/linux-$(major)-$(version)/ .
+$(BUILD_DIR) $(STAMPS_DIR):
+	@[ -d $@ ] || mkdir $@
 
-../orig/linux-$(major)-$(version):
-	if [ -f "../linux-$(major)_$(version).orig.tar.gz" ]; then \
+orig: ../orig/linux-$(MAJOR)-$(VERSION)
+	rsync --delete --exclude debian --exclude .svn -av ../orig/linux-$(MAJOR)-$(VERSION)/ .
+
+../orig/linux-$(MAJOR)-$(VERSION):
+	if [ -f "../linux-$(MAJOR)_$(VERSION).orig.tar.gz" ]; then \
 		mkdir -p ../orig; \
-		tar -C ../orig -xzf ../linux-$(major)_$(version).orig.tar.gz; \
+		tar -C ../orig -xzf ../linux-$(MAJOR)_$(VERSION).orig.tar.gz; \
 	else \
 		echo "Can't find orig tarball." >&2; \
 		exit 1; \
@@ -207,29 +41,25 @@
 clean: unpatch
 	dh_testdir
 	rm -f version.Debian
-	rm -rf linux-source-$(version)
-	cd debian;						\
-	rm -f *-stamp-* *-stamp config.* *.kpatches.arch; 	\
-	rm -f header-install-* post-install-* bin/touch.orig;	\
-	rm -rf linux-source-* build-* install-*
+	cd debian; rm -f *.kpatches.arch
+	rm -rf $(BUILD_DIR) $(STAMPS_DIR)
 	dh_clean
 
-binary-indep: source tree patch-debian doc
-binary-arch: build
+binary-indep:
 	dh_testdir
-	cd debian; 			\
-	for i in $(subarchs); do	\
-	  $(MAKE) subarch=$${i} binary;	\
-	done
-	$(MAKE) -f debian/Makefile.inc binary-$(DEB_BUILD_ARCH)
+	$(MAKE) -f debian/rules.gen binary-indep
 
+binary-arch:
+	dh_testdir
+	$(MAKE) -f debian/rules.gen binary-arch-$(DEB_HOST_ARCH)
+
 binary:	binary-indep binary-arch
 
 #
 # Makes the master debian/control file by substituting
 # variable values into the template.
 #
-debian/control: debian/bin/gencontrol.py debian/changelog $(wildcard debian/templates/control.*.in)
+debian/control debian/rules.gen: debian/bin/gencontrol.py debian/changelog $(wildcard debian/templates/control.*.in)
 	if [ -f debian/control.md5sum ]; then \
 		if md5sum $^ | diff - debian/control.md5sum > /dev/null; then true; else \
 			$(MAKE) -f debian/rules debian/control-real; \
@@ -249,4 +79,4 @@
 	@echo
 	exit 1
 
-.PHONY: clean build unpack binary-indep binary-arch binary patch unpatch source tree
+.PHONY: clean build setup binary-indep binary-arch binary patch unpatch source tree

Added: trunk/kernel/source/linux-2.6/debian/rules.defs
===================================================================
--- trunk/kernel/source/linux-2.6/debian/rules.defs	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/rules.defs	2005-08-14 19:59:43 UTC (rev 3860)
@@ -0,0 +1,4 @@
+BUILD_DIR = debian/build
+STAMPS_DIR = debian/stamps
+TEMPLATES_DIR = debian/templates
+

Added: trunk/kernel/source/linux-2.6/debian/rules.real
===================================================================
--- trunk/kernel/source/linux-2.6/debian/rules.real	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/rules.real	2005-08-14 19:59:43 UTC (rev 3860)
@@ -0,0 +1,302 @@
+#
+# This Makefile executes the unpack/build/binary targets for a single
+# subarch, which is passed in the subarch variable. Empty subarch
+# variable means that we are building for an arch without the subarch.
+# Additionally, variables version, abiname and ltver are
+# expected to be available (need to be exported from the parent process).
+# It is possible to override the flavours by setting the flavours
+# variable. It will also be passed a list of source files
+#
+SHELL  := sh -e
+DEB_HOST_ARCH     := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -a$(ARCH) -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_ARCH    := $(shell dpkg-architecture -a$(ARCH) -qDEB_BUILD_ARCH)
+#
+# Build the list of common config files to be included
+#
+ifeq ($(SUBARCH),none)
+  basedir := debian/arch/$(ARCH)
+  append  := 
+else
+  basedir := debian/arch/$(ARCH)/$(SUBARCH)
+  append  := $(SUBARCH)-
+endif
+
+configs := $(notdir $(wildcard $(basedir)/config.*))
+configs := $(filter-out config, $(configs))
+ifndef flavours
+  flavours := $(patsubst config.%,%,$(configs))
+endif
+
+-include $(basedir)/Makefile.inc
+
+include debian/rules.defs
+
+#
+# Here we construct the command lines for different make-kpkg
+# calls (build, linux-image, linux-headers) based on the values
+# of variables defined so far and provided by the arch/subarch
+# in Makefile.inc. @flavour@ in the expressions is going to be
+# replaced by the flavour for which the command is run. 
+#
+kpkg_header := HEADER_CLEAN_HOOK='$(CURDIR)/$(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH)'
+kpkg_header += make-kpkg --append-to-version $(append)-$(ABINAME)
+kpkg_header += --arch $(ARCH)
+kpkg_header += --stem linux
+kpkg_header += --config defconfig
+kpkg_image := make-kpkg --append-to-version -$(ABINAME)-$(FLAVOUR)
+kpkg_image += --arch $(ARCH)
+kpkg_image += --stem linux
+kpkg_image += --initrd
+ifdef KPKG_SUBARCH
+  kpkg_image += --subarch $(KPKG_SUBARCH)
+endif
+ifdef headers_subarch
+  kpkg_header += --subarch $(headers_subarch)
+endif
+ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
+  kpkg_image += --cross-compile=$(DEB_HOST_GNU_TYPE)
+endif
+setup_env := env -i
+setup_env += HOME=$(HOME) LOGNAME=$(LOGNAME) PATH=$(PATH)
+setup_env += DEBIAN_ABINAME=$(ABINAME) DEBIAN_FLAVOUR=$(FLAVOUR) DEBIAN_VERSION=$(VERSION)
+ifdef build_makeflags
+  setup_env += MAKEFLAGS=$(build_makeflags)
+endif
+ifndef headers_dirs
+  headers_dirs = $(DEB_HOST_ARCH)
+endif
+ccommon = debian/arch/config debian/arch/$(ARCH)/config debian/arch/$(ARCH)/$(SUBARCH)/config
+
+#
+# Targets
+#
+binary-arch-subarch: install-header-$(ARCH)-$(SUBARCH)
+binary-arch-flavour: install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+
+binary-indep: install-doc install-patch install-source install-tree
+
+build: $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+
+setup-arch: $(STAMPS_DIR)/source
+setup-subarch: $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)
+setup-flavour: $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+
+$(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH): $(TEMPLATES_DIR)/header-install.in
+	sed -e 's, at kbpkg@,$(kbpkg),g'				\
+	    -e 's, at ksource_dir@,$(CURDIR)/$(kdir),g'		\
+	    -e 's, at flavours@,$(flavours),g'			\
+	    -e 's, at headers_dirs@,$(headers_dirs),g'		\
+            $< > $@
+	chmod u+x $@
+#
+# The way to make the correct package names is to make a
+# subarch-specific post-install script...
+#
+ifdef extra_postinstall_command
+  extra_command := $(extra_postinstall_command)
+else
+  extra_command := true
+endif
+$(BUILD_DIR)/post-install-$(ARCH)-$(SUBARCH): $(TEMPLATES_DIR)/post-install.in
+	sed -e 's, at initrd_modules@,$(initrd_modules),'			\
+	    -e 's, at append_subarch@,$(append),'				\
+	    -e 's, at extra_postinstall_command@,$(extra_command),'	\
+	    -e 's, at headers_dirs@,$(headers_dirs),g'			\
+	    $< > $@
+#
+# Generates the kernel config file for a subarch by merging
+# the arch-independent config file (arch/config),
+# arch-specific config file (arch/$(karch)/config),
+# and subarch specific one (arch/$(karch)/$(subarch)/config).
+# It is possible to avoid the inclusion of the arch-indep
+# config file by setting include_common_config = no in the
+# arch/$(karch)/Makefile.inc.
+#
+$(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(basedir)/config.$(FLAVOUR)
+	@echo "configs=$(configs)"
+	@echo "Generating configuration file $@:"
+	rm -f $@
+	for i in $(ccommon); do	\
+	  if [ -f $${i} ]; then	\
+	    cat $${i} >> $@;	\
+	  fi;			\
+	done
+#	Flavour config file must be present
+	cat $(basedir)/config.$(FLAVOUR) >> $@			 
+
+$(BUILD_DIR)/linux-source-$(VERSION).tar.bz2: SOURCE_DIR=$(BUILD_DIR)/source
+$(BUILD_DIR)/linux-source-$(VERSION).tar.bz2: DIR = $(BUILD_DIR)/linux-source-$(VERSION)
+$(BUILD_DIR)/linux-source-$(VERSION).tar.bz2: $(STAMPS_DIR)/source
+	rm -rf $@ $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	chmod -R u+rw,go=rX $(DIR)
+	cd $(BUILD_DIR); tar -cjf linux-source-$(VERSION).tar.bz2 linux-source-$(VERSION)
+	rm -rf $(DIR)
+
+srcfiles := $(filter-out debian, $(wildcard *))
+$(STAMPS_DIR)/source: DIR=$(BUILD_DIR)/source
+$(STAMPS_DIR)/source: debian/bin/apply
+	rm -rf $(DIR)
+	mkdir -p $(DIR)
+	cp -al $(srcfiles) $(DIR)
+	cd $(DIR); override_version=$(SOURCE_VERSION) home=$(CURDIR)/debian/patches-debian $(CURDIR)/debian/bin/apply
+	#make-kpkg does this when building kernel-source.
+	mv $(DIR)/scripts/package/Makefile $(DIR)/scripts/package/Makefile.dist
+	mv $(DIR)/scripts/package/builddeb $(DIR)/scripts/package/builddeb.dist
+	echo "# Dummy Makefile" > $(DIR)/scripts/package/Makefile
+	echo "all:" >> $(DIR)/scripts/package/Makefile
+	touch $@
+
+patches  := $(wildcard debian/patches-arch/$(SUBARCH).*)
+patches  += $(wildcard debian/patches-arch/$(SUBARCH)_*)
+patches  += $(wildcard debian/patches-arch/$(ARCH).*)
+patches  += $(wildcard debian/patches-arch/$(ARCH)_*)
+patches  := $(strip $(patches))
+$(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/source
+$(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
+$(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH): $(BUILD_DIR)/post-install-$(ARCH)-$(SUBARCH) $(STAMPS_DIR)/source
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	mkdir -p $(DIR)/debian
+	cp debian/changelog $(DIR)/debian
+	cp debian/copyright $(DIR)/debian
+	cp debian/control $(DIR)/debian/control
+	touch $(DIR)/debian/official
+	if [ -n '$(patches)' ]; then			\
+	  cd $(DIR);					\
+	  cat $(addprefix $(CURDIR)/,$(patches)) | patch -p1;	\
+	fi
+	install $< $(DIR)/debian/post-install
+	touch $@
+#
+# This target performs a build for a particular flavour. Note
+# that in this file it should be always placed *before* the
+# build-$(subarch)-% target, which creates the build directory.
+#
+$(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+$(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+	ln -fs $$(command -v touch) debian/build/touch.orig
+	cd $(DIR); $(setup_env) PATH=$(CURDIR)/build:$(CURDIR)/bin:$(PATH) $(kpkg_image) build
+ifdef image_postproc
+	cd $(DIR); $(image_postproc)
+endif
+	touch $@
+
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(BUILD_DIR)/config.$(ARCH)-$(SUBARCH)-$(FLAVOUR) $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH)
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	cp $< $(DIR)/.config
+	cd $(DIR); $(setup_env) $(kpkg_image) configure
+	touch $@
+
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/source-$(ARCH)-$(SUBARCH)
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)
+$(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/source-$(ARCH)-$(SUBARCH)
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	cd $(DIR); $(setup_env) $(kpkg_header) configure
+	touch $@
+
+install-base:
+	dh_compress
+	dh_fixperms
+	dh_installdeb
+	dh_gencontrol -- $(GENCONTROL_ARGS)
+	dh_md5sums
+	dh_builddeb
+
+install-doc: SOURCE_DIR=$(BUILD_DIR)/source
+install-doc: DIR=$(BUILD_DIR)/$@
+install-doc: $(STAMPS_DIR)/source
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	mkdir -p $(DIR)/debian
+	cp debian/changelog $(DIR)/debian
+	cp debian/copyright $(DIR)/debian
+	cp debian/control $(DIR)/debian/control
+	touch $(DIR)/debian/official
+	cd $(DIR) && $(setup_env) make-kpkg --stem linux kernel-doc
+	cat $(DIR)/debian/files >> debian/files
+	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
+	rm -rf $(DIR)
+
+install-dummy:
+	dh_testdir
+	dh_testroot
+	dh_clean -d -k
+	dh_installchangelogs
+	dh_installdocs
+	$(MAKE) -f debian/rules.real install-base
+
+install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): DIR=$(BUILD_DIR)/$@
+install-image-$(ARCH)-$(SUBARCH)-$(FLAVOUR): $(STAMPS_DIR)/build-$(ARCH)-$(SUBARCH)-$(FLAVOUR)
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	cd $(DIR); $(setup_env) $(kpkg_image) kernel-image
+	cat $(DIR)/debian/files >> debian/files
+	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
+	rm -rf $(DIR)
+
+install-header-$(ARCH)-$(SUBARCH): SOURCE_DIR=$(BUILD_DIR)/build-$(ARCH)-$(SUBARCH)
+install-header-$(ARCH)-$(SUBARCH): DIR=$(BUILD_DIR)/$@
+install-header-$(ARCH)-$(SUBARCH): $(STAMPS_DIR)/setup-$(ARCH)-$(SUBARCH) $(BUILD_DIR)/header-install-$(ARCH)-$(SUBARCH)
+	rm -rf $(DIR)
+	cp -al $(SOURCE_DIR) $(DIR)
+	cd $(DIR); $(setup_env) $(kpkg_header) kernel-headers
+	cat $(DIR)/debian/files >> debian/files
+	@for i in $$(awk '{ print $$1; }' $(DIR)/debian/files); do echo mv $(BUILD_DIR)/$$i ..; mv $(BUILD_DIR)/$$i ..; done
+	rm -rf $(DIR)
+
+install-patch: PACKAGE = linux-patch-debian-$(VERSION)
+install-patch: pbase := /usr/src/kernel-patches/all/$(VERSION)
+install-patch: pfull := debian/$(PACKAGE)$(pbase)
+install-patch: ptchs := $(notdir $(wildcard debian/patches-arch/*))
+install-patch: DH_OPTIONS = -p$(PACKAGE)
+install-patch:
+	dh_testdir
+	dh_testroot
+	dh_clean -d -k $(DH_OPTIONS)
+	dh_installdirs $(DH_OPTIONS) $(pbase)/apply $(pbase)/debian $(pbase)/unpatch
+	dh_install $(DH_OPTIONS) debian/patches-debian/* $(pbase)/debian
+#	Install the debian patches
+	sed 's/@version@/$(release)/g' debian/bin/apply > $(pfull)/apply/debian
+	sed 's/@upstream@/$(version)/g' debian/bin/unpatch > $(pfull)/unpatch/debian
+	chmod 755 $(pfull)/apply/debian $(pfull)/unpatch/debian
+	chmod 644 $(pfull)/debian/*.patch
+	bzip2 -9 $(pfull)/debian/*.patch
+#	Now the arch/subarch-specific patches
+	for i in $(ptchs); do \
+	  arch=$${i%%.*}; \
+	  ( \
+	    echo "Patch-name: $${arch}"; \
+	    echo "Patch-id: $${arch}_$(subst .,_,$(VERSION))"; \
+	    echo "Path-strip-level: 1"; \
+	    echo; \
+	    echo "Patch-file: debian/patches-arch/$${i}"; \
+	    echo "Architecture: $${arch}"; \
+	    echo "Kernel-version: $(VERSION)"; \
+	    echo; \
+	  ) > debian/$(PACKAGE).kpatches.arch; \
+	  dh_installkpatches $(DH_OPTIONS); \
+	done
+	dh_installdocs $(DH_OPTIONS)
+	dh_installchangelogs $(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+
+install-source: DH_OPTIONS = -plinux-source-$(VERSION)
+install-source: $(BUILD_DIR)/linux-source-$(VERSION).tar.bz2
+	dh_testdir
+	dh_testroot
+	dh_install $(DH_OPTIONS) $< /usr/src
+	dh_installdocs $(DH_OPTIONS) README
+	dh_installchangelogs $(DH_OPTIONS)
+	$(MAKE) -f debian/rules.real install-base DH_OPTIONS=$(DH_OPTIONS)
+
+install-tree: DH_OPTIONS = -plinux-tree-$(VERSION)
+install-tree:
+	$(MAKE) -f debian/rules.real install-dummy DH_OPTIONS=$(DH_OPTIONS)
+

Modified: trunk/kernel/source/linux-2.6/debian/templates/control.headers.main.in
===================================================================
--- trunk/kernel/source/linux-2.6/debian/templates/control.headers.main.in	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/templates/control.headers.main.in	2005-08-14 19:59:43 UTC (rev 3860)
@@ -12,6 +12,6 @@
  flavour of the kernel you intend the build for. To obtain such a set for the
  currently running kernel it is sufficient to run a command
  .
- apt-get install linux-headers- at version@- at abiname@-$(uname -r)
+ apt-get install linux-headers-$(uname -r)
  .
  and it will be unpacked in /usr/src/linux-headers- at version@- at abiname@-(flavour).

Modified: trunk/kernel/source/linux-2.6/debian/templates/post-install.in
===================================================================
--- trunk/kernel/source/linux-2.6/debian/templates/post-install.in	2005-08-14 15:29:21 UTC (rev 3859)
+++ trunk/kernel/source/linux-2.6/debian/templates/post-install.in	2005-08-14 19:59:43 UTC (rev 3860)
@@ -35,11 +35,10 @@
 # trailing dash, if it is non-empty.
 #
 append='@append_subarch@'
-suffix=${version#*$debnum-}
-prefix=${append}${version%%-*}${debnum}
-pkg=linux-headers-$version
+prefix=$DEBIAN_VERSION-$DEBIAN_ABINAME
+pkg=linux-headers-$prefix-$DEBIAN_FLAVOUR
 top=$PWD/debian/$pkg
-dir=$top/usr/src/linux-headers-$version
+dir=$top/usr/src/$pkg
 #
 # Here we need to find the kernel architecture which
 # is appropriate for the current flavour. It is available
@@ -59,6 +58,8 @@
 # Stuff below is ugly as hell, but does the trick so I'm not
 # touching it until we can invent something better.
 #
+mkdir -p $dir/arch/$arch/kernel
+mkdir -p $dir/include/asm-$arch
 mkdir -p $dir/include/linux
 cp -a .config $dir
 echo $debnum-$suffix > $dir/.extraversion
@@ -66,41 +67,49 @@
 
 find . -mindepth 1 -maxdepth 1 \
 	! -name debian -a ! -name Documentation -a ! -name include -a \
-	! -name DEBIAN -a ! -name scripts -a ! -name '.*' -a \( \
+	! -name DEBIAN -a ! -name scripts -a ! -name arch -a ! -name '.*' -a \( \
 	-name Makefile -o -type d \) \
 	-printf "../linux-headers-$prefix/%f\n" |
 	xargs ln -s --target-directory="$dir"
 
-cd include
-find . -mindepth 1 -maxdepth 1 \
-	! -name config -a ! -name linux -a \( \
-	! -name 'asm-*' -o -name asm-generic -o -name asm-${arch} \) \
-	-printf "../../linux-headers-$prefix/include/%f\n" |
+find arch/$arch -mindepth 1 -maxdepth 1 \( \
+	-type d -a ! -name kernel -o \
+	-type f -a \( -name 'Makefile*' -o -name 'Kconfig*' \) \) \
+	-printf "../../../linux-headers-$prefix/%p\n" |
+	xargs ln -s --target-directory=$dir/arch/$arch
+[ -f arch/$arch/kernel/asm-offsets.s ] && ln -f arch/$arch/kernel/asm-offsets.s $dir/arch/$arch/kernel
+ln -s ../../../../linux-headers-$prefix/arch/$arch/kernel/Makefile $dir/arch/$arch/kernel
+find include -mindepth 1 -maxdepth 1 \
+	! -name config -a ! -name linux -a ! -name 'asm-*' \
+	-printf "../../linux-headers-$prefix/%p\n" |
 	xargs ln -s --target-directory=$dir/include
-cp -a config $dir/include
+cp -a include/config $dir/include
 ln -sf asm-${arch} $dir/include/asm
-# Link in the additional header directories, 
-# specified in header_dirs 
-for i in asm-*
+find include/asm-$arch -mindepth 1 -maxdepth 1 \
+	\( -type f -a ! -links 2 -o ! -type f \) \
+	-printf "../../../linux-headers-$prefix/%p\n" |
+	xargs ln -s --target-directory=$dir/include/asm-$arch
+find include/asm-$arch -mindepth 1 -maxdepth 1 \
+	-type f -links 2 |
+	xargs ln -f --target-directory=$dir/include/asm-$arch
+for i in include/asm-*
 do
-  case ${i#asm-} in
-      generic | @headers_dirs@)
-        if [ ! -L $dir/include/${i} ]; then
-          ln -sf ../../linux-headers-$prefix/include/${i} $dir/include/${i}
-	fi
-	;;
-      *)
-        ;;
+  case ${i#include/asm-} in
+    $arch)
+      ;;
+    generic | @headers_dirs@)
+      ln -s ../../linux-headers-$prefix/$i $dir/$i
+      ;;
+    *)
+      ;;
   esac
 done
-
-find linux -mindepth 1 -maxdepth 1 \
+find include/linux -mindepth 1 -maxdepth 1 \
 	! -name autoconf.h -a ! -name compile.h -a ! -name version.h \
-	-printf "../../../linux-headers-$prefix/include/linux/%f\n" |
+	-printf "../../../linux-headers-$prefix/%p\n" |
 	xargs ln -s --target-directory=$dir/include/linux
-cp -a linux/autoconf.h linux/compile.h \
-	linux/version.h $dir/include/linux
-cd ..
+cp -a include/linux/autoconf.h include/linux/compile.h \
+	include/linux/version.h $dir/include/linux
 
 mkdir -p $top/lib/modules/$version
 ln -s /usr/src/linux-headers-$version $top/lib/modules/$version/build




More information about the Kernel-svn-changes mailing list