## # TH WWS # # @file # @version 0.1 CC = gcc CFLAGS ?= -Wall -Wextra -Iinclude -fomit-frame-pointer -O2 SRC_DIR = src INCLUDE_DIR = include BUILD_DIR = build TARGET = WWS_System SRC_FILES = $(wildcard $(SRC_DIR)/*.c) OBJ_FILES = $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC_FILES)) .PHONY: all clean all: $(BUILD_DIR) $(TARGET) # Link all the files into the final executable $(TARGET): $(OBJ_FILES) $(CC) $(OBJ_FILES) -o $@ # Compile source- and object files $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) $(CC) $(CFLAGS) -c $< -o $@ #Ensure the build directory exists $(BUILD_DIR): mkdir -p $(BUILD_DIR) # Clean build and target clean: rm -Rf $(BUILD_DIR) $(TARGET) # end