Blob


1 LOCALBASE?= /usr/
3 PROG= filter-auth
4 MAN= filter-auth.8
5 BINDIR= ${LOCALBASE}/libexec/opensmtpd/
6 MANDIR= ${LOCALBASE}/share/man/man8
8 SRCS+= main.c ltok.c unpack_dns.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 -levent
39 INSTALL?= install
41 NEED_RECALLOCARRAY?= 1
42 NEED_STRTONUM?= 1
43 NEED_PLEDGE?= 1
44 NEED_INET_NET_PTON?= 1
45 NEED_FGETLN?= 1
46 NEED_LIBASR?= 1
48 MANFORMAT?= mangz
50 BINOWN?= root
51 BINGRP?= root
52 BINPERM?= 755
53 MANOWN?= root
54 MANGRP?= root
55 MANPERM?= 644
57 ifeq (${MANFORMAT}, mangz)
58 TARGET_MAN= ${MAN}.gz
59 CLEANFILES+= ${TARGET_MAN}
60 ${TARGET_MAN}: ${MAN}
61 mandoc -Tman ${MAN} | gzip > $@
62 else
63 TARGET_MAN= ${MAN}
64 endif
66 ifeq (${NEED_RECALLOCARRAY}, 1)
67 SRCS+= ${CURDIR}/openbsd-compat/recallocarray.c
68 CFLAGS+= -DNEED_RECALLOCARRAY=1
70 recallocarray.o: ${CURDIR}/openbsd-compat/recallocarray.c
71 ${CC} ${CFLAGS} -c -o recallocarray.o ${CURDIR}/openbsd-compat/recallocarray.c
72 endif
73 ifeq (${NEED_STRTONUM}, 1)
74 SRCS+= ${CURDIR}/openbsd-compat/strtonum.c
75 CFLAGS+= -DNEED_STRTONUM=1
77 strtonum.o: ${CURDIR}/openbsd-compat/strtonum.c
78 ${CC} ${CFLAGS} -c -o strtonum.o ${CURDIR}/openbsd-compat/strtonum.c
79 endif
80 ifeq (${NEED_PLEDGE}, 1)
81 CFLAGS+= -DNEED_PLEDGE=1
82 endif
83 ifeq (${NEED_INET_NET_PTON}, 1)
84 SRCS+= ${CURDIR}/openbsd-compat/inet_net_pton.c
85 CFLAGS+= -DNEED_INET_NET_PTON=1
87 inet_net_pton.o: ${CURDIR}/openbsd-compat/inet_net_pton.c
88 ${CC} ${CFLAGS} -c -o inet_net_pton.o ${CURDIR}/openbsd-compat/inet_net_pton.c
89 endif
90 ifeq (${NEED_FGETLN}, 1)
91 SRCS+= ${CURDIR}/openbsd-compat/fgetln.c
92 CFLAGS+= -DNEED_FGETLN=1
94 fgetln.o: ${CURDIR}/openbsd-compat/fgetln.c
95 ${CC} ${CFLAGS} -c -o fgetln.o ${CURDIR}/openbsd-compat/fgetln.c
96 endif
97 ifeq (${NEED_LIBASR}, 1)
98 SRCS+= ${CURDIR}/openbsd-compat/event_asr_run.c
99 SRCS+= ${CURDIR}/openbsd-compat/libasr/asr.c
100 SRCS+= ${CURDIR}/openbsd-compat/libasr/asr_utils.c
101 SRCS+= ${CURDIR}/openbsd-compat/libasr/res_search_async.c
102 SRCS+= ${CURDIR}/openbsd-compat/libasr/res_send_async.c
103 CFLAGS+= -I${CURDIR}/openbsd-compat/libasr -DNEED_LIBASR=1
105 event_asr_run.o: ${CURDIR}/openbsd-compat/event_asr_run.c
106 ${CC} ${CFLAGS} -c -o event_asr_run.o ${CURDIR}/openbsd-compat/event_asr_run.c
107 asr.o: ${CURDIR}/openbsd-compat/libasr/asr.c
108 ${CC} ${CFLAGS} -c -o asr.o ${CURDIR}/openbsd-compat/libasr/asr.c
109 asr_utils.o: ${CURDIR}/openbsd-compat/libasr/asr_utils.c
110 ${CC} ${CFLAGS} -c -o asr_utils.o ${CURDIR}/openbsd-compat/libasr/asr_utils.c
111 res_search_async.o: ${CURDIR}/openbsd-compat/libasr/res_search_async.c
112 ${CC} ${CFLAGS} -c -o res_search_async.o ${CURDIR}/openbsd-compat/libasr/res_search_async.c
113 res_send_async.o: ${CURDIR}/openbsd-compat/libasr/res_send_async.c
114 ${CC} ${CFLAGS} -c -o res_send_async.o ${CURDIR}/openbsd-compat/libasr/res_send_async.c
115 endif
117 ${SRCS:.c=.d}:%.d:%.c
118 ${CC} ${CFLAGS} -MM $< >$@
119 CLEANFILES+= ${SRCS:.c=.d}
121 OBJS= ${notdir ${SRCS:.c=.o}}
122 CLEANFILES+= ${OBJS}
124 ${PROG}: ${OBJS}
125 ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD}
127 .DEFAULT_GOAL= all
128 .PHONY: all
129 all: ${PROG} ${TARGET_MAN}
130 CLEANFILES+= ${PROG}
132 .PHONY: clean
133 clean:
134 rm -f ${CLEANFILES}
136 .PHONY: install
137 install: ${PROG}
138 ${INSTALL} -D -o ${BINOWN} -g ${BINGRP} -m ${BINPERM} ${PROG} ${DESTDIR}${BINDIR}/${PROG}
139 ${INSTALL} -D -o ${MANOWN} -g ${MANGRP} -m ${MANPERM} ${TARGET_MAN} ${DESTDIR}${MANDIR}/${TARGET_MAN}