#!/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

# see FEATURE AREAS in dpkg-buildflags(1)
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
# package maintainers to append LDFLAGS
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

# main packaging script based on dh7 syntax
%:
	dh $@

DOCS=LEGAL_TERMS README LICENSE_APACHE20

DEB_DH_INSTALL_SOURCEDIR = $(CURDIR)/debian/tmp

override_dh_auto_install:
	mkdir -p $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/release_asgvolt64_V3.10.2.2.202111040101.tar.gz $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/libz.so.1 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/libstdc++.so.6 $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/libbal_host_api-oss.so $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/openolt $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/init.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/logrotate.d $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/watchdog $(DEB_DH_INSTALL_SOURCEDIR)/tmp
	cp -a $(CURDIR)/debian/read_rxtx_power $(DEB_DH_INSTALL_SOURCEDIR)/tmp

#override_dh_shlibdeps:
#	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l$(ONLP_LIB_PATH):$(OFDPA_LIB_PATH)

# avoid auto strip for debug ofagentapp.dbg
#
#override_dh_strip:
#	echo "No auto strip!"

#override_dh_installdeb:
#	dh_installdeb
#	for pkg in $$(dh_listpackages); do \
#		sed -i -e 's!#DEB_SOURCE#!$(DEB_SOURCE)!' debian/$$pkg/DEBIAN/*; \
#		sed -i -e 's!#OPDPA_VER_SUFFIX#!-$(OPDPA_VER)!g' debian/$$pkg/DEBIAN/*; \
#	done

test:
	@echo DEB_SOURCE=$(DEB_SOURCE)
	@echo DEB_VERSION=$(DEB_VERSION)
	@echo DEB_VERSION_EPOCH_UPSTREAM=$(DEB_VERSION_EPOCH_UPSTREAM)
	@echo DEB_VERSION_UPSTREAM_REVISION=$(DEB_VERSION_UPSTREAM_REVISION)
	@echo DEB_VERSION_UPSTREAM=$(DEB_VERSION_UPSTREAM)
	@echo DEB_DISTRIBUTION=$(DEB_DISTRIBUTION)
	@echo DEB_HOST_ARCH=$(DEB_HOST_ARCH)
	@echo DEB_HOST_ARCH_CPU=$(DEB_HOST_ARCH_CPU)
	@echo DEB_HOST_ARCH_OS=$(DEB_HOST_ARCH_OS)
	@echo DEB_HOST_GNU_TYPE=$(DEB_HOST_GNU_TYPE)
	@echo DEB_HOST_GNU_CPU=$(DEB_HOST_GNU_CPU)
	@echo DEB_HOST_GNU_SYSTEM=$(DEB_HOST_GNU_SYSTEM)
	@echo DEB_BUILD_ARCH=$(DEB_BUILD_ARCH)
	@echo DEB_BUILD_ARCH_CPU=$(DEB_BUILD_ARCH_CPU)
	@echo DEB_BUILD_ARCH_OS=$(DEB_BUILD_ARCH_OS)
	@echo DEB_BUILD_GNU_TYPE=$(DEB_BUILD_GNU_TYPE)
	@echo DEB_BUILD_GNU_CPU=$(DEB_BUILD_GNU_CPU)
	@echo DEB_BUILD_GNU_SYSTEM=$(DEB_BUILD_GNU_SYSTEM)
	@echo ONLP_LIB_PATH=$(ONLP_LIB_PATH)
#	@echo OFDPA_LIB_PATH=$(OFDPA_LIB_PATH)
#	@echo OFDPA_BIN_PATH=$(OFDPA_BIN_PATH)
