| # 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) |