-
Notifications
You must be signed in to change notification settings - Fork 4
/
Makefile
64 lines (52 loc) · 1.7 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
GOCMD=go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean
GOTEST=$(GOCMD) test
GOGET=$(GOCMD) get
NAME=Echidna
TARGET=./build
ARCHS=amd64 386
LDFLAGS="-s -w"
GCFLAGS="all=-trimpath=$(pwd)"
ASMFLAGS="all=-trimpath=$(pwd)"
all: clean update lint test darwin windows linux
local: lint test install
install:
go install
clean:
rm -rf current/ inspect/ error.log cmd/echidna/current/ cmd/echidna/inspect build/; \
go clean ./... ; \
echo "Cleaning Complete."
test:
$(GOTEST) ./... -v -race;\
echo "Testing Complete."
lint:
golangci-lint run; \
go mod tidy; \
echo "Linting Complete."
update:
go get -u; \
go mod tidy -v; \
echo "Updating Complete."
windows:
@for GOARCH in ${ARCHS}; do \
echo "Building $(NAME) for windows $${GOARCH} ..." ; \
mkdir -p ${TARGET}/$(NAME)-windows-$${GOARCH} ; \
GOOS=windows GOARCH=$${GOARCH} GO111MODULE=on CGO_ENABLED=0 go build -ldflags=${LDFLAGS} -gcflags=${GCFLAGS} -asmflags=${ASMFLAGS} -o ${TARGET}/$(NAME)-windows-$${GOARCH}/$(NAME).exe ; \
done; \
echo "Done."
linux:
@for GOARCH in ${ARCHS}; do \
echo "Building $(NAME) for linux $${GOARCH} ..." ; \
mkdir -p ${TARGET}/$(NAME)-linux-$${GOARCH} ; \
GOOS=linux GOARCH=$${GOARCH} GO111MODULE=on CGO_ENABLED=0 go build -ldflags=${LDFLAGS} -gcflags=${GCFLAGS} -asmflags=${ASMFLAGS} -o ${TARGET}/$(NAME)-linux-$${GOARCH}/$(NAME) ; \
done; \
echo "Done."
darwin:
@for GOARCH in ${ARCHS}; do \
echo "Building $(NAME) for darwin $${GOARCH} ..." ; \
mkdir -p ${TARGET}/$(NAME)-darwin-$${GOARCH} ; \
GOOS=darwin GOARCH=$${GOARCH} GO111MODULE=on CGO_ENABLED=0 go build -ldflags=${LDFLAGS} -gcflags=${GCFLAGS} -asmflags=${ASMFLAGS} -o ${TARGET}/$(NAME)-darwin-$${GOARCH}/$(NAME) ; \
done; \
echo "Done."
.PHONY: test