1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#!/usr/bin/make -f
# resolve DEB_HOST_ARCH
include /usr/share/dpkg/architecture.mk
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
export DEB_CXXFLAGS_MAINT_APPEND = -Wall -pedantic
# trust upstream optimization level unless explicitly disabled
ifeq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
export DEB_CFLAGS_MAINT_STRIP=-O2
export DEB_CXXFLAGS_MAINT_STRIP=-O2
endif
# generate documentation unless nodoc requested
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
MANPAGES = debian/sccache.1
endif
# reduce risk of out-of-memory issues during build for weak arches
ifneq (,$(filter $(DEB_HOST_ARCH),armel armhf i386 mipsel riscv64))
export RUSTFLAGS += -C embed-bitcode=no -C lto=no -C linker-plugin-lto=no
endif
# Fails with error: Error executing cache write: Cannot write to read-only storage
TEST_READONLY = \
test_rust_cargo_cmd_readonly_preemtive_block
# Fails with error: Couldn't open config file
TEST_NO_CONFIG = \
test_gcp_arg_check \
test_s3_invalid_args
%:
dh $@
# ensure ccache is not in use during tests
# avoid optimization to not run out of memory
override_dh_auto_test:
PATH=/usr/sbin:/usr/bin:/sbin:/bin TMPDIR=$(CURDIR)/debian DEB_BUILD_OPTIONS=noopt dh_auto_test --buildsystem rust -- \
--no-fail-fast -- $(addprefix --skip ,$(TEST_READONLY) $(TEST_NO_CONFIG))
execute_after_dh_auto_install: $(MANPAGES)
sed -e 's/%DEB_HOST_MULTIARCH%/$(DEB_HOST_MULTIARCH)/' \
debian/update-sccache-symlinks.in \
> debian/update-sccache-symlinks
# build manpages
debian/sccache.1: debian/%.1: debian/sccache/usr/bin/%
help2man --section 1 --no-info \
--name "a fast C/C++/Rust compiler cache" \
--output $@ $< \
|| { $< --help; false; }
|