- DIST := dist
- BIN := bin
-
- EXECUTABLE := gitea
- IMPORT := github.com/go-gitea/gitea
-
- SHA := $(shell git rev-parse --short HEAD)
- DATE := $(shell date -u '+%Y-%m-%d %I:%M:%S %Z')
-
- BINDATA := $(shell find conf | sed 's/ /\\ /g')
- STYLESHEETS := $(wildcard public/less/index.less public/less/_*.less)
- JAVASCRIPTS :=
-
- LDFLAGS += -X "github.com/go-gitea/gitea/modules/setting.BuildTime=$(DATE)"
- LDFLAGS += -X "github.com/go-gitea/gitea/modules/setting.BuildGitHash=$(SHA)"
-
- TARGETS ?= linux/*,darwin/*,windows/*
- PACKAGES ?= $(shell go list ./... | grep -v /vendor/)
-
- TAGS ?=
-
- ifneq ($(TRAVIS_TAG),)
- VERSION ?= $(TRAVIS_TAG)
- else
- ifneq ($(TRAVIS_BRANCH),)
- VERSION ?= $(TRAVIS_BRANCH)
- else
- VERSION ?= master
- endif
- endif
-
- .PHONY: all
- all: clean test build
-
- .PHONY: clean
- clean:
- go clean -i ./...
- rm -rf $(BIN) $(DIST)
-
- .PHONY: deps
- deps:
- @which go-bindata > /dev/null; if [ $$? -ne 0 ]; then \
- go get -u github.com/jteeuwen/go-bindata/...; \
- fi
-
- .PHONY: fmt
- fmt:
- go fmt $(PACKAGES)
-
- .PHONY: vet
- vet:
- go vet $(PACKAGES)
-
- .PHONY: lint
- lint:
- @which golint > /dev/null; if [ $$? -ne 0 ]; then \
- go get -u github.com/golang/lint/golint; \
- fi
- for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;
-
- .PHONY: test
- test:
- for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || exit 1; done;
-
- .PHONY: check
- check: test
-
- .PHONY: install
- install: $(BIN)/$(EXECUTABLE)
- cp $< $(GOPATH)/bin/
-
- .PHONY: build
- build: $(BIN)/$(EXECUTABLE)
-
- $(BIN)/$(EXECUTABLE): $(wildcard *.go)
- go build -v -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -o $@
-
- .PHONY: release
- release: release-build release-copy release-check
-
- .PHONY: release-build
- release-build:
- @which xgo > /dev/null; if [ $$? -ne 0 ]; then \
- go get -u github.com/karalabe/xgo; \
- fi
- xgo -dest $(BIN) -tags '$(TAGS)' -ldflags '-s -w $(LDFLAGS)' -targets '$(TARGETS)' -out $(EXECUTABLE)-$(VERSION) $(IMPORT)
-
- .PHONY: release-copy
- release-copy:
- mkdir -p $(DIST)/release
- $(foreach file,$(wildcard $(BIN)/$(EXECUTABLE)-*),cp $(file) $(DIST)/release/$(notdir $(file));)
-
- .PHONY: release-check
- release-check:
- cd $(DIST)/release; $(foreach file,$(wildcard $(DIST)/release/$(EXECUTABLE)-*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;)
-
- .PHONY: latest
- latest: release-build latest-copy latest-check
-
- .PHONY: latest-copy
- latest-copy:
- mkdir -p $(DIST)/latest
- $(foreach file,$(wildcard $(BIN)/$(EXECUTABLE)-*),cp $(file) $(DIST)/latest/$(subst $(EXECUTABLE)-$(VERSION),$(EXECUTABLE)-latest,$(notdir $(file)));)
-
- .PHONY: latest-check
- latest-check:
- cd $(DIST)/latest; $(foreach file,$(wildcard $(DIST)/latest/$(EXECUTABLE)-*),sha256sum $(notdir $(file)) > $(notdir $(file)).sha256;)
-
- .PHONY: publish
- publish: release latest
-
- .PHONY: bindata
- bindata: modules/bindata/bindata.go
-
- .IGNORE: modules/bindata/bindata.go
- modules/bindata/bindata.go: $(BINDATA)
- go-bindata -o=$@ -ignore="\\.go|README.md|TRANSLATORS" -pkg=bindata conf/...
- go fmt $@
-
- .PHONY: javascripts
- javascripts: public/js/index.js
-
- .IGNORE: public/js/index.js
- public/js/index.js: $(JAVASCRIPTS)
- cat $< >| $@
-
- .PHONY: stylesheets
- stylesheets: public/css/index.css
-
- .IGNORE: public/css/index.css
- public/css/index.css: $(STYLESHEETS)
- lessc $< $@
-
- .PHONY: generate
- generate: bindata javascripts stylesheets
|