Makefile 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. LDFLAGS += -X "gogs.io/gogs/internal/setting.BuildTime=$(shell date -u '+%Y-%m-%d %I:%M:%S %Z')"
  2. LDFLAGS += -X "gogs.io/gogs/internal/setting.BuildCommit=$(shell git rev-parse HEAD)"
  3. CONF_FILES := $(shell find conf | sed 's/ /\\ /g')
  4. TEMPLATES_FILES := $(shell find templates | sed 's/ /\\ /g')
  5. PUBLIC_FILES := $(shell find public | sed 's/ /\\ /g')
  6. LESS_FILES := $(wildcard public/less/gogs.less public/less/_*.less)
  7. ASSETS_GENERATED := internal/assets/conf/conf_gen.go internal/assets/templates/templates_gen.go internal/assets/public/public_gen.go
  8. GENERATED := $(ASSETS_GENERATED) public/css/gogs.css
  9. OS := $(shell uname)
  10. TAGS = ""
  11. BUILD_FLAGS = "-v"
  12. RELEASE_ROOT = "release"
  13. RELEASE_GOGS = "release/gogs"
  14. NOW = $(shell date -u '+%Y%m%d%I%M%S')
  15. GOVET = go tool vet -composites=false -methods=false -structtags=false
  16. .PHONY: build pack release generate clean
  17. .IGNORE: public/css/gogs.css
  18. all: build
  19. check: test
  20. dist: release
  21. web: build
  22. ./gogs web
  23. govet:
  24. $(GOVET) gogs.go
  25. $(GOVET) models pkg routes
  26. build: $(GENERATED)
  27. go build $(BUILD_FLAGS) -ldflags '$(LDFLAGS)' -tags '$(TAGS)' -trimpath -o gogs
  28. build-dev: $(GENERATED) govet
  29. go build $(BUILD_FLAGS) -tags '$(TAGS)' -trimpath -o gogs
  30. cp '$(GOPATH)/bin/gogs' .
  31. build-dev-race: $(GENERATED) govet
  32. go build $(BUILD_FLAGS) -race -tags '$(TAGS)' -trimpath -o gogs
  33. pack:
  34. rm -rf $(RELEASE_GOGS)
  35. mkdir -p $(RELEASE_GOGS)
  36. cp -r gogs LICENSE README.md README_ZH.md scripts $(RELEASE_GOGS)
  37. cd $(RELEASE_ROOT) && zip -r gogs.$(NOW).zip "gogs"
  38. release: build pack
  39. generate: $(ASSETS_GENERATED)
  40. internal/assets/conf/conf_gen.go: $(CONF_FILES)
  41. -rm -f $@
  42. go generate internal/assets/conf/conf.go
  43. gofmt -s -w $@
  44. internal/assets/templates/templates_gen.go: $(TEMPLATES_FILES)
  45. -rm -f $@
  46. go generate internal/assets/templates/templates.go
  47. gofmt -s -w $@
  48. internal/assets/public/public_gen.go: $(PUBLIC_FILES)
  49. -rm -f $@
  50. go generate internal/assets/public/public.go
  51. gofmt -s -w $@
  52. less: public/css/gogs.css
  53. public/css/gogs.css: $(LESS_FILES)
  54. @type lessc >/dev/null 2>&1 && lessc $< >$@ || echo "lessc command not found, skipped."
  55. clean:
  56. go clean -i ./...
  57. clean-mac: clean
  58. find . -name ".DS_Store" -print0 | xargs -0 rm
  59. test:
  60. go test -cover -race ./...
  61. fixme:
  62. grep -rnw "FIXME" cmd routers models pkg
  63. todo:
  64. grep -rnw "TODO" cmd routers models pkg
  65. # Legacy code should be remove by the time of release
  66. legacy:
  67. grep -rnw "LEGACY" cmd routes models pkg