romele / git-trace public
61 commits · 1 branch · 1 tag · last push 7m ago
Makefile
CC ?= cc CFLAGS ?= -O2 -Wall -Wextra -Werror -std=c11 -D_GNU_SOURCE GT_SHA := $(shell git rev-parse --short HEAD 2>/dev/null || echo unknown) CFLAGS += -DGT_VERSION=\"v1.0\" -DGT_SHA=\"$(GT_SHA)\" LDLIBS := -lsqlite3 -lpthread SRC := src/main.c src/httpd.c src/cgi.c src/gitx.c src/repo.c \ src/web.c src/db.c src/util.c src/auth.c src/crypto.c \ src/ssh.c src/collab.c src/patchset.c src/mirror.c src/ratelimit.c \ src/highlight.c src/markdown.c src/export.c src/webhook.c \ src/ci.c src/wcommit.c \ src/ops.c OBJ := $(SRC:.c=.o) git-trace: src/schema.h src/hooks.h $(OBJ) $(CC) $(CFLAGS) -o $@ $(OBJ) $(LDLIBS) src/schema.h: sql/schema.sql @printf 'static const char SCHEMA_SQL[] =\n' > $@ @sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/\\n"/' $< >> $@ @printf ';\n' >> $@ src/hooks.h: hooks/update hooks/post-receive @printf 'static const char UPDATE_HOOK[] =\n' > $@ @sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/\\n"/' hooks/update >> $@ @printf ';\n' >> $@ @printf 'static const char POSTRECV_HOOK[] =\n' >> $@ @sed 's/\\/\\\\/g; s/"/\\"/g; s/^/"/; s/$$/\\n"/' hooks/post-receive >> $@ @printf ';\n' >> $@ src/db.o: src/schema.h src/main.o: src/hooks.h %.o: %.c $(CC) $(CFLAGS) -MMD -MP -c -o $@ $< -include $(OBJ:.o=.d) clean: rm -f git-trace $(OBJ) $(OBJ:.o=.d) src/schema.h src/hooks.h docker-image: docker build -f Dockerfile.dev -t git-trace-dev . docker-build: docker run --rm -v "$$(pwd -W 2>/dev/null || pwd):/src" git-trace-dev make fuzz: bash tests/fuzz.sh .PHONY: clean docker-image docker-build fuzz