-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmakefile
More file actions
79 lines (63 loc) · 1.97 KB
/
makefile
File metadata and controls
79 lines (63 loc) · 1.97 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Copyright (c) 2019 Anton Semjonov
# Licensed under the MIT License
# ---------- install ----------
NAME := autosnap
VERSION := $(shell sh version.sh describe)
# installation directories
DESTDIR :=
PREFIX := /usr
BINARY_DIR := $(DESTDIR)$(PREFIX)/bin
SYSTEMD_DIR := $(DESTDIR)$(PREFIX)/lib/systemd/system
MANUAL_DIR := $(DESTDIR)$(PREFIX)/share/man
LICENSE_DIR := $(DESTDIR)$(PREFIX)/share/licenses/$(NAME)
# install binary and manuals
.PHONY: install
install : \
$(BINARY_DIR)/$(NAME) \
$(MANUAL_DIR)/man8/$(NAME).8 \
$(SYSTEMD_DIR)/$(NAME).service \
$(SYSTEMD_DIR)/$(NAME).timer \
$(SYSTEMD_DIR)/$(NAME)@.service \
$(SYSTEMD_DIR)/$(NAME)@.timer \
$(LICENSE_DIR)/LICENSE
$(BINARY_DIR)/$(NAME) : $(NAME).sh
install -m 755 -D $< $@
$(NAME).8 : README.md
marked-man --version $(VERSION) --manual 'ZFS Utilities' $< > $@
$(MANUAL_DIR)/man8/$(NAME).8 : $(NAME).8
install -m 644 -D $< $@
$(SYSTEMD_DIR)/$(NAME)% : etc/$(NAME)%
install -m 644 -D $< $@
sed -i 's|/usr/bin|$(PREFIX)/bin|' $@
$(LICENSE_DIR)/LICENSE : LICENSE
install -m 644 -D $< $@
# ---------- packaging ----------
# package metadata
PKGNAME := $(NAME)
PKGVERSION := $(shell echo $(VERSION) | sed s/-/./ )
PKGAUTHOR := 'ansemjo <anton@semjonov.de>'
PKGLICENSE := MIT
PKGURL := https://github.com/ansemjo/$(PKGNAME)
PKGFORMATS := rpm deb
# how to execute fpm
FPM := docker run --rm --net none -v $$PWD:/src -w /src ghcr.io/ansemjo/fpm
# build a package
.PHONY: package-%
package-% :
make --no-print-directory install DESTDIR=package
mkdir -p release
$(FPM) -s dir -t $* -f --chdir package \
--name $(PKGNAME) \
--version $(PKGVERSION) \
--maintainer $(PKGAUTHOR) \
--license $(PKGLICENSE) \
--url $(PKGURL) \
--package release/$(PKGNAME)-$(PKGVERSION).$*
# build all package formats with fpm
.PHONY: packages
packages : $(addprefix package-,$(PKGFORMATS))
# ---------- misc ----------
# clean untracked files and directories
.PHONY: clean
clean :
git clean -fdx