Makefile revision 1.24
1#	$NetBSD: Makefile,v 1.24 2021/10/19 20:20:24 rillig Exp $
2
3.include <bsd.own.mk>
4
5TESTSDIR=	${TESTSBASE}/usr.bin/indent
6TESTS_SH=	t_errors
7TESTS_SH+=	t_indent
8TESTS_SH+=	t_misc
9TESTS_SH+=	t_options
10
11FILESDIR=	${TESTSDIR}
12FILES=		block.0
13FILES+=		block.0.stdout
14FILES+=		declarations.0
15FILES+=		declarations.0.stderr
16FILES+=		declarations.0.stdout
17FILES+=		elsecomment.0
18FILES+=		elsecomment.0.stdout
19FILES+=		elsecomment.0.pro
20FILES+=		f_decls.0
21FILES+=		f_decls.0.stdout
22FILES+=		indent_off_on.c
23FILES+=		indent_variables.0
24FILES+=		indent_variables.0.pro
25FILES+=		indent_variables.0.stdout
26FILES+=		label.c
27FILES+=		lex.0
28FILES+=		lex.0.pro
29FILES+=		lex.0.stdout
30FILES+=		lex_char.0
31FILES+=		lex_char.0.pro
32FILES+=		lex_char.0.stdout
33FILES+=		lex_string.0
34FILES+=		lex_string.0.pro
35FILES+=		lex_string.0.stdout
36FILES+=		lineno.0
37FILES+=		lineno.0.pro
38FILES+=		lineno.0.stdout
39FILES+=		list_head.0
40FILES+=		list_head.0.stdout
41FILES+=		offsetof.0
42FILES+=		offsetof.0.stdout
43FILES+=		opt--version.0
44FILES+=		opt--version.0.pro
45FILES+=		opt--version.0.stdout
46FILES+=		opt-P.0
47FILES+=		opt-P.0.pro
48FILES+=		opt-P.0.stdout
49FILES+=		opt-T.0
50FILES+=		opt-T.0.pro
51FILES+=		opt-T.0.stdout
52FILES+=		opt-U.0
53FILES+=		opt-U.0.list
54FILES+=		opt-U.0.pro
55FILES+=		opt-U.0.stdout
56FILES+=		opt-bap+sob.0
57FILES+=		opt-bap+sob.0.pro
58FILES+=		opt-bap+sob.0.stdout
59FILES+=		opt-bl.0
60FILES+=		opt-bl.0.pro
61FILES+=		opt-bl.0.stdout
62FILES+=		opt-br.0
63FILES+=		opt-br.0.pro
64FILES+=		opt-br.0.stdout
65FILES+=		opt-c.0
66FILES+=		opt-c.0.pro
67FILES+=		opt-c.0.stdout
68FILES+=		opt-cd.0
69FILES+=		opt-cd.0.pro
70FILES+=		opt-cd.0.stdout
71FILES+=		opt-ci.0
72FILES+=		opt-ci.0.pro
73FILES+=		opt-ci.0.stdout
74FILES+=		opt-cli.0
75FILES+=		opt-cli.0.pro
76FILES+=		opt-cli.0.stdout
77FILES+=		opt-d.0
78FILES+=		opt-d.0.pro
79FILES+=		opt-d.0.stdout
80FILES+=		opt-di.0
81FILES+=		opt-di.0.pro
82FILES+=		opt-di.0.stdout
83FILES+=		opt-i.0
84FILES+=		opt-i.0.pro
85FILES+=		opt-i.0.stdout
86FILES+=		opt-l.0
87FILES+=		opt-l.0.pro
88FILES+=		opt-l.0.stdout
89FILES+=		opt-lc.0
90FILES+=		opt-lc.0.pro
91FILES+=		opt-lc.0.stdout
92FILES+=		opt-ldi.0
93FILES+=		opt-ldi.0.pro
94FILES+=		opt-ldi.0.stdout
95FILES+=		opt-npro.0
96FILES+=		opt-npro.0.pro
97FILES+=		opt-npro.0.stdout
98FILES+=		opt-ta.0
99FILES+=		opt-ta.0.pro
100FILES+=		opt-ta.0.stdout
101FILES+=		opt-ts.0
102FILES+=		opt-ts.0.pro
103FILES+=		opt-ts.0.stdout
104FILES+=		opt.0
105FILES+=		opt.0.pro
106FILES+=		opt.0.stdout
107FILES+=		opt_bacc.c
108FILES+=		opt_bad.c
109FILES+=		opt_badp.c
110FILES+=		opt_bap.c
111FILES+=		opt_bbb.c
112FILES+=		opt_bc.c
113FILES+=		opt_bs.c
114FILES+=		opt_cdb.c
115FILES+=		opt_ce.c
116FILES+=		opt_cs.c
117FILES+=		opt_dj.c
118FILES+=		opt_eei.c
119FILES+=		opt_ei.c
120FILES+=		opt_fbs.c
121FILES+=		opt_fc1.c
122FILES+=		opt_fcb.c
123FILES+=		opt_ip.c
124FILES+=		opt_lp.c
125FILES+=		opt_lpl.c
126FILES+=		opt_pcs.c
127FILES+=		opt_psl.c
128FILES+=		opt_sc.c
129FILES+=		opt_sob.c
130FILES+=		opt_ut.c
131FILES+=		opt_v.c
132FILES+=		parens.0
133FILES+=		parens.0.stdout
134FILES+=		parens.0.pro
135FILES+=		ps_ind_level.c
136FILES+=		struct.0
137FILES+=		struct.0.stdout
138FILES+=		surplusbad.0
139FILES+=		surplusbad.0.stdout
140FILES+=		surplusbad.0.pro
141FILES+=		t_options.awk
142FILES+=		token_binary_op.c
143FILES+=		token_case_label.c
144FILES+=		token_colon.c
145FILES+=		token_comma.c
146FILES+=		token_comment.c
147FILES+=		token_decl.c
148FILES+=		token_do_stmt.c
149FILES+=		token_end_of_file.c
150FILES+=		token_for_exprs.c
151FILES+=		token_form_feed.c
152FILES+=		token_funcname.c
153FILES+=		token_ident.c
154FILES+=		token_if_expr.c
155FILES+=		token_if_expr_stmt.c
156FILES+=		token_if_expr_stmt_else.c
157FILES+=		token_keyword_do.c
158FILES+=		token_keyword_do_else.c
159FILES+=		token_keyword_else.c
160FILES+=		token_keyword_for_if_while.c
161FILES+=		token_keyword_struct_union_enum.c
162FILES+=		token_lbrace.c
163FILES+=		token_lparen.c
164FILES+=		token_newline.c
165FILES+=		token_period.c
166FILES+=		token_postfix_op.c
167FILES+=		token_preprocessing.c
168FILES+=		token_question.c
169FILES+=		token_rbrace.c
170FILES+=		token_rparen.c
171FILES+=		token_semicolon.c
172FILES+=		token_stmt.c
173FILES+=		token_stmt_list.c
174FILES+=		token_storage_class.c
175FILES+=		token_string_prefix.c
176FILES+=		token_switch_expr.c
177FILES+=		token_type_def.c
178FILES+=		token_unary_op.c
179FILES+=		token_while_expr.c
180FILES+=		types_from_file.0
181FILES+=		types_from_file.0.stdout
182FILES+=		types_from_file.0.list
183FILES+=		types_from_file.0.pro
184FILES+=		wchar.0
185FILES+=		wchar.0.stdout
186
187add-test: .PHONY
188	@set -eu; \
189	test=${NAME:Q}.c; \
190	if [ "$$test" = ".c" ]; then \
191		echo "usage: ${MAKE} add-test NAME=<name>"; \
192		exit; \
193	fi; \
194	\
195	if [ -f "$$test" ]; then \
196		echo "error: test $$test already exists." 1>&2; \
197		exit 1; \
198	fi; \
199	\
200	echo "=> Adding test $$test"; \
201	printf '%s\n' \
202		'/* $$''NetBSD$$ */' \
203		'/* $$''FreeBSD$$ */' \
204		'' \
205		'/*' \
206		' * TODO: Explain the purpose of the test.' \
207		' */' \
208		'' \
209		'#indent input' \
210		'// TODO: add input' \
211		'#indent end' \
212		'' \
213		'#indent run [-options]' \
214		'// TODO: add expected output' \
215		'#indent end' \
216	> "$$test"; \
217	cvs add "$$test"; \
218	printf '%s\n' \
219		'/^FILES+=/i' \
220		"FILES+=		$$test" \
221		'.' 'w' 'q' \
222	| ed Makefile; \
223	${MAKE} sync-mi
224
225# Note: only works for adding tests.
226# To remove a test, the $$mi file must be edited manually.
227sync-mi: .PHONY
228	@set -eu;							\
229	cd "${MAKEFILE:tA:H}/../../..";					\
230	mi="distrib/sets/lists/tests/mi";				\
231	cvs update "$$mi";						\
232	fmt="./usr/tests/usr.bin/indent/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
233	cat "$$mi" > "$$mi.tmp";					\
234	printf "$$fmt" ${FILES:M${NAME}*} >> "$$mi.tmp";		\
235	distrib/sets/fmt-list "$$mi.tmp";				\
236	mv "$$mi.tmp" "$$mi";						\
237	cvs diff "$$mi" || true
238
239.include <bsd.test.mk>
240