#!/usr/bin/make -f
#
# debian/rules for kernel-kbuild-*
#
# GNU copyright 1997 to 1999 by Joey Hess.
# Copyright (c) 1999-2003 Herbert Xu <herbert@debian.org>
#
# $Id: rules,v 1.6 2004/03/11 08:20:33 herbert Exp $

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

# This is the debhelper compatability version to use.
export DH_COMPAT := 2

SHELL := sh -e

sedexp := s/^kernel-kbuild-\([^ ]*\) (\([^)]*:\)\?\([^)]*\)-.*).*/\1 \3/
sedout := $(shell sed '$(sedexp); q' debian/changelog)
kbver := $(firstword $(sedout))
version := $(word 2,$(sedout))

kbpkg := kernel-kbuild-$(kbver)
kbtarget := $(CURDIR)/debian/$(kbpkg)/usr/src/$(kbpkg)
DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)

unpack: unpack-stamp
unpack-stamp: decide.sh.out
	dh_testdir
	tar jxf /usr/src/kernel-source-$(version).tar.bz2
	touch $@

decide.sh.out: decide.sh
	sed 's/@kbuild@/$(kbpkg)/' decide.sh > decide.sh.out
	chmod +x decide.sh.out

build: build-stamp
build-stamp: unpack-stamp
	dh_testdir

ifneq ($(DEB_HOST_ARCH),sparc)
	cd kernel-source-$(version); \
		$(MAKE) defconfig; \
		mv .config .config.old; \
		sed 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
			.config.old > .config; \
		$(MAKE) prepare
else
	cd kernel-source-$(version); \
	for karch in sparc sparc64; do \
		$(MAKE) mrproper; \
		$(MAKE) ARCH=$$karch defconfig; \
		mv .config .config.old; \
		sed 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
			.config.old > .config; \
		$(MAKE) ARCH=$$karch prepare; \
		$(MAKE) ARCH=$$karch scripts; \
		mkdir -p scripts/mod/$$karch; \
		cp -a scripts/mod/mk_elfconfig scripts/mod/modpost scripts/mod/$$karch/; \
		rm scripts/mod/modpost scripts/mod/mk_elfconfig scripts/mod/*.o; \
	done
endif
	touch $@

clean:
	dh_testdir
	rm -f unpack-stamp decide.sh.out
	rm -rf kernel-source-$(version)
	dh_clean

install: build
	dh_testdir
	dh_clean -k
	dh_installdirs

ifeq ($(DEB_HOST_ARCH),sparc)
	cd kernel-source-$(version); \
		cp ../decide.sh.out scripts/mod/decide.sh; \
		ln -sf decide.sh scripts/mod/modpost; \
		ln -sf decide.sh scripts/mod/mk_elfconfig
endif

	cd kernel-source-$(version); \
		find . \( -type f -or -type l \) -path './scripts/*' ! -name '*.o' | \
			cpio -pd $(kbtarget)
	:> $(kbtarget)/scripts/Makefile


# Build architecture-independent files here.
binary-indep:

# Build architecture-dependent files here.
binary-arch: install
	dh_testdir
	dh_testroot

	dh_installdocs -a
	dh_installchangelogs -a
	dh_strip -a
	find $(kbtarget) -type f | xargs touch -t 9511212200
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

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