| # General | |
| WORKDIR = $(PWD) | |
| # Go parameters | |
| GOCMD = go | |
| GOTEST = $(GOCMD) test -v | |
| # Git config | |
| GIT_VERSION ?= | |
| GIT_DIST_PATH ?= $(PWD)/.git-dist | |
| GIT_REPOSITORY = http://github.com/git/git.git | |
| # Coverage | |
| COVERAGE_REPORT = coverage.txt | |
| COVERAGE_PROFILE = profile.out | |
| COVERAGE_MODE = atomic | |
| ifneq ($(origin CI), undefined) | |
| WORKDIR := $(GOPATH)/src/gopkg.in/src-d/go-git.v4 | |
| endif | |
| build-git: | |
| @if [ -f $(GIT_DIST_PATH)/git ]; then \ | |
| echo "nothing to do, using cache $(GIT_DIST_PATH)"; \ | |
| else \ | |
| git clone $(GIT_REPOSITORY) -b $(GIT_VERSION) --depth 1 --single-branch $(GIT_DIST_PATH); \ | |
| cd $(GIT_DIST_PATH); \ | |
| make configure; \ | |
| ./configure; \ | |
| make all; \ | |
| fi | |
| test: | |
| @cd $(WORKDIR); \ | |
| $(GOTEST) ./... | |
| test-coverage: | |
| @cd $(WORKDIR); \ | |
| echo "" > $(COVERAGE_REPORT); \ | |
| for dir in `find . -name "*.go" | grep -o '.*/' | sort | uniq`; do \ | |
| $(GOTEST) $$dir -coverprofile=$(COVERAGE_PROFILE) -covermode=$(COVERAGE_MODE); \ | |
| if [ $$? != 0 ]; then \ | |
| exit 2; \ | |
| fi; \ | |
| if [ -f $(COVERAGE_PROFILE) ]; then \ | |
| cat $(COVERAGE_PROFILE) >> $(COVERAGE_REPORT); \ | |
| rm $(COVERAGE_PROFILE); \ | |
| fi; \ | |
| done; \ | |
| clean: | |
| rm -rf $(GIT_DIST_PATH) |