#!/usr/bin/make -f

install		= install -p -o root -g root
install_exec	= $(install) -m 755
install_dir	= $(install) -m 755 -d
install_nonex	= $(install) -m 644
install_script	= $(install) -m 755
install_zipped	= gzip -9c
install_symlink	= ln -s
install_strip   = strip --remove-section=.comment --remove-section=.note

CFLAGS		= -g -Wall

package		= httptunnel
rootdir		= `pwd`/debian/tmp
docdir		= $(rootdir)/usr/share/doc/$(package)
bindir		= $(rootdir)/usr/bin
mandir		= $(rootdir)/usr/share/man
man1dir		= $(mandir)/man1

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif

ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
install-target = "install-strip"
else
install-target = "install"
install_strip = /bin/true
endif

export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
  confflags += --build $(DEB_HOST_GNU_TYPE)
else
  confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
endif

build: debian/build.stamp
debian/build.stamp:
	$(checkdir)
	CC=gcc CFLAGS="$(CFLAGS)" ./configure $(confflags) --prefix=/usr \
		--mandir=/usr/share/man
	$(MAKE)
	touch $@

clean-build:
	-test -r /usr/share/misc/config.sub && \
	  cp -f /usr/share/misc/config.sub config.sub
	-test -r /usr/share/misc/config.guess && \
	  cp -f /usr/share/misc/config.guess config.guess
	$(RM) debian/build*.stamp
	-$(MAKE) distclean

binary: binary-arch binary-indep

binary-indep: debian/binary-indep.stamp
debian/binary-indep.stamp:
	touch $@

binary-arch: debian/binary-arch.stamp
debian/binary-arch.stamp: build
	$(checkdir)
	$(RM) -r $(rootdir)
	$(install_dir) $(rootdir)
	$(install_dir) $(rootdir)/DEBIAN
	$(install_dir) $(docdir)
	$(install_dir) $(bindir)
	$(install_dir) $(man1dir)
	$(MAKE) $(install-target) prefix=`pwd`/debian/tmp/usr \
		mandir=`pwd`/debian/tmp/usr/share/man
	$(install_strip) `pwd`/debian/tmp/usr/bin/hts \
		`pwd`/debian/tmp/usr/bin/htc
#	changelogs
	$(install_nonex) debian/changelog $(docdir)/changelog.Debian
	$(install_nonex) ChangeLog $(docdir)/changelog
#	docs
	$(install_nonex) FAQ NEWS README TODO DISCLAIMER HACKING AUTHORS \
		$(docdir)
	gzip -9fr $(docdir)/

	gzip -9fr $(man1dir)/

#	copyright
	$(install_nonex) debian/copyright $(docdir)
#	control
	#$(install_script) debian/prerm $(rootdir)/DEBIAN
	#$(install_script) debian/postinst $(rootdir)/DEBIAN

	dpkg-shlibdeps $(bindir)/hts $(bindir)/htc
	dpkg-gencontrol -isp

	chown -R root.root $(rootdir)
	chmod -R g-ws $(rootdir)

	dpkg --build $(rootdir) ..
	touch $@

define checkdir
	test -f htc.c -a -f hts.c -a -f debian/rules
endef

clean-binary:
	$(RM) debian/binary*.stamp
	$(RM) *~
	$(RM) -r debian/tmp debian/*~ debian/files debian/substvars

clean: clean-build clean-binary
