162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ciPHONY += posttest
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciifneq ($(findstring 1, $(KBUILD_VERBOSE)),)
562306a36Sopenharmony_ci  posttest_verbose = -v
662306a36Sopenharmony_cielse
762306a36Sopenharmony_ci  posttest_verbose =
862306a36Sopenharmony_ciendif
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciifeq ($(CONFIG_64BIT),y)
1162306a36Sopenharmony_ci  posttest_64bit = -y
1262306a36Sopenharmony_cielse
1362306a36Sopenharmony_ci  posttest_64bit = -n
1462306a36Sopenharmony_ciendif
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cireformatter = $(srctree)/arch/x86/tools/objdump_reformat.awk
1762306a36Sopenharmony_cichkobjdump = $(srctree)/arch/x86/tools/chkobjdump.awk
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciquiet_cmd_posttest = TEST    $@
2062306a36Sopenharmony_ci      cmd_posttest = ($(OBJDUMP) -v | $(AWK) -f $(chkobjdump)) || $(OBJDUMP) -d -j .text $(objtree)/vmlinux | $(AWK) -f $(reformatter) | $(obj)/insn_decoder_test $(posttest_64bit) $(posttest_verbose)
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciquiet_cmd_sanitytest = TEST    $@
2362306a36Sopenharmony_ci      cmd_sanitytest = $(obj)/insn_sanity $(posttest_64bit) -m 1000000
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciposttest: $(obj)/insn_decoder_test vmlinux $(obj)/insn_sanity
2662306a36Sopenharmony_ci	$(call cmd,posttest)
2762306a36Sopenharmony_ci	$(call cmd,sanitytest)
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cihostprogs += insn_decoder_test insn_sanity
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci# -I needed for generated C source and C source which in the kernel tree.
3262306a36Sopenharmony_ciHOSTCFLAGS_insn_decoder_test.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciHOSTCFLAGS_insn_sanity.o := -Wall -I$(srctree)/tools/arch/x86/lib/ -I$(srctree)/tools/arch/x86/include/ -I$(objtree)/arch/x86/lib/
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci# Dependencies are also needed.
3762306a36Sopenharmony_ci$(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
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci$(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
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciHOST_EXTRACFLAGS += -I$(srctree)/tools/include
4262306a36Sopenharmony_cihostprogs	+= relocs
4362306a36Sopenharmony_cirelocs-objs     := relocs_32.o relocs_64.o relocs_common.o
4462306a36Sopenharmony_ciPHONY += relocs
4562306a36Sopenharmony_cirelocs: $(obj)/relocs
4662306a36Sopenharmony_ci	@:
47