Makefile revision 1.73
11.73Srillig#	$NetBSD: Makefile,v 1.73 2020/07/25 21:00:48 rillig Exp $
21.8Schristos#	@(#)Makefile	5.2 (Berkeley) 12/28/90
31.1Scgd
41.1ScgdPROG=	make
51.70SrilligSRCS=	arch.c buf.c compat.c cond.c dir.c for.c hash.c job.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.70SrilligSRCS+=	lstAppend.c lstAtEnd.c lstAtFront.c lstClose.c lstConcat.c
91.70SrilligSRCS+=	lstDatum.c lstDeQueue.c lstDestroy.c lstDupl.c lstEnQueue.c
101.70SrilligSRCS+=	lstFind.c lstFindFrom.c lstFirst.c lstForEach.c lstForEachFrom.c
111.70SrilligSRCS+=	lstInit.c lstInsert.c lstIsAtEnd.c lstIsEmpty.c lstLast.c lstMember.c
121.70SrilligSRCS+=	lstNext.c lstOpen.c lstPrev.c lstRemove.c lstReplace.c lstSucc.c
131.40Sdsl
141.73SrilligUSE_COVERAGE?=	no		# works only with gcc; clang9 fails to link
151.73Srillig.if ${USE_COVERAGE} == "yes"
161.73SrilligCOPTS=		--coverage -O0 -ggdb
171.73SrilligLDADD=		--coverage
181.73SrilligCLEANFILES+=	${SRCS:.c=.gcda} ${SRCS:.c=.gcno} ${SRCS:=.gcov}
191.73Srillig.endif
201.73Srillig
211.71SrilligUSE_META?=	yes
221.51Ssjg.if ${USE_META:tl} != "no"
231.68Sriastrad
241.71SrilligSRCS+=		meta.c
251.71SrilligCPPFLAGS+=	-DUSE_META
261.68Sriastrad
271.71SrilligUSE_FILEMON?=	ktrace
281.72Srillig.  if ${USE_FILEMON:tl} != "no"
291.68Sriastrad
301.67Sriastrad.PATH:	${.CURDIR}/filemon
311.71SrilligSRCS+=		filemon_${USE_FILEMON}.c
321.71SrilligCPPFLAGS+=	-DUSE_FILEMON
331.71SrilligCPPFLAGS+=	-DUSE_FILEMON_${USE_FILEMON:tu}
341.68Sriastrad
351.72Srillig.    if ${USE_FILEMON} == "dev"
361.71SrilligFILEMON_H?=	/usr/include/dev/filemon/filemon.h
371.72Srillig.      if exists(${FILEMON_H}) && ${FILEMON_H:T} == "filemon.h"
381.71SrilligCOPTS.filemon_dev.c+= \
391.71Srillig		-DHAVE_FILEMON_H -I${FILEMON_H:H}
401.72Srillig.      endif
411.72Srillig.    endif
421.72Srillig.  endif
431.65Smaxv.endif
441.51Ssjg
451.14Sgwr.PATH:	${.CURDIR}/lst.lib
461.60SchristosSUBDIR.roff+=	PSD.doc
471.29Ssjg.if make(obj) || make(clean)
481.71SrilligSUBDIR+=	unit-tests
491.29Ssjg.endif
501.1Scgd
511.1Scgd.include <bsd.prog.mk>
521.16Smycroft.include <bsd.subdir.mk>
531.24Ssjg
541.71SrilligCPPFLAGS+=	-DMAKE_NATIVE
551.71SrilligCOPTS.var.c+=	-Wno-cast-qual
561.71SrilligCOPTS.job.c+=	-Wno-format-nonliteral
571.71SrilligCOPTS.parse.c+=	-Wno-format-nonliteral
581.71SrilligCOPTS.var.c+=	-Wno-format-nonliteral
591.29Ssjg
601.72Srillig.if defined(TOOLDIR)
611.71Srillig# This is a native NetBSD build, use libutil rather than the local emalloc etc.
621.71SrilligCPPFLAGS+=	-DUSE_EMALLOC
631.71SrilligLDADD+=		-lutil
641.71SrilligDPADD+=		${LIBUTIL}
651.38Schristos.endif
661.37Schristos
671.63SmrgCOPTS.arch.c+=	${GCC_NO_FORMAT_TRUNCATION}
681.63SmrgCOPTS.dir.c+=	${GCC_NO_FORMAT_TRUNCATION}
691.63SmrgCOPTS.main.c+=	${GCC_NO_FORMAT_TRUNCATION} ${GCC_NO_STRINGOP_TRUNCATION}
701.63SmrgCOPTS.meta.c+=	${GCC_NO_FORMAT_TRUNCATION}
711.63SmrgCOPTS.parse.c+=	${GCC_NO_FORMAT_TRUNCATION}
721.61Smrg
731.29Ssjg# A simple unit-test driver to help catch regressions
741.73Srilligtest: .MAKE
751.73Srillig	cd ${.CURDIR}/unit-tests \
761.73Srillig	&& MAKEFLAGS= ${.MAKE} -r -m / TEST_MAKE=${TEST_MAKE:U${.OBJDIR}/${PROG:T}} ${.TARGET}
771.73Srillig.if ${USE_COVERAGE} == yes
781.73Srillig	gcov ${SRCS}
791.73Srillig.endif
801.73Srillig
811.73Srilligaccept: .MAKE
821.73Srillig	cd ${.CURDIR}/unit-tests && ${.MAKE} ${.TARGET}
83