Files
stormfetch/Makefile
T

57 lines
1.8 KiB
Makefile

# Installation paths
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
LIBEXECDIR ?= $(PREFIX)/libexec
SYSCONFDIR := $(PREFIX)/etc
# Compilers and tools
GO ?= go
# Compiler flags
GOOS ?= $(shell $(GO) env | grep '^GOOS' | cut -d'=' -f2 | tr -d "'")
GOARCH ?= $(shell $(GO) env | grep '^GOARCH' | cut -d'=' -f2 | tr -d "'")
LDFLAGS ?= -w
# Build-time variables
VERSION ?= $(shell git describe --tags --dirty)
build: build-stormfetch build-stormfetch-monitor-detection
build-stormfetch:
install -d build
cd src/stormfetch; GOOS=$(GOOS) GOARCH=$(GOARCH) $(GO) build -ldflags "$(LDFLAGS) -X 'main.StormfetchVersion=$(VERSION)' -X 'main.SystemConfigDir=$(SYSCONFDIR)' -X 'main.LibexecDir=$(LIBEXECDIR)'" -o ../../build/stormfetch
build-stormfetch-monitor-detection:
install -d build
cd src/stormfetch-monitor-detection; GOOS=$(GOOS) GOARCH=$(GOARCH) $(GO) build -ldflags "$(LDFLAGS)" -o ../../build/stormfetch-monitor-detection
install: install-stormfetch install-stormfetch-monitor-detection install-config
install-stormfetch: build/stormfetch
# Create directory
install -dm755 $(DESTDIR)$(BINDIR)
# Install binary
install -m755 build/stormfetch $(DESTDIR)$(BINDIR)/stormfetch
install-stormfetch-monitor-detection: build/stormfetch-monitor-detection
# Create directory
install -dm755 $(DESTDIR)$(LIBEXECDIR)
# Install binary
install -m755 build/stormfetch-monitor-detection $(DESTDIR)$(LIBEXECDIR)/stormfetch-monitor-detection
install-config:
# Create directory
install -dm755 $(DESTDIR)$(SYSCONFDIR)
# Install files
cp -r config $(DESTDIR)$(SYSCONFDIR)/stormfetch/
uninstall:
-rm -f $(DESTDIR)$(BINDIR)/stormfetch
-rm -f $(DESTDIR)$(LIBEXEDIR)/stormfetch-monitor-detection
-rm -rf $(DESTDIR)$(SYSCONFDIR)/stormfetch
clean:
rm -r build/
.PHONY: build build-stormfetch build-stormfetch-monitor-detection install install-config uninstall clean