summary refs log tree commit diff
path: root/Makefile
blob: 6d72bdd5e547410480a48fd0205eb87679a10ec0 (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
PREFIX ?= /usr/local
BINDIR ?= ${PREFIX}/bin
MANDIR ?= ${PREFIX}/man

CFLAGS += -std=c11 -Wall -Wextra -Wpedantic
LDADD.crypt = -lcrypt
LDADD.libcurl = -lcurl
LDADD.libtls = -ltls
LDADD.sqlite3 = -lsqlite3

BINS = calico pounce
MANS = ${BINS:=.1}

-include config.mk

LDLIBS.calico =
LDLIBS.pounce = ${LDADD.crypt} ${LDADD.libtls}
LDLIBS.pounce-edit = ${LDADD.libtls}
LDLIBS.pounce-notify = ${LDADD.libtls}
LDLIBS.pounce-palaver = ${LDADD.libcurl} ${LDADD.libtls} ${LDADD.sqlite3}

OBJS.calico += dispatch.o

OBJS.pounce += bounce.o
OBJS.pounce += client.o
OBJS.pounce += config.o
OBJS.pounce += local.o
OBJS.pounce += ring.o
OBJS.pounce += server.o
OBJS.pounce += state.o
OBJS.pounce += xdg.o

OBJS.pounce-edit = edit.o xdg.o
OBJS.pounce-notify = notify.o
OBJS.pounce-palaver = palaver.o xdg.o

OBJS += ${OBJS.calico}
OBJS += ${OBJS.pounce}
OBJS += ${OBJS.pounce-edit}
OBJS += ${OBJS.pounce-notify}
OBJS += ${OBJS.pounce-palaver}

dev: tags all

all: ${BINS}

calico: ${OBJS.calico}
pounce: ${OBJS.pounce}
pounce-edit: ${OBJS.pounce-edit}
pounce-notify: ${OBJS.pounce-notify}
pounce-palaver: ${OBJS.pounce-palaver}

${BINS}:
	${CC} ${LDFLAGS} ${OBJS.$@} ${LDLIBS.$@} -o $@

${OBJS.pounce}: bounce.h

tags: *.[ch]
	ctags -w *.[ch]

clean:
	rm -f ${BINS} ${OBJS} tags

install: ${BINS} ${MANS}
	install -d ${DESTDIR}${BINDIR} ${DESTDIR}${MANDIR}/man1
	install ${BINS} ${DESTDIR}${BINDIR}
	install -m 644 ${MANS} ${DESTDIR}${MANDIR}/man1

uninstall:
	rm -f ${BINS:%=${DESTDIR}${BINDIR}/%}
	rm -f ${MANS:%=${DESTDIR}${MANDIR}/man1/%}

localhost.pem: pounce
	./pounce -g $@