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 LIBCRYPTOPC
11 CRYPT_CFLAGS!= pkg-config --cflags ${LIBCRYPTOPC}
12 CRYPT_LDFLAGS_L!=pkg-config --libs-only-L ${LIBCRYPTOPC}
13 CRYPT_LDFLAGS_libdir!=pkg-config --variable libdir ${LIBCRYPTOPC}
14 CRYPT_LDFLAGS= ${CRYPT_LDFLAGS_L}
15 CRYPT_LDFLAGS+= -Wl,-rpath,${CRYPT_LDFLAGS_libdir}
16 CRYPT_LDADD!= pkg-config --libs-only-l ${LIBCRYPTOPC}
17 else
18 CRYPT_CFLAGS=
19 CRYPT_LDFLAGS=
20 CRYPT_LDADD= -lcrypto
21 endif
23 CFLAGS+= -I${LOCALBASE}/include
24 CFLAGS+= -Wall -I${.CURDIR}
25 CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
26 CFLAGS+= -Wmissing-declarations
27 CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
28 CFLAGS+= -Wsign-compare
29 CFLAGS+= ${CRYPT_CFLAGS}
30 CFLAGS+= -I${CURDIR} -I${CURDIR}/openbsd-compat/
32 LDFLAGS+= -L${LOCALBASE}/lib
33 LDFLAGS+= ${CRYPT_LDFLAGS}
34 LDADD+= ${CRYPT_LDADD} -lopensmtpd
36 INSTALL?= install
38 NEED_REALLOCARRAY?= 1
39 NEED_RECALLOCARRAY?= 1
40 NEED_STRLCAT?= 1
41 NEED_STRTONUM?= 1
42 NEED_PLEDGE?= 1
44 MANFORMAT?= mangz
46 BINOWN?= root
47 BINGRP?= root
48 BINPERM?= 755
49 MANOWN?= root
50 MANGRP?= root
51 MANPERM?= 644
53 ifeq (${MANFORMAT}, mangz)
54 TARGET_MAN= ${MAN}.gz
55 CLEANFILES+= ${TARGET_MAN}
56 ${TARGET_MAN}: ${MAN}
57 mandoc -Tman ${MAN} | gzip > $@
58 else
59 TARGET_MAN= ${MAN}
60 endif
62 ifeq (${NEED_REALLOCARRAY}, 1)
63 SRCS+= ${CURDIR}/openbsd-compat/reallocarray.c
64 CFLAGS+= -DNEED_REALLOCARRAY=1
66 reallocarray.o: ${CURDIR}/openbsd-compat/reallocarray.c
67 ${CC} ${CFLAGS} -c -o reallocarray.o ${CURDIR}/openbsd-compat/reallocarray.c
68 endif
69 ifeq (${NEED_RECALLOCARRAY}, 1)
70 SRCS+= ${CURDIR}/openbsd-compat/recallocarray.c
71 CFLAGS+= -DNEED_RECALLOCARRAY=1
73 recallocarray.o: ${CURDIR}/openbsd-compat/recallocarray.c
74 ${CC} ${CFLAGS} -c -o recallocarray.o ${CURDIR}/openbsd-compat/recallocarray.c
75 endif
76 ifeq (${NEED_STRLCAT}, 1)
77 SRCS+= ${CURDIR}/openbsd-compat/strlcat.c
78 CFLAGS+= -DNEED_STRLCAT=1
80 strlcat.o: ${CURDIR}/openbsd-compat/strlcat.c
81 ${CC} ${CFLAGS} -c -o strlcat.o ${CURDIR}/openbsd-compat/strlcat.c
82 endif
83 ifeq (${NEED_STRTONUM}, 1)
84 SRCS+= ${CURDIR}/openbsd-compat/strtonum.c
85 CFLAGS+= -DNEED_STRTONUM=1
87 strtonum.o: ${CURDIR}/openbsd-compat/strtonum.c
88 ${CC} ${CFLAGS} -c -o strtonum.o ${CURDIR}/openbsd-compat/strtonum.c
89 endif
90 ifeq (${NEED_PLEDGE}, 1)
91 CFLAGS+= -DNEED_PLEDGE=1
92 endif
94 ${SRCS:.c=.d}:%.d:%.c
95 ${CC} ${CFLAGS} -MM $< >$@
96 CLEANFILES+= ${SRCS:.c=.d}
98 OBJS= ${notdir ${SRCS:.c=.o}}
99 CLEANFILES+= ${OBJS}
101 ${PROG}: ${OBJS}
102 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
104 .DEFAULT_GOAL= all
105 .PHONY: all
106 all: ${PROG} ${TARGET_MAN}
107 CLEANFILES+= ${PROG}
109 .PHONY: clean
110 clean:
111 rm -f ${CLEANFILES}
113 .PHONY: install
114 install: ${PROG}
115 ${INSTALL} -D -o ${BINOWN} -g ${BINGRP} -m ${BINPERM} ${PROG} ${DESTDIR}${BINDIR}/${PROG}
116 ${INSTALL} -D -o ${MANOWN} -g ${MANGRP} -m ${MANPERM} ${TARGET_MAN} ${DESTDIR}${MANDIR}/${TARGET_MAN}