diff --git a/.gitignore b/.gitignore index 8a726920a86dff38e4166b6d811777e20fee7c64..eecdba0afbe7452c5c33a22a075815882bb5942e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,5 @@ -soar -soar.darwin-386 -soar.darwin-amd64 -soar.linux-386 -soar.linux-amd64 -soar.windows-386 -soar.windows-amd64 +bin/ +release/ common/version.go doc/blueprint/ *.iml diff --git a/Makefile b/Makefile index 1add10092d4e69e96c17a543db5862b50c70f8ab..6e0b0b0621373bb4a6e54365b7ef7aa8d04dae34 100644 --- a/Makefile +++ b/Makefile @@ -67,9 +67,11 @@ cover: test # Builds the project build: fmt tidb-parser @echo "\033[92mBuilding ...\033[0m" + @mkdir -p bin @bash ./genver.sh $(GO_VERSION_MIN) @ret=0 && for d in $$(go list -f '{{if (eq .Name "main")}}{{.ImportPath}}{{end}}' ./...); do \ - go build $$d || ret=$$? ; \ + b=$$(basename $${d}) ; \ + go build -o bin/$${b} $$d || ret=$$? ; \ done ; exit $$ret @echo "build Success!" @@ -78,7 +80,8 @@ fast: @echo "\033[92mBuilding ...\033[0m" @bash ./genver.sh $(GO_VERSION_MIN) @ret=0 && for d in $$(go list -f '{{if (eq .Name "main")}}{{.ImportPath}}{{end}}' ./...); do \ - go build $$d || ret=$$? ; \ + b=$$(basename $${d}) ; \ + go build -o bin/$${b} $$d || ret=$$? ; \ done ; exit $$ret @echo "build Success!" @@ -92,9 +95,9 @@ install: build .PHONY: doc doc: fast @echo "\033[92mAuto generate doc ...\033[0m" - ./soar -list-heuristic-rules > doc/heuristic.md - ./soar -list-rewrite-rules > doc/rewrite.md - ./soar -list-report-types > doc/report_type.md + ./bin/soar -list-heuristic-rules > doc/heuristic.md + ./bin/soar -list-rewrite-rules > doc/rewrite.md + ./bin/soar -list-report-types > doc/report_type.md # Add or change a heuristic rule .PHONY: heuristic @@ -144,12 +147,13 @@ lint: build .PHONY: release release: deps build @echo "\033[92mCross platform building for release ...\033[0m" + @mkdir -p release @for GOOS in darwin linux windows; do \ for GOARCH in amd64; do \ for d in $$(go list -f '{{if (eq .Name "main")}}{{.ImportPath}}{{end}}' ./...); do \ b=$$(basename $${d}) ; \ echo "Building $${b}.$${GOOS}-$${GOARCH} ..."; \ - GOOS=$${GOOS} GOARCH=$${GOARCH} go build -ldflags="-s -w" -v -o $${b}.$${GOOS}-$${GOARCH} $$d 2>/dev/null ; \ + GOOS=$${GOOS} GOARCH=$${GOARCH} go build -ldflags="-s -w" -v -o release/$${b}.$${GOOS}-$${GOARCH} $$d 2>/dev/null ; \ done ; \ done ;\ done diff --git a/doc/example/main_test.sh b/doc/example/main_test.sh index 96f72b5a3cff4f6835d5aad266ae50ff6e89a8c2..dfc6412618942d7c0203e400733ffe7f5e7cfd44 100755 --- a/doc/example/main_test.sh +++ b/doc/example/main_test.sh @@ -4,9 +4,9 @@ PROJECT_PATH=${GOPATH}/src/github.com/XiaoMi/soar/ if [ "$1x" == "-updatex" ]; then - cd "${PROJECT_PATH}" && ./soar -list-test-sqls | ./soar -config=./etc/soar.yaml > ./doc/example/main_test.md + cd "${PROJECT_PATH}" && ./bin/soar -list-test-sqls | ./bin/soar -config=../etc/soar.yaml > ./doc/example/main_test.md else - cd "${PROJECT_PATH}" && ./soar -list-test-sqls | ./soar -config=./etc/soar.yaml > ./doc/example/main_test.log + cd "${PROJECT_PATH}" && ./bin/soar -list-test-sqls | ./bin/soar -config=../etc/soar.yaml > ./doc/example/main_test.log # optimizer_XXX 库名,散粒度,以及索引先后顺序每次可能会不一致 DIFF_LINES=$(cat ./doc/example/main_test.log ./doc/example/main_test.md | grep -v "optimizer\|散粒度" | sort | uniq -u | wc -l) if [ "${DIFF_LINES}" -gt 0 ]; then