makefile: merge ucli
This commit is contained in:
45
Makefile
45
Makefile
@@ -1,48 +1,39 @@
|
|||||||
CC = gcc
|
CC := gcc
|
||||||
CFLAGS = -Wall
|
CFLAGS := -Wall
|
||||||
|
|
||||||
PROG = helloworld
|
TDIR := $(PWD)/testcase
|
||||||
HPTEST = hptest
|
PROGRAMS := helloworld hptest userstack
|
||||||
USTACK = userstack
|
USTACK = userstack
|
||||||
SPID = stack-pid
|
|
||||||
|
|
||||||
UDIR = $(PWD)/source/uapi
|
UDIR = $(PWD)/source/uapi
|
||||||
MDIR := $(PWD)/source
|
MDIR := $(PWD)/source
|
||||||
KDIR := /usr/src/kernels/5.17.15-1.el8.x86_64/ # 内核源码目录
|
KDIR := /usr/src/kernels/5.17.15-1.el8.x86_64/ # 内核源码目录
|
||||||
TDIR := $(PWD)/testcase
|
|
||||||
|
|
||||||
BUILD_DIR := $(PWD)/build
|
BUILD_DIR := $(PWD)/build
|
||||||
OUTPUT_DIR = $(PWD)/build
|
OUTPUT_DIR = $(PWD)/build
|
||||||
|
|
||||||
|
all: $(addprefix $(OUTPUT_DIR)/, $(PROGRAMS)) module ucli
|
||||||
|
|
||||||
# KMOD = variable_monitor
|
# Pattern rule for helloworld and HPTEST
|
||||||
# obj-m := kernel/$(KMOD).o
|
$(OUTPUT_DIR)/%: $(TDIR)/%.c
|
||||||
# $(KMOD)-objs := kernel/monitor_kernel.o
|
mkdir -p $(@D)
|
||||||
|
$(CC) $(CFLAGS) -o $@ $< $(UDIR)/monitor_user.c
|
||||||
|
|
||||||
all: $(PROG) $(HPTEST) $(USTACK) $(SPID) module
|
# Specific rule for USTACK
|
||||||
|
$(OUTPUT_DIR)/$(USTACK): $(TDIR)/$(USTACK).c
|
||||||
|
mkdir -p $(@D)
|
||||||
|
$(CC) -g $(CFLAGS) -o $@ $< -lunwind -lunwind-x86_64
|
||||||
|
|
||||||
$(PROG): $(TDIR)/helloworld.c
|
# $(SPID): $(TDIR)/stack-pid.c
|
||||||
mkdir -p $(OUTPUT_DIR)
|
# mkdir -p $(OUTPUT_DIR)
|
||||||
$(CC) $(CFLAGS) -o $(OUTPUT_DIR)/$(PROG) $(TDIR)/helloworld.c $(UDIR)/monitor_user.c
|
# $(CC) $(CFLAGS) -o $(OUTPUT_DIR)/$(SPID) $(TDIR)/stack-pid.c -lunwind -lunwind-x86_64 -lunwind-ptrace
|
||||||
|
|
||||||
$(HPTEST): $(TDIR)/hptest.c
|
ucli:
|
||||||
mkdir -p $(OUTPUT_DIR)
|
$(MAKE) -C $(PWD)/source/ucli OUTPUT_DIR=$(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:
|
module:
|
||||||
make -C $(KDIR) M=$(MDIR) modules
|
make -C $(KDIR) M=$(MDIR) modules
|
||||||
|
|
||||||
# module:
|
|
||||||
# make -C linux-5.17.15 M=$(PWD)/kernel modules
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f $(OUTPUT_DIR)/*
|
rm -f $(OUTPUT_DIR)/*
|
||||||
make -C $(KDIR) M=$(MDIR) clean
|
make -C $(KDIR) M=$(MDIR) clean
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
OUTPUT_DIR ?= .
|
||||||
TARGET_EXE=ucli
|
TARGET_EXE=ucli
|
||||||
SOURCES=ucli.cc ucli-lib.cc unwind.cc symbol.cc accessors.cc elf.cc
|
SOURCES=ucli.cc ucli-lib.cc unwind.cc symbol.cc accessors.cc elf.cc
|
||||||
OBJECTS=$(SOURCES:.cc=.o)
|
OBJECTS=$(SOURCES:.cc=.o)
|
||||||
@@ -10,7 +11,7 @@ LIBS=-lunwind-x86_64 -lunwind -lelf
|
|||||||
$(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
$(CXX) $(CFLAGS) $(INCLUDES) -c $< -o $@
|
||||||
|
|
||||||
$(TARGET_EXE): $(OBJECTS)
|
$(TARGET_EXE): $(OBJECTS)
|
||||||
$(CXX) $^ $(LIBS) -o $@
|
$(CXX) $^ $(LIBS) -o $(OUTPUT_DIR)/$@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(TARGET_EXE) $(OBJECTS)
|
$(RM) $(TARGET_EXE) $(OBJECTS)
|
||||||
Reference in New Issue
Block a user