Makefile (3105B)
1 PREFIX ?= /usr 2 DESTDIR ?= 3 BINDIR ?= $(PREFIX)/bin 4 LIBDIR ?= $(PREFIX)/lib 5 MANDIR ?= $(PREFIX)/share/man 6 7 PLATFORMFILE := src/platform/$(shell uname | cut -d _ -f 1 | tr '[:upper:]' '[:lower:]').sh 8 9 BASHCOMPDIR ?= $(PREFIX)/share/bash-completion/completions 10 ZSHCOMPDIR ?= $(PREFIX)/share/zsh/site-functions 11 FISHCOMPDIR ?= $(PREFIX)/share/fish/vendor_completions.d 12 13 ifneq ($(WITH_ALLCOMP),) 14 WITH_BASHCOMP := $(WITH_ALLCOMP) 15 WITH_ZSHCOMP := $(WITH_ALLCOMP) 16 WITH_FISHCOMP := $(WITH_ALLCOMP) 17 endif 18 ifeq ($(WITH_BASHCOMP),) 19 ifneq ($(strip $(wildcard $(BASHCOMPDIR))),) 20 WITH_BASHCOMP := yes 21 endif 22 endif 23 ifeq ($(WITH_ZSHCOMP),) 24 ifneq ($(strip $(wildcard $(ZSHCOMPDIR))),) 25 WITH_ZSHCOMP := yes 26 endif 27 endif 28 ifeq ($(WITH_FISHCOMP),) 29 ifneq ($(strip $(wildcard $(FISHCOMPDIR))),) 30 WITH_FISHCOMP := yes 31 endif 32 endif 33 34 all: 35 @echo "Password store is a shell script, so there is nothing to do. Try \"make install\" instead." 36 37 install-common: 38 @install -v -d "$(DESTDIR)$(MANDIR)/man1" && install -m 0644 -v man/pass.1 "$(DESTDIR)$(MANDIR)/man1/pass.1" 39 @[ "$(WITH_BASHCOMP)" = "yes" ] || exit 0; install -v -d "$(DESTDIR)$(BASHCOMPDIR)" && install -m 0644 -v src/completion/pass.bash-completion "$(DESTDIR)$(BASHCOMPDIR)/pass" 40 @[ "$(WITH_ZSHCOMP)" = "yes" ] || exit 0; install -v -d "$(DESTDIR)$(ZSHCOMPDIR)" && install -m 0644 -v src/completion/pass.zsh-completion "$(DESTDIR)$(ZSHCOMPDIR)/_pass" 41 @[ "$(WITH_FISHCOMP)" = "yes" ] || exit 0; install -v -d "$(DESTDIR)$(FISHCOMPDIR)" && install -m 0644 -v src/completion/pass.fish-completion "$(DESTDIR)$(FISHCOMPDIR)/pass.fish" 42 43 44 ifneq ($(strip $(wildcard $(PLATFORMFILE))),) 45 install: install-common 46 @install -v -d "$(DESTDIR)$(LIBDIR)/password-store" && install -m 0644 -v "$(PLATFORMFILE)" "$(DESTDIR)$(LIBDIR)/password-store/platform.sh" 47 @install -v -d "$(DESTDIR)$(LIBDIR)/password-store/extensions" 48 @install -v -d "$(DESTDIR)$(BINDIR)/" 49 @trap 'rm -f src/.pass' EXIT; sed 's:.*PLATFORM_FUNCTION_FILE.*:source "$(LIBDIR)/password-store/platform.sh":;s:^SYSTEM_EXTENSION_DIR=.*:SYSTEM_EXTENSION_DIR="$(LIBDIR)/password-store/extensions":' src/password-store.sh > src/.pass && \ 50 install -v -d "$(DESTDIR)$(BINDIR)/" && install -m 0755 -v src/.pass "$(DESTDIR)$(BINDIR)/pass" 51 else 52 install: install-common 53 @install -v -d "$(DESTDIR)$(LIBDIR)/password-store/extensions" 54 @trap 'rm -f src/.pass' EXIT; sed '/PLATFORM_FUNCTION_FILE/d;s:^SYSTEM_EXTENSION_DIR=.*:SYSTEM_EXTENSION_DIR="$(LIBDIR)/password-store/extensions":' src/password-store.sh > src/.pass && \ 55 install -v -d "$(DESTDIR)$(BINDIR)/" && install -m 0755 -v src/.pass "$(DESTDIR)$(BINDIR)/pass" 56 endif 57 58 uninstall: 59 @rm -vrf \ 60 "$(DESTDIR)$(BINDIR)/pass" \ 61 "$(DESTDIR)$(LIBDIR)/password-store" \ 62 "$(DESTDIR)$(MANDIR)/man1/pass.1" \ 63 "$(DESTDIR)$(BASHCOMPDIR)/pass" \ 64 "$(DESTDIR)$(ZSHCOMPDIR)/_pass" \ 65 "$(DESTDIR)$(FISHCOMPDIR)/pass.fish" 66 67 TESTS = $(sort $(wildcard tests/t[0-9][0-9][0-9][0-9]-*.sh)) 68 69 test: $(TESTS) 70 71 $(TESTS): 72 @$@ $(PASS_TEST_OPTS) 73 74 clean: 75 $(RM) -rf tests/test-results/ tests/trash\ directory.*/ tests/gnupg/random_seed 76 77 .PHONY: install uninstall install-common test clean $(TESTS)