aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: a894e2b6cef3cd0f49fa9a7e5c3398dc6fb37920 (plain) (blame)
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

# SPDX-License-Identifier: AGPL-3.0-only
# SPDX-FileCopyrightText: Copyright (c) 2025 Runxi Yu <https://runxiyu.org>
#
# TODO: This Makefile utilizes a lot of GNU extensions. Some of them are
# unfortunately difficult to avoid as POSIX Make's pattern rules are not
# sufficiently expressive. This needs to be fixed sometime (or we might move to
# some other build system).
#

.PHONY: clean all

CFLAGS = -Wall -Wextra -pedantic -std=c99 -D_GNU_SOURCE

all: dist/forged dist/git2d dist/hookc

dist/forged: $(shell git ls-files forged)
	mkdir -p dist
	sqlc -f forged/sqlc.yaml generate
	CGO_ENABLED=0 go build -o dist/forged -ldflags '-extldflags "-f no-PIC -static"' -tags 'osusergo netgo static_build' ./forged

dist/git2d: $(wildcard git2d/*.c)
	mkdir -p dist
	$(CC) $(CFLAGS) -o dist/git2d $^ $(shell pkg-config --cflags --libs libgit2) -lpthread

dist/hookc: $(wildcard hookc/*.c)
	mkdir -p dist
	$(CC) $(CFLAGS) -o dist/hookc $^

clean:
	rm -rf dist