Makefile revision 1.125
1# $NetBSD: Makefile,v 1.125 2022/06/16 16:58:36 rillig Exp $
2
3NOMAN=		# defined
4MAX_MESSAGE=	349		# see lint1/err.c
5
6.include <bsd.own.mk>
7
8ARCHSUBDIR!=	cd ${NETBSDSRCDIR}/usr.bin/xlint/lint1 && ${MAKE} -v ARCHSUBDIR
9
10TESTSDIR=	${TESTSBASE}/usr.bin/xlint/lint1
11
12TESTS_SH=	t_integration
13TESTS_SH_SRC_t_integration=	archsubdir.sh t_integration.sh
14CLEANFILES+=	archsubdir.sh
15
16archsubdir.sh:
17	@echo archsubdir=${ARCHSUBDIR} >${.TARGET}
18
19FILESDIR=	${TESTSDIR}
20FILES+=		c11_generic_expression.c
21FILES+=		c11_generic_expression.exp
22FILES+=		c90.c
23FILES+=		c90.exp
24FILES+=		c99_bool_strict_suppressed.c
25FILES+=		c99_init_array.c
26FILES+=		c99_init_array.exp
27FILES+=		c99_init_designator.c
28FILES+=		c99_init_designator.exp
29FILES+=		d_alignof.c
30FILES+=		d_alignof.exp
31FILES+=		d_bltinoffsetof.c
32FILES+=		d_c99_anon_struct.c
33FILES+=		d_c99_anon_union.c
34FILES+=		d_c99_bool.c
35FILES+=		d_c99_bool.exp
36FILES+=		d_c99_bool_strict.c
37FILES+=		d_c99_bool_strict.exp
38FILES+=		d_c99_bool_strict_syshdr.c
39FILES+=		d_c99_bool_strict_syshdr.exp
40FILES+=		d_c99_complex_num.c
41FILES+=		d_c99_complex_split.c
42FILES+=		d_c99_complex_split.exp
43FILES+=		d_c99_compound_literal_comma.c
44FILES+=		d_c99_decls_after_stmt.c
45FILES+=		d_c99_decls_after_stmt2.c
46FILES+=		d_c99_decls_after_stmt3.c
47FILES+=		d_c99_flex_array_packed.c
48FILES+=		d_c99_for_loops.c
49FILES+=		d_c99_func.c
50FILES+=		d_c99_init.c
51FILES+=		d_c99_init.exp
52FILES+=		d_c99_nested_struct.c
53FILES+=		d_c99_recursive_init.c
54FILES+=		d_c99_struct_init.c
55FILES+=		d_c99_union_cast.c
56FILES+=		d_c99_union_cast.exp
57FILES+=		d_c99_union_init1.c
58FILES+=		d_c99_union_init2.c
59FILES+=		d_c99_union_init3.c
60FILES+=		d_c99_union_init4.c
61FILES+=		d_c99_union_init5.c
62FILES+=		d_c9x_array_init.c
63FILES+=		d_c9x_recursive_init.c
64FILES+=		d_cast_fun_array_param.c
65FILES+=		d_cast_init.c
66FILES+=		d_cast_init2.c
67FILES+=		d_cast_lhs.c
68FILES+=		d_cast_lhs.exp
69FILES+=		d_cast_typeof.c
70FILES+=		d_compound_literals1.c
71FILES+=		d_compound_literals2.c
72FILES+=		d_constant_conv1.c
73FILES+=		d_constant_conv1.exp
74FILES+=		d_constant_conv2.c
75FILES+=		d_constant_conv2.exp
76FILES+=		d_cvt_constant.c
77FILES+=		d_cvt_constant.exp
78FILES+=		d_cvt_in_ternary.c
79FILES+=		d_decl_old_style_arguments.c
80FILES+=		d_decl_old_style_arguments.exp
81FILES+=		d_ellipsis_in_switch.c
82FILES+=		d_fold_test.c
83FILES+=		d_fold_test.exp
84FILES+=		d_gcc_compound_statements1.c
85FILES+=		d_gcc_compound_statements1.exp
86FILES+=		d_gcc_compound_statements2.c
87FILES+=		d_gcc_compound_statements3.c
88FILES+=		d_gcc_extension.c
89FILES+=		d_gcc_func.c
90FILES+=		d_gcc_variable_array_init.c
91FILES+=		d_incorrect_array_size.c
92FILES+=		d_incorrect_array_size.exp
93FILES+=		d_init_array_using_string.c
94FILES+=		d_init_array_using_string.exp
95FILES+=		d_init_pop_member.c
96FILES+=		d_init_pop_member.exp
97FILES+=		d_lint_assert.c
98FILES+=		d_lint_assert.exp
99FILES+=		d_long_double_int.c
100FILES+=		d_long_double_int.exp
101FILES+=		d_nested_structs.c
102FILES+=		d_nolimit_init.c
103FILES+=		d_packed_structs.c
104FILES+=		d_pr_22119.c
105FILES+=		d_pr_22119.exp
106FILES+=		d_return_type.c
107FILES+=		d_return_type.exp
108FILES+=		d_shift_to_narrower_type.c
109FILES+=		d_struct_init_nested.c
110FILES+=		d_struct_init_nested.exp
111FILES+=		d_type_conv1.c
112FILES+=		d_type_conv1.exp
113FILES+=		d_type_conv2.c
114FILES+=		d_type_conv2.exp
115FILES+=		d_type_conv3.c
116FILES+=		d_type_conv3.exp
117FILES+=		d_type_question_colon.c
118FILES+=		d_typefun.c
119FILES+=		d_typename_as_var.c
120FILES+=		d_zero_sized_arrays.c
121FILES+=		decl.c
122FILES+=		decl.exp
123FILES+=		decl_arg.c
124FILES+=		decl_arg.exp
125FILES+=		decl_direct_abstract.c
126FILES+=		decl_direct_abstract.exp
127FILES+=		decl_enum.c
128FILES+=		decl_enum.exp
129FILES+=		decl_enum_c90.c
130FILES+=		decl_enum_c90.exp
131FILES+=		decl_struct_c90.c
132FILES+=		decl_struct_c90.exp
133FILES+=		decl_struct_member.c
134FILES+=		decl_struct_member.exp
135FILES+=		emit.c
136FILES+=		emit.exp
137FILES+=		emit.exp-ln
138FILES+=		emit_lp64.c
139FILES+=		emit_lp64.exp-ln
140FILES+=		expr_binary.c
141FILES+=		expr_binary.exp
142FILES+=		expr_binary_trad.c
143FILES+=		expr_binary_trad.exp
144FILES+=		expr_cast.c
145FILES+=		expr_cast.exp
146FILES+=		expr_fold.c
147FILES+=		expr_fold.exp
148FILES+=		expr_fold_strict_bool.c
149FILES+=		expr_fold_strict_bool.exp
150FILES+=		expr_precedence.c
151FILES+=		expr_precedence.exp
152FILES+=		expr_promote.c
153FILES+=		expr_promote.exp-ln
154FILES+=		expr_promote_trad.c
155FILES+=		expr_promote_trad.exp-ln
156FILES+=		expr_range.c
157FILES+=		expr_range.exp
158FILES+=		feat_stacktrace.c
159FILES+=		feat_stacktrace.exp
160FILES+=		gcc_attribute.c
161FILES+=		gcc_attribute.exp
162FILES+=		gcc_attribute_aligned.c
163FILES+=		gcc_attribute_aligned.exp
164FILES+=		gcc_attribute_enum.c
165FILES+=		gcc_attribute_enum.exp
166FILES+=		gcc_attribute_func.c
167FILES+=		gcc_attribute_func.exp
168FILES+=		gcc_attribute_label.c
169FILES+=		gcc_attribute_label.exp
170FILES+=		gcc_attribute_stmt.c
171FILES+=		gcc_attribute_stmt.exp
172FILES+=		gcc_attribute_type.c
173FILES+=		gcc_attribute_type.exp
174FILES+=		gcc_attribute_var.c
175FILES+=		gcc_attribute_var.exp
176FILES+=		gcc_bit_field_types.c
177FILES+=		gcc_bit_field_types.exp
178FILES+=		gcc_builtin_alloca.c
179FILES+=		gcc_builtin_alloca.exp
180FILES+=		gcc_builtin_overflow.c
181FILES+=		gcc_builtin_overflow.exp
182FILES+=		gcc_cast_union.c
183FILES+=		gcc_cast_union.exp
184FILES+=		gcc_init_compound_literal.c
185FILES+=		gcc_init_compound_literal.exp
186FILES+=		gcc_stmt_asm.c
187FILES+=		gcc_stmt_asm.exp
188FILES+=		gcc_typeof.c
189FILES+=		gcc_typeof.exp
190FILES+=		gcc_typeof_after_statement.c
191FILES+=		gcc_typeof_after_statement.exp
192FILES+=		init.c
193FILES+=		init.exp
194FILES+=		init_braces.c
195FILES+=		init_braces.exp
196FILES+=		init_c90.c
197FILES+=		init_c90.exp
198FILES+=		lex_char.c
199FILES+=		lex_char.exp
200FILES+=		lex_char_uchar.c
201FILES+=		lex_comment.c
202FILES+=		lex_comment.exp
203FILES+=		lex_floating.c
204FILES+=		lex_floating.exp
205FILES+=		lex_integer.c
206FILES+=		lex_integer.exp
207FILES+=		lex_integer_binary.c
208FILES+=		lex_integer_binary.exp
209FILES+=		lex_integer_ilp32.c
210FILES+=		lex_integer_ilp32.exp
211FILES+=		lex_string.c
212FILES+=		lex_string.exp
213FILES+=		lex_whitespace.c
214FILES+=		lex_whitespace.exp
215FILES+=		lex_wide_char.c
216FILES+=		lex_wide_char.exp
217FILES+=		lex_wide_string.c
218FILES+=		lex_wide_string.exp
219FILES+=		${MSG_FILES}
220FILES+=		msg_000_c90.c
221FILES+=		msg_000_c90.exp
222FILES+=		msg_001_c90.c
223FILES+=		msg_001_c90.exp
224FILES+=		msg_132_ilp32.c
225FILES+=		msg_132_ilp32.exp
226FILES+=		msg_132_lp64.c
227FILES+=		msg_132_lp64.exp
228FILES+=		msg_230_uchar.c
229FILES+=		msg_230_uchar.exp
230FILES+=		msg_259_c90.c
231FILES+=		msg_259_c90.exp
232FILES+=		msg_259_ilp32.c
233FILES+=		msg_259_ilp32.exp
234FILES+=		msg_272_c90.c
235FILES+=		msg_272_c90.exp
236FILES+=		op_colon.c
237FILES+=		op_colon.exp
238FILES+=		op_shl_lp64.c
239FILES+=		op_shl_lp64.exp
240FILES+=		parse_init_declarator.c
241FILES+=		parse_init_declarator.exp
242FILES+=		parse_stmt_error.c
243FILES+=		parse_stmt_error.exp
244FILES+=		parse_stmt_iter_error.c
245FILES+=		parse_stmt_iter_error.exp
246FILES+=		parse_type_name.c
247FILES+=		parse_type_name.exp
248FILES+=		platform_ilp32.c
249FILES+=		platform_ilp32.exp
250FILES+=		platform_int.c
251FILES+=		platform_int.exp
252FILES+=		platform_ldbl128.c
253FILES+=		platform_ldbl128.exp
254FILES+=		platform_ldbl64.c
255FILES+=		platform_ldbl64.exp
256FILES+=		platform_ldbl96.c
257FILES+=		platform_ldbl96.exp
258FILES+=		platform_long.c
259FILES+=		platform_long.exp
260FILES+=		platform_lp64.c
261FILES+=		platform_lp64.exp
262FILES+=		platform_schar.c
263FILES+=		platform_schar.exp
264FILES+=		platform_uchar.c
265FILES+=		platform_uchar.exp
266FILES+=		stmt_for.c
267FILES+=		stmt_for.exp
268FILES+=		stmt_goto.c
269FILES+=		stmt_goto.exp
270FILES+=		stmt_if.c
271FILES+=		stmt_if.exp
272
273MSG_IDS=	${:U0 ${:U:${:Urange=${MAX_MESSAGE}}}:C,^.$,0&,:C,^..$,0&,}
274MSG_FILES=	${MSG_IDS:@id@msg_${id}.c ${MSG_NO_EXP.${id}:D:Umsg_${id}.exp}@}
275MSG_NO_EXP.040=	yes
276MSG_NO_EXP.070=	yes
277MSG_NO_EXP.131=	yes
278MSG_NO_EXP.176=	yes
279
280# Note: only works for adding tests.
281# To remove a test, the $$mi file must be edited manually.
282sync-mi: .PHONY
283	@set -eu;							\
284	cd "${MAKEFILE:tA:H}/../../../..";				\
285	mi="distrib/sets/lists/tests/mi";				\
286	cvs update "$$mi";						\
287	fmt="./usr/tests/usr.bin/xlint/lint1/%s\ttests-usr.bin-tests\tcompattestfile,atf\n"; \
288	cat "$$mi" > "$$mi.tmp";					\
289	printf "$$fmt" ${FILES} >> "$$mi.tmp";				\
290	distrib/sets/fmt-list "$$mi.tmp";				\
291	mv "$$mi.tmp" "$$mi";						\
292	cvs diff "$$mi" || true
293
294accept: .PHONY
295	@archsubdir=${ARCHSUBDIR:Q} sh ./accept.sh ''
296
297.include <bsd.test.mk>
298