update build process
This commit is contained in:
parent
049d0ffda2
commit
9b5238af59
6 changed files with 74 additions and 23 deletions
65
Makefile
65
Makefile
|
@ -1,25 +1,46 @@
|
|||
.PHONY: all
|
||||
all: bin/ecload bin/ecload.exe bin/ecload-mac bin/ecload-tui bin/ecload-tui.exe bin/ecload-tui-mac
|
||||
BINARIES=ecload ecload-tui
|
||||
|
||||
VERSION=0.1.0
|
||||
BUILD:=`git rev-parse HEAD`
|
||||
|
||||
PLATFORMS=linux darwin windows
|
||||
ARCHITECTURES=386 amd64
|
||||
|
||||
LDFLAGS=-ldflags "-s -X main.Version=${VERSION} -X main.Build=${BUILD}"
|
||||
|
||||
define BUILDER
|
||||
bin/%/$(TARGET): cmd/$(TARGET)/*.go pkg/ecload/*.go
|
||||
GOOS=$$(patsubst %/,%,$$(dir $$*)) GOARCH=$$(notdir $$*) go build $(LDFLAGS) -v -o $$@ cmd/$(TARGET)/main.go
|
||||
endef
|
||||
|
||||
$(foreach TARGET,$(BINARIES),$(eval $(BUILDER)))
|
||||
|
||||
dist/%.tar.gz:
|
||||
@mkdir -p ./dist
|
||||
|
||||
$(eval TMP := $(shell mktemp -d))
|
||||
|
||||
$(eval SANE=$(subst -,/,$*))
|
||||
$(eval INPUT=bin/$(SANE)/)
|
||||
$(eval PLATFORM=$(patsubst %/,%,$(dir $(SANE))))
|
||||
|
||||
@cp -r $(INPUT)* $(TMP)
|
||||
|
||||
@if [ "$(PLATFORM)" == "windows" ]; then \
|
||||
for FILE in $(TMP)/*; do mv $$FILE $$FILE.exe; done \
|
||||
fi
|
||||
|
||||
tar -zcf $@ -C $(TMP) .
|
||||
|
||||
@rm -rf $(TMP)
|
||||
|
||||
dist: binaries $(foreach GOOS, $(PLATFORMS), $(foreach GOARCH, $(ARCHITECTURES), dist/$(GOOS)-$(GOARCH).tar.gz))
|
||||
binaries: $(foreach GOOS, $(PLATFORMS), $(foreach GOARCH, $(ARCHITECTURES), $(foreach BINARY, $(BINARIES), bin/$(GOOS)/$(GOARCH)/$(BINARY))))
|
||||
|
||||
all: dist
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -r bin/
|
||||
go clean ./cmd/ecload/ ./cmd/ecload-tui/ ./pkg/ecload/
|
||||
rm -rf bin/ dist/
|
||||
go clean ./cmd/ecload ./cmd/ecload-tui ./pkg/ecload
|
||||
|
||||
bin/ecload: cmd/ecload/*.go pkg/ecload/*.go
|
||||
GOOS=linux GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload/main.go
|
||||
|
||||
bin/ecload.exe: cmd/ecload/*.go pkg/ecload/*.go
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload/main.go
|
||||
|
||||
bin/ecload-mac: cmd/ecload/*.go pkg/ecload/*.go
|
||||
GOOS=darwin GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload/main.go
|
||||
|
||||
bin/ecload-tui: cmd/ecload-tui/*.go pkg/ecload/*.go
|
||||
GOOS=linux GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload-tui/main.go
|
||||
|
||||
bin/ecload-tui.exe: cmd/ecload-tui/*.go pkg/ecload/*.go
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload-tui/main.go
|
||||
|
||||
bin/ecload-tui-mac: cmd/ecload-tui/*.go pkg/ecload/*.go
|
||||
GOOS=darwin GOARCH=amd64 go build -ldflags '-s' -v -o $@ cmd/ecload-tui/main.go
|
||||
.PHONY: all clean binaries dist
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue