github.com/0chain/gosdk@v1.17.11/Makefile (about) 1 ROOT_DIR:=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) 2 3 GOMODCORE := $(GOMODBASE)/zcncore 4 VERSION_FILE := $(ROOT_DIR)/core/version/version.go 5 MAJOR_VERSION := "1.0" 6 7 8 9 include _util/printer.mk 10 11 PLATFORM:=$(shell uname -s | tr "[:upper:]" "[:lower:]") 12 ifneq ($(filter $(GCC_MINOR),linux darwin),) 13 14 else 15 PLATFORM:=windows 16 endif 17 18 include _util/build_$(PLATFORM).mk 19 include _util/build_mobile.mk 20 21 .PHONY: build-tools install-all herumi-all gosdk-all sdkver help lint docs 22 23 default: help 24 25 #GO BUILD SDK 26 gomod-download: 27 go mod download -json 28 29 gomod-clean: 30 go clean -i -r -x -modcache ./... 31 32 clean-gosdk: 33 34 gosdk-build: gomod-download 35 go build -x -v -tags bn256 ./... 36 37 wasm-build: getrev 38 CGO_ENABLED=0 GOOS=js GOARCH=wasm go build -ldflags="-s -w" -buildvcs=false -o ./zcn.wasm ./wasmsdk 39 40 wasm-test: wasm-build 41 env -i $(shell go env) PATH="$(shell go env GOROOT)/misc/wasm:$(PATH)" CGO_ENABLED=0 GOOS=js GOARCH=wasm go test -v ./wasmsdk/jsbridge/input_test.go ./wasmsdk/jsbridge/input.go ./wasmsdk/jsbridge/object.go ./wasmsdk/jsbridge/error.go ./wasmsdk/jsbridge/func.go ./wasmsdk/jsbridge/func_test.go ./wasmsdk/jsbridge/sync.go ./wasmsdk/jsbridge/async.go ./wasmsdk/jsbridge/output.go ./wasmsdk/jsbridge/vars.go 42 43 gosdk-mocks: 44 ./generate_mocks.sh 45 46 gosdk-test: 47 go test -tags bn256 -p 1 ./... 48 49 install-gosdk: | gosdk-build wasm-build 50 51 $(GOPATH)/bin/modvendor: 52 @go get -u github.com/goware/modvendor 53 54 vendor: $(GOPATH)/bin/modvendor 55 @GO111MODULE=on go mod vendor -v 56 @modvendor -copy="**/*.c **/*.h **/*.a" -v 57 58 getrev: 59 $(eval VERSION_STR=$(shell git describe --tags --always)) 60 @echo "" > $(VERSION_FILE) 61 @echo "//====== THIS IS AUTOGENERATED FILE. DO NOT MODIFY ========" >> $(VERSION_FILE) 62 @echo "" >> $(VERSION_FILE) 63 @echo "package version" >> $(VERSION_FILE) 64 @echo const VERSIONSTR = \"$(VERSION_STR)\" >> $(VERSION_FILE) 65 @echo "" >> $(VERSION_FILE) 66 67 install: install-gosdk sdkver 68 69 test: gosdk-test 70 71 clean: clean-gosdk clean-herumi 72 @rm -rf $(OUTDIR) 73 74 lint-wasm: 75 GOOS=js GOARCH=wasm CGO_ENABLED=0 golangci-lint run wasmsdk --disable-all -E errcheck 76 77 lint: lint-wasm 78 golangci-lint run --skip-dirs wasmsdk 79 80 81 build-windows: getrev 82 @echo "Building 0Chain Windows SDK. Please wait..." 83 @go build --buildmode=c-shared -ldflags="-s -w" -o ./winsdk/zcn.windows.dll ./winsdk 84 @echo " ./winsdk/zcn.windows.dll - [OK]" 85 86 help: 87 @echo "Environment: " 88 @echo "\tPLATFORM.......: $(PLATFORM)" 89 @echo "\tGOPATH.........: $(GOPATH)" 90 @echo "\tGOROOT.........: $(GOROOT)" 91 @echo "" 92 @echo "Supported commands:" 93 @echo "\tmake help - Display environment and make targets" 94 @echo "\tmake build-tools - Install go, jq and supporting tools required for build" 95 @echo "\tmake install - Install gosdk" 96 @echo "\tmake clean - Deletes all build output files" 97 @echo "\tmake lint - Runs the golangci-lint 98 99 install-herumi-ubuntu: 100 @cd /tmp && \ 101 wget -O - https://github.com/herumi/mcl/archive/refs/tags/v1.57.tar.gz | tar xz && \ 102 wget -O - https://github.com/herumi/bls/archive/refs/tags/v1.22.tar.gz | tar xz && \ 103 rm -rf mcl && mv mcl* mcl && \ 104 rm -rf bls &&mv bls* bls && \ 105 make -C mcl -j $(nproc) lib/libmclbn256.so install && \ 106 cp mcl/lib/libmclbn256.so /usr/local/lib && \ 107 make MCL_DIR=/tmp/mcl -C bls -j $(nproc) install && \ 108 rm -R /tmp/mcl && \ 109 rm -R /tmp/bls 110 111 docs: 112 @gomarkdoc --exclude-dirs ./zcncore/sample --output '{{.Dir}}/README.md' --repository.default-branch doc/initial ./... 113 @sed -i '' -r 's/\\_/_/g' ./**/README.md 114 @sed -i '' -r 's/\\`/`/g' ./**/README.md