commit 25756acf2931c426ff45b5a70cc960f6cf63d52f from: Martijn van Duren date: Wed Jun 02 10:12:42 2021 UTC Fix Makefile.gnu to do things more cleanly and more in line with what libopensmtpd does. Suggestions from rak@debian commit - 59519201c9ae2819a97b58bcdd0eca8fb893ea14 commit + 25756acf2931c426ff45b5a70cc960f6cf63d52f blob - e1e2a76b9c34bf6372bdc6d56467f899b22a671f blob + 1f97bd28f4172df60f52b0b2bae40bc4fa0817a0 --- Makefile.gnu +++ Makefile.gnu @@ -1,37 +1,74 @@ -LOCALBASE?= /usr/local/ +LOCALBASE?= /usr/ -PROG= filter-dkimsign -MAN= filter-dkimsign.8 -BINDIR= ${LOCALBASE}/libexec/opensmtpd/ -MANDIR= ${LOCALBASE}/share/man/man8 +PROG= filter-dkimsign +MAN= filter-dkimsign.8 +BINDIR= ${LOCALBASE}/libexec/opensmtpd/ +MANDIR= ${LOCALBASE}/share/man/man8 -BINOWN?= root -BINGRP?= root -BINPERM?= 755 +SRCS+= main.c mheader.c -SRCS+= main.c mheader.c +ifdef HAVE_ED25519 +CFLAGS+= -DHAVE_ED25519 +endif +ifdef LIBCRYPTOPC +CRYPT_CFLAGS!= pkg-config --cflags ${LIBCRYPTOPC} +CRYPT_LDFLAGS_L!=pkg-config --libs-only-L ${LIBCRYPTOPC} +CRYPT_LDFLAGS_libdir!=pkg-config --variable libdir ${LIBCRYPTOPC} +CRYPT_LDFLAGS= ${CRYPT_LDFLAGS_L} +CRYPT_LDFLAGS+= -Wl,-rpath,${CRYPT_LDFLAGS_libdir} +CRYPT_LDADD!= pkg-config --libs-only-l ${LIBCRYPTOPC} +else +CRYPT_CFLAGS= +CRYPT_LDFLAGS= +CRYPT_LDADD= -lcrypto +endif -CFLAGS+=-I${LOCALBASE}/include -CFLAGS+=-Wall -I${.CURDIR} -CFLAGS+=-Wstrict-prototypes -Wmissing-prototypes -CFLAGS+=-Wmissing-declarations -CFLAGS+=-Wshadow -Wpointer-arith -Wcast-qual -CFLAGS+=-Wsign-compare -CFLAGS+=-I${CURDIR} -I${CURDIR}/openbsd-compat/ +CFLAGS+= -I${LOCALBASE}/include +CFLAGS+= -Wall -I${.CURDIR} +CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes +CFLAGS+= -Wmissing-declarations +CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual +CFLAGS+= -Wsign-compare +CFLAGS+= ${CRYPT_CFLAGS} +CFLAGS+= -I${CURDIR} -I${CURDIR}/openbsd-compat/ -LDFLAGS+=-L${LOCALBASE}/lib -LDLIBS+=-lcrypto -lopensmtpd +LDFLAGS+= -L${LOCALBASE}/lib +LDFLAGS+= ${CRYPT_LDFLAGS} +LDADD+= ${CRYPT_LDADD} -lopensmtpd INSTALL?= install +NEED_REALLOCARRAY?= 1 NEED_RECALLOCARRAY?= 1 NEED_STRLCAT?= 1 NEED_STRTONUM?= 1 NEED_PLEDGE?= 1 -.PHONY: all -all: ${PROG} +MANFORMAT?= mangz +BINOWN?= root +BINGRP?= root +BINPERM?= 755 +MANOWN?= root +MANGRP?= root +MANPERM?= 644 + +ifeq (${MANFORMAT}, mangz) +TARGET_MAN= ${MAN}.gz +CLEANFILES+= ${TARGET_MAN} +${TARGET_MAN}: ${MAN} + mandoc -Tman ${MAN} | gzip > $@ +else +TARGET_MAN= ${MAN} +endif + +ifeq (${NEED_REALLOCARRAY}, 1) +SRCS+= ${CURDIR}/openbsd-compat/reallocarray.c +CFLAGS+= -DNEED_REALLOCARRAY=1 + +reallocarray.o: ${CURDIR}/openbsd-compat/reallocarray.c + ${CC} ${CFLAGS} -c -o reallocarray.o ${CURDIR}/openbsd-compat/reallocarray.c +endif ifeq (${NEED_RECALLOCARRAY}, 1) SRCS+= ${CURDIR}/openbsd-compat/recallocarray.c CFLAGS+= -DNEED_RECALLOCARRAY=1 @@ -59,16 +96,24 @@ endif ${SRCS:.c=.d}:%.d:%.c ${CC} ${CFLAGS} -MM $< >$@ +CLEANFILES+= ${SRCS:.c=.d} OBJS= ${notdir ${SRCS:.c=.o}} +CLEANFILES+= ${OBJS} ${PROG}: ${OBJS} - ${CC} ${LDFLAGS} -o $@ $^ ${LDLIBS} + ${CC} ${LDFLAGS} -o $@ ${OBJS} ${LDADD} +.DEFAULT_GOAL= all +.PHONY: all +all: ${PROG} ${TARGET_MAN} +CLEANFILES+= ${PROG} + .PHONY: clean clean: - rm -f *.d *.o ${PROG} + rm -f ${CLEANFILES} .PHONY: install install: ${PROG} - ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m ${BINPERM} ${PROG} ${BINDIR} + ${INSTALL} -D -o ${BINOWN} -g ${BINGRP} -m ${BINPERM} ${PROG} ${DESTDIR}${BINDIR}/${PROG} + ${INSTALL} -D -o ${MANOWN} -g ${MANGRP} -m ${MANPERM} ${TARGET_MAN} ${DESTDIR}${MANDIR}/${TARGET_MAN}