#       $NetBSD: Makefile.inc,v 1.31 2021/12/25 13:30:42 rillig Exp $

include <bsd.own.mk>

# dist/src/util/attr.h(90)
# dist/src/util/vstream.h(181)
# dist/src/util/vstring.h(63)
LINTFLAGS+=     -X 0            # empty declaration

USE_FORT?= yes  # network client and server
CWARNFLAGS.clang+=      -Wno-empty-body -Wno-format-extra-args \
                       -Wno-string-plus-int -Wno-string-compare
WARNS?= 0

PFIX_DISTDIR=   ${NETBSDSRCDIR}/external/ibm-public/postfix/dist

# Many issues need to be resolved.
COPTS+= -fcommon

CPPFLAGS+= -DNETBSD7 -DUSE_SASL_AUTH -DNO_EAI \
       -I${DIST} \
       -I${PFIX_DISTDIR}/src/dns -I${PFIX_DISTDIR}/src/global \
       -I${PFIX_DISTDIR}/src/master -I${PFIX_DISTDIR}/src/util \
       -I${PFIX_DISTDIR}/src/tls -I${PFIX_DISTDIR}/src/milter \
       -I${PFIX_DISTDIR}/src/xsasl \
       -Wno-comment

CPPFLAGS+= -DUSE_SASL_AUTH
CPPFLAGS+= -DDEF_SERVER_SASL_TYPE=\"dovecot\"

CPPFLAGS+= -DUSE_SASLC_SASL
CPPFLAGS+= -DDEF_CLIENT_SASL_TYPE=\"saslc\"
DPADD+= ${LIBSASCL} ${LIBSSL}
LDADD+= -lsaslc -lssl
if (${MKKERBEROS} != "no")
DPADD+= ${LIBGSSAPI} ${LIBCRYPTO}
LDADD+= -lgssapi -lcrypto
endif

if defined(HAVE_PCC)
# code uses gcc-specific aggregate dynamic array
CPPFLAGS+=      -DCANT_USE_SEND_RECV_MSG
endif

# TLS support.
CPPFLAGS+=      -DUSE_TLS

# IPv6 support.
if ${MKINET6} == "no"
CPPFLAGS+=      -DNO_IPV6
endif

# SQLite support.
CPPFLAGS+=      -DHAS_SQLITE
if defined(PROG)
DPADD+=         ${LIBSQLITE3} ${LIBM}
LDADD+=         -lsqlite3 -lm
endif

# LDAP support.
if ${USE_LDAP} != "no"
CPPFLAGS+=      -DHAS_LDAP

# Automatically link in libldap for a program.
if defined(PROG)
LDADD+=         ${LIBLDAP_LDADD}
DPADD+=         ${LIBLDAP_DPADD}
endif
endif # USE_LDAP != no

PFIX_SRCDIR=    ${NETBSDSRCDIR}/external/ibm-public/postfix
PFIX_LIBSDIRS=  dns dns masterlib master global global util util \
               milter milter xsasl xsasl

PFIX_LIBSDIRS+= tls tls

for _LD _LL in  ${PFIX_LIBSDIRS}
if !defined(POBJDIR.${_LL})
POBJDIR.${_LL}!=cd ${PFIX_SRCDIR}/lib/${_LD} && ${PRINTOBJDIR}
MAKEOVERRIDES+=POBJDIR.${_LL}
endif
LIBP${_LL:tu}=  ${POBJDIR.${_LL}}/lib${_LL}.a
endfor


# Directories to install into.
#
PFIX_LIBEXECDIR=/usr/libexec/postfix
PFIX_ETCDIR=    /etc/postfix
PFIX_EXAMPLEDIR=/usr/share/examples/postfix
PFIX_HTMLDIR=   /usr/share/doc/reference/ref8/postfix
PFIX_SBINDIR=   /usr/sbin

# override defaults which are otherwise empty and/or so postconf is correct
CPPFLAGS+=      -DDEF_HTML_DIR=\"${PFIX_HTMLDIR}\" \
               -DDEF_README_DIR=\"${PFIX_EXAMPLEDIR}\" \
               -DDEF_SAMPLE_DIR=\"${PFIX_EXAMPLEDIR}\" \
               -DDEF_MANPAGE_DIR=\"${MANDIR}\"

# postfix check wants a lot of files to be owned by root
BINOWN= root