]> Cypherpunks.ru repositories - nncp.git/blob - common.mk
umask friendly permissions for files in release tarball
[nncp.git] / common.mk
1 GO ?= go
2 PREFIX ?= /usr/local
3
4 SENDMAIL ?= /usr/sbin/sendmail
5 CFGPATH ?= $(PREFIX)/etc/nncp.hjson
6 SPOOLPATH ?= /var/spool/nncp
7 LOGPATH ?= /var/spool/nncp/log
8
9 BINDIR = $(DESTDIR)$(PREFIX)/bin
10 INFODIR = $(DESTDIR)$(PREFIX)/info
11 DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/nncp
12
13 MOD = go.cypherpunks.ru/nncp/v5
14
15 LDFLAGS = \
16         -X $(MOD).Version=$(VERSION) \
17         -X $(MOD).DefaultCfgPath=$(CFGPATH) \
18         -X $(MOD).DefaultSendmailPath=$(SENDMAIL) \
19         -X $(MOD).DefaultSpoolPath=$(SPOOLPATH) \
20         -X $(MOD).DefaultLogPath=$(LOGPATH)
21
22 ALL = \
23         $(BIN)/nncp-bundle \
24         $(BIN)/nncp-call \
25         $(BIN)/nncp-caller \
26         $(BIN)/nncp-cfgenc \
27         $(BIN)/nncp-cfgmin \
28         $(BIN)/nncp-cfgnew \
29         $(BIN)/nncp-check \
30         $(BIN)/nncp-daemon \
31         $(BIN)/nncp-exec \
32         $(BIN)/nncp-file \
33         $(BIN)/nncp-freq \
34         $(BIN)/nncp-log \
35         $(BIN)/nncp-pkt \
36         $(BIN)/nncp-reass \
37         $(BIN)/nncp-rm \
38         $(BIN)/nncp-stat \
39         $(BIN)/nncp-toss \
40         $(BIN)/nncp-xfer
41
42 SRC := $(PWD)/src
43 BIN := $(PWD)/bin
44
45 all: $(ALL)
46
47 $(ALL):
48         mkdir -p $(BIN)
49         cd $(SRC) ; GOPATH=$(GOPATH) $(GO) build -ldflags "$(LDFLAGS)" \
50                 $(MOD)/cmd/$$(basename $@)
51         mv $(SRC)/$$(basename $@) $(BIN)
52
53 test:
54         cd $(SRC) ; GOPATH=$(GOPATH) $(GO) test -failfast $(MOD)/...
55
56 clean:
57         rm -rf $(BIN)
58
59 .PHONY: doc
60
61 doc:
62         $(MAKE) -C doc
63
64 install: all doc
65         mkdir -p $(BINDIR)
66         cp -f $(ALL) $(BINDIR)
67         for e in $(ALL) ; do chmod 755 $(BINDIR)/$$(basename $$e) ; done
68         mkdir -p $(INFODIR)
69         cp -f doc/nncp.info $(INFODIR)
70         chmod 644 $(INFODIR)/nncp.info
71         mkdir -p $(DOCDIR)
72         cp -f -L AUTHORS NEWS NEWS.RU README README.RU THANKS $(DOCDIR)
73         chmod 644 $(DOCDIR)/*
74
75 install-strip: install
76         for e in $(ALL) ; do strip $(BINDIR)/$$(basename $$e) ; done