#!/usr/bin/make -f
# debian/rules makefile that uses debhelper.
#
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
INSTALL_PROGRAM = install -p -m 755
CFLAGS = -Wall
LDFLAGS =
DESTDIR = $(CURDIR)/debian/tmp

# see Debian Policy Manual - source packages
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0 -DNDEBUG
else
	CFLAGS += -O2 -DNDEBUG -fomit-frame-pointer
endif
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -g
endif
ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
	INSTALL_PROGRAM += -s
endif
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	MAKEFLAGS += -j$(NUMJOBS)
endif

# by default compile RHash with openssl runtime linking
ifeq (,$(findstring nossl,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -DUSE_OPENSSL
ifneq (,$(findstring ssldynamic,$(DEB_BUILD_OPTIONS)))
	LDFLAGS += -lcrypto
else
	CFLAGS  += -DOPENSSL_RUNTIME -rdynamic
	LDFLAGS += -ldl
endif
endif

# using debhelper >= 8 to build the package
%:
	dh $@

override_dh_auto_build:
	# Compile the package.
	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" lib-shared all
	mkdir -p $(DESTDIR) && ln -fs $(CURDIR)/librhash $(DESTDIR)/rhash
	ln -fs $(CURDIR)/librhash/librhash.so.0 $(DESTDIR)/ && ln -fs librhash.so.0 $(DESTDIR)/librhash.so
	LIBRHASH_INC=-I$(DESTDIR) LIBRHASH_LD=-L$(DESTDIR) $(MAKE) -C bindings configure
	$(MAKE) -C bindings build LIBRHASH_INC=-I$(DESTDIR) LIBRHASH_LD=-L$(DESTDIR)
	chrpath -d bindings/perl/blib/arch/auto/Rhash/Rhash.so

override_dh_auto_test:
	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" test
	LD_LIBRARY_PATH=$(DESTDIR) $(MAKE) -C bindings test

override_dh_auto_install:
	# Install the program and its translation strings
	$(MAKE) PREFIX=/usr DESTDIR=$(CURDIR)/debian/rhash INSTALL_PROGRAM="$(INSTALL_PROGRAM)" install install-gmo
	# Install static library
	$(MAKE) PREFIX=/usr DESTDIR=$(CURDIR)/debian/librhash-dev install-lib-static
	# Install shared library
	$(MAKE) PREFIX=/usr DESTDIR=$(CURDIR)/debian/librhash0 install-lib-shared
	# Install language bindings
	$(MAKE) -C bindings install DESTDIR=$(DESTDIR) PREFIX=/usr sitedir=$(DESTDIR)/usr/lib/ruby

override_dh_strip:
	dh_strip -plibrhash0 --dbg-package=librhash0-dbg
	dh_strip

override_dh_auto_clean:
	$(MAKE) distclean
	$(MAKE) -C bindings distclean
