2019-06-27 19:25:22 +00:00
|
|
|
GITREV=`git describe | cut -c 2-`
|
2023-01-31 21:27:56 +00:00
|
|
|
LDFLAGS=-ldflags="-s -w -X 'github.com/writefreely/writefreely.softwareVer=$(GITREV)'"
|
2018-11-20 13:21:13 +00:00
|
|
|
|
2018-11-08 17:45:59 +00:00
|
|
|
GOCMD=go
|
2018-11-20 13:21:13 +00:00
|
|
|
GOINSTALL=$(GOCMD) install $(LDFLAGS)
|
|
|
|
GOBUILD=$(GOCMD) build $(LDFLAGS)
|
|
|
|
GOTEST=$(GOCMD) test $(LDFLAGS)
|
2018-11-08 17:56:14 +00:00
|
|
|
GOGET=$(GOCMD) get
|
2018-11-08 17:45:59 +00:00
|
|
|
BINARY_NAME=writefreely
|
2019-08-12 20:51:29 +00:00
|
|
|
BUILDPATH=build/$(BINARY_NAME)
|
2018-11-24 17:57:01 +00:00
|
|
|
DOCKERCMD=docker
|
2018-11-24 17:49:52 +00:00
|
|
|
IMAGE_NAME=writeas/writefreely
|
2019-04-06 14:44:06 +00:00
|
|
|
TMPBIN=./tmp
|
2018-11-08 03:33:13 +00:00
|
|
|
|
2018-11-08 17:45:59 +00:00
|
|
|
all : build
|
|
|
|
|
2022-12-24 23:59:19 +00:00
|
|
|
ci: deps
|
2019-04-06 15:46:27 +00:00
|
|
|
cd cmd/writefreely; $(GOBUILD) -v
|
2019-04-06 14:44:06 +00:00
|
|
|
|
2022-12-24 23:59:19 +00:00
|
|
|
build: deps
|
2023-04-28 14:07:00 +00:00
|
|
|
cd cmd/writefreely; $(GOBUILD) -v -tags='netgo sqlite'
|
2018-11-08 17:45:59 +00:00
|
|
|
|
2022-12-24 23:59:19 +00:00
|
|
|
build-no-sqlite: deps-no-sqlite
|
2023-04-28 14:07:00 +00:00
|
|
|
cd cmd/writefreely; $(GOBUILD) -v -tags='netgo' -o $(BINARY_NAME)
|
2019-01-10 02:47:00 +00:00
|
|
|
|
2018-11-10 03:19:24 +00:00
|
|
|
build-linux: deps
|
2018-12-08 23:27:50 +00:00
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2018-12-08 23:27:50 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=linux/amd64, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2018-11-10 03:19:24 +00:00
|
|
|
|
|
|
|
build-windows: deps
|
2018-12-08 23:27:50 +00:00
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2018-12-08 23:27:50 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=windows/amd64, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2018-11-10 03:19:24 +00:00
|
|
|
|
|
|
|
build-darwin: deps
|
2018-12-08 23:27:50 +00:00
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2018-12-08 23:27:50 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=darwin/amd64, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2018-11-10 03:19:24 +00:00
|
|
|
|
2020-01-14 17:02:43 +00:00
|
|
|
build-arm6: deps
|
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2020-01-14 17:02:43 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=linux/arm-6, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2020-01-14 17:02:43 +00:00
|
|
|
|
2019-07-08 12:55:22 +00:00
|
|
|
build-arm7: deps
|
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2019-07-08 12:55:22 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=linux/arm-7, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2019-07-08 12:55:22 +00:00
|
|
|
|
2019-11-21 20:45:06 +00:00
|
|
|
build-arm64: deps
|
|
|
|
@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
|
2023-01-20 11:36:11 +00:00
|
|
|
$(GOCMD) install src.techknowlogick.com/xgo@latest; \
|
2019-11-21 20:45:06 +00:00
|
|
|
fi
|
2023-04-28 14:07:00 +00:00
|
|
|
xgo --targets=linux/arm64, -dest build/ $(LDFLAGS) -tags='netgo sqlite' -go go-1.19.x -out writefreely -pkg ./cmd/writefreely .
|
2019-11-21 20:45:06 +00:00
|
|
|
|
2018-11-24 19:11:39 +00:00
|
|
|
build-docker :
|
|
|
|
$(DOCKERCMD) build -t $(IMAGE_NAME):latest -t $(IMAGE_NAME):$(GITREV) .
|
|
|
|
|
2018-11-08 17:45:59 +00:00
|
|
|
test:
|
|
|
|
$(GOTEST) -v ./...
|
|
|
|
|
2022-12-24 23:59:19 +00:00
|
|
|
run:
|
2023-04-28 14:07:00 +00:00
|
|
|
$(GOINSTALL) -tags='netgo sqlite' ./...
|
2018-11-08 17:45:59 +00:00
|
|
|
$(BINARY_NAME) --debug
|
2018-11-08 03:33:13 +00:00
|
|
|
|
2018-11-08 17:56:14 +00:00
|
|
|
deps :
|
2019-04-06 14:50:22 +00:00
|
|
|
$(GOGET) -tags='sqlite' -d -v ./...
|
2018-11-08 17:56:14 +00:00
|
|
|
|
2019-01-10 02:47:00 +00:00
|
|
|
deps-no-sqlite:
|
2019-04-06 14:50:22 +00:00
|
|
|
$(GOGET) -d -v ./...
|
2019-01-10 02:47:00 +00:00
|
|
|
|
2018-11-11 22:52:24 +00:00
|
|
|
install : build
|
2019-04-16 15:27:27 +00:00
|
|
|
cmd/writefreely/$(BINARY_NAME) --config
|
2018-11-11 22:52:24 +00:00
|
|
|
cmd/writefreely/$(BINARY_NAME) --gen-keys
|
2019-04-16 15:27:27 +00:00
|
|
|
cmd/writefreely/$(BINARY_NAME) --init-db
|
2018-11-08 03:33:13 +00:00
|
|
|
cd less/; $(MAKE) install $(MFLAGS)
|
|
|
|
|
2022-12-24 23:59:19 +00:00
|
|
|
release : clean ui
|
2019-08-12 20:51:29 +00:00
|
|
|
mkdir -p $(BUILDPATH)
|
|
|
|
cp -r templates $(BUILDPATH)
|
|
|
|
cp -r pages $(BUILDPATH)
|
|
|
|
cp -r static $(BUILDPATH)
|
2023-09-22 21:10:42 +00:00
|
|
|
rm -r $(BUILDPATH)/static/local
|
2020-03-27 16:19:59 +00:00
|
|
|
scripts/invalidate-css.sh $(BUILDPATH)
|
2019-08-12 20:51:29 +00:00
|
|
|
mkdir $(BUILDPATH)/keys
|
2018-11-10 03:19:24 +00:00
|
|
|
$(MAKE) build-linux
|
2019-08-12 20:51:29 +00:00
|
|
|
mv build/$(BINARY_NAME)-linux-amd64 $(BUILDPATH)/$(BINARY_NAME)
|
2019-08-22 19:16:37 +00:00
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz -C build $(BINARY_NAME)
|
2019-08-12 20:51:29 +00:00
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME)
|
2020-01-14 17:02:43 +00:00
|
|
|
$(MAKE) build-arm6
|
|
|
|
mv build/$(BINARY_NAME)-linux-arm-6 $(BUILDPATH)/$(BINARY_NAME)
|
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_linux_arm6.tar.gz -C build $(BINARY_NAME)
|
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME)
|
2019-07-08 12:56:25 +00:00
|
|
|
$(MAKE) build-arm7
|
2019-08-12 20:51:29 +00:00
|
|
|
mv build/$(BINARY_NAME)-linux-arm-7 $(BUILDPATH)/$(BINARY_NAME)
|
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_linux_arm7.tar.gz -C build $(BINARY_NAME)
|
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME)
|
2019-11-21 20:45:06 +00:00
|
|
|
$(MAKE) build-arm64
|
|
|
|
mv build/$(BINARY_NAME)-linux-arm64 $(BUILDPATH)/$(BINARY_NAME)
|
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_linux_arm64.tar.gz -C build $(BINARY_NAME)
|
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME)
|
2018-11-10 03:19:24 +00:00
|
|
|
$(MAKE) build-darwin
|
2021-05-10 17:08:49 +00:00
|
|
|
mv build/$(BINARY_NAME)-darwin-10.12-amd64 $(BUILDPATH)/$(BINARY_NAME)
|
2019-08-12 20:51:29 +00:00
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_macos_amd64.tar.gz -C build $(BINARY_NAME)
|
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME)
|
2018-11-10 03:19:24 +00:00
|
|
|
$(MAKE) build-windows
|
2019-08-12 20:51:29 +00:00
|
|
|
mv build/$(BINARY_NAME)-windows-4.0-amd64.exe $(BUILDPATH)/$(BINARY_NAME).exe
|
|
|
|
cd build; zip -r ../$(BINARY_NAME)_$(GITREV)_windows_amd64.zip ./$(BINARY_NAME)
|
2021-05-10 17:08:49 +00:00
|
|
|
rm $(BUILDPATH)/$(BINARY_NAME).exe
|
2018-11-24 19:11:39 +00:00
|
|
|
$(MAKE) build-docker
|
2018-11-24 19:18:11 +00:00
|
|
|
$(MAKE) release-docker
|
|
|
|
|
2019-01-10 16:42:27 +00:00
|
|
|
# This assumes you're on linux/amd64
|
2019-08-22 17:48:58 +00:00
|
|
|
release-linux : clean ui
|
2019-08-12 20:51:29 +00:00
|
|
|
mkdir -p $(BUILDPATH)
|
|
|
|
cp -r templates $(BUILDPATH)
|
|
|
|
cp -r pages $(BUILDPATH)
|
|
|
|
cp -r static $(BUILDPATH)
|
|
|
|
mkdir $(BUILDPATH)/keys
|
2019-01-10 16:42:27 +00:00
|
|
|
$(MAKE) build-no-sqlite
|
2019-08-12 20:51:29 +00:00
|
|
|
mv cmd/writefreely/$(BINARY_NAME) $(BUILDPATH)/$(BINARY_NAME)
|
|
|
|
tar -cvzf $(BINARY_NAME)_$(GITREV)_linux_amd64.tar.gz -C build $(BINARY_NAME)
|
2019-01-10 16:42:27 +00:00
|
|
|
|
2018-11-24 19:18:11 +00:00
|
|
|
release-docker :
|
|
|
|
$(DOCKERCMD) push $(IMAGE_NAME)
|
2019-06-27 19:25:22 +00:00
|
|
|
|
2018-11-08 17:45:59 +00:00
|
|
|
ui : force_look
|
2018-11-08 03:33:13 +00:00
|
|
|
cd less/; $(MAKE) $(MFLAGS)
|
2021-03-03 21:39:29 +00:00
|
|
|
cd prose/; $(MAKE) $(MFLAGS)
|
2018-11-08 17:45:59 +00:00
|
|
|
|
2019-04-06 14:44:06 +00:00
|
|
|
$(TMPBIN):
|
|
|
|
mkdir -p $(TMPBIN)
|
|
|
|
|
2019-04-06 15:28:43 +00:00
|
|
|
$(TMPBIN)/xgo: deps $(TMPBIN)
|
2020-01-14 16:55:55 +00:00
|
|
|
$(GOBUILD) -o $(TMPBIN)/xgo src.techknowlogick.com/xgo
|
2019-04-06 15:28:43 +00:00
|
|
|
|
2018-11-08 17:45:59 +00:00
|
|
|
clean :
|
2018-11-10 03:19:24 +00:00
|
|
|
-rm -rf build
|
2019-04-06 14:44:06 +00:00
|
|
|
-rm -rf tmp
|
2018-11-08 17:45:59 +00:00
|
|
|
cd less/; $(MAKE) clean $(MFLAGS)
|
2018-11-20 17:14:02 +00:00
|
|
|
|
2018-11-08 03:33:13 +00:00
|
|
|
force_look :
|
|
|
|
true
|