#!/usr/bin/make -f

# debian/rules that uses debhelper;
# based on rules.multi2, originally written by Joey Hess.
#
# This version is for a multibinary package. It also allows you to build any
# of the binary packages independantly, via binary-<package> targets.

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

PYTHON_VERSIONS=$(shell pyversions -r debian/control)

# This has to be exported to make some magic below work.
export DH_OPTIONS

# Proper autotools handling as per autotools-dev/README.Debian
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

# Initial CFLAGS; HOWMANY is the number of bytes looked at by file
CFLAGS = -DHOWMANY=0x18000

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

build: build-stamp
build-stamp:	
	dh_testdir

	mv config.sub config.sub.upstream && ln -s /usr/share/misc/config.sub
	mv config.guess config.guess.upstream && ln -s /usr/share/misc/config.guess
	./configure $(CONFFLAGS) --prefix=/usr \
		'--datadir=$${prefix}/share' '--mandir=$${prefix}/share/man' \
		--enable-fsect-man5
	rm config.sub && mv config.sub.upstream config.sub
	rm config.guess && mv config.guess.upstream config.guess
	mv libtool libtool.upstream && cp /usr/bin/libtool libtool
	make
	rm libtool && mv libtool.upstream libtool

	set -e; \
	for python in $(PYTHON_VERSIONS); do \
		(cd python && $$python setup.py build_ext -L$(CURDIR)/src/.libs); \
	done

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp build-stamp-* debian/copyright
	rm -rf python/build

	-$(MAKE) clean
	-$(MAKE) distclean

	dh_clean

install: DH_OPTIONS=
install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# Add here commands to install the package into debian/tmp.
	mv libtool libtool.upstream && cp /usr/bin/libtool libtool
	$(MAKE) prefix=`pwd`/debian/tmp/usr install
	rm libtool && mv libtool.upstream libtool
	install -m644 -p -D magic/magic.local debian/tmp/etc/magic
	install -m644 -p -D magic/magic.local debian/tmp/etc/magic.mime

	install -m644 -D debian/file.override debian/file/usr/share/lintian/overrides/file
	install -m644 -D debian/bug.presubj debian/file/usr/share/bug/file/presubj
	install -m644 -D debian/bug.control debian/libmagic1/usr/share/bug/libmagic1/control
	install -m644 -D debian/bug.presubj-lib debian/libmagic1/usr/share/bug/libmagic1/presubj
	install -m644 -D debian/bug.control debian/libmagic-dev/usr/share/bug/libmagic-dev/control
	dh_install --sourcedir=debian/tmp

	set -e; \
	for python in $(PYTHON_VERSIONS); do \
		(cd python && $$python setup.py install --no-compile \
			--prefix=$(CURDIR)/debian/python-magic/usr); \
	done


# This single target is used to build all the packages, all at once, or
# one at a time. So keep in mind: any options passed to commands here will
# affect _all_ packages. Anything you want to only affect one package
# should be put in another target, such as the install target.
binary-common:
	cat debian/copyright-prolog LEGAL.NOTICE > debian/copyright
	dh_testdir
	dh_testroot
	dh_installchangelogs ChangeLog
	dh_installdocs
	dh_installexamples
	dh_installmenu
#	dh_installdebconf
#	dh_installlogrotate
#	dh_installemacsen
#	dh_installcatalogs
#	dh_installpam
#	dh_installmime
#	dh_installinit
#	dh_installman
#	dh_installcron
#	dh_installinfo
#	dh_undocumented
	dh_strip
	dh_link
	dh_compress
	dh_fixperms
#	dh_perl
	dh_python
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps -Llibmagic1 -ldebian/libmagic1/usr/lib
	dh_gencontrol
	dh_md5sums
	dh_builddeb
	rm -f debian/copyright

# Build architecture independant packages using the common target.
binary-indep: build install
	 $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common

# Build architecture dependent packages using the common target.
binary-arch: build install
	$(MAKE) -f debian/rules DH_OPTIONS=-a binary-common

# Any other binary targets build just one binary package at a time.
binary-%: build install
	make -f debian/rules binary-common DH_OPTIONS=-p$*

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