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

package=pcmcia-cs
KSRC=/usr/src/linux
MOD_DIR='.'
kvers=`sh debian/getkernvers $(KSRC)`
kversbase=`sh debian/getkernvers $(KSRC) | sed -e 's/\(.*\)-.*/\1/'`

# Automatically (non-interactively) configures the package using the
# kernel source tree.
.prereq.ok:
	echo -n -e "$(KSRC)\n\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)
	$(MAKE) -C modules all
	touch build-modules

clean:
	$(checkdir)
	$(RM) build build-modules
	cat debian/control-source debian/control-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 debian/substvars

binary-indep:	binary-source
	$(checkdir)

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

binary-cs:	checkroot build
	$(checkdir)
	cat debian/control-source debian/control-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/preinst	\
	  debian/postinst	\
	  debian/prerm		\
	  debian/postrm   debian/tmp/DEBIAN/.
	chmod +x \
	  debian/tmp/DEBIAN/preinst	\
	  debian/tmp/DEBIAN/postinst	\
	  debian/tmp/DEBIAN/prerm	\
	  debian/tmp/DEBIAN/postrm
# Install directories
	install -d			\
	  debian/tmp/etc		\
	  debian/tmp/sbin		\
	  debian/tmp/usr/sbin		\
	  debian/tmp/usr/X11R6/bin	\
	  debian/tmp/usr/man/man1	\
	  debian/tmp/usr/man/man4	\
	  debian/tmp/usr/man/man5	\
	  debian/tmp/usr/man/man8
# Install files
	$(MAKE) DIRS="$(shell sed -n -e \
	  '/DIRS = /{s/DIRS = //g; s/modules //g; p; }' Makefile)" \
	  PREFIX=`pwd`/debian/tmp install
	mv debian/tmp/sbin/pcinitrd debian/tmp/usr/sbin/.
# Strip binaries
	strip `ls debian/tmp/usr/X11R6/bin/* 2>/dev/null` 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 README debian/tmp/usr/doc/$(package)/.
	cp CHANGES debian/tmp/usr/doc/$(package)/changelog
	cp debian/notes debian/tmp/usr/doc/$(package)/notes.Debian
	cp man/probe.8 debian/tmp/usr/man/man8/.
# 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)/copyright
	cat COPYING >> debian/tmp/usr/doc/$(package)/copyright
# Determine shared library dependencies
	dpkg-shlibdeps `ls 2>/dev/null cardmgr/cardmgr cardmgr/cardctl \
	  cardmgr/ifport cardmgr/waveinfo cardmgr/scsi_info cardmgr/probe \
	  flash/ftl_format flash/ftl_check` -dSuggests `ls 2>/dev/null \
	  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
	$(checkdir)
	cat debian/control-source debian/control-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 -d debian/src/usr/doc/pcmcia-source
# 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
# Install changelog & copyright
	ln -sf ../../src/modules/$(package)/CHANGES \
	  debian/src/usr/doc/pcmcia-source/changelog
	ln -sf ../../src/modules/$(package)/debian/README \
	  debian/src/usr/doc/pcmcia-source/README
	ln -sf ../../src/modules/$(package)/debian/changelog \
	  debian/src/usr/doc/pcmcia-source/changelog.Debian
	ln -sf ../../src/modules/$(package)/debian/copyright \
	  debian/src/usr/doc/pcmcia-source/copyright
# Generate 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 ..

binary-modules:	checkroot build-modules
	$(checkdir)
	cat debian/control-source > debian/control-modules
	sed -e "s/\$${kvers}/$(kvers)/" -e "s/\$${kversbase}/$(kversbase)/" \
	  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
	sed -e "s/\$${kversbase}/$(kversbase)/" debian/prerm-modules.in \
	  > debian/tmp-modules/DEBIAN/prerm
	chmod +x debian/tmp-modules/DEBIAN/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)/copyright
	cat COPYING \
	  >> debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)/copyright
# 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'

kdist_configure:	.prereq.ok

# 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
