A clean, Markdown-based publishing platform made for writers. Write together, and build a community. https://writefreely.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

116 lines
3.0 KiB

  1. GITREV=`git describe --tags | cut -c 2-`
  2. LDFLAGS=-ldflags="-X 'github.com/writeas/writefreely.softwareVer=$(GITREV)'"
  3. GOCMD=go
  4. GOINSTALL=$(GOCMD) install $(LDFLAGS)
  5. GOBUILD=$(GOCMD) build $(LDFLAGS)
  6. GOTEST=$(GOCMD) test $(LDFLAGS)
  7. GOGET=$(GOCMD) get
  8. BINARY_NAME=writefreely
  9. DOCKERCMD=docker
  10. IMAGE_NAME=writeas/writefreely
  11. all : build
  12. build: assets deps
  13. cd cmd/writefreely; $(GOBUILD) -v -tags='sqlite'
  14. build-no-sqlite: assets-no-sqlite deps-no-sqlite
  15. cd cmd/writefreely; $(GOBUILD) -v -o $(BINARY_NAME)
  16. build-linux: deps
  17. @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
  18. $(GOGET) -u github.com/karalabe/xgo; \
  19. fi
  20. xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
  21. build-windows: deps
  22. @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
  23. $(GOGET) -u github.com/karalabe/xgo; \
  24. fi
  25. xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
  26. build-darwin: deps
  27. @hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
  28. $(GOGET) -u github.com/karalabe/xgo; \
  29. fi
  30. xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -tags='sqlite' -out writefreely ./cmd/writefreely
  31. build-docker :
  32. $(DOCKERCMD) build -t $(IMAGE_NAME):latest -t $(IMAGE_NAME):$(GITREV) .
  33. test:
  34. $(GOTEST) -v ./...
  35. run: dev-assets
  36. $(GOINSTALL) -tags='sqlite' ./...
  37. $(BINARY_NAME) --debug
  38. deps :
  39. $(GOGET) -tags='sqlite' -v ./...
  40. deps-no-sqlite:
  41. $(GOGET) -v ./...
  42. install : build
  43. cmd/writefreely/$(BINARY_NAME) --gen-keys
  44. cd less/; $(MAKE) install $(MFLAGS)
  45. release : clean ui assets
  46. mkdir build
  47. cp -r templates build
  48. cp -r pages build
  49. cp -r static build
  50. mkdir build/keys
  51. $(MAKE) build-linux
  52. mv build/$(BINARY_NAME)-linux-amd64 build/$(BINARY_NAME)
  53. cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz *
  54. rm build/$(BINARY_NAME)
  55. $(MAKE) build-darwin
  56. mv build/$(BINARY_NAME)-darwin-10.6-amd64 build/$(BINARY_NAME)
  57. cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_macos_amd64.tar.gz *
  58. rm build/$(BINARY_NAME)
  59. $(MAKE) build-windows
  60. mv build/$(BINARY_NAME)-windows-4.0-amd64.exe build/$(BINARY_NAME).exe
  61. cd build; zip -r ../$(BINARY_NAME)_$(GITREV)_windows_amd64.zip ./*
  62. $(MAKE) build-docker
  63. $(MAKE) release-docker
  64. # This assumes you're on linux/amd64
  65. release-linux : clean ui
  66. mkdir build
  67. cp -r templates build
  68. cp -r pages build
  69. cp -r static build
  70. mkdir build/keys
  71. $(MAKE) build-no-sqlite
  72. mv cmd/writefreely/$(BINARY_NAME) build/$(BINARY_NAME)
  73. cd build; tar -cvzf ../$(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz *
  74. release-docker :
  75. $(DOCKERCMD) push $(IMAGE_NAME)
  76. ui : force_look
  77. cd less/; $(MAKE) $(MFLAGS)
  78. assets : generate
  79. go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql
  80. assets-no-sqlite: generate
  81. go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql
  82. dev-assets : generate
  83. go-bindata -pkg writefreely -ignore=\\.gitignore -debug schema.sql sqlite.sql
  84. generate :
  85. @hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
  86. $(GOGET) -u github.com/jteeuwen/go-bindata/...; \
  87. fi
  88. clean :
  89. -rm -rf build
  90. cd less/; $(MAKE) clean $(MFLAGS)
  91. force_look :
  92. true