#!/usr/bin/make -f # Copyright 2020 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. distribution := $(shell lsb_release -is) derivative := $(shell if dpkg-vendor --derives-from Ubuntu; then echo Ubuntu; \ elif dpkg-vendor --derives-from Debian; then echo Debian; \ else echo Unknown; fi) include /usr/share/dpkg/architecture.mk export DEB_BUILD_MAINT_OPTIONS = hardening=+bindnow reproducible=+fixfilepath # Unit tests require more than 2 GB of RAM, so disable them on mipsel. # # Disable unit tests unconditionally if nocheck is set. ifeq ($(DEB_HOST_ARCH),mipsel) ABSL_RUN_TESTS=OFF else ifneq ($(filter nocheck,$(DEB_BUILD_OPTIONS)),) ABSL_RUN_TESTS=OFF else ABSL_RUN_TESTS=ON endif TEST_EXCLUSIONS = ifneq (,$(filter armhf,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_raw_hash_set_test else ifneq (,$(filter hppa,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_btree_test absl_raw_hash_set_test absl_stacktrace_test else ifneq (,$(filter powerpc,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_raw_hash_set_test absl_failure_signal_handler_test absl_stacktrace_test else ifneq (,$(filter ppc64el,$(DEB_HOST_ARCH))) # https://github.com/abseil/abseil-cpp/issues/1804 TEST_EXCLUSIONS += absl_mutex_test absl_failure_signal_handler_test absl_stacktrace_test else ifneq (,$(filter ppc64,$(DEB_HOST_ARCH))) # https://github.com/abseil/abseil-cpp/issues/1804 TEST_EXCLUSIONS += absl_mutex_test absl_failure_signal_handler_test absl_stacktrace_test absl_str_format_convert_test else ifneq (,$(filter riscv64,$(DEB_HOST_ARCH))) ifeq ($(derivative),Ubuntu) # test pass else # https://github.com/abseil/abseil-cpp/issues/2002 TEST_EXCLUSIONS += absl_hashtablez_sampler_test absl_cordz_sample_token_test endif else ifneq (,$(filter sh4,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_any_invocable_test else ifneq (,$(filter sparc64,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_waiter_test else ifneq (,$(filter x32,$(DEB_HOST_ARCH))) TEST_EXCLUSIONS += absl_hash_instantiated_test endif ifneq (,$(TEST_EXCLUSIONS)) SPACE = $(EMPTY) $(EMPTY) ABSL_TEST_EXTRA_ARGS = ARGS+="--exclude-regex '($(subst $(SPACE),|,$(TEST_EXCLUSIONS)))'" endif %: dh $@ override_dh_auto_clean: $(RM) -r $(CURDIR)/static $(RM) -r $(CURDIR)/shared override_dh_auto_configure: dh_auto_configure -Bstatic -- -DCMAKE_CXX_STANDARD=17 -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTING=ON -DABSL_BUILD_TESTING=ON -DABSL_USE_GOOGLETEST_HEAD=OFF dh_auto_configure -Bshared -- -DCMAKE_CXX_STANDARD=17 -DBUILD_SHARED_LIBS=ON override_dh_auto_build: dh_auto_build -Bstatic dh_auto_build -Bshared ifeq ($(ABSL_RUN_TESTS),ON) override_dh_auto_test: dh_auto_test -Bstatic -- $(ABSL_TEST_EXTRA_ARGS) endif override_dh_auto_install: dh_auto_install -Bstatic dh_auto_install -Bshared find debian/tmp -type d -empty -delete