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

package=pcmcia-cs
KSRC=/usr/src/linux
MOD_DIR='.'
kvers=`cat debian/KVERS`

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

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

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-extra  \
	  > debian/control
	-$(MAKE) clean
	$(RM) modules/linux/config.h modules/linux/version.h \
	  include/pcmcia/config.h cardmgr/cardinfo
	$(RM) -r */.depfiles
	$(RM) -r *~ */*~ debian/tmp debian/tmp-modules debian/src debian/*~ \
	  debian/files* debian/control.tmp debian/substvars	\
	  debian/KVERS debian/MODVERS

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
	install \
	  debian/preinst	\
	  debian/postinst	\
	  debian/prerm		\
	  debian/postrm   debian/tmp/DEBIAN/.
# 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="`sed -n '/DIRS = /{;s///;s/modules//;p;q;}' 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 's%debian/tmp%%' \
	  > debian/tmp/DEBIAN/conffiles
# Install documentation
	install -m644 SUPPORTED.CARDS README debian/tmp/usr/doc/$(package)/.
	install -m644 CHANGES debian/tmp/usr/doc/$(package)/changelog
	install -m644 debian/notes debian/tmp/usr/doc/$(package)/notes.Debian
	install -m644 debian/FAQ debian/tmp/usr/doc/$(package)/FAQ.Debian
	install -m644 man/probe.8 debian/tmp/usr/man/man8/.
# Install changelog & copyright
	install -m644 debian/changelog	\
	  debian/tmp/usr/doc/$(package)/changelog.Debian
	gzip -9v debian/tmp/usr/doc/$(package)/*
	install -d debian/tmp/usr/doc/$(package)/examples
	install -m644 examples/* debian/tmp/usr/doc/$(package)/examples
	gzip -9v debian/tmp/usr/doc/$(package)/examples/*
	gzip -9v debian/tmp/usr/man/*/*
	install -m644 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
	sed '/:/s/, *$$//' debian/tmp/DEBIAN/control \
	  >debian/tmp/DEBIAN/control.new
	mv debian/tmp/DEBIAN/control.new debian/tmp/DEBIAN/control
	chown -R root.root debian/tmp
	chmod 755 debian/tmp/etc/init.d/* debian/tmp/etc/pcmcia/*
	chmod 644 debian/tmp/usr/man/*/*
	chmod 644 debian/tmp/etc/pcmcia/*.opts \
	  debian/tmp/etc/pcmcia/config debian/tmp/etc/pcmcia/shared
	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
	install debian/prerm-source 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
	install -m 644 debian/copyright	\
	  debian/src/usr/doc/pcmcia-source/copyright
# Generate deb file
	dpkg-gencontrol -ppcmcia-source -Pdebian/src
	chown -R root.root debian/src
	find debian/src -type d | xargs chmod 755
	find debian/src -type f -perm -100 | xargs chmod 755
	find debian/src -type f -not -perm -100 | xargs chmod 644
	dpkg-deb --build debian/src ..

binary-modules:	checkroot build-modules
	$(checkdir)
	$(RM) -r debian/tmp-modules
	install -d debian/tmp-modules debian/tmp-modules/DEBIAN
	KSRC=$(KSRC) sh -v debian/setvers.sh
	install -d "debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)"
# Install files
	$(MAKE) DIRS=modules PREFIX=`pwd`/debian/tmp-modules install
# Install changelog & copyright
	install -m644 debian/changelog \
	  debian/tmp-modules/usr/doc/pcmcia-modules-$(kvers)/changelog.Debian
	gzip -9v debian/tmp-modules/usr/doc/pcmcia-modules-*/*
	install -m644 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
	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
	KSRC="$(KSRC)" KMAINT="$(KMAINT)" sh -v debian/genchanges.sh

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
