Makefile revision 1.74
11.74Srillig#	$NetBSD: Makefile,v 1.74 2020/07/26 07:15:26 rillig Exp $
21.8Schristos#	@(#)Makefile	5.2 (Berkeley) 12/28/90
31.1Scgd
41.1ScgdPROG=	make
51.74SrilligSRCS=	arch.c buf.c compat.c cond.c dir.c for.c hash.c job.c lst.c main.c
61.70SrilligSRCS+=	make.c make_malloc.c metachar.c parse.c
71.72SrilligSRCS+=	str.c strlist.c suff.c targ.c trace.c var.c util.c
81.40Sdsl
91.73SrilligUSE_COVERAGE?=	no		# works only with gcc; clang9 fails to link
101.73Srillig.if ${USE_COVERAGE} == "yes"
111.73SrilligCOPTS=		--coverage -O0 -ggdb
121.73SrilligLDADD=		--coverage
131.73SrilligCLEANFILES+=	${SRCS:.c=.gcda} ${SRCS:.c=.gcno} ${SRCS:=.gcov}
141.73Srillig.endif
151.73Srillig
161.71SrilligUSE_META?=	yes
171.51Ssjg.if ${USE_META:tl} != "no"
181.68Sriastrad
191.71SrilligSRCS+=		meta.c
201.71SrilligCPPFLAGS+=	-DUSE_META
211.68Sriastrad
221.71SrilligUSE_FILEMON?=	ktrace
231.72Srillig.  if ${USE_FILEMON:tl} != "no"
241.68Sriastrad
251.67Sriastrad.PATH:	${.CURDIR}/filemon
261.71SrilligSRCS+=		filemon_${USE_FILEMON}.c
271.71SrilligCPPFLAGS+=	-DUSE_FILEMON
281.71SrilligCPPFLAGS+=	-DUSE_FILEMON_${USE_FILEMON:tu}
291.68Sriastrad
301.72Srillig.    if ${USE_FILEMON} == "dev"
311.71SrilligFILEMON_H?=	/usr/include/dev/filemon/filemon.h
321.72Srillig.      if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h"
331.71SrilligCOPTS.filemon_dev.c+= \
341.71Srillig		-DHAVE_FILEMON_H -I${FILEMON_H:H}
351.72Srillig.      endif
361.72Srillig.    endif
371.72Srillig.  endif
381.65Smaxv.endif
391.51Ssjg
401.14Sgwr.PATH:	${.CURDIR}/lst.lib
411.60SchristosSUBDIR.roff+=	PSD.doc
421.29Ssjg.if make(obj) || make(clean)
431.71SrilligSUBDIR+=	unit-tests
441.29Ssjg.endif
451.1Scgd
461.1Scgd.include <bsd.prog.mk>
471.16Smycroft.include <bsd.subdir.mk>
481.24Ssjg
491.71SrilligCPPFLAGS+=	-DMAKE_NATIVE
501.71SrilligCOPTS.var.c+=	-Wno-cast-qual
511.71SrilligCOPTS.job.c+=	-Wno-format-nonliteral
521.71SrilligCOPTS.parse.c+=	-Wno-format-nonliteral
531.71SrilligCOPTS.var.c+=	-Wno-format-nonliteral
541.29Ssjg
551.72Srillig.if defined(TOOLDIR)
561.71Srillig# This is a native NetBSD build, use libutil rather than the local emalloc etc.
571.71SrilligCPPFLAGS+=	-DUSE_EMALLOC
581.71SrilligLDADD+=		-lutil
591.71SrilligDPADD+=		${LIBUTIL}
601.38Schristos.endif
611.37Schristos
621.63SmrgCOPTS.arch.c+=	${GCC_NO_FORMAT_TRUNCATION}
631.63SmrgCOPTS.dir.c+=	${GCC_NO_FORMAT_TRUNCATION}
641.63SmrgCOPTS.main.c+=	${GCC_NO_FORMAT_TRUNCATION} ${GCC_NO_STRINGOP_TRUNCATION}
651.63SmrgCOPTS.meta.c+=	${GCC_NO_FORMAT_TRUNCATION}
661.63SmrgCOPTS.parse.c+=	${GCC_NO_FORMAT_TRUNCATION}
671.61Smrg
681.29Ssjg# A simple unit-test driver to help catch regressions
691.73Srilligtest: .MAKE
701.73Srillig	cd ${.CURDIR}/unit-tests \
711.73Srillig	&& MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET}
721.73Srillig.if ${USE_COVERAGE} == yes
731.73Srillig	gcov ${SRCS}
741.73Srillig.endif
751.73Srillig
761.73Srilligaccept: .MAKE
771.73Srillig	cd ${.CURDIR}/unit-tests && ${.MAKE} ${.TARGET}
78