#!/usr/bin/make -f
# -*- makefile -*-
# debian/rules file - for pcmcia-cs.
# Copyright 1996 by Brian Mays
# Patterned after the hello package by Ian Jackson.

package=pcmcia-cs
KSRC=/usr/src/linux
MOD_DIR='.'
kvers=`sed -n -e 's/^UTS_RELEASE=\(.*\)/\1/p' config.mk`

# Automatically (non-interactively) configures the package using the
# kernel source tree.
.prereq.ok:
	echo -e "$(KSRC)\n\n\n\n\n2\n" | ./Configure
	$(RM) build build-modules

build:	.prereq.ok
	$(checkdir)
	$(MAKE) DIRS="$(shell sed -n -e \
	  '/DIRS = /{s/DIRS = //g; s/modules //g; p; }' Makefile)" all
	touch build

build-modules:	.prereq.ok
	$(checkdir)
	ln -sf ../config.h modules/linux/config.h
	ln -sf ../config.h modules/linux/version.h
	$(MAKE) -C modules all
	touch build-modules

clean:
	$(checkdir)
	$(RM) build build-modules
	cat debian/control-{source,cs} > debian/control
	-$(MAKE) clean
	$(RM) modules/linux/config.h modules/linux/version.h
	$(RM) cardmgr/cardinfo
	$(RM) -r *~ debian/tmp debian/tmp-modules debian/src debian/*~ \
	  debian/files* debian/control-modules

binary-indep:

binary-arch:	checkroot binary-cs binary-source
	$(checkdir)

binary-cs:	checkroot build
	$(checkdir)
	cat debian/control-{source,cs} > debian/control
	$(RM) -r debian/tmp
	install -d debian/tmp debian/tmp/DEBIAN
	install -d debian/tmp/usr/doc/$(package)
# Install Debian package control information files
	cp debian/{pre,post}{inst,rm} debian/tmp/DEBIAN/.
	chmod +x debian/tmp/DEBIAN/{pre,post}{inst,rm}
# Install directories
	install -d debian/tmp/{etc,sbin,usr/{X11R6/bin,man/man{1,4,5,8}}}
# Install files
	$(MAKE) DIRS="$(shell sed -n -e \
	  '/DIRS = /{s/DIRS = //g; s/modules //g; p; }' Makefile)" \
	  PREFIX=`pwd`/debian/tmp install
# Strip binaries
	strip debian/tmp/usr/X11R6/bin/* debian/tmp/sbin/*
# Find configuration files
	find debian/tmp/etc -not -type d | sed -e 's%debian/tmp%%' \
	  > debian/tmp/DEBIAN/conffiles
# Install documentation
	cp SUPPORTED.CARDS CHANGES README debian/tmp/usr/doc/$(package)/.
	cp debian/notes debian/tmp/usr/doc/$(package)/notes.Debian
# Install changelog & copyright
	cp debian/changelog debian/tmp/usr/doc/$(package)/changelog.Debian
	gzip -9v debian/tmp/usr/doc/$(package)/*
	gzip -9v debian/tmp/usr/man/*/*
	cp debian/copyright debian/tmp/usr/doc/$(package)/.
# Determine shared library dependencies
	dpkg-shlibdeps cardmgr/cardmgr cardmgr/cardctl cardmgr/ifport \
	  cardmgr/waveinfo cardmgr/scsi_info cardmgr/probe \
	  flash/ftl_format flash/ftl_check -dSuggests \
	  $(shell test -f cardmgr/cardinfo && echo cardmgr/cardinfo)
# Genereate deb file
	dpkg-gencontrol -ppcmcia-cs
	chown -R root.root debian/tmp
	chmod -R g-ws debian/tmp
	dpkg-deb --build debian/tmp ..

binary-source:	checkroot build
	$(checkdir)
	cat debian/control-{source,cs} > debian/control
	$(RM) -r debian/src
	install -d debian/src debian/src/DEBIAN
