#!/usr/bin/make -f DEB_DESTDIR := $(CURDIR)/debian/tmp STUB_BINARIES := rustc cargo cargo-clippy cargo-fmt cargo-miri clippy-driver rust-gdb rust-lldb rls rust-analyzer rustdoc rustfmt SH_COMPLETIONS_FULL := bash zsh SH_COMPLETIONS_MIN := fish elvish # create some temporary directories for rustup # they are needed during the shell completion generation export RUSTUP_HOME = $CURDIR/target/rustup %: dh $@ --buildsystem cargo --with bash-completion override_dh_auto_install-arch: dh_auto_install -O--buildsystem=cargo # rename rustup-init to rustup so that rustup will not be in the # onboarding tutorial mode install -d $(DEB_DESTDIR)/usr/bin/ mv $(CURDIR)/debian/rustup/usr/bin/rustup-init $(DEB_DESTDIR)/usr/bin/rustup # make symbolic links for all the Rust tools $(foreach b,$(STUB_BINARIES),ln -sf rustup $(DEB_DESTDIR)/usr/bin/$(b);) # generate shell completions $(foreach p,rustup cargo,\ $(foreach s,$(SH_COMPLETIONS_FULL),\ $(DEB_DESTDIR)/usr/bin/rustup completions $(s) $(p) > $(DEB_DESTDIR)/$(p).$(s);)\ ) # for other shells, only rustup completion is supported $(foreach s,$(SH_COMPLETIONS_MIN),\ $(DEB_DESTDIR)/usr/bin/rustup completions $(s) rustup > $(DEB_DESTDIR)/rustup.$(s);) # install completions for non-bash shells install -d $(DEB_DESTDIR)/usr/share/zsh/vendor-completions/ \ $(DEB_DESTDIR)/usr/share/fish/vendor_completions.d/ \ $(DEB_DESTDIR)/usr/share/elvish/lib mv $(DEB_DESTDIR)/rustup.zsh $(DEB_DESTDIR)/usr/share/zsh/vendor-completions/_rustup mv $(DEB_DESTDIR)/cargo.zsh $(DEB_DESTDIR)/usr/share/zsh/vendor-completions/_cargo mv $(DEB_DESTDIR)/*.fish $(DEB_DESTDIR)/usr/share/fish/vendor_completions.d/ mv $(DEB_DESTDIR)/rustup.elvish $(DEB_DESTDIR)/usr/share/elvish/lib/rustup.elv refresh: clean Cargo.toml $(CURDIR)/debian/refresh.sh