#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
DH_VERBOSE = 1

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

export PYBUILD_NAME = vpp-api
export PYBUILD_DIR = @CMAKE_SOURCE_DIR@/vpp-api/python
export PYBUILD_DESTDIR_python3=debian/python3-vpp-api/
export PYBUILD_DISABLE_python3=test
export PYBUILD_SYSTEM=distutils
export INSTALL_DIR=/opt/vpp/external/$(shell uname -m)/
DH_WITH = systemd,python3

build3vers := $(shell py3versions -sv)

# main packaging script based on dh7 syntax
%:
	dh $@ --with $(DH_WITH) --buildsystem=pybuild

override_dh_strip:
	dh_strip --dbg-package=vpp-dbg

override_dh_install:
	@for c in @VPP_COMPONENTS@; do \
	  @CMAKE_COMMAND@ \
	    -D CMAKE_INSTALL_CONFIG_NAME=@CMAKE_BUILD_TYPE@ \
	    -D CMAKE_INSTALL_COMPONENT=$$c \
	    -D CMAKE_INSTALL_PREFIX=@VPP_BINARY_DIR@/debian/$$c \
	    -P @CMAKE_BINARY_DIR@/cmake_install.cmake 2>&1 \
	    | grep -v 'Set runtime path of' ; \
	  for d in bin include share lib ; do \
	    if [ -d debian/$$c/$$d ] ; then \
	      mkdir -p debian/$$c/usr ; \
	      mv debian/$$c/$$d debian/$$c/usr/$$d ; \
	    fi ; \
	  done ; \
	  if [ -d debian/$$c ] ; then \
	    @CMAKE_SOURCE_DIR@/scripts/remove-rpath debian/$$c ; \
	  fi ; \
	done

override_dh_shlibdeps:
	dh_shlibdeps -l$(INSTALL_DIR)lib/:$(INSTALL_DIR)lib64
