Blob


1 LOCALBASE?= /usr/
3 PROG= filter-dkimsign
4 MAN= filter-dkimsign.8
5 BINDIR= ${LOCALBASE}/libexec/opensmtpd/
6 MANDIR= ${LOCALBASE}/share/man/man8
8 SRCS+= main.c mheader.c
10 ifdef HAVE_ED25519
11 CFLAGS+= -DHAVE_ED25519
12 endif
13 ifdef LIBCRYPTOPC
14 CRYPT_CFLAGS!= pkg-config --cflags ${LIBCRYPTOPC}
15 CRYPT_LDFLAGS_L!=pkg-config --libs-only-L ${LIBCRYPTOPC}
16 CRYPT_LDFLAGS_libdir!=pkg-config --variable libdir ${LIBCRYPTOPC}
17 CRYPT_LDFLAGS= ${CRYPT_LDFLAGS_L}
18 CRYPT_LDFLAGS+= -Wl,-rpath,${CRYPT_LDFLAGS_libdir}
19 CRYPT_LDADD!= pkg-config --libs-only-l ${LIBCRYPTOPC}
20 else
21 CRYPT_CFLAGS=
22 CRYPT_LDFLAGS=
23 CRYPT_LDADD= -lcrypto
24 endif
26 CFLAGS+= -I${LOCALBASE}/include
27 CFLAGS+= -Wall -I${.CURDIR}
28 CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
29 CFLAGS+= -Wmissing-declarations
30 CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
31 CFLAGS+= -Wsign-compare
32 CFLAGS+= ${CRYPT_CFLAGS}
33 CFLAGS+= -I${CURDIR} -I${CURDIR}/openbsd-compat/
35 LDFLAGS+= -L${LOCALBASE}/lib
36 LDFLAGS+= ${CRYPT_LDFLAGS}
37 LDADD+= ${CRYPT_LDADD} -lopensmtpd
39 INSTALL?= install
41 NEED_REALLOCARRAY?= 1
42 NEED_RECALLOCARRAY?= 1
43 NEED_STRLCAT?= 1
44 NEED_STRTONUM?= 1
45 NEED_PLEDGE?= 1
47 MANFORMAT?= mangz
49 BINOWN?= root
50 BINGRP?= root
51 BINPERM?= 755
52 MANOWN?= root
53 MANGRP?= root
54 MANPERM?= 644
56 ifeq (${MANFORMAT}, mangz)
57 TARGET_MAN= ${MAN}.gz
58 CLEANFILES+= ${TARGET_MAN}
59 ${TARGET_MAN}: ${MAN}
60 mandoc -Tman ${MAN} | gzip > $@
61 else
62 TARGET_MAN= ${MAN}
63 endif
65 ifeq (${NEED_REALLOCARRAY}, 1)
66 SRCS+= ${CURDIR}/openbsd-compat/reallocarray.c
67 CFLAGS+= -DNEED_REALLOCARRAY=1
69 reallocarray.o: ${CURDIR}/openbsd-compat/reallocarray.c
70 ${CC} ${CFLAGS} -c -o reallocarray.o ${CURDIR}/openbsd-compat/reallocarray.c
71 endif
72 ifeq (${NEED_RECALLOCARRAY}, 1)
73 SRCS+= ${CURDIR}/openbsd-compat/recallocarray.c
74 CFLAGS+= -DNEED_RECALLOCARRAY=1
76 recallocarray.o: ${CURDIR}/openbsd-compat/recallocarray.c
77 ${CC} ${CFLAGS} -c -o recallocarray.o ${CURDIR}/openbsd-compat/recallocarray.c
78 endif
79 ifeq (${NEED_STRLCAT}, 1)
80 SRCS+= ${CURDIR}/openbsd-compat/strlcat.c
81 CFLAGS+= -DNEED_STRLCAT=1
83 strlcat.o: ${CURDIR}/openbsd-compat/strlcat.c
84 ${CC} ${CFLAGS} -c -o strlcat.o ${CURDIR}/openbsd-compat/strlcat.c
85 endif
86 ifeq (${NEED_STRTONUM}, 1)
87 SRCS+= ${CURDIR}/openbsd-compat/strtonum.c
88 CFLAGS+= -DNEED_STRTONUM=1
90 strtonum.o: ${CURDIR}/openbsd-compat/strtonum.c
91 ${CC} ${CFLAGS} -c -o strtonum.o ${CURDIR}/openbsd-compat/strtonum.c
92 endif
93 ifeq (${NEED_PLEDGE}, 1)
94 CFLAGS+= -DNEED_PLEDGE=1
95 endif
97 ${SRCS:.c=.d}:%.d:%.c
98 ${CC} ${CFLAGS} -MM $< >$@
99 CLEANFILES+= ${SRCS:.c=.d}
101 OBJS= ${notdir ${SRCS:.c=.o}}
102 CLEANFILES+= ${OBJS}
104 ${PROG}: ${OBJS}
105 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
107 .DEFAULT_GOAL= all
108 .PHONY: all
109 all: ${PROG} ${TARGET_MAN}
110 CLEANFILES+= ${PROG}
112 .PHONY: clean
113 clean:
114 rm -f ${CLEANFILES}
116 .PHONY: install
117 install: ${PROG}
118 ${INSTALL} -D -o ${BINOWN} -g ${BINGRP} -m ${BINPERM} ${PROG} ${DESTDIR}${BINDIR}/${PROG}
119 ${INSTALL} -D -o ${MANOWN} -g ${MANGRP} -m ${MANPERM} ${TARGET_MAN} ${DESTDIR}${MANDIR}/${TARGET_MAN}