3 SRCS= opensmtpd.c iobuf.c ioev.c
6 LIBDIR?= ${LOCALBASE}/lib/
7 MANDIR?= ${LOCALBASE}/man/man
13 mkfile_path := ${abspath ${lastword ${MAKEFILE_LIST}}}
14 CURDIR := ${dir ${mkfile_path}}
17 CFLAGS+= -I${CURDIR} -I${CURDIR}/openbsd-compat/
19 CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
20 CFLAGS+= -Wmissing-declarations
21 CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
22 CFLAGS+= -Wsign-compare
29 CLEANFILES= ${VERSION_SCRIPT}
31 VERSION_SCRIPT= Symbols.map
32 SYMBOL_LIST= ${CURDIR}/Symbols.list
34 TARGET_LIB= libopensmtpd.so
36 # Defines for OpenBSD-specific interfaces
37 # Add a OS-specific defines here.
38 NEED_EXPLICIT_BZERO?= 0
39 NEED_RECALLOCARRAY?= 1
49 @cd ${CURDIR}; for i in ${HDRS}; do \
50 j="cmp -s $$i ${DESTDIR}${LOCALBASE}/include/$$i || \
51 ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m 444 $$i\
52 ${DESTDIR}${LOCALBASE}/include/"; \
58 ${CC} ${CFLAGS} -MM $< >$@
60 ifeq (${NEED_EXPLICIT_BZERO}, 1)
61 SRCS+= ${CURDIR}/openbsd-compat/explicit_bzero.c
62 CFLAGS+= -DNEED_EXPLICIT_BZERO=1
64 explicit_bzero.o: ${CURDIR}/openbsd-compat/explicit_bzero.c
65 ${CC} ${CFLAGS} -c -o explicit_bzero.o ${CURDIR}/openbsd-compat/explicit_bzero.c
67 ifeq (${NEED_RECALLOCARRAY}, 1)
68 SRCS+= ${CURDIR}/openbsd-compat/recallocarray.c
69 CFLAGS+= -DNEED_RECALLOCARRAY=1
71 recallocarray.o: ${CURDIR}/openbsd-compat/recallocarray.c
72 ${CC} ${CFLAGS} -c -o recallocarray.o ${CURDIR}/openbsd-compat/recallocarray.c
74 ifeq (${NEED_REALLOCARRAY}, 1)
75 SRCS+= ${CURDIR}/openbsd-compat/reallocarray.c
76 CFLAGS+= -DNEED_REALLOCARRAY=1
78 reallocarray.o: ${CURDIR}/openbsd-compat/reallocarray.c
79 ${CC} ${CFLAGS} -c -o reallocarray.o ${CURDIR}/openbsd-compat/reallocarray.c
81 ifeq (${NEED_STRLCAT}, 1)
82 SRCS+= ${CURDIR}/openbsd-compat/strlcat.c
83 CFLAGS+= -DNEED_STRLCAT=1
85 strlcat.o: ${CURDIR}/openbsd-compat/strlcat.c
86 ${CC} ${CFLAGS} -c -o strlcat.o ${CURDIR}/openbsd-compat/strlcat.c
88 ifeq (${NEED_STRLCPY}, 1)
89 SRCS+= ${CURDIR}/openbsd-compat/strlcpy.c
90 CFLAGS+= -DNEED_STRLCPY=1
92 strlcpy.o: ${CURDIR}/openbsd-compat/strlcpy.c
93 ${CC} ${CFLAGS} -c -o strlcpy.o ${CURDIR}/openbsd-compat/strlcpy.c
95 ifeq (${NEED_STRTONUM}, 1)
96 SRCS+= ${CURDIR}/openbsd-compat/strtonum.c
97 CFLAGS+= -DNEED_STRTONUM=1
99 strtonum.o: ${CURDIR}/openbsd-compat/strtonum.c
100 ${CC} ${CFLAGS} -c -o strtonum.o ${CURDIR}/openbsd-compat/strtonum.c
103 OBJS= ${notdir ${SRCS:.c=.o}}
106 ${TARGET_LIB}: ${OBJS}
107 ${CC} ${LDFLAGS} -o $@ $^ ${LDLIBS}
110 install: ${TARGET_LIB}
111 ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${LIBPERM} ${TARGET_LIB} ${LIBDIR}