#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

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

VERS = $(shell sed -ne '1s/.*(\(.*\)).*/\1/p' debian/changelog)

# KSRC is the location of the kernel source. This is the default value,
# when make-kpkg is used it will supply to real value
KSRC            = /usr/src/linux

# KDREV is the package-revision, as given to make-kpkg by the user.
# Just put a simply default value in here which we use when we test
# the packagebuilding without make-kpkg
KDREV           = "Custom.1.00"

# Separate the epoch from the normal revision number in KDREV
# for use with dh_gencontrol
KDREV_EPOCH = $(shell echo $(KDREV) | sed -ne '1s/\([^:]*:\)\?\(.*\)/\1/p')
KDREV_REV   = $(shell echo $(KDREV) | sed -ne '1s/\([^:]*:\)\?\(.*\)/\2/p')

# Now we need to get the kernel-version somehow
if test -d $(KSRC); then \
	KVERS=`sed -n -e '/UTS_RELEASE/s/^[^"]*"\([^"]*\)".*$$/\1/p' $(KSRC)/include/linux/version.h`; \
fi

# KMAINT and KEMAIL should be set but in case they are not we specify
# sane default values

ifeq ($(KMAINT),)
KMAINT = Rene Mayrhofer
endif
ifeq ($(KEMAIL),)
KEMAIL = rmayr@debian.org
endif

SED_SCRIPT=s!\$$KVERS!$(KVERS)!g; \
       s!\$$KEMAIL!$(KEMAIL)!; \
       s!\$$KMAINT!$(KMAINT)!; \
       s!\$$KDREV!$(KDREV)!

ifeq ($(DEB_DEST),)
DEB_DEST=$(KSRC)/..
endif

# Clear root command if already root
ifeq ($(shell id -u),0)
ROOT_CMD=
endif

# export these variables as they are necessary for building
export KERNELSRC=${KSRC}
export LIBRESWANSRCDIR=$(CURDIR)

# this primarily sets ARCH, we may be able to do that in another way
# but it also defines IPSECVERSION, which is needed below
include Makefile.inc

debian/control: debian/control.in
	if ! test -f $@; then \
		sed -e "$(SED_SCRIPT)" debian/control.in > $@; \
	fi

.PHONY: debian/control

debian/docs:
	cp debian/docs.in debian/libreswan-modules-$(KVERS).docs

debian/lintian-overrides:
	sed -e "$(SED_SCRIPT)" debian/lintian-overrides.in > debian/libreswan-modules-$(KVERS).lintian-overrides

configure: configure-stamp
configure-stamp:
	dh_testdir
	# Add here commands to configure the package.

	touch configure-stamp

build: debian/control debian/docs debian/lintian-overrides configure-stamp build-stamp
build-stamp:
	dh_testdir

	$(MAKE) module

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp

	$(MAKE) moduleclean
	rm -rf OBJ.* || true

	dh_clean

	rm -f debian/control || true
	rm -f debian/libreswan-modules-*.docs || true
	rm -f debian/libreswan-modules-*.lintian-overrides || true

MODDESTDIR=$(CURDIR)/debian/libreswan-modules-$(KVERS)/lib/modules/$(KVERS)/kernel/net/ipsec
install:
install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	mkdir -p $(MODDESTDIR)
	cp modobj26/ipsec.ko $(MODDESTDIR)


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs
	dh_installmodules
	dh_installchangelogs CHANGES
	dh_compress
	dh_fixperms
	dh_lintian
	dh_installdeb
	dh_gencontrol -- -v$(KDREV_EPOCH)$(VERS)+$(KDREV_REV)
	dh_md5sums
	dh_builddeb --destdir=$(DEB_DEST)

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

binary-modules: binary


kdist_image:
	$(ROOT_CMD) $(MAKE) -f debian/rules binary-modules
	$(ROOT_CMD) $(MAKE) -f debian/rules clean
kdist_clean: debian/control clean
kdist:
	$(ROOT_CMD) $(MAKE) -f debian/rules binary-modules
kdist_configure: configure-stamp


.PHONY: binary-modules kdist_image
