
DESTDIR=
PREFIX=/usr
BINDIR=$(PREFIX)/bin
MAN8DIR=$(PREFIX)/share/man/man8

PWD = $(shell pwd)
TOOLDIR = .tools
INSTALL = install


all:

VERSION: dnstapmq.spec
	< $< grep -i ^version: | sed 's/^version: *//i' >$@

VERSION=$(shell cat VERSION)



$(TOOLDIR):
	mkdir $(TOOLDIR)

$(TOOLDIR)/protoc-gen-go:
	GOBIN=$(PWD)/$(TOOLDIR) go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

.PHONY: tools protobuf

tools: $(TOOLDIR) $(TOOLDIR)/protoc-gen-go

protobuf: dnstap.pb.go

dnstap.pb.go:  dnstap.pb/dnstap.proto genproto.sh
	PATH=$(PWD)/$(TOOLDIR):$$PATH ./genproto.sh

SOURCES = Decoder.go \
	dnstapmq/fileoutput.go \
	dnstap.go \
	dnstapmq/main.go \
	dnstapmq/mirroroutput.go \
	dnstap.pb.go \
	Encoder.go \
	FrameStreamInput.go \
	FrameStreamOutput.go \
	FrameStreamSockInput.go \
	FrameStreamSockOutput.go \
	JsonFormat.go \
	MQFormat.go \
	QuietTextFormat.go \
	Reader.go \
	SocketWriter.go \
	sock_test.go \
	TextOutput.go \
	Writer.go \
	YamlFormat.go


$(INSTALL)/dnstapmq: $(TOOLDIR)/protoc-gen-go $(SOURCES)
	GOBIN=$(PWD)/$(INSTALL) go install ant.isi.edu/dnstapmq/dnstapmq
 
all: protobuf $(INSTALL)/dnstapmq


.PHONY: install

install: $(INSTALL)/dnstapmq
	mkdir -p $(DESTDIR)$(BINDIR) && cp -p $(INSTALL)/dnstapmq $(DESTDIR)$(BINDIR)
	mkdir -p $(DESTDIR)$(MAN8DIR) &&cp dnstapmq/dnstapmq.8 $(DESTDIR)$(MAN8DIR)

tar.gz:
	ln -s . dnstapmq-$(VERSION); \
	tar czvf dnstapmq-$(VERSION).tar.gz \
		dnstapmq-$(VERSION)/COPYRIGHT dnstapmq-$(VERSION)/LICENSE \
		dnstapmq-$(VERSION)/Makefile dnstapmq-$(VERSION)/README \
		dnstapmq-$(VERSION)/dnstapmq.spec \
		dnstapmq-$(VERSION)/*.go dnstapmq-$(VERSION)/dnstapmq/*.go \
		dnstapmq-$(VERSION)/dnstapmq/dnstapmq.8 \
		dnstapmq-$(VERSION)/dnstap.pb/dnstap.proto \
		dnstapmq-$(VERSION)/dnstap.pb/LICENSE \
		dnstapmq-$(VERSION)/dnstap.pb/README.md \
		dnstapmq-$(VERSION)/genproto.sh \
		dnstapmq-$(VERSION)/go.mod dnstapmq-$(VERSION)/go.sum;\
	rm dnstapmq-$(VERSION)

RPM_ARCH=x86_64
RPM_DIST=$(shell rpm --eval '%{dist}')

rpms:
	cp dnstapmq-$(VERSION).tar.gz $$HOME/rpmbuild/SOURCES
	cp dnstapmq.spec $$HOME/rpmbuild/SPECS
	( cd $$HOME/rpmbuild; rpmbuild -ba SPECS/dnstapmq.spec; )
	cp $$HOME/rpmbuild/RPMS/$(RPM_ARCH)/dnstapmq-$(VERSION)-1$(RPM_DIST).$(RPM_ARCH).rpm .
	cp $$HOME/rpmbuild/SRPMS/dnstapmq-$(VERSION)-1$(RPM_DIST).src.rpm .

dnstapmq/dnstapmq.html: dnstapmq/dnstapmq.8
	pandoc -f man -t html $<  >$@

INTERNAL_WEBSITE=/home/johnh/WORKING/ANT/WWW/ant_2015/software/dnstapmq
release:
	@echo "You should have done; \"make tar.gz; make rpms\""
	cp dnstapmq-$(VERSION)-1$(RPM_DIST).$(RPM_ARCH).rpm $(INTERNAL_WEBSITE)
	cp dnstapmq-$(VERSION)-1$(RPM_DIST).src.rpm $(INTERNAL_WEBSITE)
	cp dnstapmq-$(VERSION).tar.gz $(INTERNAL_WEBSITE)
	cd $(INTERNAL_WEBSITE); git add dnstapmq-$(VERSION)*.rpm dnstapmq-$(VERSION).tar.gz
	@echo "to finish: git commit -am $(VERSION)-release; git tag -s -u 0x4c6cd6f2 -m $(VERSION)-release dnstapmq-$(VERSION); cd $(INTERNAL_WEBSITE); git commit -am \"release dnstapmq-$(VERSION)\""

