Makefile 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. BUILD_VERSION ?= $(shell git describe --always --abbrev=40 --dirty)
  2. SCDOC = scdoc
  3. PREFIX?=/usr/local
  4. BINDIR?=$(PREFIX)/bin
  5. SHAREDIR?=$(PREFIX)/share/smithy
  6. MANDIR?=$(PREFIX)/share/man
  7. LDFLAGS="-X github.com/honza/smithy/cmd.SmithyVersion=${BUILD_VERSION}"
  8. MODCACHE := $(shell go env GOMODCACHE)
  9. export CGO_ENABLED=0
  10. all: smithy smithy.yml
  11. smithy: pkg/smithy/*
  12. go build -ldflags $(LDFLAGS) -o smithy main.go
  13. smithy.yml: smithy
  14. ./smithy generate > smithy.yml
  15. docs:
  16. $(SCDOC) < docs/smithy.1.scd > smithy.1
  17. $(SCDOC) < docs/smithy.yml.5.scd > smithy.yml.5
  18. install: all
  19. mkdir -m755 -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(SHAREDIR)
  20. cp -f smithy $(DESTDIR)$(BINDIR)/smithy
  21. cp -f smithy.yml $(DESTDIR)$(SHAREDIR)/smithy.yml
  22. cp -f smithy.1 $(DESTDIR)$(MANDIR)/man1/smithy.1 2>/dev/null || true
  23. cp -f smithy.yml.5 $(DESTDIR)$(MANDIR)/man5/smithy.yml.5 2>/dev/null || true
  24. uninstall: all
  25. rm -r $(DESTDIR)$(BINDIR)/smithy
  26. rm -fr $(DESTDIR)$(SHAREDIR)
  27. gofmt:
  28. go fmt ./pkg/... ./cmd/...
  29. clean:
  30. rm -rf smithy smithy.yml smithy.1 smithy.yml.5
  31. .PHONY:
  32. smithy smithy.yml clean