-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
41 lines (29 loc) · 1.35 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
RELEASE_VERSION := $(shell git describe --tags --always 2>/dev/null || git rev-parse --short HEAD)
MODULE := github.com/bdazl/note
# On Arch Linux, the package is extra/mingw-w64-gcc
WIN_CC ?= /usr/bin/x86_64-w64-mingw32-gcc
DOCKER ?= podman
DOCKER_IMAGE ?= note:latest
VHS_IMAGE ?= note-vhs:latest
clean:
rm -rf $(MAKEFILE_DIR)build
install-prereq:
# https://github.com/mattn/go-sqlite3?tab=readme-ov-file#installation
CGO_ENABLED=1 go install github.com/mattn/go-sqlite3
build-all: build-linux cross-build-windows
build-all-docker: build-docker build-docker-vhs generate-gifs
build-linux:
mkdir -p build/amd64/linux
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w -X '$(MODULE)/cmd.Version=$(RELEASE_VERSION)'" -o build/amd64/linux/note
build-cross-windows:
mkdir -p build/amd64/windows
CC=$(WIN_CC) CGO_ENABLED=1 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags="-s -w -X '$(MODULE)/cmd.Version=$(RELEASE_VERSION)'" -o build/amd64/windows/note.exe
build-docker:
$(DOCKER) build -t $(DOCKER_IMAGE) $(MAKEFILE_DIR)
build-vhs: build-docker-vhs generate-gifs
build-docker-vhs:
$(DOCKER) build -t $(VHS_IMAGE) $(MAKEFILE_DIR)docs
generate-gifs:
cd $(MAKEFILE_DIR)docs
DOCKER="$(DOCKER)" VHS_IMAGE="$(VHS_IMAGE)" $(MAKEFILE_DIR)docs/generate $(MAKEFILE_DIR)docs/gifs