CC = gcc CFLAGS = -Wall PROG = helloworld HPTEST = hptest USTACK = userstack SPID = stack-pid UDIR = $(PWD)/source/uapi MDIR := $(PWD)/source KDIR := /usr/src/kernels/5.17.15-1.el8.x86_64/ # 内核源码目录 TDIR := $(PWD)/testcase BUILD_DIR := $(PWD)/build OUTPUT_DIR = $(PWD)/build # KMOD = variable_monitor # obj-m := kernel/$(KMOD).o # $(KMOD)-objs := kernel/monitor_kernel.o all: $(PROG) $(HPTEST) $(USTACK) $(SPID) module $(PROG): $(TDIR)/helloworld.c mkdir -p $(OUTPUT_DIR) $(CC) $(CFLAGS) -o $(OUTPUT_DIR)/$(PROG) $(TDIR)/helloworld.c $(UDIR)/monitor_user.c $(HPTEST): $(TDIR)/hptest.c mkdir -p $(OUTPUT_DIR) $(CC) $(CFLAGS) -o $(OUTPUT_DIR)/$(HPTEST) $(TDIR)/hptest.c $(UDIR)/monitor_user.c $(USTACK): $(TDIR)/userstack.c mkdir -p $(OUTPUT_DIR) $(CC) -g $(CFLAGS) -o $(OUTPUT_DIR)/$(USTACK) $(TDIR)/userstack.c -lunwind -lunwind-x86_64 $(SPID): $(TDIR)/stack-pid.c mkdir -p $(OUTPUT_DIR) $(CC) $(CFLAGS) -o $(OUTPUT_DIR)/$(SPID) $(TDIR)/stack-pid.c -lunwind -lunwind-x86_64 -lunwind-ptrace module: make -C $(KDIR) M=$(MDIR) modules # module: # make -C linux-5.17.15 M=$(PWD)/kernel modules clean: rm -f $(OUTPUT_DIR)/* make -C $(KDIR) M=$(MDIR) clean