execve_hook/Makefile

53 lines
1.2 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CC = gcc
CFLAGS = -shared -fPIC -Wall -Wextra -Werror -fno-strict-aliasing -fPIC -fno-omit-frame-pointer -fno-stack-protector -Wl,-z,relro,-z,now
LDFLAGS = -ldl -ljson-c
HOOK_LDFLAGS = -ldl -pthread
TARGET_NAME = intercept.so
HOOK_NAME = hook_write.so
BUILD_DIR = build
SRC_DIR = src
SRC = $(wildcard $(SRC_DIR)/*.c)
SRC := $(filter-out $(SRC_DIR)/hook_write.c, $(SRC)) # 排除 hook_write.c
OBJ = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SRC))
TARGET = $(BUILD_DIR)/$(TARGET_NAME)
HOOK_SRC = $(SRC_DIR)/hook_write.c
HOOK_OBJ = $(BUILD_DIR)/hook_write.o
HOOK_TARGET = $(BUILD_DIR)/$(HOOK_NAME)
# 如果需要开启 debug只需执行 make DEBUG=1
ifeq ($(DEBUG),1)
CFLAGS += -DDEBUG -g
endif
all: $(TARGET) $(HOOK_TARGET)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c
@mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
$(TARGET): $(OBJ)
@mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
$(HOOK_TARGET): $(HOOK_OBJ)
@mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -Wno-error=unused-result -o $@ $^ $(HOOK_LDFLAGS)
$(HOOK_OBJ): $(HOOK_SRC)
@mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -Wno-error=unused-result -c $< -o $@
clean:
rm -rf $(BUILD_DIR)
debug:
rm -rf $(BUILD_DIR)
$(MAKE) DEBUG=1
rebuild: clean all