#!/usr/bin/make -f
# -*- makefile -*-
#export DH_VERBOSE=1

UPSTREAM_GIT = https://github.com/openvswitch/ovn
include /usr/share/openstack-pkg-tools/pkgos.make

export DEB_BUILD_MAINT_OPTIONS=hardening=+bindnow

%:
	dh $@ --with autoreconf,python3,sphinxdoc

# use --as-needed only if supported by dh-autoreconf (to simplify backporting)
DH_AS_NEEDED=$(shell dpkg --compare-versions $$(dpkg --status dh-autoreconf | grep Version | cut -d' ' -f2) ge 6 && echo --as-needed)
override_dh_autoreconf:
	dh_autoreconf $(DH_AS_NEEDED)

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
PARALLEL = -j$(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
PARALLEL =
endif

override_dh_auto_configure:
	# Configure OVS before OVN
	test -d $(CURDIR)/ovs || mkdir ovs
	cd ovs && tar -xzf /usr/src/openvswitch/openvswitch.tar.gz --strip-components=1
	cd ovs && ./configure --enable-ssl --localstatedir=/var --sysconfdir=/etc --prefix=/usr
	# Use dh_auto_configure to build OVN
	dh_auto_configure -- \
		--prefix=/usr \
		--localstatedir=/var \
		--sysconfdir=/etc \
		--with-dbdir=/var/lib/ovn \
		--with-ovs-source=$(CURDIR)/ovs \
		--enable-ssl

# NOTE(jamespage): by default, just run all tests
TEST_LIST =

# arm64,armhf:
#  168: ovn -- ovn-controller incremental processing    FAILED (ovn-performance.at:483)
ifneq (,$(filter arm64 armhf, $(DEB_HOST_ARCH)))
TEST_LIST = 1-167 169-390 393-
endif # arm64,armhf

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	if $(MAKE) check TESTSUITEFLAGS='$(PARALLEL) $(TEST_LIST)' || \
                $(MAKE) check TESTSUITEFLAGS='--recheck'; then :; \
	else \
		cat tests/testsuite.log; \
		exit 1; \
	fi
endif # nocheck

override_dh_auto_build:
	cd ovs && $(MAKE) $(PARALLEL)
	$(MAKE) $(PARALLEL)

override_dh_auto_clean:
	dh_auto_clean
	rm -rf ovs

override_dh_installinit:
	# Package does not ship any init.d files
	dh_installinit --no-scripts

override_dh_installsystemd:
	dh_installsystemd --restart-after-upgrade -povn-central --name=ovn-northd
	dh_installsystemd --restart-after-upgrade -povn-central --name=ovn-ovsdb-server-sb
	dh_installsystemd --restart-after-upgrade -povn-central --name=ovn-ovsdb-server-nb
	dh_installsystemd --restart-after-upgrade -povn-ic-db   --name=ovn-ovsdb-server-ic-sb
	dh_installsystemd --restart-after-upgrade -povn-ic-db   --name=ovn-ovsdb-server-ic-nb
	dh_installsystemd --restart-after-upgrade -povn-host    --name=ovn-controller
	dh_installsystemd --restart-after-upgrade

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3