]> Cypherpunks.ru repositories - nncp.git/blobdiff - common.mk
Full go modules usage
[nncp.git] / common.mk
index 78ba42c4fff3d8a7ddf77be28bb8f0c52d1a0141..5ab825bdcf8cf0590a28310d0096ba7f4feff861 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -1,76 +1,77 @@
-.PHONY: doc
+GO ?= go
+PREFIX ?= /usr/local
 
-LDFLAGS = \
-       -X cypherpunks.ru/nncp.Version=$(VERSION) \
-       -X cypherpunks.ru/nncp.DefaultCfgPath=$(CFGPATH) \
-       -X cypherpunks.ru/nncp.DefaultSendmailPath=$(SENDMAIL)
+SENDMAIL ?= /usr/sbin/sendmail
+CFGPATH ?= $(PREFIX)/etc/nncp.yaml
+SPOOLPATH ?= /var/spool/nncp
+LOGPATH ?= /var/spool/nncp/log
+
+BINDIR = $(DESTDIR)$(PREFIX)/bin
+INFODIR = $(DESTDIR)$(PREFIX)/info
+DOCDIR = $(DESTDIR)$(PREFIX)/share/doc/nncp
+
+MOD = go.cypherpunks.ru/nncp/v4
 
-all: \
+LDFLAGS = \
+       -X $(MOD).Version=$(VERSION) \
+       -X $(MOD).DefaultCfgPath=$(CFGPATH) \
+       -X $(MOD).DefaultSendmailPath=$(SENDMAIL) \
+       -X $(MOD).DefaultSpoolPath=$(SPOOLPATH) \
+       -X $(MOD).DefaultLogPath=$(LOGPATH)
+
+ALL = \
+       nncp-bundle \
        nncp-call \
+       nncp-caller \
+       nncp-cfgenc \
+       nncp-cfgmin \
+       nncp-cfgnew \
        nncp-check \
        nncp-daemon \
+       nncp-exec \
        nncp-file \
        nncp-freq \
        nncp-log \
-       nncp-mail \
-       nncp-newnode \
        nncp-pkt \
+       nncp-reass \
+       nncp-rm \
        nncp-stat \
        nncp-toss \
        nncp-xfer
 
-nncp-call:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-call
-
-nncp-check:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-check
-
-nncp-daemon:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-daemon
-
-nncp-file:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-file
+SRC := $(PWD)/src
+BIN := $(PWD)/bin
 
-nncp-freq:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-freq
+all: $(ALL)
 
-nncp-log:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-log
+$(BIN):
+       mkdir -p $(BIN)
 
-nncp-mail:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-mail
-
-nncp-newnode:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-newnode
-
-nncp-pkt:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-pkt
-
-nncp-stat:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-stat
-
-nncp-toss:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-toss
-
-nncp-xfer:
-       GOPATH=$(GOPATH) go build -ldflags "$(LDFLAGS)" cypherpunks.ru/nncp/cmd/nncp-xfer
+$(ALL): $(BIN)
+       cd $(SRC) ; GOPATH=$(GOPATH) $(GO) build -ldflags "$(LDFLAGS)" $(MOD)/cmd/$@
+       mv $(SRC)/$@ $(BIN)
 
 test:
-       GOPATH=$(GOPATH) go test cypherpunks.ru/nncp/...
+       cd $(SRC) ; GOPATH=$(GOPATH) $(GO) test -failfast $(MOD)/...
 
 clean:
-       rm -f \
-               nncp-call \
-               nncp-daemon \
-               nncp-file \
-               nncp-freq \
-               nncp-log \
-               nncp-mail \
-               nncp-newnode \
-               nncp-pkt \
-               nncp-stat \
-               nncp-toss \
-               nncp-xfer
+       rm -rf $(BIN)
+
+.PHONY: doc
 
 doc:
        $(MAKE) -C doc
+
+install: all doc
+       mkdir -p $(BINDIR)
+       (cd $(BIN) ; cp -f $(ALL) $(BINDIR))
+       for e in $(ALL) ; do chmod 755 $(BINDIR)/$$e ; done
+       mkdir -p $(INFODIR)
+       cp -f doc/nncp.info $(INFODIR)
+       chmod 644 $(INFODIR)/nncp.info
+       mkdir -p $(DOCDIR)
+       cp -f -L AUTHORS NEWS NEWS.RU README README.RU THANKS $(DOCDIR)
+       chmod 644 $(DOCDIR)/*
+
+install-strip: install
+       for e in $(ALL) ; do strip $(BINDIR)/$$e ; done