| # SPDX-License-Identifier: GPL-2.0 | 
 |  | 
 | CFLAGS	?= -O | 
 |  | 
 | ifeq ($(ARCH),riscv) | 
 |     CFLAGS += -D__riscv=1 | 
 | endif | 
 |  | 
 | CC = $(CROSS_COMPILE)gcc | 
 | AS = $(CROSS_COMPILE)as | 
 | LD = $(CROSS_COMPILE)ld | 
 | OBJDUMP = $(CROSS_COMPILE)objdump | 
 |  | 
 |  | 
 | CFLAGS	+= $(EXTRA_CFLAGS) | 
 | all: mca-recover vtop cmcistorm hornet einj_mem_uc lmce rep_ce_page memattr victim einj_pcie_err \ | 
 | 	tlp_hdr_decoder | 
 |  | 
 | clean: | 
 | 	rm -f *.o mca-recover vtop cmcistorm hornet einj_mem_uc lmce rep_ce_page memattr victim einj_pcie_err tlp_hdr_decoder | 
 |  | 
 | mca-recover: mca-recover.o proc_pagemap.o | 
 | 	$(CC) -o mca-recover $(CFLAGS) mca-recover.o proc_pagemap.o | 
 |  | 
 | vtop: vtop.c | 
 | 	$(CC) -o vtop $(CFLAGS) vtop.c | 
 |  | 
 | cmcistorm: cmcistorm.o proc_pagemap.o einj.o | 
 | 	$(CC) -o cmcistorm $(CFLAGS) cmcistorm.o proc_pagemap.o einj.o | 
 |  | 
 | rep_ce_page: rep_ce_page.o proc_pagemap.o einj.o | 
 | 	$(CC) -o rep_ce_page $(CFLAGS) rep_ce_page.o proc_pagemap.o einj.o | 
 |  | 
 | hornet: hornet.o einj.o | 
 | 	$(CC) -o hornet $(CFLAGS) hornet.o einj.o | 
 |  | 
 | einj_mem_uc: einj_mem_uc.o proc_cpuinfo.o proc_interrupt.o proc_pagemap.o do_memcpy.o einj.o | 
 | 	$(CC) -o einj_mem_uc $(CFLAGS) einj_mem_uc.o proc_cpuinfo.o proc_interrupt.o proc_pagemap.o do_memcpy.o einj.o -pthread | 
 |  | 
 | lmce: proc_pagemap.o lmce.o | 
 | 	$(CC) -o lmce $(CFLAGS) proc_pagemap.o lmce.o -pthread | 
 |  | 
 | memattr: memattr.o einj.o | 
 | 	$(CC) -o memattr $(CFLAGS) memattr.o einj.o | 
 |  | 
 | victim: victim.c | 
 | 	$(CC) -o victim $(CFLAGS) victim.c | 
 |  | 
 | einj_pcie_err: einj_pcie_err.o einj.o | 
 | 	$(CC) -o einj_pcie_err $(CFLAGS) einj_pcie_err.o einj.o | 
 |  | 
 | tlp_hdr_decoder: tlp_hdr_decoder.o | 
 | 	$(CC) -o tlp_hdr_decoder $(CFLAGS) tlp_hdr_decoder.o |