# Install Debian package control information files
	cp debian/prerm-source debian/src/DEBIAN/prerm
	chmod +x debian/src/DEBIAN/prerm
# Install directories
	install -d debian/src/usr/src/modules/$(package)
# Install files
	find . \( -path ./debian/src -o -name 'tmp*' -o -name doc -o \
	  -name PCMCIA-HOWTO \) -prune -o -print | \
	  cpio -admp debian/src/usr/src/modules/$(package)
	cd debian/src/usr/src/modules/$(package) && \
	  $(MAKE) -f debian/rules clean
# Genereate deb file
	dpkg-gencontrol -ppcmcia-source -Pdebian/src
	chown -R root.root debian/src
	chmod -R g-ws debian/src
	dpkg-deb --build debian/src && dpkg-name -o -s .. debian/src.deb

binary-modules:	checkroot build-modules
	$(checkdir)
	cat debian/control-source > debian/control-modules
	sed -e "s/\$${kvers}/$(kvers)/" debian/control-modules.in \
	  >> debian/control-modules
	$(RM) -r debian/tmp-modules
	install -d debian/tmp-modules debian/tmp-modules/DEBIAN
	install -d "debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)"
# Install Debian package control information files
	cp debian/postinst-modules debian/tmp-modules/DEBIAN/postinst
	cp debian/prerm debian/tmp-modules/DEBIAN/prerm
	chmod +x debian/tmp-modules/DEBIAN/{postinst,prerm}
# Install files
	$(MAKE) DIRS=modules PREFIX=`pwd`/debian/tmp-modules install
# Install changelog & copyright
	cp debian/changelog \
	  debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)/changelog.Debian
	gzip -9v debian/tmp-modules/usr/doc/pcmcia-modules-*/*
	cp debian/copyright  \
	  debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)/.
# Genereate deb file
	kvers=$(kvers) && \
	  dpkg-gencontrol -Vkvers=$$kvers -p"pcmcia-modules-$$kvers" \
	    -Pdebian/tmp-modules -cdebian/control-modules \
	    -fdebian/files-modules
	chown -R root.root debian/tmp-modules
	chmod -R g-ws debian/tmp-modules
	dpkg-deb --build debian/tmp-modules $(MOD_DIR)/..

# Makes a binary package.  Uses the kernel source in the $(KSRC) directory
# to configure the modules.
kdist_image:	checkroot clean
	$(checkdir)
	$(MAKE) -f debian/rules MOD_DIR=$(KSRC) binary-modules

# Makes a debian changes file.  Intended for the kernel maintainer.
kdist_changes:
	@echo >&2 'Note: kdist_changes is obsolete'

# Prepares the package for distribution.  Intended for the kernel
# maintainer.
kdist:	kdist_image
	if [ "x$(KMAINT)" != x ]; then kmaint="$(KMAINT)"; fi; \
	  package=pcmcia-modules-$(kvers) && \
	  version=`dpkg-parsechangelog | sed -n 's/^Version: //p'` && \
	  arch=`dpkg --print-architecture` && \
	  chfile=$(KSRC)/../$${package}_$${version}_$${arch}.changes && \
	  dpkg-genchanges -b $${kmaint:+-m"$$kmaint"} -u$(KSRC)/.. \
	    -cdebian/control-modules -fdebian/files-modules > $$chfile.pt && \
	  pgp -fast $${kmaint:+-u$$kmaint} < $$chfile.pt > $$chfile && \
	  $(RM) $$chfile.pt

define checkdir
	test -f man/pcmcia.5 -a -f debian/rules
endef

# Below here is fairly generic really

binary:		binary-indep binary-arch

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

checkroot:
	$(checkdir)
	test root = "`whoami`"

.PHONY: binary binary-arch binary-indep binary-modules \
	clean checkroot kconf kdist kdist_image kdist_changes
