From f4e068268ca15e1623d038acc33abd04a24a2f5f Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 24 Apr 2014 22:38:38 +0200 Subject: Makefile: osx/bsd does not support -D --- INSTALL | 3 ++- Makefile | 47 +++++++++++++++++++++++------------------------ 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/INSTALL b/INSTALL index a0214b4..f267f80 100644 --- a/INSTALL +++ b/INSTALL @@ -19,7 +19,8 @@ The install target will automatically determine the existance of bash, zsh, and fish, and install the completion files as needed. If you'd like to force installation, you may set FORCE_BASHCOMP, FORCE_ZSHCOMP, or FORCE_FISHCOMP to 1, or set -FORCE_ALL to 1. +FORCE_ALL to 1. The exact paths of the completions can be +controlled with BASHCOMP_PATH, ZSHCOMP_PATH, and FISHCOMP_PATH. -- Test Suite -- diff --git a/Makefile b/Makefile index 836ff91..cce093b 100644 --- a/Makefile +++ b/Makefile @@ -6,47 +6,45 @@ MANDIR ?= $(PREFIX)/share/man PLATFORMFILE := src/platform/$(shell uname | cut -d _ -f 1 | tr '[:upper:]' '[:lower:]').sh +BASHCOMP_PATH ?= $(DESTDIR)$(PREFIX)/share/bash-completion/completions +ZSHCOMP_PATH ?= $(DESTDIR)$(PREFIX)/share/zsh/site-functions +FISHCOMP_PATH ?= $(DESTDIR)$(PREFIX)/share/fish/completions + ifeq ($(FORCE_ALL),1) FORCE_BASHCOMP := 1 FORCE_ZSHCOMP := 1 FORCE_FISHCOMP := 1 endif - -ifeq ($(FORCE_BASHCOMP),1) -BASHCOMP_SWITCH := "-D" -else -BASHCOMP_SWITCH := +ifneq ($(strip $(wildcard $(BASHCOMP_PATH))),) +FORCE_BASHCOMP := 1 endif -ifeq ($(FORCE_ZSHCOMP),1) -ZSHCOMP_SWITCH := "-D" -else -ZSHCOMP_SWITCH := +ifneq ($(strip $(wildcard $(ZSHCOMP_PATH))),) +FORCE_ZSHCOMP := 1 endif -ifeq ($(FORCE_FISHCOMP),1) -FISHCOMP_SWITCH := "-D" -else -FISHCOMP_SWITCH := +ifneq ($(strip $(wildcard $(FISHCOMP_PATH))),) +FORCE_FISHCOMP := 1 endif all: @echo "Password store is a shell script, so there is nothing to do. Try \"make install\" instead." install-common: - @install -m 0644 -v -D man/pass.1 "$(DESTDIR)$(MANDIR)/man1/pass.1" - - @install -m 0644 -v $(BASHCOMP_SWITCH) src/completion/pass.bash-completion "$(DESTDIR)$(PREFIX)/share/bash-completion/completions/pass" 2>/dev/null || echo "** Bash completion file skipped. **" - @install -m 0644 -v $(ZSHCOMP_SWITCH) src/completion/pass.zsh-completion "$(DESTDIR)$(PREFIX)/share/zsh/site-functions/_pass" 2>/dev/null || echo "** Zsh completion file skipped. **" - @install -m 0644 -v $(FISHCOMP_SWITCH) src/completion/pass.fish-completion "$(DESTDIR)$(PREFIX)/share/fish/completions/pass.fish" 2>/dev/null || echo "** Fish completion file skipped. **" + @mkdir -p "$(DESTDIR)$(MANDIR)/man1" && install -m 0644 -v man/pass.1 "$(DESTDIR)$(MANDIR)/man1/pass.1" + + @[ "$(FORCE_BASHCOMP)" == "1" ] && mkdir -p "$(BASHCOMP_PATH)" && install -m 0644 -v src/completion/pass.bash-completion "$(BASHCOMP_PATH)/pass" || true + @[ "$(FORCE_ZSHCOMP)" == "1" ] && mkdir -p "$(ZSHCOMP_PATH)" && install -m 0644 -v src/completion/pass.zsh-completion "$(ZSHCOMP_PATH)/_pass" || true + @[ "$(FORCE_FISHCOMP)" == "1" ] && mkdir -p "$(FISHCOMP_PATH)" && install -m 0644 -v src/completion/pass.fish-completion "$(FISHCOMP_PATH)/pass.fish" || true + ifneq ($(strip $(wildcard $(PLATFORMFILE))),) install: install-common - @install -m 0644 -v -D "$(PLATFORMFILE)" "$(DESTDIR)$(LIBDIR)/password-store/platform.sh" - @mkdir -p -v "$(DESTDIR)$(BINDIR)/" + @mkdir -p "$(DESTDIR)$(LIBDIR)/password-store" && install -m 0644 -v "$(PLATFORMFILE)" "$(DESTDIR)$(LIBDIR)/password-store/platform.sh" + @mkdir -p "$(DESTDIR)$(BINDIR)/" sed 's:.*PLATFORM_FUNCTION_FILE.*:source "$(DESTDIR)$(LIBDIR)/password-store/platform.sh":' src/password-store.sh > "$(DESTDIR)$(BINDIR)/pass" @chmod 0755 "$(DESTDIR)$(BINDIR)/pass" else install: install-common - @mkdir -p -v "$(DESTDIR)$(BINDIR)/" + @mkdir -p "$(DESTDIR)$(BINDIR)/" sed '/PLATFORM_FUNCTION_FILE/d' src/password-store.sh > "$(DESTDIR)$(BINDIR)/pass" @chmod 0755 "$(DESTDIR)$(BINDIR)/pass" endif @@ -56,9 +54,10 @@ uninstall: "$(DESTDIR)$(BINDIR)/pass" \ "$(DESTDIR)$(LIBDIR)/password-store/" \ "$(DESTDIR)$(MANDIR)/man1/pass.1" \ - "$(DESTDIR)$(PREFIX)/share/bash-completion/completions/pass" \ - "$(DESTDIR)$(PREFIX)/share/zsh/site-functions/_pass" \ - "$(DESTDIR)$(PREFIX)/share/fish/completions/pass.fish" + "$(BASHCOMP_PATH)/pass" \ + "$(ZSHCOMP_PATH)/_pass" \ + "$(FISHCOMP_PATH)/pass.fish" + @rmdir "$(DESTDIR)$(LIBDIR)/password-store/" 2>/dev/null || true TESTS = $(sort $(wildcard tests/t[0-9][0-9][0-9][0-9]-*.sh)) -- cgit v1.2.3