.POSIX:
.SUFFIXES:
.SUFFIXES: .1 .5 .1.scd .5.scd

GO?=go

GOSRC!=find . -name '*.go'
GOSRC+=go.mod go.sum

PREFIX?=/usr/local
BINDIR?=$(PREFIX)/bin
SHAREDIR?=$(PREFIX)/share/satellite
MANDIR?=$(PREFIX)/share/man

all: satellite satellite.toml doc

satellite: $(GOSRC)
	$(GO) build -o $@

satellite.toml: config/satellite.toml.in
	sed -e 's:@SHAREDIR@:$(SHAREDIR):g' > $@ < config/satellite.toml.in

DOCS := \
	doc/satellite.1 \
	doc/satellite.toml.5

.1.scd.1:
	scdoc < $< > $@

.5.scd.5:
	scdoc < $< > $@

doc: $(DOCS)

install: all
	mkdir -m755 -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(MANDIR)/man1 $(DESTDIR)$(MANDIR)/man5 \
		$(DESTDIR)$(SHAREDIR)
	install -m755 satellite $(DESTDIR)$(BINDIR)/satellite
	install -m644 satellite.toml $(DESTDIR)$(SHAREDIR)/satellite.toml
	install -m644 doc/satellite.1 $(DESTDIR)$(MANDIR)/man1/satellite.1
	install -m644 doc/satellite.toml.5 $(DESTDIR)$(MANDIR)/man5/satellite.toml.5

uninstall: all
	rm -r $(DESTDIR)$(BINDIR)/satellite
	rm -fr $(DESTDIR)$(SHAREDIR)
	rm -fr $(DESTDIR)$(MANDIR)/man1/satellite.1
	rm -fr $(DESTDIR)$(MANDIR)/man5/satellite.5.toml

clean:
	rm -rf $(DOCS) satellite satellite.toml

.PHONY:
	all doc satellite satellite.toml clean
