Files
my-ws2812b-led-deprecated/Makefile
2025-04-14 16:07:04 +08:00

46 lines
874 B
Makefile

# 编译器设置
CC := gcc
CFLAGS := -Wall -Wextra -O2 -I./include
LDFLAGS := -lm
LIBS :=
# 目录设置
SRC_DIR := src
BUILD_DIR := build
DIST_DIR := dist
INCLUDE_DIR := include
# 获取源文件和目标文件
SOURCES := $(wildcard $(SRC_DIR)/*.c)
OBJECTS := $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SOURCES))
DEPS := $(OBJECTS:.o=.d) # 自动生成的依赖文件
# 最终可执行文件
TARGET := $(DIST_DIR)/main
# 默认目标
all: $(TARGET)
# 链接可执行文件
$(TARGET): $(OBJECTS) | $(DIST_DIR)
$(CC) $^ $(LDFLAGS) $(LIBS) -o $@
# 编译源文件并生成依赖
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -MMD -MP -c $< -o $@
# 创建必要的目录
$(BUILD_DIR):
mkdir -p $@
$(DIST_DIR):
mkdir -p $@
# 包含自动生成的依赖
-include $(DEPS)
# 清理构建
clean:
rm -rf $(BUILD_DIR) $(TARGET)
.PHONY: all clean