#!/usr/bin/make -f

include /usr/share/dpkg/architecture.mk
arch = $(DEB_HOST_ARCH_CPU)

export DH_VERBOSE = 1

# libs having "install_h" target to install headers:
libs_headers := \
	libdtrace

# All libraries to build and to package.
# Order is important:
libs := $(libs_headers) \

mans := \
	usr/src/man/man1m/dtrace.1m

unpack: unpack-stamp
unpack-stamp:
	dh_testdir
	dh_illumos_gate --build \
		-X usr/src/cmd/dtrace/demo/Makefile\* \
		-X usr/src/cmd/dtrace/demo/\*.pl \
		-X usr/src/cmd/dtrace/demo/chapters \
		usr/src/cmd/dtrace \
		usr/src/common/dis \
		$(libs:%=usr/src/lib/%) \
		$(mans) \


	# Not used and buggy:
	echo > usr/src/Makefile.msg.targ
	echo 'export YACC=/usr/bin/sgs-yacc' >> usr/env.sh
	echo 'export LEX=/usr/bin/sgs-lex' >> usr/env.sh

	# No isa dirs, we build a single version of dtrace:
	echo 'ROOTUSRSBINPROG32=$$(ROOTUSRSBINPROG)' >> usr/src/cmd/Makefile.cmd
	echo 'ROOTUSRSBINPROG64=$$(ROOTUSRSBINPROG)' >> usr/src/cmd/Makefile.cmd

	touch $@

patch: patch-stamp
patch-stamp: unpack-stamp
	dh_testdir
	[ ! -f debian/patches/series ] || QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2
	touch $@

unpatch:
	dh_testdir
	[ ! -f debian/patches/series ] || QUILT_PATCHES=debian/patches quilt pop -a -f || test $$? = 2
	rm -f patch-stamp

dirs-stamp:
	. usr/env.sh; mkdir -p \
		debian/tmp/usr/include \
		debian/tmp/usr/sbin \
		debian/tmp$$DEB_LIBDIR_32 \
		debian/tmp$$DEB_LIBDIR_64 \
		debian/tmp$$DEB_USRLIBDIR_32 \
		debian/tmp$$DEB_USRLIBDIR_64
	touch $@

headers-stamp: patch-stamp dirs-stamp
	dh_illumos_make -t install_h $(libs:%=usr/src/lib/%)
	touch $@

install: install-stamp
install-stamp: build-stamp
	# Move dev symlink from /lib into /usr/lib:
	for l in `find debian/tmp/lib32 -maxdepth 1 -type l -name \*.so`; do \
		ln -sf `readlink -f $$l` debian/tmp/usr/lib32/`basename $$l`; \
		rm $$l; \
	done
	for l in `find debian/tmp/lib/$(DEB_HOST_MULTIARCH) -maxdepth 1 -type l -name \*.so`; do \
		ln -sf `readlink -f $$l` debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/`basename $$l`; \
		rm $$l; \
	done
	# Make symlinks relative:
	symlinks -c debian/tmp/usr/lib32
	symlinks -c debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
	touch $@

build build-arch build-indep: build-stamp
build-stamp: patch-stamp dirs-stamp headers-stamp
	dh_illumos_make $(libs:%=usr/src/lib/%)
	dh_illumos_make usr/src/cmd/dtrace/$(arch)
	touch $@

binary binary-arch binary-indep: binary-stamp
binary-stamp: install-stamp
	dh_testdir
	dh_testroot
	dh_installdirs
	dh_install
	dh_installman
	dh_installdocs
	dh_installexamples
	dh_installchangelogs
	dh_link
	dh_compress
	dh_fixperms
	dh_makeshlibs -- -c4
	dh_installdeb
	dh_shlibdeps
	dh_strip
	find debian/dtrace-dev -name drti.o -print | xargs strip
	dh_gencontrol
	dh_md5sums
	dh_builddeb
	touch $@

clean: unpatch
	dh_testdir
	dh_testroot
	dh_clean
	rm -rf usr .pc

