github.com/gochain-io/gochain/v3@v3.2.8/Makefile (about)

     1  .PHONY: gochain android ios gochain-cross swarm evm all test clean
     2  .PHONY: gochain-linux gochain-linux-386 gochain-linux-amd64 gochain-linux-mips64 gochain-linux-mips64le
     3  .PHONY: gochain-linux-arm gochain-linux-arm-5 gochain-linux-arm-6 gochain-linux-arm-7 gochain-linux-arm64
     4  .PHONY: gochain-darwin gochain-darwin-386 gochain-darwin-amd64
     5  .PHONY: gochain-windows gochain-windows-386 gochain-windows-amd64
     6  .PHONY: docker release
     7  
     8  GOBIN = $(shell pwd)/build/bin
     9  GO ?= latest
    10  
    11  # Compare current go version to minimum required version. Exit with \
    12  # error message if current version is older than required version.
    13  # Set min_ver to the mininum required Go version such as "1.12"
    14  min_ver := 1.12
    15  ver = $(shell go version)
    16  ver2 = $(word 3, ,$(ver))
    17  cur_ver = $(subst go,,$(ver2))
    18  ver_check := $(filter $(min_ver),$(firstword $(sort $(cur_ver) \
    19  $(min_ver))))
    20  ifeq ($(ver_check),)
    21  $(error Running Go version $(cur_ver). Need $(min_ver) or higher. Please upgrade Go version)
    22  endif
    23  
    24  gochain:
    25  	cd cmd/gochain; go build -o ../../bin/gochain
    26  	@echo "Done building."
    27  	@echo "Run \"bin/gochain\" to launch gochain."
    28  
    29  bootnode:
    30  	cd cmd/bootnode; go build -o ../../bin/gochain-bootnode
    31  	@echo "Done building."
    32  	@echo "Run \"bin/gochain-bootnode\" to launch gochain."
    33  
    34  docker:
    35  	docker build -t gochain/gochain .
    36  
    37  all: bootnode gochain
    38  
    39  release:
    40  	./release.sh
    41  
    42  install: all
    43  	cp bin/gochain-bootnode $(GOPATH)/bin/gochain-bootnode
    44  	cp bin/gochain $(GOPATH)/bin/gochain
    45  
    46  android:
    47  	build/env.sh go run build/ci.go aar --local
    48  	@echo "Done building."
    49  	@echo "Import \"$(GOBIN)/gochain.aar\" to use the library."
    50  
    51  ios:
    52  	build/env.sh go run build/ci.go xcode --local
    53  	@echo "Done building."
    54  	@echo "Import \"$(GOBIN)/gochain.framework\" to use the library."
    55  
    56  test:
    57  	go test ./...
    58  
    59  clean:
    60  	rm -fr build/_workspace/pkg/ $(GOBIN)/*
    61  
    62  # The devtools target installs tools required for 'go generate'.
    63  # You need to put $GOBIN (or $GOPATH/bin) in your PATH to use 'go generate'.
    64  
    65  devtools:
    66  	env GOBIN= go get -u golang.org/x/tools/cmd/stringer
    67  	env GOBIN= go get -u github.com/kevinburke/go-bindata/go-bindata
    68  	env GOBIN= go get -u github.com/fjl/gencodec
    69  	env GOBIN= go get -u github.com/golang/protobuf/protoc-gen-go
    70  	env GOBIN= go install ./cmd/abigen
    71  	@type "npm" 2> /dev/null || echo 'Please install node.js and npm'
    72  	@type "solc" 2> /dev/null || echo 'Please install solc'
    73  	@type "protoc" 2> /dev/null || echo 'Please install protoc'
    74  
    75  # Cross Compilation Targets (xgo)
    76  
    77  gochain-cross: gochain-linux gochain-darwin gochain-windows gochain-android gochain-ios
    78  	@echo "Full cross compilation done:"
    79  	@ls -ld $(GOBIN)/gochain-*
    80  
    81  gochain-linux: gochain-linux-386 gochain-linux-amd64 gochain-linux-arm gochain-linux-mips64 gochain-linux-mips64le
    82  	@echo "Linux cross compilation done:"
    83  	@ls -ld $(GOBIN)/gochain-linux-*
    84  
    85  gochain-linux-386:
    86  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/386 -v ./cmd/gochain
    87  	@echo "Linux 386 cross compilation done:"
    88  	@ls -ld $(GOBIN)/gochain-linux-* | grep 386
    89  
    90  gochain-linux-amd64:
    91  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/amd64 -v ./cmd/gochain
    92  	@echo "Linux amd64 cross compilation done:"
    93  	@ls -ld $(GOBIN)/gochain-linux-* | grep amd64
    94  
    95  gochain-linux-arm: gochain-linux-arm-5 gochain-linux-arm-6 gochain-linux-arm-7 gochain-linux-arm64
    96  	@echo "Linux ARM cross compilation done:"
    97  	@ls -ld $(GOBIN)/gochain-linux-* | grep arm
    98  
    99  gochain-linux-arm-5:
   100  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-5 -v ./cmd/gochain
   101  	@echo "Linux ARMv5 cross compilation done:"
   102  	@ls -ld $(GOBIN)/gochain-linux-* | grep arm-5
   103  
   104  gochain-linux-arm-6:
   105  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-6 -v ./cmd/gochain
   106  	@echo "Linux ARMv6 cross compilation done:"
   107  	@ls -ld $(GOBIN)/gochain-linux-* | grep arm-6
   108  
   109  gochain-linux-arm-7:
   110  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm-7 -v ./cmd/gochain
   111  	@echo "Linux ARMv7 cross compilation done:"
   112  	@ls -ld $(GOBIN)/gochain-linux-* | grep arm-7
   113  
   114  gochain-linux-arm64:
   115  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/arm64 -v ./cmd/gochain
   116  	@echo "Linux ARM64 cross compilation done:"
   117  	@ls -ld $(GOBIN)/gochain-linux-* | grep arm64
   118  
   119  gochain-linux-mips:
   120  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips --ldflags '-extldflags "-static"' -v ./cmd/gochain
   121  	@echo "Linux MIPS cross compilation done:"
   122  	@ls -ld $(GOBIN)/gochain-linux-* | grep mips
   123  
   124  gochain-linux-mipsle:
   125  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mipsle --ldflags '-extldflags "-static"' -v ./cmd/gochain
   126  	@echo "Linux MIPSle cross compilation done:"
   127  	@ls -ld $(GOBIN)/gochain-linux-* | grep mipsle
   128  
   129  gochain-linux-mips64:
   130  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64 --ldflags '-extldflags "-static"' -v ./cmd/gochain
   131  	@echo "Linux MIPS64 cross compilation done:"
   132  	@ls -ld $(GOBIN)/gochain-linux-* | grep mips64
   133  
   134  gochain-linux-mips64le:
   135  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=linux/mips64le --ldflags '-extldflags "-static"' -v ./cmd/gochain
   136  	@echo "Linux MIPS64le cross compilation done:"
   137  	@ls -ld $(GOBIN)/gochain-linux-* | grep mips64le
   138  
   139  gochain-darwin: gochain-darwin-386 gochain-darwin-amd64
   140  	@echo "Darwin cross compilation done:"
   141  	@ls -ld $(GOBIN)/gochain-darwin-*
   142  
   143  gochain-darwin-386:
   144  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/386 -v ./cmd/gochain
   145  	@echo "Darwin 386 cross compilation done:"
   146  	@ls -ld $(GOBIN)/gochain-darwin-* | grep 386
   147  
   148  gochain-darwin-amd64:
   149  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=darwin/amd64 -v ./cmd/gochain
   150  	@echo "Darwin amd64 cross compilation done:"
   151  	@ls -ld $(GOBIN)/gochain-darwin-* | grep amd64
   152  
   153  gochain-windows: gochain-windows-386 gochain-windows-amd64
   154  	@echo "Windows cross compilation done:"
   155  	@ls -ld $(GOBIN)/gochain-windows-*
   156  
   157  gochain-windows-386:
   158  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/386 -v ./cmd/gochain
   159  	@echo "Windows 386 cross compilation done:"
   160  	@ls -ld $(GOBIN)/gochain-windows-* | grep 386
   161  
   162  gochain-windows-amd64:
   163  	build/env.sh go run build/ci.go xgo -- --go=$(GO) --targets=windows/amd64 -v ./cmd/gochain
   164  	@echo "Windows amd64 cross compilation done:"
   165  	@ls -ld $(GOBIN)/gochain-windows-* | grep amd64