surrealpatch/Makefile

122 lines
3 KiB
Makefile
Raw Normal View History

2016-02-26 17:24:22 +00:00
# Copyright © 2016 Abcum Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
GO ?= go
LDF :=
2016-03-17 00:07:53 +00:00
# The `make default` command cleans
# the go build and test files and
# then runs a build and install.
2016-02-26 17:24:22 +00:00
.PHONY: default
2016-04-13 14:17:22 +00:00
default:
@echo "Choose a Makefile target:"
@$(MAKE) -pRrq -f $(lastword $(MAKEFILE_LIST)) : 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print " - " $$1}}' | sort
2016-03-17 00:07:53 +00:00
# The `make doc` command runs the godoc
# web gui, for all golang projects in
# the GO src directory
2016-02-26 17:24:22 +00:00
2016-03-14 16:37:18 +00:00
.PHONY: doc
doc:
2016-04-13 14:17:22 +00:00
@echo "http://127.0.0.1:9000"
@godoc -http=:9000
2016-03-14 16:37:18 +00:00
2016-04-13 14:17:22 +00:00
# The `make kill` command ensures that
# any hanging surreal processes are force
# killed. Useful in development.
2016-03-17 00:07:53 +00:00
2016-04-13 14:17:22 +00:00
.PHONY: kill
kill:
pkill -9 -f surreal
2016-02-26 17:24:22 +00:00
2016-03-17 00:07:53 +00:00
# The `make convey` command downloads
# or updates 'goconvey', and runs the
# auto-updating testing server.
.PHONY: convey
convey:
2016-03-17 16:36:44 +00:00
$(GO) get -u -v github.com/smartystreets/goconvey
2016-03-17 00:07:53 +00:00
goconvey -packages 25 -port 5000
# The `make test` command runs all
# tests, found within all sub-folders
# in the project folder.
.PHONY: test
2016-04-13 14:17:22 +00:00
test: clean
2016-03-17 00:07:53 +00:00
test:
2016-04-13 14:17:22 +00:00
$(GO) test `glide novendor`
# The `make glide` command ensures that
# all imported dependencies are synced
# and located withint the vendor folder.
.PHONY: glide
glide:
glide install --delete
2016-03-17 00:07:53 +00:00
# The `make clean` command cleans
# all object, build, and test files
# and removes the executable file.
2016-02-26 17:24:22 +00:00
.PHONY: clean
clean:
2016-04-13 14:17:22 +00:00
$(GO) clean -i `glide novendor`
2016-02-26 17:24:22 +00:00
find . -name '*.test' -type f -exec rm -f {} \;
2016-03-17 00:07:53 +00:00
# The `make build` command compiles
# the build flags, gets the project
# dependencies, and runs a build.
2016-02-26 17:24:22 +00:00
2016-04-13 14:17:22 +00:00
.PHONY: quick
quick: LDF += $(shell GOPATH=${GOPATH} build/flags.sh)
quick:
@echo "Run 'make glide' before building"
$(GO) build
# The `make build` command compiles
# the build flags, gets the project
# dependencies, and runs a build.
2016-02-26 17:24:22 +00:00
.PHONY: build
build: LDF += $(shell GOPATH=${GOPATH} build/flags.sh)
2016-04-13 14:17:22 +00:00
build: glide
2016-03-18 16:18:58 +00:00
build: clean
2016-02-26 17:24:22 +00:00
build:
2016-04-13 14:17:22 +00:00
$(GO) build -v -ldflags '$(LDF)'
2016-02-26 17:24:22 +00:00
2016-03-17 00:07:53 +00:00
# The `make install` command compiles
# the build flags, gets the project
# dependencies, and runs an install.
2016-02-26 17:24:22 +00:00
.PHONY: install
install: LDF += $(shell GOPATH=${GOPATH} build/flags.sh)
2016-04-13 14:17:22 +00:00
install: glide
2016-03-18 16:18:58 +00:00
install: clean
2016-02-26 17:24:22 +00:00
install:
2016-04-13 14:17:22 +00:00
$(GO) install -v -ldflags '$(LDF)'
2016-03-17 00:07:53 +00:00
# The `make cockroach` command ensures
2016-04-13 14:17:22 +00:00
# that cockroachdb is downloaded and
2016-03-17 00:07:53 +00:00
# installed, ready for testing.
.PHONY: cockroach
cockroach:
$(GO) get -d github.com/cockroachdb/cockroach
$(GO) get -d ../../cockroachdb/cockroach/...
make -C ../../cockroachdb/cockroach clean
make -C ../../cockroachdb/cockroach build
make -C ../../cockroachdb/cockroach install