Makefile revision 1.142
11.142Srillig# $NetBSD: Makefile,v 1.142 2024/06/08 09:09:20 rillig Exp $
21.1Sjruoho
31.1SjruohoNOMAN=		# defined
41.1Sjruoho
51.1Sjruoho.include <bsd.own.mk>
61.1Sjruoho
71.87SrilligARCHSUBDIR!=	cd ${NETBSDSRCDIR}/usr.bin/xlint/lint1 && ${MAKE} -v ARCHSUBDIR
81.87Srillig
91.1SjruohoTESTSDIR=	${TESTSBASE}/usr.bin/xlint/lint1
101.1Sjruoho
111.141SrilligTESTS_SH=	t_integration t_usage
121.87SrilligTESTS_SH_SRC_t_integration=	archsubdir.sh t_integration.sh
131.116SrilligCLEANFILES+=	archsubdir.sh
141.127SrilligCLEANFILES+=	*.exp
151.87Srillig
161.87Srilligarchsubdir.sh:
171.87Srillig	@echo archsubdir=${ARCHSUBDIR} >${.TARGET}
181.1Sjruoho
191.1SjruohoFILESDIR=	${TESTSDIR}
201.140SrilligFILES+=		${:!cd ${.CURDIR} && echo *.c *.exp-ln!}
211.128SrilligFILES+=		check-expect.lua
221.1Sjruoho
231.142Srilligadd-test: .PHONY
241.142Srillig	@set -eu; \
251.142Srillig	test=${NAME:Q}; \
261.142Srillig	[ "$$test" ] || { \
271.142Srillig		echo "usage: ${MAKE} add-test NAME=<name>"; \
281.142Srillig		exit; \
291.142Srillig	}; \
301.142Srillig	\
311.142Srillig	if [ -f "$$test.c" ]; then \
321.142Srillig		echo "error: test $$test already exists in $$PWD."; \
331.142Srillig		exit 1; \
341.142Srillig	fi; \
351.142Srillig	\
361.142Srillig	echo "=> Adding test $$test"; \
371.142Srillig	printf '%s\n' \
381.142Srillig		'/*	$$''NetBSD$$	*/' \
391.142Srillig		"# 3 \"$$test.c\"" \
401.142Srillig		'' \
411.142Srillig		'/*' \
421.142Srillig		' * TODO: Explain the purpose of the test.' \
431.142Srillig		' */' \
441.142Srillig		'' \
451.142Srillig		'/* lint1-extra-flags: -Z */' \
461.142Srillig		'/* lint1-flags: -Z */' \
471.142Srillig		'/* lint1-only-if: schar uchar ilp32 lp64 int long ldbl64 ldbl96 ldbl128 */' \
481.142Srillig		'' \
491.142Srillig		'// TODO: Add some code that passes.' \
501.142Srillig		'// TODO: Add some code that fails.' \
511.142Srillig	> "$$test.c"; \
521.142Srillig	cvs add "$$test.c"; \
531.142Srillig	${MAKE} sync-mi
541.142Srillig
551.21Srillig# Note: only works for adding tests.
561.21Srillig# To remove a test, the $$mi file must be edited manually.
571.21Srilligsync-mi: .PHONY
581.21Srillig	@set -eu;							\
591.21Srillig	cd "${MAKEFILE:tA:H}/../../../..";				\
601.21Srillig	mi="distrib/sets/lists/tests/mi";				\
611.21Srillig	cvs update "$$mi";						\
621.21Srillig	fmt="./usr/tests/usr.bin/xlint/lint1/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
631.21Srillig	cat "$$mi" > "$$mi.tmp";					\
641.128Srillig	printf "$$fmt" ${FILES} >> "$$mi.tmp";				\
651.21Srillig	distrib/sets/fmt-list "$$mi.tmp";				\
661.21Srillig	mv "$$mi.tmp" "$$mi";						\
671.21Srillig	cvs diff "$$mi" || true
681.21Srillig
691.70Srilligaccept: .PHONY
701.87Srillig	@archsubdir=${ARCHSUBDIR:Q} sh ./accept.sh ''
711.70Srillig
721.1Sjruoho.include <bsd.test.mk>
73