password-store

Simple password manager using gpg and ordinary unix directories
git clone https://git.zx2c4.com/password-store
Log | Files | Refs | README | LICENSE

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)