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