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