##
# 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
