# tests/Makefile

# Autostart module for EVBox G2/G3 chargers
# Written 2026 by Maarten Tromp <maarten@geekabit.nl>
# Website: https://www.geekabit.nl/projects/evbox-charger-autostart-module/
# License: Public Domain (CC0)
# For more info see README


CORE_SRC_DIR	:= ../src/core
TEST_SRC_DIR	:= .
UNITY_SRC_DIR	:= ../unity/src
BUILD_DIR		:= ../build/gcc

CORE_SRCS		:= $(wildcard $(CORE_SRC_DIR)/*.c)
TEST_SRCS		:= $(wildcard $(TEST_SRC_DIR)/*.c)
UNITY_SRCS		:= $(UNITY_SRC_DIR)/unity.c
ALL_SRCS		:= $(CORE_SRCS) $(TEST_SRCS) $(UNITY_SRCS)
#OBJS			:= $(patsubst %.c,$(BUILD_DIR)/%.o,$(ALL_SRCS))
OBJS			:= $(patsubst %.c,$(BUILD_DIR)/%.o,$(notdir $(ALL_SRCS)))
DEPS			:= $(OBJS:.o=.d)
TARGET			:= $(BUILD_DIR)/test_runner

CC				:= gcc
CPPFLAGS		:= -I$(CORE_SRC_DIR) -I$(TEST_SRC_DIR) -I$(UNITY_SRC_DIR)
CFLAGS			:= -std=c11 -O0 -g -MMD -MP -Wall -Wextra
LD				:= $(CC)
LDFLAGS			:=
MKDIR			:= mkdir
MKDIR_FLAGS		:= -p


.PHONY: all clean dirs run

all: run

run: $(TARGET)
	./$(TARGET)

$(BUILD_DIR):
	$(MKDIR) $(MKDIR_FLAGS) $@

$(TARGET): $(OBJS)
	$(LD) $(LDFLAGS) $^ -o $@

$(BUILD_DIR)/%.o: $(CORE_SRC_DIR)/%.c | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD_DIR)/%.o: $(TEST_SRC_DIR)/%.c | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

$(BUILD_DIR)/%.o: $(UNITY_SRC_DIR)/%.c | $(BUILD_DIR)
	$(CC) $(CFLAGS) -c $< -o $@

#$(BUILD_DIR)/%.o: %.c | $(BUILD_DIR)
#	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@

clean:
	- $(RM) -r $(BUILD_DIR)/

-include $(DEPS)
