1# SPDX-License-Identifier: GPL-2.0
2PHONY += posttest
3
4ifneq ($(findstring 1, $(KBUILD_VERBOSE)),)
5  posttest_verbose = -v
6else
7  posttest_verbose =
8endif
9
10ifeq ($(CONFIG_64BIT),y)
11  posttest_64bit = -y
12else
13  posttest_64bit = -n
14endif
15
16reformatter = $(srctree)/arch/x86/tools/objdump_reformat.awk
17chkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk
18
19quiet_cmd_posttest = TEST    $@
20      cmd_posttest = $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_verbose)
21
22quiet_cmd_sanitytest = TEST    $@
23      cmd_sanitytest = $(obj)/insn_sanity $(posttest_64bit) -m 1000000
24
25posttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
26	$(call cmd,posttest)
27	$(call cmd,sanitytest)
28
29hostprogs += insn_decoder_test insn_sanity
30
31# -I needed for generated C source and C source which in the kernel tree.
32HOSTCFLAGS_insn_decoder_test.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
33
34HOSTCFLAGS_insn_sanity.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
35
36# Dependencies are also needed.
37$(obj)/insn_decoder_test.o: $(srctree)/tools/arch/x86/lib/insn.c $(srctree)/tools/arch/x86/lib/inat.c $(srctree)/tools/arch/x86/include/asm/inat_types.h $(srctree)/tools/arch/x86/include/asm/inat.h $(srctree)/tools/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
38
39$(obj)/insn_sanity.o: $(srctree)/tools/arch/x86/lib/insn.c $(srctree)/tools/arch/x86/lib/inat.c $(srctree)/tools/arch/x86/include/asm/inat_types.h $(srctree)/tools/arch/x86/include/asm/inat.h $(srctree)/tools/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
40
41HOST_EXTRACFLAGS += -I$(srctree)/tools/include
42hostprogs	+= relocs
43relocs-objs     := relocs_32.o relocs_64.o relocs_common.o
44PHONY += relocs
45relocs: $(obj)/relocs
46	@:
47