summaryrefslogtreecommitdiff
path: root/Makefile
blob: be87da4612972bde531bec162186bd93e51826e1 (plain)
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
42
43
44
45
46
47
48
49
50
51
52
53
.POSIX:
.PHONY:  all install uninstall clean

CC     ?= cc
CFLAGS := -W -O $(shell pkg-config --cflags libgit2)
CFLAGS += -g3 -O0 -fsanitize=address,undefined -fsanitize-trap
CFLAGS += -Wall -Wextra -Wconversion -Wdouble-promotion \
          -Wno-unused-parameter -Wno-unused-function -Wno-sign-conversion
LDLIBS := -lm $(shell pkg-config --libs libgit2)
PREFIX ?= /usr/local

all: build/simplewiki

install: build/simplewiki build/creole
	mkdir -p $(PREFIX)/bin
	mkdir -p $(PREFIX)/share/man/man1
	cp -f build/simplewiki $(PREFIX)/bin
	cp -f build/creole $(PREFIX)/bin
	gzip <doc/simplewiki.1 >$(PREFIX)/share/man/man1/simplewiki.1.gz

uninstall:
	rm -f $(PREFIX)/bin/simplewiki
	rm -f $(PREFIX)/bin/creole
	rm -f $(PREFIX)/share/man/man1/simplewiki.1.gz
	rmdir $(PREFIX)/bin >/dev/null 2>&1 || true
	rmdir $(PREFIX)/share/man/man1 >/dev/null 2>&1 || true

build/simplewiki: build/simplewiki_main.o build/die.o build/arena.o build/strutil.o build/creole.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)

build/creole_test: build/creole_test_main.o build/creole.o
	$(CC) $(CFLAGS) -o $@ $^

build/creole: build/creole_util_main.o build/creole.o
	$(CC) $(CFLAGS) -o $@ $^

build/creole_test_main.o: src/creole_test_main.c
build/simplewiki_main.o: src/simplewiki_main.c src/arena.h src/die.h src/strutil.h src/creole.h
build/arena.o: src/arena.c src/arena.h
build/die.o: src/die.c src/die.h
build/strutil.o: src/strutil.c src/strutil.h src/arena.h
build/creole.o: src/creole.c
build/creole_util_main.o: src/creole_util_main.c src/creole.h

build/%.o: src/%.c | build/
	$(CC) $(CFLAGS) -c -o $@ $<

build/:
	mkdir -p build/

clean:
	rm -rf build/