github.com/klaytn/klaytn@v1.10.2/Makefile (about) 1 # This Makefile is meant to be used by people that do not usually work 2 # with Go source code. If you know what GOPATH is then you probably 3 # don't need to bother with make. 4 5 GO ?= latest 6 GOPATH := $(or $(GOPATH), $(shell go env GOPATH)) 7 GORUN = env GOPATH=$(GOPATH) GO111MODULE=on go run 8 9 BIN = $(shell pwd)/build/bin 10 BUILD_PARAM?=install 11 12 OBJECTS=kcn kpn ken kscn kspn ksen kbn kgen homi 13 RPM_OBJECTS=$(foreach wrd,$(OBJECTS),rpm-$(wrd)) 14 RPM_BAOBAB_OBJECTS=$(foreach wrd,$(OBJECTS),rpm-baobab-$(wrd)) 15 TAR_LINUX_386_OBJECTS=$(foreach wrd,$(OBJECTS),tar-linux-386-$(wrd)) 16 TAR_LINUX_amd64_OBJECTS=$(foreach wrd,$(OBJECTS),tar-linux-amd64-$(wrd)) 17 TAR_DARWIN_amd64_OBJECTS=$(foreach wrd,$(OBJECTS),tar-darwin-amd64-$(wrd)) 18 TAR_BAOBAB_LINUX_386_OBJECTS=$(foreach wrd,$(OBJECTS),tar-baobab-linux-386-$(wrd)) 19 TAR_BAOBAB_LINUX_amd64_OBJECTS=$(foreach wrd,$(OBJECTS),tar-baobab-linux-amd64-$(wrd)) 20 TAR_BAOBAB_DARWIN_amd64_OBJECTS=$(foreach wrd,$(OBJECTS),tar-baobab-darwin-amd64-$(wrd)) 21 22 .PHONY: all test clean ${OBJECTS} ${RPM_OBJECTS} ${TAR_LINUX_386_OBJECTS} ${TAR_DARWIN_amd64_OBJECTS} ${TAR_LINUX_amd64_OBJECTS} 23 24 all: ${OBJECTS} 25 rpm-all: ${RPM_OBJECTS} 26 rpm-baobab-all: ${RPM_BAOBAB_OBJECTS} 27 tar-linux-386-all: ${TAR_LINUX_386_OBJECTS} 28 tar-linux-amd64-all: ${TAR_LINUX_amd64_OBJECTS} 29 tar-darwin-amd64-all: ${TAR_DARWIN_amd64_OBJECTS} 30 tar-baobab-linux-386-all: ${TAR_BAOBAB_LINUX_386_OBJECTS} 31 tar-baobab-linux-amd64-all: ${TAR_BAOBAB_LINUX_amd64_OBJECTS} 32 tar-baobab-darwin-amd64-all: ${TAR_BAOBAB_DARWIN_amd64_OBJECTS} 33 34 ${OBJECTS}: 35 $(GORUN) build/ci.go ${BUILD_PARAM} ./cmd/$@ 36 37 ${RPM_OBJECTS}: 38 ./build/package-rpm.sh ${@:rpm-%=%} 39 40 ${RPM_BAOBAB_OBJECTS}: 41 ./build/package-rpm.sh -b ${@:rpm-baobab-%=%} 42 43 ${TAR_LINUX_386_OBJECTS}: 44 $(eval BIN := ${@:tar-linux-386-%=%}) 45 ./build/cross-compile.sh linux-386 ${BIN} 46 ./build/package-tar.sh linux-386 ${BIN} 47 48 ${TAR_LINUX_amd64_OBJECTS}: 49 $(eval BIN := ${@:tar-linux-amd64-%=%}) 50 ./build/cross-compile.sh linux-amd64 ${BIN} 51 ./build/package-tar.sh linux-amd64 ${BIN} 52 53 ${TAR_DARWIN_amd64_OBJECTS}: 54 $(eval BIN := ${@:tar-darwin-amd64-%=%}) 55 ./build/cross-compile.sh darwin-amd64 ${BIN} 56 ./build/package-tar.sh darwin-amd64 ${BIN} 57 58 ${TAR_BAOBAB_LINUX_386_OBJECTS}: 59 $(eval BIN := ${@:tar-baobab-linux-386-%=%}) 60 ./build/cross-compile.sh linux-386 ${BIN} 61 ./build/package-tar.sh -b linux-386 ${BIN} 62 63 ${TAR_BAOBAB_LINUX_amd64_OBJECTS}: 64 $(eval BIN := ${@:tar-baobab-linux-amd64-%=%}) 65 ./build/cross-compile.sh linux-amd64 ${BIN} 66 ./build/package-tar.sh -b linux-amd64 ${BIN} 67 68 ${TAR_BAOBAB_DARWIN_amd64_OBJECTS}: 69 $(eval BIN := ${@:tar-baobab-darwin-amd64-%=%}) 70 ./build/cross-compile.sh darwin-amd64 ${BIN} 71 ./build/package-tar.sh -b darwin-amd64 ${BIN} 72 73 abigen: 74 $(GORUN) build/ci.go ${BUILD_PARAM} ./cmd/abigen 75 @echo "Done building." 76 @echo "Run \"$(BIN)/abigen\" to launch abigen." 77 78 test: 79 $(GORUN) build/ci.go test 80 81 test-seq: 82 $(GORUN) build/ci.go test -p 1 83 84 test-datasync: 85 $(GORUN) build/ci.go test -p 1 ./datasync/... 86 87 test-networks: 88 $(GORUN) build/ci.go test -p 1 ./networks/... 89 90 test-node: 91 $(GORUN) build/ci.go test -p 1 ./node/... 92 93 test-tests: 94 $(GORUN) build/ci.go test -p 1 ./tests/... 95 96 test-others: 97 $(GORUN) build/ci.go test -p 1 -exclude datasync,networks,node,tests 98 99 cover: 100 $(GORUN) build/ci.go cover -coverprofile=coverage.out 101 go tool cover -func=coverage.out -o coverage_report.txt 102 go tool cover -html=coverage.out -o coverage_report.html 103 @echo "Two coverage reports coverage_report.txt and coverage_report.html are generated." 104 105 fmt: 106 $(GORUN) build/ci.go fmt 107 108 lint-try: 109 $(GORUN) build/ci.go lint-try 110 111 clean: 112 env GO111MODULE=on go clean -cache 113 rm -fr build/_workspace/pkg/ $(BIN)/* build/_workspace/src/ 114 115 # The devtools target installs tools required for 'go generate'. 116 # You need to put $BIN (or $GOPATH/bin) in your PATH to use 'go generate'. 117 118 devtools: 119 env GOFLAGS= GOBIN= go get -u golang.org/x/tools/cmd/stringer 120 env GOFLAGS= GOBIN= go get -u github.com/kevinburke/go-bindata/go-bindata 121 env GOFLAGS= GOBIN= go get -u github.com/fjl/gencodec 122 env GOFLAGS= GOBIN= go get -u github.com/golang/protobuf/protoc-gen-go 123 env GOFLAGS= GOBIN= go install ./cmd/abigen 124 @type "npm" 2> /dev/null || echo 'Please install node.js and npm' 125 @type "solc" 2> /dev/null || echo 'Please install solc' 126 @type "protoc" 2> /dev/null || echo 'Please install protoc'