You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
769 B
44 lines
769 B
CC = gcc
|
|
SRC_DIR = src
|
|
OBJ_DIR = obj
|
|
SOURCES = $(wildcard $(SRC_DIR)/*.c)
|
|
OBJECTS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SOURCES))
|
|
EXECUTABLE = APP
|
|
BUILD_DIR = build
|
|
LDFLAGS =
|
|
CFLAGS_RELEASE = -O3
|
|
CFLAGS_DEBUG = -g -O0
|
|
|
|
# Generate dependency files
|
|
DEPS = $(OBJECTS:.o=.d)
|
|
-include $(DEPS)
|
|
|
|
# Commands
|
|
all: build
|
|
|
|
build: $(BUILD_DIR)/$(EXECUTABLE)
|
|
|
|
$(BUILD_DIR)/$(EXECUTABLE): $(OBJECTS)
|
|
@mkdir -p $(BUILD_DIR)
|
|
$(CC) $(LDFLAGS) -o $@ $^
|
|
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
@mkdir -p $(OBJ_DIR)
|
|
$(CC) -c $(CFLAGS_RELEASE) -MMD -MP -o $@ $<
|
|
|
|
debug:
|
|
$(MAKE) CFLAGS_RELEASE="$(CFLAGS_DEBUG)" build
|
|
|
|
clean:
|
|
rm -rf $(OBJ_DIR) $(BUILD_DIR)
|
|
|
|
run: build
|
|
$<
|
|
|
|
doc_doxygen:
|
|
@echo "Doxygen build started"
|
|
@$(MAKE) -C docs
|
|
|
|
.PHONY: all build debug clean run doc_doxygen
|
|
|