-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
53 lines (42 loc) · 1.52 KB
/
Copy pathMakefile
File metadata and controls
53 lines (42 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# git-smv — Git Submodule Versioning
PREFIX ?= $(HOME)/.local
BINDIR ?= $(PREFIX)/bin
DATADIR ?= $(PREFIX)/share
LIBDIR = $(DATADIR)/git-smv
MANPREFIX ?= $(PREFIX)
mandir = $(MANPREFIX)/share/man
MAN1DIR = $(mandir)/man1
.PHONY: all install install-bin install-lib install-man install-exec test lint clean uninstall
all:
install: install-bin install-lib install-man
install-bin:
@mkdir -p "$(BINDIR)"
@install -m 755 git-smv "$(BINDIR)/git-smv"
@echo "Installed $(BINDIR)/git-smv"
install-lib:
@mkdir -p "$(LIBDIR)/lib/commands"
@install -m 644 lib/git-sh-setup.sh lib/common.sh lib/lockfile.sh \
lib/gitmodules.sh lib/checks.sh lib/smv-lib-root.sh "$(LIBDIR)/lib/"
@install -m 644 lib/commands/*.sh "$(LIBDIR)/lib/commands/"
@echo "Installed $(LIBDIR)/lib/"
install-man:
@mkdir -p "$(MAN1DIR)"
@install -m 644 man/git-smv.1 "$(MAN1DIR)/git-smv.1"
@echo "Installed $(MAN1DIR)/git-smv.1"
install-exec:
@execpath=$$(git --exec-path); \
prefix=$$(CDPATH= cd "$$execpath/.." && pwd); \
$(MAKE) install-lib PREFIX="$$prefix"; \
install -m 755 git-smv "$$execpath/git-smv"; \
echo "Installed $$execpath/git-smv and $$prefix/share/git-smv/lib/"
uninstall:
@rm -f "$(BINDIR)/git-smv" "$(MAN1DIR)/git-smv.1"
@rm -rf "$(LIBDIR)"
@echo "Uninstalled git-smv from $(PREFIX)"
test:
@cd t && PATH="$(CURDIR):$$PATH" prove -v ./t[0-9]*.sh
lint:
@command -v shellcheck >/dev/null 2>&1 || { echo "shellcheck not installed, skipping"; exit 0; }; \
shellcheck git-smv lib/*.sh lib/commands/*.sh t/*.sh
clean:
@rm -rf t/trash_directory.*