-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathMakefile.in
144 lines (112 loc) · 5.53 KB
/
Makefile.in
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package := $(shell head -n1 README.md)
packagedir := systemd-cron
version := $(shell awk '/^version =/ { gsub("\"", "", $$3); print $$3; exit }' Cargo.toml)
schedules := @schedules@
enable_persistent := @enable_persistent@
enable_randomized_delay := @enable_randomized_delay@
enable_strip := @enable_strip@
prefix := @prefix@
bindir := @bindir@
confdir := @confdir@
datadir := @datadir@
libdir := @libdir@
statedir := @statedir@
mandir := @mandir@
docdir := @docdir@
unitdir := @unitdir@
runparts := @runparts@
srcdir := $(CURDIR)/src
outdir := $(CURDIR)/out
builddir := $(outdir)/build
distname := $(package)-$(version)
distdir := $(outdir)/dist/$(distname)
tarball := $(outdir)/dist/$(distname).tar.xz
out_services := $(foreach schedule,$(schedules),$(builddir)/units/cron-$(schedule).service)
out_timers := $(foreach schedule,$(schedules),$(builddir)/units/cron-$(schedule).timer)
out_targets := $(foreach schedule,$(schedules),$(builddir)/units/cron-$(schedule).target)
out_units := $(out_services) $(out_timers) $(out_targets) $(builddir)/units/cron.target \
$(builddir)/units/cron-update.path $(builddir)/units/cron-update.service \
$(builddir)/units/[email protected]
out_manuals := $(patsubst $(CURDIR)/man/%.in,$(builddir)/man/%,$(wildcard $(CURDIR)/man/*))
out_programs := $(patsubst $(srcdir)/bin/%.rs,$(builddir)/bin/%,$(wildcard $(srcdir)/bin/*.rs))
outputs := $(out_units) $(out_manuals) $(out_programs)
define \n
endef
null :=
persistent = $(if $(filter $(enable_persistent),yes),persistent,)
randomized_delay = $(if $(filter $(enable_randomized_delay),yes),randomized-delay,)
strip = $(if $(filter $(enable_strip),yes),-s,)
all: build
clean:
rm -rf $(outdir)
distprep: $(distdir) VERSION
cp -a Cargo.toml Cargo.lock configure Makefile.in LICENSE README.md VERSION src man units $(distdir)
VERSION: Cargo.toml
grep "^version =" Cargo.toml | sed -e 's/^version = "//' -e 's/"$$//' > VERSION
dist: $(tarball)
test: all
$(foreach manpage,$(out_manuals),\
man --warnings --encoding=utf8 --local-file $(manpage) 2>&1 > /dev/null${\n})
cargo test
build: all
test -f $(builddir)/bin/systemd-crontab-generator || \
PREFIX="$(prefix)" RUN_PARTS="$(runparts)" STATE_DIR="$(statedir)" \
BIN_DIR="$(bindir)" CONF_DIR="$(confdir)" MAN_DIR="$(mandir)" DOC_DIR="$(docdir)" \
DATA_DIR="$(datadir)" LIB_DIR="$(libdir)" UNIT_DIR="$(unitdir)" \
cargo install --path $(CURDIR) --root $(builddir) \
--features "$(foreach schedule,$(schedules),sched-$(schedule)) $(persistent) $(randomized_delay)"
install: build
install -m2755 -g `getent group cron || echo root` $(strip) -D $(builddir)/bin/crontab $(DESTDIR)$(bindir)/crontab
install -m755 $(strip) -D $(builddir)/bin/systemd-crontab-generator $(DESTDIR)$(libdir)/systemd/system-generators/systemd-crontab-generator
install -m755 $(strip) -D $(builddir)/bin/remove-stale-stamps $(DESTDIR)$(libdir)/$(packagedir)/remove-stale-stamps
install -m755 $(strip) -D $(builddir)/bin/mail-on-failure $(DESTDIR)$(libdir)/$(packagedir)/mail-on-failure
install -m755 $(strip) -D $(builddir)/bin/boot-delay $(DESTDIR)$(libdir)/$(packagedir)/boot-delay
install -m644 -D $(builddir)/man/systemd.cron.7 $(DESTDIR)$(mandir)/man7/systemd.cron.7
install -m644 -D $(builddir)/man/crontab.1 $(DESTDIR)$(mandir)/man1/crontab.1
install -m644 -D $(builddir)/man/crontab.5 $(DESTDIR)$(mandir)/man5/crontab.5
install -m644 -D $(builddir)/man/anacrontab.5 $(DESTDIR)$(mandir)/man5/anacrontab.5
install -m644 -D $(builddir)/man/systemd-crontab-generator.8 $(DESTDIR)$(mandir)/man8/systemd-crontab-generator.8
install -m644 -D $(builddir)/units/cron.target $(DESTDIR)$(unitdir)/cron.target
install -m644 $(builddir)/units/cron-update.path $(DESTDIR)$(unitdir)
install -m644 $(builddir)/units/cron-update.service $(DESTDIR)$(unitdir)
install -m644 $(builddir)/units/[email protected] $(DESTDIR)$(unitdir)
$(foreach schedule,$(schedules),\
install -m644 $(builddir)/units/cron-$(schedule).timer $(DESTDIR)$(unitdir)${\n})
$(foreach schedule,$(schedules),\
install -m644 $(builddir)/units/cron-$(schedule).target $(DESTDIR)$(unitdir)${\n})
$(foreach schedule,$(schedules),\
install -m644 $(builddir)/units/cron-$(schedule).service $(DESTDIR)$(unitdir)${\n})
uninstall:
rm -f $(DESTDIR)$(bindir)/crontab
rm -f $(DESTDIR)$(libdir)/systemd/system-generators/systemd-crontab-generator
rm -f $(DESTDIR)$(libdir)/$(packagedir)/remove-stale-stamps
rm -f $(DESTDIR)$(libdir)/$(packagedir)/mail-on-failure
rm -f $(DESTDIR)$(libdir)/$(packagedir)/boot-delay
rm -f $(DESTDIR)$(mandir)/man7/systemd.cron.7
rm -f $(DESTDIR)$(mandir)/man1/crontab.1
rm -f $(DESTDIR)$(mandir)/man5/crontab.5
rm -f $(DESTDIR)$(mandir)/man5/anacrontab.5
rm -f $(DESTDIR)$(mandir)/man8/systemd-crontab-generator.8
rm -f $(DESTDIR)$(unitdir)/cron.target
rm -f $(DESTDIR)$(unitdir)/cron-update.path
rm -f $(DESTDIR)$(unitdir)/cron-update.service
rm -f $(DESTDIR)$(unitdir)/[email protected]
$(foreach schedule,$(schedules),\
rm -f $(DESTDIR)$(unitdir)/cron-$(schedule).timer${\n})
$(foreach schedule,$(schedules),\
rm -f $(DESTDIR)$(unitdir)/cron-$(schedule).target${\n})
$(foreach schedule,$(schedules),\
rm -f $(DESTDIR)$(unitdir)/cron-$(schedule).service${\n})
$(outputs): | $(builddir)
$(outdir):
mkdir -p $@
$(builddir):
mkdir -p $@
mkdir -p $@/bin
mkdir -p $@/man
mkdir -p $@/units
$(distdir):
mkdir -p $(distdir)
$(tarball): distprep
cd $(distdir)/..; tar -cJ --owner=root --group=root --file $(tarball) $(distname)
.PHONY: all clean build dist distprep install uninstall