39 lines
808 B
Makefile
39 lines
808 B
Makefile
CC=go
|
|
BUILD=build -v
|
|
GCFLAGS=-gcflags '-e'
|
|
LDFLAGS=-ldflags '-s -w'
|
|
PROGRAM=gocrypt
|
|
ENV=CGO_ENABLED=0 GO111MODULE=on
|
|
|
|
all: $(PROGRAM)
|
|
|
|
release: clean gofmt test
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS)
|
|
|
|
release-vendor: clean gofmt test
|
|
$(ENV) $(CC) $(BUILD) -mod=vendor $(GCFLAGS) $(LDFLAGS)
|
|
|
|
vendor: clean gofmt
|
|
$(ENV) $(CC) $(BUILD) -mod=vendor $(GCFLAGS) $(LDFLAGS)
|
|
|
|
$(PROGRAM): clean gofmt
|
|
$(ENV) $(CC) $(BUILD) $(GCFLAGS) $(LDFLAGS)
|
|
|
|
clean:
|
|
$(CC) clean -x
|
|
|
|
gofmt:
|
|
gofmt -w pkg/* main.go
|
|
|
|
test:
|
|
ifeq ($(shell go env GOARCH), $(shell go env GOHOSTARCH))
|
|
ifeq ($(shell go env GOOS), $(shell go env GOHOSTOS))
|
|
$(CC) test ./...
|
|
else
|
|
$(info skipping tests of other platforms)
|
|
endif
|
|
else
|
|
$(info skipping tests of other platforms)
|
|
endif
|
|
|
|
.PHONY: release release-vendor vendor build clean gofmt test
|