#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# This file is public domain software, 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

with_check := yes
ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
        with_check := disabled through DEB_BUILD_OPTIONS
endif

NJOBS =
# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
  COMMA = ,
  NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
endif

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

DEB_HOST_ARCH  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
export DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

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

CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
CFLAGS := -g $(shell dpkg-buildflags --get CFLAGS)
CXXFLAGS := -g $(shell dpkg-buildflags --get CXXFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS) -Wl,-z,defs

ifeq (m68k,$(DEB_HOST_ARCH))
  CFLAGS += -O0
else ifeq (sh4,$(DEB_HOST_ARCH))
  CFLAGS += -mieee
else
  CFLAGS := $(subst -O2,-O3,$(CFLAGS))
  CXXFLAGS := $(subst -O2,-O3,$(CXXFLAGS))
endif

# Re-enable TLS on sparc.
# ifeq (sparc,$(DEB_HOST_ARCH))
#     confflags += --disable-thread-safe
# endif

build-doc: stamps/configure-stamp
	$(MAKE) -C build pdf info html

stamps/autoreconf-stamp:
	dh_autoreconf
	@mkdir -p stamps
	touch $@

stamps/configure-stamp: stamps/autoreconf-stamp
	dh_testdir
	rm -rf build
	mkdir -p build
	chmod +x configure
	cd build && \
	    ../configure $(confflags) \
		--prefix=/usr \
		--enable-shared \
		--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) \
		CPPFLAGS="$(CPPFLAGS)" \
		CFLAGS="$(CFLAGS)" \
		CXXFLAGS="$(CXXFLAGS)" \
		LDFLAGS="$(LDFLAGS)"
	@mkdir -p stamps
	touch $@

stamps/build-stamp: stamps/configure-stamp
	dh_testdir
	$(MAKE) $(NJOBS) -C build

ifeq ($(with_check),yes)
  ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
	GMP_CHECK_RANDOMIZE=1 $(MAKE) -C build check
  endif
endif
	touch $@

build-indep: stamps/build-stamp
build-arch: stamps/build-stamp
build: build-indep build-arch

clean:
	dh_autoreconf_clean
	rm -rf stamps
	dh_testdir
	dh_testroot
	rm -rf build
	dh_clean

install: DH_OPTIONS=
install: build
	dh_testdir
	dh_testroot
	dh_prep
	dh_clean
	dh_installdirs
	$(MAKE) -C build DESTDIR=$(CURDIR)/debian/tmp install

	# Miscellaneous install.
	dh_install -i
	dh_install -plibmpfr4
	dh_install -plibmpfr-dev

binary-indep: build build-doc install
	dh_testdir
	dh_testroot
	dh_installchangelogs -i ChangeLog
	dh_installdocs -i -A BUGS NEWS README TODO AUTHORS
	dh_installexamples -i
	dh_installinfo -i
	dh_link -i
	dh_compress -i
	dh_fixperms -i
	dh_lintian -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installchangelogs -s ChangeLog
	dh_installdocs -s -A BUGS NEWS README TODO AUTHORS
	dh_installexamples -s
	dh_installinfo -s
	DH_COMPAT=9 dh_strip -s --dbg-package=libmpfr4-dbg
	dh_link -s
	dh_compress -s
	for f in BUGS NEWS README TODO AUTHORS changelog; do \
	  if [ -f debian/libmpfr4/usr/share/doc/libmpfr4/$$f.gz ]; then \
	    f=$$f.gz; \
	  fi; \
	  ln -sf ../libmpfr4/$$f debian/libmpfr4-dbg/usr/share/doc/libmpfr4-dbg/$$f; \
	  ln -sf ../libmpfr4/$$f debian/libmpfr-dev/usr/share/doc/libmpfr-dev/$$f; \
	done
	dh_makeshlibs -V -plibmpfr4
	dh_fixperms -s
	dh_lintian -s
	dh_installdeb -s
	dh_shlibdeps -s
	dh_gencontrol -s
	dh_md5sums -s
	dh_builddeb -s

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