github.com/loomnetwork/gamechain@v0.0.0-20200406110549-36c47eb97a92/Makefile (about) 1 PKG = github.com/loomnetwork/gamechain 2 PKG_BATTLEGROUND = $(PKG)/battleground 3 4 # Specifies the loomnetwork/loomchain branch/revision to use 5 LOOMCHAIN_GIT_REV = gamechain 6 7 GIT_SHA = `git rev-parse --verify HEAD` 8 BUILD_DATE = `date -Iseconds` 9 10 PROTOC = protoc --plugin=./protoc-gen-gogo -I. -I$(GOPATH)/src -I/usr/local/include 11 PLUGIN_DIR = $(GOPATH)/src/github.com/loomnetwork/go-loom 12 GOGO_PROTOBUF_DIR = $(GOPATH)/src/github.com/gogo/protobuf 13 LOOMCHAIN_DIR = $(GOPATH)/src/github.com/loomnetwork/loomchain 14 HASHICORP_DIR = $(GOPATH)/src/github.com/hashicorp/go-plugin 15 PROMETHEUS_PROCFS_DIR=$(GOPATH)/src/github.com/prometheus/procfs 16 17 GOFLAGS_BASE = -X $(PKG_BATTLEGROUND).BuildDate=$(BUILD_DATE) -X $(PKG_BATTLEGROUND).BuildGitSha=$(GIT_SHA) -X $(PKG_BATTLEGROUND).BuildNumber=$(BUILD_NUMBER) 18 GOFLAGS = -ldflags "$(GOFLAGS_BASE)" 19 20 all: build-ext cli 21 22 build: contracts/zombiebattleground.so.1.0.0 23 24 build-ext: contracts/zombiebattleground.1.0.0 25 26 cli: bin/zb-cli 27 28 oracle: bin/gcoracle 29 30 tools: bin/zb-enum-gen bin/zb-console-game 31 32 gamechain-logger: proto bin/gamechain-logger 33 34 gamechain-replay: proto bin/gamechain-replay 35 36 gamechain-debugger: bin/zb-cli bin/gamechain-debugger 37 38 bin/zb-cli: 39 go build -o $@ $(PKG)/cli 40 41 bin/zb-enum-gen: 42 go build -o $@ tools/cmd/templates/main.go 43 44 bin/zb-console-game: 45 go build -o $@ tools/cmd/console_game/main.go 46 47 bin/gamechain-logger: 48 go build -o $@ $(PKG)/tools/gamechain-logger 49 50 bin/gamechain-replay: 51 go build -o $@ $(PKG)/tools/gamechain-replay 52 53 bin/gamechain-debugger: 54 packr2 build -o $@ $(PKG)/tools/gamechain-debugger 55 56 bin/gcoracle: 57 go build -o $@ $(PKG)/tools/gcoracle 58 59 contracts/zombiebattleground.so.1.0.0: proto 60 go build $(GOFLAGS) -buildmode=plugin -o $@ $(PKG)/plugin 61 62 contracts/zombiebattleground.1.0.0: proto 63 go build $(GOFLAGS) -o $@ $(PKG)/plugin 64 65 protoc-gen-gogo: 66 go build github.com/gogo/protobuf/protoc-gen-gogo 67 68 %.pb.go: %.proto protoc-gen-gogo 69 if [ -e "protoc-gen-gogo.exe" ]; then mv protoc-gen-gogo.exe protoc-gen-gogo; fi 70 $(PROTOC) --gogo_out=$(GOPATH)/src $(PKG)/$< 71 72 %.cs: %.proto protoc-gen-gogo 73 if [ -e "protoc-gen-gogo.exe" ]; then mv protoc-gen-gogo.exe protoc-gen-gogo; fi 74 cp $< $<-cs.bak 75 grep -vw 'import "github.com/gogo/protobuf/gogoproto/gogo.proto";' $<-cs.bak | sed -e 's/\[[^][]*\]//g;s/option (gogoproto\.[a-z_]*) = false;//g' > $<-cs && rm $<-cs.bak 76 $(PROTOC) --csharp_out=./$(dir $<) $(PKG)/$<-cs 77 rm $<-cs 78 find ./$(dir $<)*.cs -type f -exec sed -i.bak 's/global::Google.Protobuf/global::Loom.Google.Protobuf/g' {} \; 79 find ./$(dir $<)*.cs.bak -type f -exec rm {} \; 80 81 proto: types/zb/zb_data/zb_data.pb.go \ 82 types/zb/zb_enums/zb_enums.pb.go \ 83 types/zb/zb_calls/zb_calls.pb.go \ 84 types/zb/zb_custombase/zb_custombase.pb.go \ 85 types/zb/zb_data/zb_data.cs \ 86 types/zb/zb_enums/zb_enums.cs \ 87 types/zb/zb_calls/zb_calls.cs \ 88 types/zb/zb_custombase/zb_custombase.cs \ 89 types/oracle/oracle.pb.go \ 90 types/nullable/nullable_pb/nullable.pb.go \ 91 types/nullable/nullable_pb/nullable.cs 92 93 $(PLUGIN_DIR): 94 git clone -q git@github.com:loomnetwork/go-loom.git $@ 95 96 $(LOOMCHAIN_DIR): 97 git clone -q git@github.com:loomnetwork/loomchain.git $@ 98 99 deps: $(PLUGIN_DIR) $(LOOMCHAIN_DIR) 100 # Temp workaround for https://github.com/prometheus/procfs/issues/221 101 git clone -q git@github.com:prometheus/procfs $(PROMETHEUS_PROCFS_DIR) 102 cd $(PROMETHEUS_PROCFS_DIR) && git checkout master && git pull && git checkout d3b299e382e6acf1baa852560d862eca4ff643c8 103 # Lock down Prometheus golang client to v1.2.1 (newer versions use a different protobuf version) 104 git clone -q git@github.com:prometheus/client_golang $(GOPATH)/src/github.com/prometheus/client_golang 105 cd $(GOPATH)/src/github.com/prometheus/client_golang && git checkout master && git pull && git checkout v1.2.1 106 # prometheus/client_model is pulled by prometheus/client_golang so lock it down as well 107 git clone -q git@github.com:prometheus/client_model $(GOPATH)/src/github.com/prometheus/client_model 108 cd $(GOPATH)/src/github.com/prometheus/client_model && git checkout master && git pull && git checkout 14fe0d1b01d4d5fc031dd4bec1823bd3ebbe8016 109 # prometheus/common is pulled by prometheus/client_golang so lock it down as well 110 git clone -q git@github.com:prometheus/common $(GOPATH)/src/github.com/prometheus/common 111 cd $(GOPATH)/src/github.com/prometheus/common && git checkout master && git pull && git checkout v0.7.0 112 113 go get \ 114 github.com/golang/dep/cmd/dep \ 115 github.com/spf13/cobra \ 116 github.com/spf13/viper \ 117 github.com/pkg/errors \ 118 github.com/stretchr/testify/assert\ 119 github.com/hashicorp/go-plugin \ 120 github.com/google/uuid \ 121 github.com/grpc-ecosystem/go-grpc-prometheus \ 122 github.com/loomnetwork/e2e \ 123 github.com/iancoleman/strcase \ 124 github.com/jroimartin/gocui \ 125 github.com/Jeffail/gabs \ 126 github.com/gorilla/websocket \ 127 github.com/go-sql-driver/mysql \ 128 gopkg.in/yaml.v2 \ 129 github.com/sirupsen/logrus \ 130 gopkg.in/check.v1 \ 131 github.com/kr/logfmt \ 132 github.com/phonkee/go-pubsub \ 133 github.com/jinzhu/gorm \ 134 github.com/mattn/go-sqlite3 \ 135 github.com/dgrijalva/jwt-go \ 136 github.com/getsentry/raven-go \ 137 github.com/gobuffalo/packr/v2 \ 138 github.com/gobuffalo/packr/v2/... \ 139 github.com/gorilla/mux \ 140 github.com/eosspark/geos/common/hexutil 141 142 go install github.com/golang/dep/cmd/dep 143 # loomchain make deps will try to clone prometheus/** and will fail if the directory exists 144 rm -rf $(GOPATH)/src/github.com/prometheus 145 cd $(LOOMCHAIN_DIR) && git checkout master && git pull && git checkout $(LOOMCHAIN_GIT_REV) && git pull && \ 146 make deps && make && cp loom $(GOPATH)/bin 147 148 149 abigen: 150 go build github.com/ethereum/go-ethereum/cmd/abigen 151 mkdir tmp_build || true 152 # Need to run truffle compile and compile over latest ABI for a zombie battleground solidity mode 153 cat ./ethcontract/zbgame_mode.json | jq '.abi' > ./tmp_build/eth_game_mode_contract.abi 154 ./abigen --abi ./tmp_build/eth_game_mode_contract.abi --pkg ethcontract --type ZGCustomGameMode --out ethcontract/zb_gamemode.go 155 156 oracle-abigen: 157 go build github.com/ethereum/go-ethereum/cmd/abigen 158 ./abigen --abi oracle/abi/ZBGCardABI.json --pkg ethcontract --type ZBGCard --out oracle/ethcontract/zbgcard.go 159 160 test: 161 #TODO fix go vet in tests 162 go test -timeout=30m -vet=off -v ./... -tags evm 163 164 clean: 165 go clean 166 rm -f \ 167 protoc-gen-gogo \ 168 types/zb/zb.pb.go \ 169 types/zb/Zb.cs \ 170 types/zb/zb_data/zb_data.pb.go \ 171 types/zb/zb_enums/zb_enums.pb.go \ 172 types/zb/zb_calls/zb_calls.pb.go \ 173 types/zb/zb_custombase/zb_custombase.pb.go \ 174 types/zb/zb_data/ZbData.cs \ 175 types/zb/zb_calls/ZbCalls.cs \ 176 types/zb/zb_enums/ZbEnums.cs \ 177 types/zb/zb_custombase/ZbCustombase.cs \ 178 types/oracle/oracle.pb.go \ 179 types/nullable/nullable_pb/nullable.pb.go \ 180 types/nullable/nullable_pb/Nullable.cs \ 181 types/nullable/nullable_test_pb/nullable_test.pb.go \ 182 contracts/zombiebattleground.so.1.0.0 \ 183 contracts/zombiebattleground.1.0.0 \ 184 bin/zb-cli \ 185 bin/zb-enum-gen \ 186 bin/gamechain-logger \ 187 bin/gamechain-replay \ 188 bin/gamechain-debugger 189 190 191 .PHONY: all clean test deps proto cli zb_console_game tools bin/zb-enum-gen bin/gamechain-logger abigen bin/gcoracle oracle-abigen