48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
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
|