contrib/packaging/debian/rules
author Georges Racinet <georges.racinet@octobus.net>
Fri, 27 Dec 2019 23:04:18 +0100
changeset 44257 9896a8d0d3d2
parent 43320 7b638d25b8e4
child 45024 36178b5c9aeb
permissions -rwxr-xr-x
rust-node: handling binary Node prefix Parallel to the inner signatures of the nodetree functions in revlog.c, we'll have to handle prefixes of `Node` in binary form. Another motivation is that it allows to convert from full Node references to `NodePrefixRef` without copy. This is expected to be by far the most common case in practice. There's a slight complication due to the fact that we'll be sometimes interested in prefixes with an odd number of hexadecimal digits, which translates in binary form by a last byte in which only the highest weight 4 bits are considered. This is totally transparent for callers and could be revised once we have proper means to measure performance. The C implementation does the same, passing the length in nybbles as function arguments. Because Rust byte slices already have a length, we carry the even/odd informaton as a boolean, to avoid introducing logical redundancies and the related potential inconsistency bugs. There are a few candidates for inlining here, but we refrain from such premature optimizations, letting the compiler decide. Differential Revision: https://phab.mercurial-scm.org/D7790

#!/usr/bin/make -f
# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1

CPUS=$(shell cat /proc/cpuinfo | grep -E ^processor | wc -l)

export HGPYTHON3=1
export PYTHON=python3

%:
	dh $@ --with python3

override_dh_auto_test:
	http_proxy='' dh_auto_test -- TESTFLAGS="-j$(CPUS)"

override_dh_python3:
	dh_python3 --shebang=/usr/bin/python3

override_dh_auto_clean:
	$(MAKE) cleanbutpackages
	$(MAKE) -C contrib/chg clean

override_dh_auto_build:
	$(MAKE) all
	$(MAKE) -C contrib/chg all

override_dh_auto_install:
	python3 setup.py install --root "$(CURDIR)"/debian/mercurial --install-layout=deb
	# chg
	make -C contrib/chg \
		DESTDIR="$(CURDIR)"/debian/mercurial \
		PREFIX=/usr \
		install
	make install-doc PREFIX="$(CURDIR)"/debian/mercurial/usr
	cp contrib/hg-ssh "$(CURDIR)"/debian/mercurial/usr/bin
	mkdir -p "$(CURDIR)"/debian/mercurial/usr/share/mercurial
	cp contrib/hgk "$(CURDIR)"/debian/mercurial/usr/share/mercurial
	mkdir -p "$(CURDIR)"/debian/mercurial/etc/mercurial/hgrc.d/
	cp contrib/packaging/debian/*.rc "$(CURDIR)"/debian/mercurial/etc/mercurial/hgrc.d/
	# completions
	mkdir -p "$(CURDIR)"/debian/mercurial/usr/share/bash-completion/completions
	cp contrib/bash_completion "$(CURDIR)"/debian/mercurial/usr/share/bash-completion/completions/hg
	mkdir -p "$(CURDIR)"/debian/mercurial/usr/share/zsh/vendor-completions
	cp contrib/zsh_completion "$(CURDIR)"/debian/mercurial/usr/share/zsh/vendor-completions/_hg