#! /usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 export DEB_BUILD_MAINT_OPTIONS = hardening=+all include /usr/share/dpkg/architecture.mk # for cross compilation ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) export CC := $(DEB_HOST_GNU_TYPE)-gcc export PKG_CONFIG := $(DEB_HOST_GNU_TYPE)-pkg-config export _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata__$(DEB_HOST_MULTIARCH) define ruby_env RUBYLIB=/usr/lib/$(DEB_HOST_MULTIARCH)/ruby-crossbuild/$$($(1) -e "puts RbConfig::CONFIG['ruby_version']") endef else define ruby_env endef endif ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) MAKEFLAGS += -j$(NUMJOBS) endif DOPACKAGES = $(shell dh_listpackages) BUILT_USING=$(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W "libsepol-dev") # Upstream recommends using this flag export DEB_CFLAGS_MAINT_APPEND = -fno-semantic-interposition ## The build system doesn't use CPPFLAGS, pass them to CFLAGS to enable the ## missing (hardening) flags. Also enable Wall and Wextra to spot basic irregularities. export DEB_CFLAGS_MAINT_APPEND += $(shell dpkg-buildflags --get CPPFLAGS) -Wall -Wextra ifneq ($(filter python3-selinux,$(DOPACKAGES)),) PY3VERSIONS = $(shell py3versions -rv) endif ifneq ($(filter ruby-selinux,$(DOPACKAGES)),) RUBY_VERSIONS := $(shell dh_ruby --print-supported) endif %: @dh $@ ## Set up some variables to be passed to the upstream Makefile extra_make_args = ARCH=$(patsubst i%86,i386,$(DEB_HOST_GNU_CPU)) extra_make_args += USE_PCRE2=y override_dh_auto_build: $(MAKE) all $(extra_make_args) ifneq ($(filter python3-selinux,$(DOPACKAGES)),) set -e; for version in $(PY3VERSIONS); do \ $(MAKE) pywrap $(extra_make_args) PYTHON=python$$version; \ done; endif ifneq ($(filter ruby-selinux,$(DOPACKAGES)),) set -e; for version in $(RUBY_VERSIONS); do \ $(call ruby_env,$$version) \ $(MAKE) rubywrap $(extra_make_args) RUBY=$$version; \ done; endif override_dh_auto_install: $(MAKE) install $(extra_make_args) DESTDIR="${CURDIR}/debian/tmp" \ LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) \ SHLIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH) ifneq ($(filter python3-selinux,$(DOPACKAGES)),) set -e; for version in $(PY3VERSIONS); do \ $(MAKE) install-pywrap $(extra_make_args) PYTHON=python$$version DESTDIR="${CURDIR}/debian/tmp" DEB_PYTHON_INSTALL_LAYOUT=deb; \ done; find "${CURDIR}/debian/tmp" -name direct_url.json -delete ; find "${CURDIR}/debian/tmp" -name RECORD -exec sed -i '/\/direct_url.json,/d' {} + ; endif ifneq ($(filter ruby-selinux,$(DOPACKAGES)),) set -e; for version in $(RUBY_VERSIONS); do \ $(call ruby_env,$$version) \ $(MAKE) install-rubywrap $(extra_make_args) RUBY=$$version DESTDIR="${CURDIR}/debian/tmp"; \ done; endif override_dh_auto_clean: rm -f utils/getpolicyload $(MAKE) distclean $(extra_make_args) PYTHON=true ifneq ($(filter python3-selinux,$(DOPACKAGES)),) set -e; for version in $(PY3VERSIONS); do \ $(MAKE) clean-pywrap $(extra_make_args) PYTHON=python$$version; \ done; endif ifneq ($(filter ruby-selinux,$(DOPACKAGES)),) set -e; for version in $(RUBY_VERSIONS); do \ $(call ruby_env,$$version) \ $(MAKE) clean-rubywrap $(extra_make_args) RUBY=$$version; \ done; endif override_dh_gencontrol: dh_gencontrol -- -VBuilt-Using="$(BUILT_USING)" override_dh_makeshlibs: dh_makeshlibs -plibselinux1 --add-udeb="libselinux1-udeb" -V dh_makeshlibs --remaining-packages