build: 🔨 Makefile updated.

This commit is contained in:
Слободан Јелић 2025-10-10 10:33:26 +00:00
parent c670e7fa16
commit 1754f6cf91

View File

@ -1,43 +1,43 @@
# Compiler and Flags # Compiler and Flags
CC = gcc CC = gcc
# CFLAGS = -Wall -Wextra -Iinclude -g -pg -O0 # CFLAGS = -Wall -Wextra -Iinclude -g -pg -O0
CFLAGS = -O3 -march=native -DNDEBUG -Wall -Wextra -Werror -Iinclude -s -flto -fno-math-errno CFLAGS = -O3 -march=native -DNDEBUG -Wall -Wextra -Werror -Iinclude -s -flto -fno-math-errno
LDFLAGS = -lm -flto LDFLAGS = -lm -flto
# Directories # Directories
SRC_DIR = src SRC_DIR = src
INCLUDE_DIR = include INCLUDE_DIR = include
BUILD_DIR = build BUILD_DIR = build
# Source and Object Files # Source and Object Files
SRC_FILES = $(wildcard $(SRC_DIR)/*.c) SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
OBJ_FILES = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SRC_FILES)) OBJ_FILES = $(patsubst $(SRC_DIR)/%.c,$(BUILD_DIR)/%.o,$(SRC_FILES))
# Binaries # Binaries
MAIN_BIN = $(BUILD_DIR)/main MAIN_BIN = $(BUILD_DIR)/main
# Targets # Targets
all: $(MAIN_BIN) all: $(MAIN_BIN)
# Main Program # Main Program
$(MAIN_BIN): $(OBJ_FILES) | $(BUILD_DIR) $(MAIN_BIN): $(OBJ_FILES) | $(BUILD_DIR)
$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@ $(CC) $(CFLAGS) -c $< -o $@
# Create Build Directories # Create Build Directories
$(BUILD_DIR): $(BUILD_DIR):
mkdir -p $@ mkdir -p $@
# Generate docs # Generate docs
docs: docs:
doxygen Doxyfile doxygen Doxyfile
# Clean # Clean
clean: clean:
rm -rf $(BUILD_DIR) rm -rf $(BUILD_DIR)
.PHONY: all tests clean run-tests .PHONY: all tests clean run-tests